帶內(nèi)部反饋的自適應查找表模塊的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及電子行業(yè)現(xiàn)場可編程邏輯門陣列(FPGA)技術(shù)領(lǐng)域,尤其涉及一種帶 內(nèi)部反饋的自適應查找表模塊(Look Up Table,簡稱LUT)。
【背景技術(shù)】
[0002] 現(xiàn)行的現(xiàn)場可編程邏輯門陣列(FPGA)多為孤島式結(jié)構(gòu),其基本單元如圖1所 示。15稱為邏輯陣列塊(Logic Array Block,簡稱LAB),LAB包含多個邏輯單元(Logic Element,簡稱LE) 14, LE中一般由一個k輸入查找表(Look Up Table,LUT) 11和一個寄存 器12連接而成,完整的k輸入LUT意味著2k位sram(靜態(tài)隨機存儲器)和相應的地址選 通邏輯。11和12的輸出端均可輸出到LAB之外,上到通道互聯(lián)結(jié)構(gòu)中,可以連接到其他邏 輯資源。從通道下來的輸入信號進入LE之前先通過輸入多路選擇器(Input Multiplexer, Input Mux) 13,與反饋(Feed back)信號選擇后輸入LE內(nèi)部。該反饋信號可能來自11或 12的輸出,也可能來自本LAB中的其他LE的輸出,從而構(gòu)成邏輯資源級聯(lián)或反饋的結(jié)構(gòu)。
[0003] 隨著FPGA包含邏輯資源規(guī)模的不斷增長,以及工藝節(jié)點不斷縮小,連線延時問題 凸顯,即LAB之間的通道互聯(lián)延時所占比例逐漸升高。降低關(guān)鍵路徑延時的一種策略是將 更多的資源放入單個LE中,因此LUT的規(guī)模相應增加,輸入端個數(shù)k由早期的小于等于4 增加到如今的以6為主。各FPGA采用的LUT的內(nèi)部結(jié)構(gòu)多有不同,以兼顧功能的靈活和面 積延時性能的優(yōu)化。
[0004] 圖2所示為美國專利(US7671625 B1)提出的自適應邏輯模塊(Adaptive Logic Module,簡稱ALM)結(jié)構(gòu)抽象級別示意圖,ALM的地位等同于前文的LE。和傳統(tǒng)LE結(jié)構(gòu)顯 著不同,ALM包含兩個寄存器23a和23b,與之相對應的兩個k輸入LUT被拆分為21a、21b、 21c和21d四個k-1輸入的LUT。21a和21b通過多路選擇器22a組成實質(zhì)上等效的k輸 入LUT,同理21c和21d通過多路選擇器22b組成等效的k輸入LUT。上下兩部分通過多路 選擇器22c和22d分別選通到各自的寄存器23a和23b的輸入端。LUT輸入端之前存在組 合互聯(lián)結(jié)構(gòu)24,意在復用各個k-Ι輸入LUT的輸入端口,改變ALM可實現(xiàn)的LUT拓撲結(jié)構(gòu)。 ALM的輸入端個數(shù)為2m,一般滿足:
[0005] 1 ^ m ^ 2k-1 (1)
[0006] 從而最多實現(xiàn)兩個部分功能的2k_l輸入LUT,或一個部分功能的2 · (2k_l) +1 = 4k_ 1 輸入 LUT。
[0007] 圖3為圖2所示ALM中基本結(jié)構(gòu)-可拆分LUT模塊的結(jié)構(gòu)示意圖。請參照圖3,只 取ALM的上半部分的兩個LUT討論,省略上下LUT之間的連接關(guān)系,31a、31b、32a等價于圖 2中的21 &、2113、22&。該結(jié)構(gòu)在1^1'有效面積(8抑111數(shù)量)上與圖1的1^結(jié)構(gòu)等同,而實 現(xiàn)的功能因真實輸入端數(shù)量的不同而變化。在實際的電路中,k-Ι輸入LUT還可以繼續(xù)拆 分為兩個k-2輸入LUT和后端的選通Mux,以此類推,但基本思想沒有發(fā)生變化。
[0008] 映射作為FPGA對應的EDA流程中一個重要的步驟,其實現(xiàn)結(jié)果的優(yōu)劣與FPGA的 邏輯資源有密切的關(guān)系,特別是隨著FPGA體系結(jié)構(gòu)的進步和工藝的發(fā)展,映射算法也在發(fā) 生相應的演進,用于契合FPGA基本邏輯單元實現(xiàn)高性能的需求。當前學術(shù)上流行的映射工 具ABC在實現(xiàn)各種映射算法時,特別是在對應用電路的深度做優(yōu)化的時候往往認為LUT或 者ALM的延時為單位"1"。
[0009] 然而,在實際情況中,存在可能有自適應LUT的兩個k-Ι輸入LUT的總輸入端m大 于k的情況。這種情況要求兩級或者多級LUT或者ALM進行級聯(lián)模,此時ABC仍將總延時 看作兩個單位延時的疊加,即總延時為2,無法區(qū)分內(nèi)部級聯(lián)和通過Input Mux(圖1中13) 的外部級聯(lián)。但是,結(jié)合實際情況,如果從軟件優(yōu)化的角度講,設(shè)計一種能夠處理兩級或者 多級LUT或者ALM級聯(lián)的基本邏輯結(jié)構(gòu),有可能實現(xiàn)深度最優(yōu)映射結(jié)果的優(yōu)化,進而實現(xiàn)應 用電路性能的提升。
[0010] 圖3所示的ALM基本結(jié)構(gòu)(可拆分LUT單元)可以實現(xiàn)至多2k-l輸入的LUT的 部分功能,但由于該單元只包含2 k個sram,因此當輸入端為m個(m不超過2k-l)時,該結(jié) 構(gòu)能實現(xiàn)的功能占完整m輸入LUT總功能數(shù)的比例為:
[0012] k不變時,輸入端m個數(shù)越大,該單元實現(xiàn)的m輸入LUT功能越不完整。此外,映射 是FPGA對應的EDA工具流程中一個重要的步驟,現(xiàn)有的映射算法已經(jīng)能夠做到深度最優(yōu)。 但是這些算法在實現(xiàn)深度最優(yōu)的時候,LUT或者ALM對應的映射模型默認的將單級的LUT或 者ALM的深度當作" 1"。這樣的話,兩級或者多級LUT級聯(lián)在映射之后的深度是大于等于2 的。
【發(fā)明內(nèi)容】
[0013] (一)要解決的技術(shù)問題
[0014] 鑒于上述技術(shù)問題,本發(fā)明提供了一種帶內(nèi)部反饋的自適應查找表模塊,以用盡 可能少的代價增加邏輯單元實現(xiàn)的功能,同時,希望通過本發(fā)明能夠?qū)τ成渌惴↙UT或者 ALM對應的時序模型有所改進,以期減小兩級或者多級LUT級聯(lián)映射之后對應的深度,進而 提升應用電路的性能。
[0015] (二)技術(shù)方案
[0016] 本發(fā)明提供了一種帶內(nèi)部反饋的自適應查找表模塊。該自適應查找表模塊具有 2k_l個輸入端和一個模式控制端,包括:第一查找表41a,其具有k-Ι個輸入端口以及一個 輸出端口,該k-Ι個輸入端口連接至所述自適應查找表模塊的輸入端[0 :k-2];第二查找 表41b,其具有k-Ι個輸入端口以及一個輸出端口,該k-Ι個輸入端口中的k-2個輸入端口 連接至所述自適應查找表模塊的輸入端[k-1 :2k-4];第一 2選1多路選擇器42b,其具有 兩個輸入端口、一個輸出端口和一個控制端口,其第一輸入端口連接至所述第一查找表41a 的輸出端口,其第二輸入端口連接至所述自適應查找表模塊的輸入端[2k-3],其控制端口 作為所述自適應查找表模塊的模式選擇端;以及第二2選1多路選擇器42a,其具有兩個輸 入端口、一個輸出端口和一個控制端口,其第一輸入端口連接至所述第一查找表41a的輸 出端口,其第二輸入端口連接至所述第二查找表的輸出端口,其控制端口連接至所述自適 應查找表模塊的輸入端[2k-2],其輸出端口作為所述自適應查找表模塊的輸出端;其中, 所述第一查找表(41a)的輸出端口和第一 2選1多路選擇器(42b)的第一輸入端口之間構(gòu) 成反饋路徑。
[0017] (三)有益效果
[0018] 從上述技術(shù)方案可以看出,本發(fā)明帶內(nèi)部反饋的自適應查找表模塊在現(xiàn)有的LUT 模塊中增加了一多路選擇器和反饋路徑,從而在普通模式之外,實現(xiàn)了級聯(lián)模式,在LUT模 塊中實現(xiàn)了更多的功能。
【附圖說明】
[0019] 圖1為現(xiàn)有技術(shù)中FPGA基本邏輯單元的結(jié)構(gòu)示意圖;
[0020] 圖2為現(xiàn)有技術(shù)中可配置邏輯模塊(ALM)的結(jié)構(gòu)示意圖;
[0021] 圖3為圖2所示ALM中基本結(jié)構(gòu)-可拆分LUT模塊的結(jié)構(gòu)示意圖;
[0022] 圖4為根據(jù)本發(fā)明實施例帶內(nèi)部反饋的自適應查找表模塊的結(jié)構(gòu)示意圖;
[0023] 圖5A和圖5B為可拆分LUT單元和本發(fā)明LUT單元的比較示意圖。
【具體實施方式】
[0024] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下結(jié)合具體實施例,并參照 附圖,對本發(fā)明進一步詳細說明。需要說明的是,在附圖或說明書描述中,相似或相同的部 分都使用相同的圖號。附圖中未繪示或描述的實現(xiàn)方式,為所屬技術(shù)領(lǐng)域中普通技術(shù)人員 所知的形式。另外,雖然本文可提供包含特定值的參數(shù)的示范,但應了解,參數(shù)無需確切等 于相應的值,而是可在可接受的誤差容限或設(shè)計約束內(nèi)近似于相應的值。實施例中提到的 方向用語,例如"上"、"下"、"前"、"后"、"左"、"右"等,僅是參考附圖的方向。因此,使用的 方向用語是用來說明并非用來限制本發(fā)明的保護范圍。
[0025] 本發(fā)明帶內(nèi)部反饋的自適應查找表模塊在現(xiàn)有的LUT模塊中增加了一多路選擇 器和反饋路徑,在普通模式之外,實現(xiàn)了級聯(lián)模式,從而在LUT模塊中實現(xiàn)了更多的功能。
[0026] 在本發(fā)明的一個示例性實施例中,提供了一種帶內(nèi)部反饋的自適應查找表。圖4 為根據(jù)本發(fā)明實施例帶內(nèi)部反饋的自適應查找表模塊的結(jié)構(gòu)示意圖。如圖4所示,本實施 例帶內(nèi)部反饋的自適應查找表模塊,其具有2k_l個輸入端和1個模式控制端,包括:
[0027] 第一 LUT (41a),其具有k-Ι個輸入端口以及一個輸出端口,該k-Ι個輸入端口連接 至本實施例自適應查找表模塊的輸入端[0 :k_2];
[0028] 第二LUT (41b),其具有k-Ι個輸入端口以及一個輸出端口,該k-Ι個輸入端口中的 k-2個輸入端口連接至本實施例自適應查找表模塊的輸入端[k-1 :2k_4];
[0029] 第一2選1多路選擇器42b,其具有兩個輸入端口、一個輸出端口和一個控制端口, 其第一輸入端口連接至第一 LUT的輸出端,其第二輸入端口連接至本實施例自適應查找表 模塊的輸入端[2k_3],其控制端口作為本實施例自適應查找表模塊的模式選擇端(圖4的 Control bit);
[0030] 第二2選1多路選擇器42a,其具有兩個輸入端口、一個輸出端口和一個控制端口, 其