FPGA的IO選擇 最短路徑原則

2021-10-05 08:51:14 字數 1566 閱讀 3944

關於fpga的io選擇,前段時間在教科書上了解到這樣乙個說法:

乙個優秀的fpga io布局設計應將用於傳輸高速多位寬訊號的io口(估計是指600mt/s以上)布置在晶元左右側的bank內;而將傳輸低速控制訊號的io口(如:ad/da、dds、pwm、普通spi、urat和開關量訊號等)布置在晶元上下側的bank內。

這是因為在fpga內bram和dsp乘加器都是自上而下呈條帶狀分布的,在水平方向上進行資料的傳輸和處理可以實現佈線的「最短路徑」,從而獲得最低的延遲,提高設計的時序效能。

圖 1 spartan-6 lx16 fpga內部資源布局

圖 2 從io到內部邏輯資料流動的最短路徑示意圖

查閱資料手冊找到引腳分布圖,又在bank 0和bank 2上發現了一系列特殊的多用途引腳,d0~15和a0~15,但經過進一步查閱後發現此類引腳和上述資料傳輸應用無關,而是專門用於上電後配置fpga的位址和資料引腳。

圖 3 spartan-6 gsc234封裝的引腳分布

在alinx開發板教程的spi flash實驗中,fpga與flash的spi匯流排連線io的就選用了位於bank2的多功能io(d0~d15)。而由於spi是序列匯流排,只用到了4個資料io口。

繼續**,在教程的ad/da試驗中,又只用了fpga位於bank2的普通io輸出50mhz的資料,驅動da晶元輸出100khz的正弦訊號。

此外,還發現ise提供的dds ip核僅支援正弦訊號的輸出,無法滿足pqmsam的需求!最後,即便是在具有高速傳輸要求的並串轉換lvds試驗中,也只是呼叫了bank2的普通io進行序列資料的輸出!

然而,在ddr3的教程中,其呼叫的mig ip核則又使用了bank 1和bank 3上的大量普通io口進行資料的傳輸。由此可見,即便是普通的io也具有足夠高的速度(從mig配置中可了解到,io匯流排的時鐘最高可達333.33mhz)(

表 1)

。而關於mig對bank的選擇,想必也是因為在這兩個bank附近存在mcb模組,而同時也考慮了前文所述的「最短路徑」原則吧!

圖 4 mgi ip核的bank選擇

圖 5 mgi ip核的ddr3介面io約束

表 1 ddr sdram速率效能對比

迷宮小遊戲最短路徑的選擇

我們主要通過乙個棧來實現乙個迷宮,用壓棧來記錄路徑 pragma once include include 用全域性變數,但不是最好的方式 define rows 6 define cols 6 用來儲存迷宮中的座標 座標方向和平時不太一樣,x 朝下,y 朝右 typedef struct posi...

最短路 求最長最短路,求最短路的路徑

hdu 1595 find the longest of the shortest include include include include include include include include include include include include include defi...

A 最簡單的最短路 最短路徑

szu 2015 winter training day 6 a 最簡單的最短路 time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status practice hdu 1874 description 某省...