CLB是xilinx基本邏輯單元,每個CLB包含兩個slices,每個slices由4個(A,B,C,D)6輸入LUT和8個寄存器組成。
同一CLB中的兩片slices沒有直接的線路連接,分屬于兩個不同的列。每列擁有獨(dú)立的快速進(jìn)位鏈資源。
slice分為兩種類型 SLICEL, SLICEM . SLICEL可用于產(chǎn)生邏輯,算術(shù),ROM。SLICEM除以上作用外還可配置成分布式RAM或32位的移位寄存器。每個CLB可包含兩個SLICEL或者一個SLICEL與一個SLICEM.
7系列的LUT包含6個輸入 A1 -A6 , 兩個輸出 O5 , O6 .
可配置成6輸入查找表,O6此時作為輸出?;蛘邇蓚€5輸入的查找表,A1-A5作為輸入 A6拉高,O5,O6作為輸出。
一個LUT包含6個輸入,邏輯容量為2^6bit,為實(shí)現(xiàn)7輸入邏輯需要2^7容量,對于更多輸入也一樣。每個SLICES有4個LUT,256bit容量能夠?qū)崿F(xiàn)最多8bit輸入的邏輯。為了實(shí)現(xiàn)此功能,每個SLICES還包括3個MUX(多路選擇器)
F7AMUX 用于產(chǎn)生7輸入的邏輯功能,用于連接A,B兩個LUT
F7BMUX 用于產(chǎn)生7輸入的邏輯功能, 用于連接C,D兩個LUT
F8MUX 用于產(chǎn)生8輸入的邏輯功能, 用于連接4個LUT
對于大于8輸入的邏輯需要使用多個SLICES, 會增加邏輯實(shí)現(xiàn)的延時。
一個SLICES中的4個寄存器可以連接LUT或者M(jìn)UX的輸出,或者被直接旁路不連接任何邏輯資源。寄存器的置位/復(fù)位端為高電平有效。只有CLK端能被設(shè)置為兩個極性,其他輸入若要改變電平需要插入邏輯資源。例如低電平復(fù)位需要額外的邏輯資源將rst端輸入取反。但設(shè)為上升/下降沿觸發(fā)寄存器不會帶來額外消耗。
分布式RAM
SLICEM可以配置成分布式RAM,一個SLICEM可以配置成以下容量的RAM
多bit的情況需要增加相應(yīng)倍數(shù)的LUT進(jìn)行并聯(lián)。
分布式RAM和 BLOCK RAM的選擇遵循以下方法:
1. 小于或等于64bit容量的的都用分布式實(shí)現(xiàn)
2. 深度在64~128之間的,若無額外的block可用分布式RAM。要求異步讀取就使用分布式RAM。數(shù)據(jù)寬度大于16時用block ram.
3. 分布式RAM有比block ram更好的時序性能。分布式RAM在邏輯資源CLB中。而BLOCK RAM則在專門的存儲器列中,會產(chǎn) 生較大的布線延遲,布局也受制約。
移位寄存器(SLICEM)
SLICEM中的LUT能在不使用觸發(fā)器的情況下設(shè)置成32bit的移位寄存器, 4個LUT可級聯(lián)成128bit的移位寄存器。并且能夠進(jìn)行SLICEM間的級聯(lián)形成更大規(guī)模的移位寄存器。
MUX
一個LUT可配置成4:1MUX.
兩個LUT可配置成最多8:1 MUX
四個LUT可配置成16個MUX
同樣可以通過連接多個SLICES達(dá)成更大規(guī)模設(shè)計(jì),但是由于SLICE沒有直接連線,需要使用布線資源,會增加較大延遲。
進(jìn)位鏈
每個SLICE有4bit的進(jìn)位鏈。每bit都由一個進(jìn)位MUX(MUXCY)和一個異或門組成,可在實(shí)現(xiàn)加法/減法器時生成進(jìn)位邏輯。該MUXCY與XOR也可用于產(chǎn)生一般邏輯。
原文標(biāo)題:FPGA學(xué)習(xí)-xilinx CLB資源詳解--slice、分布式RAM和Block ram
文章出處:【微信公眾號:FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
審核編輯:湯梓紅
-
Xilinx
+關(guān)注
關(guān)注
71文章
2167瀏覽量
121299 -
CLB
+關(guān)注
關(guān)注
0文章
29瀏覽量
5950 -
邏輯單元
+關(guān)注
關(guān)注
0文章
25瀏覽量
5119
原文標(biāo)題:FPGA學(xué)習(xí)-xilinx CLB資源詳解--slice、分布式RAM和Block ram
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論