查找表用作移位寄存器
掃描二維碼
隨時(shí)隨地手機(jī)看文章
不同于SLICEL(L: Logic),SLICEM(M: Memory)中的LUT可以用作存儲(chǔ)單元:移位寄存器、分布式RAM/ROM。
當(dāng)用作移位寄存器時(shí),一個(gè)LUT6可實(shí)現(xiàn)深度為32可帶同步使能但無(wú)復(fù)位的移位寄存器。這也是為什么會(huì)有SRLC32E這個(gè)原語(yǔ)(Primitive,這里C代表Cascade,級(jí)聯(lián))。同一SLICEM中的8個(gè)LUT6級(jí)聯(lián)可構(gòu)成深度為256的移位寄存器。對(duì)于固定深度的移位寄存器可采用如下方式描述。
此外,LUT6還可配置為動(dòng)態(tài)移位寄存器,如下圖所示。此時(shí),移位寄存器的輸出取決于地址控制端。實(shí)際上,地址控制端決定了當(dāng)前輸出數(shù)據(jù)的延遲深度。
對(duì)于動(dòng)態(tài)移位寄存器可采用如下方式描述。
移位寄存器的一個(gè)典型應(yīng)用場(chǎng)景如下圖所示。圖中,I支路數(shù)據(jù)與Q支路數(shù)據(jù)經(jīng)過(guò)不同的處理方式,最終需要在輸出端對(duì)齊。假設(shè)處理I支路數(shù)據(jù)需要20個(gè)Latency,Q支路就需要通過(guò)SRL來(lái)補(bǔ)償這個(gè)特定延遲。采用LUT實(shí)現(xiàn)移位寄存器的一個(gè)好處是節(jié)省了FF。
基于LUT的移位寄存器其控制端口有寫(xiě)使能、讀地址和時(shí)鐘,沒(méi)有復(fù)位信號(hào),因此,采用RTL代碼描述時(shí)要注意這一點(diǎn)。這也體現(xiàn)了RTL代碼風(fēng)格的一個(gè)特征:RTL代碼描述與FPGA物理結(jié)構(gòu)相匹配。
結(jié)論:
-LUT可用作固定深度的移位寄存器或動(dòng)態(tài)移位寄存器
-LUT用作移位寄存器時(shí)沒(méi)有復(fù)位端口