存儲器矩陣的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及集成電路(IC)中的存儲器單元。
【背景技術(shù)】
[0002] 在許多集成電路設(shè)計中,需要具有盡可能多的可用存儲器。目前,例如現(xiàn)場可編程 門陣列(FPGA)的可編程IC例如可具有約50的存儲器。然而,隨著技術(shù)進(jìn)步,存儲器的此 量可為不充分的,從而在IC可提供的存儲器的量與某些應(yīng)用程序可需要的存儲器的量之 間產(chǎn)生差距。舉例來說,網(wǎng)路可具有高達(dá)每秒400千兆位的線速率。因此,單個毫秒的網(wǎng)絡(luò) 流量含有400兆位的數(shù)據(jù)。
[0003] 在一些情況下,存儲器的量可通過增加 IC上的存儲器單元的數(shù)目來增加。然而, 較多存儲器單元占據(jù)較多面積,且在許多IC設(shè)計中面積為有限的。因此,需要提供在IC中 最大化可用存儲器的其它技術(shù)。
【發(fā)明內(nèi)容】
[0004] 第一示范性集成電路包括存儲器矩陣,其包含:第一存儲器單元陣列;第一多路 復(fù)用器(MUX),其耦合到所述第一存儲器單元陣列的輸入;第二MUX,其耦合到所述第一存 儲器單元陣列的輸出;第二存儲器單元陣列;第三MUX,其耦合到所述第二存儲器單元陣列 的輸入;及第四MUX,其耦合到所述第二存儲器單元陣列的輸出。所述第二MUX耦合到所述 第四MUX。所述第四MUX經(jīng)配置以傳送以下各項中的選定一者:(1)來自所述第三MUX的輸 出,⑵來自所述第二存儲器單元陣列的輸出,或(3)來自所述第二MUX的輸出。
[0005] 第二示范性集成電路包括存儲器矩陣,其包含:第一存儲器單元陣列;第一 MUX, 其耦合到所述第一存儲器單元陣列的輸入;第二MUX,其耦合到所述第一存儲器單元陣列 的輸出;第二存儲器單元陣列;第三MUX,其耦合到所述第二存儲器單元陣列的輸入;及第 四MUX,其耦合到所述第二存儲器單元陣列的輸出。所述第一 MUX經(jīng)耦合以提供輸出到所述 第三MUX ;及所述第二MUX經(jīng)耦合以提供輸出到所述第四MUX。
[0006] 將通過閱讀以下詳細(xì)描述而顯而易見其它方面及特征。
【附圖說明】
[0007] 圖式說明了示范性電路的設(shè)計及效用,其中類似的元件用共同的參考標(biāo)號來指 代。這些附圖未必按比例繪制。為了更好地了解獲得上文所述的以及其它優(yōu)點(diǎn)及目標(biāo)的方 式,將呈現(xiàn)對實例的更加具體描述,所述實例在附圖中示出。這些圖式僅描繪示范性結(jié)構(gòu), 且因此不應(yīng)被視為限制權(quán)利要求書的范圍。
[0008] 圖1說明存儲器矩陣。
[0009] 圖2說明含有布置成多個列的多個塊RAM的存儲器矩陣。
[0010] 圖3說明具有恒定讀取時延的存儲器矩陣。
[0011] 圖4說明具有管線化的存儲器矩陣。
[0012] 圖5A說明用于塊RAM的級聯(lián)配置。
[0013] 圖5B說明使用圖5A中說明的配置而級聯(lián)在一起的多個塊RAM。
[0014] 圖5C及說明在操作中的圖5B的級聯(lián)的實例。
[0015] 圖6A說明用于塊RAM的替代級聯(lián)配置。
[0016] 圖6B說明使用圖6A中說明的配置而級聯(lián)在一起的多個塊RAM。
[0017] 圖7說明具有嵌入式地址解碼器的塊RAM。
[0018] 圖8說明雙栗浦單端口存儲器矩陣。
[0019] 圖9說明含有雙栗浦存儲器矩陣的FPGA的時鐘周期。
[0020] 圖10說明具有ECC的雙栗浦存儲器矩陣。
【具體實施方式】
[0021] 下文將參考圖式描述各種特征。應(yīng)注意,各圖并非按比例繪制,且具有類似結(jié)構(gòu)或 功能的元件貫穿各圖由相同的參考標(biāo)號來表示。應(yīng)注意,各圖僅意圖便于特征的描述。它 們并不意圖作為所主張的發(fā)明的詳盡的描述或作為對所主張的發(fā)明的范圍的限制。此外, 所說明的實例不需要具有所示的所有方面或優(yōu)點(diǎn)。結(jié)合特定實例描述的方面或優(yōu)點(diǎn)未必限 于所述實例,且可在任何其它實例中實踐,即使并未如此說明或并未明確描述。而且,遍及 本說明書所提及的"一些實施例"或"其它實施例"意味著與實施例一起描述的特定特征、 結(jié)構(gòu)、材料或特性包含在至少一個實施例中。因此,短語"在一些實施例中"或"在其它實施 例中"遍及本說明書在各處的出現(xiàn)未必是指同一實施例或相同實施例。
[0022] 圖1說明示范性存儲器矩陣100。在一些實施例中,存儲器矩陣100為SRAM(靜態(tài) 隨機(jī)存取存儲器)存儲塊的矩陣(例如,多個SRAM列及行)。在其它實施例中,存儲器矩 陣100可為其它類型的存儲塊的矩陣。存儲器矩陣100為集成電路的一部分,例如FPGA。 存儲器矩陣100具有輸入總線103及輸出總線104。因此,從用戶的觀點(diǎn)來看,存儲器矩陣 100可呈現(xiàn)為單個大的深層邏輯SRAM或深層結(jié)構(gòu)SRAM。
[0023] 輸入總線103可包括用于接收讀取命令的讀取地址及控制總線106、用于接收寫 入命令的寫入地址及控制總線108,及用于接收將響應(yīng)于在寫入地址及控制總線108處接 收的寫入命令而實際上寫入到存儲器矩陣100上的數(shù)據(jù)的寫入數(shù)據(jù)總線110。
[0024] 輸出總線104可包括用于響應(yīng)于在讀取地址及控制總線106處接收的讀取命令而 用于從存儲器矩陣100讀取數(shù)據(jù)的讀取數(shù)據(jù)總線112。另外,輸出總線104還可含有錯誤 校正碼(ECC)總線114。在一些實施例中,輸出總線104包括用于讀取數(shù)據(jù)的64位及用于 ECC狀態(tài)信息的8位。
[0025] 如圖2中所說明,存儲器矩陣100包括多個存儲器單元陣列202(下文的塊RAM 202),其為用于存儲器矩陣100的存儲器構(gòu)建塊。塊RAM 202(或存儲器單元陣列)可指任 何類型的存儲器單元陣列。舉例來說,存儲器矩陣100中的每一塊RAM 202可為4KX72b SRAM陣列。構(gòu)成存儲器矩陣100的塊RAM 202布置成一個或一個以上列204。為便于說明, 垂直或列可指平行于FPGA上的門方向的方向,而水平或行可指垂直于FPGA上的門方向的 方向。然而,應(yīng)理解,術(shù)語"垂直"、"列"、"水平"及"行"可任意定義,且可指任何方向。舉 例來說,在其它實施例中,垂直或列可指垂直于FPGA上的門方向的方向,而水平或行可指 平行于FPGA上的門方向的方向。
[0026] 在圖2的存儲器矩陣中,每一列204含有包括一組晶體管及線的嵌入式級聯(lián),所述 線將所述列204的塊RAM 202縫合在一起以形成深層邏輯SRAM。嵌入式級聯(lián)可在FPGA內(nèi) 硬接線作為專用總線布線,且不消耗FPGA的可編程互連結(jié)構(gòu)中的任一者。換句話說,級聯(lián) 的組件并非FPGA的可編程互連結(jié)構(gòu)的部分。舉例來說,嵌入式級聯(lián)可將對應(yīng)于輸入及輸出 總線103及104的大小的大量位(例如,72位)布線為由單個控制位控制。因此,與使用 FPGA的可編程結(jié)構(gòu)互連資源來連接構(gòu)成列204的塊RAM 202相比,每一列204消耗較少面 積。然而,在其它實施例中,級聯(lián)的一或多個組件可使用FPGA的可編程互連結(jié)構(gòu)來實施。
[0027] 對于列204中的每一塊RAM 202,嵌入式級聯(lián)用以確定塊RAM 202所接收的輸入 是來自FPGA結(jié)構(gòu)還是來自列204中的先前塊RAM 202。另外,通過嵌入式級聯(lián)確定塊RAM 202是否產(chǎn)生其自身的輸出且將所述輸出推送到級聯(lián)中,或?qū)嶋H上傳播來自級聯(lián)中的先前 塊RAM 202的數(shù)據(jù)。在一些實施例中,這些確定可使用位于嵌入式級聯(lián)中的一或多個多路 復(fù)用器(MUX)來進(jìn)行。在一些情況下,MUX實施在緊挨著塊RAM 202的FPGA中,且在FPGA 的可編程結(jié)構(gòu)外部。將在下文進(jìn)一步詳細(xì)描述包含MUX的嵌入式級聯(lián)的架構(gòu)。
[0028] 而且,在一些實施例中,個別列204經(jīng)由結(jié)構(gòu)互連且不經(jīng)由嵌入式級聯(lián)而連接在 一起。這允許存儲器單元放置的靈活性。舉例來說,如圖2中所說明,可包含查找表(LUT) 或可配置邏輯塊(CLB)的額外元件206可位于存儲器矩陣100的列204之間。
[0029] 恒定讀取時延
[0030] 為了有效地起作用,存儲器矩陣100經(jīng)配置以具有恒定讀取時延而不管從其讀取 的存儲器的地址。讀取時延指從發(fā)布讀取地址及讀取啟用命令到存儲器矩陣100到從存儲 器矩陣100輸出讀取數(shù)據(jù)的時鐘循環(huán)的數(shù)目。當(dāng)存儲器矩陣100具有恒定的讀取時延時,所 述讀取時延為相同的,而不管存儲器矩陣100內(nèi)的從其讀取所述讀取數(shù)據(jù)的讀取地址。另 外,在一個時鐘循環(huán)期間寫入到存儲器矩陣100中的地址中的任何數(shù)據(jù)能夠在下一時鐘循 環(huán)中讀取回。
[0031] 圖3說明存儲器矩陣100,特定展示具有恒定讀取時延的存儲器矩陣100。存儲器 矩陣100含有多個塊RAM 202 (例如,塊RAM 202A及202B),所述塊具有可將數(shù)據(jù)寫入到且 從其讀取的地址。舉例來說,為了寫入到塊RAM 202A,沿著輸入線304A發(fā)送寫入命令及地 址連同寫入數(shù)據(jù)。為了從塊RAM 202A讀取數(shù)據(jù),沿著輸入線304A發(fā)送讀取命令及地址,及 使用輸出線306A輸出讀取數(shù)據(jù)。類似地,可使用輸入線304B將數(shù)據(jù)寫入到塊RAM 202B及 使用輸出線306B從塊RAM 202B讀取數(shù)據(jù)。
[0032] 為了實現(xiàn)恒定的讀取時延,輸入及輸出線的總延遲應(yīng)為相同的,而不管存儲器矩 陣100中的被存取的塊RAM 202的位置。舉例來說,如果304A及306A上的延遲與304B及 306B上的延遲相同,那么塊RAM 202A及塊RAM 202B