我一直沒搞明白BUFIO是干嘛用的。
官方解釋有這么一段話,如下:(virtex的)
“BUFIO是用來驅(qū)動I/O列內(nèi)的專用時鐘網(wǎng)絡(luò),這個專用的時鐘網(wǎng)絡(luò)獨立于全局時鐘資源,適合采集源同步數(shù)據(jù)。BUFIO只能由位于同一時鐘區(qū)域的Clock-Capable I/O驅(qū)動。一個時鐘區(qū)域有4個BURIO,其中的2個可以驅(qū)動相鄰區(qū)域的I/O時鐘網(wǎng)絡(luò)。BUFIO不能驅(qū)動邏輯資源(CLB、BRAM等),因為I/O時鐘網(wǎng)絡(luò)只存在于I/O列中。”
就是如果BUFIO只能驅(qū)動IO,到達不了CLB和RAM,可是數(shù)據(jù)最終是要進邏輯的啊,為什么呢?
首先、需要明確BUFIO是輸入用的。BUFIO是用來驅(qū)動輸入時鐘的,將外部時鐘引入FPGA的!與IOBUF不同啊,但與IBUFG類似,時鐘信號進FPGA也可以經(jīng)過IBUFG。
其次、再來看BUFIO的輸入和輸出:SPARTAN6 的UG382手冊里這么寫的,如下:
BUFIO2 can drive ISERDES2 and OSERDES2 for either SDR or DDR clocking. BUFIO2 can
also route clock inputs from either a GCLK or a GTP_DUAL tile to a BUFG, DCM, or PLL
clock input. BUFIO2_2CLK can be used to replace one of the BUFIO2s required for DDR
clocking of the ISERDES2 and OSERDES2
(SDR:單邊沿,DDR:雙邊沿)
就是說BUFIO2輸入可以是GCLK(全局時鐘)和GTP_DUAL。然后輸出到BUFG或者,DCM ,PLL的時鐘輸入。
也就是說數(shù)據(jù)流順序 PAD-->BUFIO-->BUFG或者PAD-->BUFIO-->DCM(PLL)--->BUFG不知道有這樣用的嗎。
但實際應(yīng)用可以這樣,BUFIO配和ISERDES2使用,ISERDES2是將串行數(shù)據(jù)轉(zhuǎn)成并行數(shù)據(jù),相當(dāng)于分頻了。而BUFIO具有分頻的功能。
舉例串行數(shù)據(jù)轉(zhuǎn)成4bit并行數(shù)據(jù):串行數(shù)據(jù)相當(dāng)4分頻,同樣將隨路時鐘clk_in(就是和串行數(shù)據(jù)同步進來的時鐘,,作為串行數(shù)據(jù)的采集時鐘)同步BUFIO接進FPGA,
BUFIO可以將輸入的隨路時鐘clk_in進行4分頻為clk_in4。這樣把clk_in4給BUFG,然后就可以同步將4bit的數(shù)據(jù)輸入采集到邏輯FIFO中去了。
配個圖,看看BUFIO的輸入輸出可以接什么:
輸出鏈接示意圖,如下:可以看到PN-->BUFIO-->BUFG(DCM)或者PN-->BUFIO-->IO,驅(qū)動IO(PN只差分對的P和N)
結(jié)合一下BUFIO的原語結(jié)構(gòu):
可以看出:
IOCLK就去驅(qū)動IO了或者IOSERDES2的CLK0,1;IODDR2等
DIVCLK可以去接BUFG或者PLL。
SERDESSTROB可以去驅(qū)動IOSERDES2的IOCE使能腳了。
以上是對SP6講的,在virtex里面,有文章開頭那句話:BUFIO是用來驅(qū)動I/O列內(nèi)的專用時鐘網(wǎng)絡(luò),這個專用的時鐘網(wǎng)絡(luò)獨立于全局時鐘資源,適合采集源同步數(shù)據(jù)。BUFIO只能由位于同一時鐘區(qū)域的Clock-Capable I/O驅(qū)動。一個時鐘區(qū)域有4個BURIO,其中的2個可以驅(qū)動相鄰區(qū)域的I/O時鐘網(wǎng)絡(luò)。BUFIO不能驅(qū)動邏輯資源(CLB、BRAM等),因為I/O時鐘網(wǎng)絡(luò)只存在于I/O列中。”
就是說virtex里面BUFIO好像只能由Clock-Capable I/O驅(qū)動了。
在看virtex5的資料時,它有Clock Capable I/O引腳,這個引腳不是全局時鐘輸入引腳,bufio時鐘源來自于Clock Capable I/O引腳,在源同步是非常有用,此時時鐘可看做一個普通的數(shù)據(jù)引腳,所有的數(shù)據(jù)線和時鐘線在fpga內(nèi)部,從外部pad到觸發(fā)器的D端,可以有相同延遲的布線。
審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1643文章
21981瀏覽量
614531 -
Xilinx
+關(guān)注
關(guān)注
73文章
2183瀏覽量
124455 -
時鐘
+關(guān)注
關(guān)注
11文章
1886瀏覽量
132883 -
引腳
+關(guān)注
關(guān)注
16文章
1613瀏覽量
52426 -
串行數(shù)據(jù)
+關(guān)注
關(guān)注
0文章
54瀏覽量
16733
原文標(biāo)題:Xilinx FPGA 學(xué)習(xí)筆記——原語 BUFIO 的理解
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
FPGA | Xilinx ISE14.7 LVDS應(yīng)用
如何從Virtex原語切換到Spartan原語?
FPGA上有哪些額外的原語?
Xilinx 7 Series FPGA時鐘網(wǎng)絡(luò)的區(qū)別(BUFG,BUFGR,BUFIO)

Xilinx FPGA常用原語介紹

如何借助Xilinx FPGA和MATLAB技術(shù)加速機器學(xué)習(xí)應(yīng)用

Xilinx原語使用方法有哪些

Xilinx原語使用方法

Altera FPGA CPLD學(xué)習(xí)筆記

FPGA入門之原語BUFIO的理解

評論