基于FPGA的可變長(cháng)度移位寄存器優(yōu)化設計
利用Spartan-3系列芯片的一個(gè)CLB(相當于8個(gè)基本邏輯單元)就可以構成N=128的可變長(cháng)度移位寄存器,如圖5所示。作為對比,如果不調整FPGA芯片類(lèi)型與移位寄存器結構類(lèi)型的搭配,比如直接采用Altera Cyclone II芯片,按結構A實(shí)現N=128的可變長(cháng)度移位寄存器,則需消耗169個(gè)基本邏輯單元(由Quartus II編譯)。

2.2 優(yōu)化移位寄存器結構
通過(guò)優(yōu)化移位寄存器結構,采用FPGA片內RAM來(lái)實(shí)現移位寄存器,利用片內RAM速度快、數量大的優(yōu)點(diǎn),直接減少基本邏輯單元的消耗,提高資源利用率。
2.2.1 實(shí)現原理
FPGA片內RAM常見(jiàn)有兩種,一種是分布式RAM(Distributed RAM),如Xilinx Spartan-3的LUT,每個(gè)LUT都可作為16位的RAM使用;另一種是嵌入式塊RAM(Block RAM),如Xilinx Spartan-3的18KB塊RAM、Altera Cyclone II的4KB塊RAM(M4K)。結構A與結構B中,各級都需要對本級節點(diǎn)的信號流向進(jìn)行控制,這種形式限制了FPGA嵌入式塊RAM的使用。為此,設計了結構C——梯級組合型,如圖6所示,這種結構非常利于采用片內RAM來(lái)實(shí)現移位寄存器。

分析結構C,梯級組合型有兩個(gè)要素:一是2:1多路復用器,每個(gè)都有單獨的控制位,共n個(gè),而且n〈〈N,二者呈指數關(guān)系;二是不同長(cháng)度的移位寄存器組成的梯級,初級(第0級)由20=1個(gè)觸發(fā)器組成,第1級由21=2個(gè)觸發(fā)器鏈接組成,第2級由22=4個(gè)觸發(fā)器鏈接組成,……,第N級由2N個(gè)觸發(fā)器鏈接組成。在梯級組合型的結構中,不需要對每個(gè)觸發(fā)器的輸入輸出都控制,只需通過(guò)控制位BI對各個(gè)梯級的輸入輸出控制就可以實(shí)現分辨率為1的長(cháng)度連續變化,寄存器的長(cháng)度N=BN×2N+…+B2×22+B1×21+B0×20.
例如,對于最大N=255(控制字為8位)且采用結構C的可變長(cháng)度移位寄存器,要實(shí)現長(cháng)度為5的移位寄存器,只需設置控制字為00000101B即可;要實(shí)現長(cháng)度為255的移位寄存器,只需設置控制字為1111111B即可。由于同一個(gè)梯級里,除頭尾兩級外,其他各級不再有信號流向控制,且各梯級觸發(fā)器鏈的長(cháng)度為2n,可以方便地利用FPGA嵌入式塊RAM和廠(chǎng)商提供的經(jīng)過(guò)優(yōu)化的宏功能模塊來(lái)實(shí)現長(cháng)度較大的梯級,從而提高資源利用率。
2.2.2 應用示例
以Altera Cyclone II[3]的M4K為例,每個(gè)M4K塊RAM有4 608個(gè)存儲位(其中包括512個(gè)奇偶位),操作頻率高達250MHz,M4K工作于移位寄存器模式時(shí)的結構如圖7所示,數據寬度(w)、每段長(cháng)度(m)、抽頭數(n)的關(guān)系可方便地在廠(chǎng)商提供的基于RAM的移位寄存器宏模塊“altshift_taps”中設置。當w×m×n不大于4 608且w×m不大于36時(shí),消耗一個(gè)M4K和少量基本邏輯單元;當不能滿(mǎn)足上述兩項中任意一項,開(kāi)發(fā)工具會(huì )自動(dòng)連接多個(gè)M4K.通過(guò)調整w、m、n的組合,M4K能以多種方式高效實(shí)現結構C的梯級。

例如,構造一個(gè)1024位的梯級,可以設置w=1、m=256、n=4,占用13個(gè)LUT,8個(gè)寄存器,1個(gè)M4K;構造一個(gè)4 096位的梯級,可以設置w=1、m=256、n=16,依然只占用13個(gè)LUT,8個(gè)寄存器,1個(gè)M4K.為進(jìn)一步提高M(jìn)4K的利用率,可以設置w=32、m=128、n=1,只占用12個(gè)LUT,7個(gè)寄存器,1個(gè)M4K就能得到32個(gè)長(cháng)度為128位的移位寄存器段,將這些寄存器段自行連接,用一個(gè)M4K能同時(shí)得到如下的梯級:128位、256位(2段串連)、512位(2段串連)、1024位(8段串連)、2048位(16段串連),最大限度地利用了M4K的RAM資源。
作為對比,仍以Altera Cyclone II芯片為例,如果用基于基本邏輯單元的移位寄存器宏模塊“LPM_SHIFTREG”來(lái)實(shí)現1 024位的梯級和4096位的梯級,則分別需1 024(256×4)個(gè)LUT和4096(256×16)個(gè)LUT,資源開(kāi)銷(xiāo)較大??梢?jiàn),結構C非常利于實(shí)現可變長(cháng)度較長(cháng)的移位寄存器。
可變長(cháng)度移位寄存器是非常有用的邏輯結構。對高速數據采集系統觸發(fā)控制單元來(lái)說(shuō),應用優(yōu)化后的可變長(cháng)度移位寄存器可以提高其信噪比,改善其可靠性和靈活性。另外,采用可變長(cháng)度移位寄存器可以減小死區時(shí)間,從而改善觸發(fā)控制單元重復觸發(fā)的性能。這些改善在本單位設備的實(shí)際應用中起到了良好的作用。
評論