查找表(Look-Up-Table)
LUT就是查找表,對(duì)于4輸入的LUT而言,實(shí)際上就是4位地址位,一位數(shù)據(jù)位的存儲(chǔ)器,能夠存儲(chǔ)16位數(shù)據(jù),所以我們?cè)?a href="http://wenjunhu.com/soft/data/30-91/" target="_blank">FPGA設(shè)計(jì)中可以用LUT組建分布式的RAM。
LUT的一個(gè)重要功能是邏輯函數(shù)發(fā)生器。本質(zhì)上,邏輯函數(shù)發(fā)生器存儲(chǔ)的是真值表(Truth Table)的內(nèi)容,而真值表則是通過布爾表達(dá)式獲得。在vivado中,打開網(wǎng)表文件,選擇相應(yīng)的LUT,在property窗口中可以看到真值表。
如果用6輸入的LUT實(shí)現(xiàn)4輸入LUT的功能,那么就浪費(fèi)了1-16/64=75%的資源,所以采用少輸入的LUT可以更好的節(jié)省面積和資源
因?yàn)楫?dāng)輸入數(shù)據(jù)的位數(shù)遠(yuǎn)大于一個(gè)LUT的輸入時(shí),就需要用多個(gè)LUT級(jí)聯(lián)來實(shí)現(xiàn)邏輯,那么級(jí)聯(lián)產(chǎn)生的延時(shí)也就不可避免了,這樣就會(huì)制約系統(tǒng)的運(yùn)行頻率。那么為了避免級(jí)聯(lián)數(shù)過于多,就采用插入寄存器的方法來實(shí)現(xiàn)
通過LUT代替組合邏輯,而LUT中的值只和輸入有關(guān),因此組合邏輯的功能由輸入決定,不在和復(fù)雜度有關(guān);
CLB可配置邏輯快
CLB是xilinx基本邏輯單元,每個(gè)CLB包含兩個(gè)slices,每個(gè)slices由4個(gè)(A,B,C,D)6輸入LUT和8個(gè)寄存器組成(中間應(yīng)該還有一些選擇器、與非門、或非門之類的東西)。
”logic cells” 是 Xilinx 創(chuàng)造出來的一個(gè)市場(chǎng)用的刻度,可以用來衡量不同內(nèi)部結(jié)構(gòu)甚至不同廠商的資源情況。
LC邏輯單元
“l(fā)ogic cells”代表的是一個(gè)沒有其他任何功能的4輸入LUT,在老一些的Xilinx的FPGA中,他們使用LUT的數(shù)目乘以1.2來計(jì)算LC的數(shù)目,因?yàn)橐粋€(gè)LUT中還有一個(gè)進(jìn)位鏈和MUX。
在較新的FPGA中,Xilinx采用了6輸入LUT,這時(shí)他們采用系數(shù)1.6。
FDR : D Flip-Flop with Synchronous Rsest
同步清除D觸發(fā)器。FDR 擁有一個(gè)時(shí)鐘輸入接口,一個(gè)D觸發(fā)器數(shù)據(jù)接口,一個(gè)同步復(fù)位接口和一個(gè)觸發(fā)器輸出接口,當(dāng)同步復(fù)位接口為高電平時(shí),時(shí)鐘的上升沿觸發(fā)寄存器復(fù)位(置0);當(dāng)同步時(shí)鐘接口為低電平時(shí),時(shí)鐘的上升沿觸發(fā)寄存器裝載數(shù)據(jù)接口的數(shù)據(jù)。
FDRE:D Flip-Flop with Clock Enable and Synchronous Reset 帶使能功能的同步清除D觸發(fā)器,相比與FDR多了一個(gè)使能接口,當(dāng)同步復(fù)位接口為高電平時(shí)覆蓋所有其他輸出,時(shí)鐘的上升沿觸發(fā)寄存器復(fù)位(置0);當(dāng)同步時(shí)鐘接口為低電平且使能接口為高電平時(shí),時(shí)鐘的上升沿觸發(fā)寄存器裝載數(shù)據(jù)接口的數(shù)據(jù)。
FDC :: D Flip-Flop with Asynchronous Clear 帶異步清除D觸發(fā)器 ,與 FDR的區(qū)別是。當(dāng)CLR置為高電平時(shí),不需要等到下一個(gè)時(shí)鐘的上升沿就可以復(fù)位寄存器。
FDCE:D Flip-Flop with Clock Enable and AsynchronousReset 帶使能功能的異步清除D觸發(fā)器,相比與FDRE將同步復(fù)位變化成異步復(fù)位,當(dāng)同步復(fù)位接口為高電平時(shí),直接觸發(fā)寄存器復(fù)位(置0);當(dāng)同步時(shí)鐘接口為低電平且使能接口為高電平時(shí),時(shí)鐘的上升沿觸發(fā)寄存器裝載數(shù)據(jù)接口的數(shù)據(jù)。
FDS:D Flip-Flop with Synchronous Set 帶同步置位的D觸發(fā)器 當(dāng)置為端為低電平時(shí),在時(shí)鐘的上升沿觸發(fā)數(shù)據(jù)保存在觸發(fā)器中,當(dāng)置位端為低電平時(shí),在一個(gè)時(shí)鐘的上升沿觸發(fā)導(dǎo)致觸發(fā)器清0
FDSE:D Flip-Flop with Clock Enable and Synchronous Set 帶時(shí)鐘使能和同步置位的D觸發(fā)器。當(dāng)置位端為高電平是覆蓋所有輸出,一個(gè)時(shí)鐘的上升沿觸發(fā)導(dǎo)致寄存器置位,當(dāng)置位端為低電平和時(shí)鐘使能位為高電平時(shí),在一個(gè)時(shí)鐘的上升沿觸發(fā)導(dǎo)致寄存器裝載數(shù)據(jù)口的數(shù)據(jù)。
FDP:D Flip-Flop with Asynchronous Preset 帶有異步預(yù)置的D觸發(fā)器 相比FDS不需要等到時(shí)鐘的上升沿,即刻可進(jìn)行置位。
FDPE:D Flip-Flop with Clock Enable and Asynchronous Preset 帶有時(shí)鐘使能和異步置位的D觸發(fā)器 相比于FDSE不需要等到時(shí)鐘的上升沿,即刻可進(jìn)行置位。
使用always塊綜合實(shí)現(xiàn)各種觸發(fā)器
module exp(
input clk,
input rst,
input A,
input B,
output reg Q,
output reg Q1,
output reg Q2,
output reg Q3
);
//or posedge rst
always @(posedge clk or posedge rst) begin //異步復(fù)位 綜合出FDCE
if(rst)
Q<=0;
else begin
Q<=A|B;
end
end
always @(posedge clk ) begin //同步復(fù)位 綜合出FDRE
if(rst)
Q1<=1;
else begin
Q1<=A|B;
end
end
always @(posedge clk or posedge rst) begin//異步置位 綜合出FDPE
if(rst)
Q2<=1;
else begin
Q2<=A|B;
end
end
always @(posedge clk) begin//同步置位 綜合出FDSE
if(rst)
Q3<=1;
else begin
Q3<=A|B;
end
end
endmodule
審核編輯 :李倩
-
FPGA
+關(guān)注
關(guān)注
1629文章
21749瀏覽量
604052 -
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7507瀏覽量
163951 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2000瀏覽量
61205
原文標(biāo)題:FPGA——LUT/FDRE/FDCE/FDSE/FDPE
文章出處:【微信號(hào):Hack電子,微信公眾號(hào):Hack電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論