資料介紹
IOB寄存器跟通信有關的設計中多會用到,今天查了相關資料,總結如下:
首先了解一下fpga的芯片內部結構:
一個fpga主要是由可編程輸入輸出單元(圖中的IOB模塊),可編程邏輯單元(CLB模塊),塊RAM(圖中的BRAM,也屬于內嵌硬件),數字時鐘管理(DCM,也屬于內嵌硬件),還有一些內嵌的專用的硬件模塊(DSP),IOB寄存器就在圖中的IOB模塊中。
IOB的內部結構如下:
IOB單元簡稱IO單元,是芯片與外部器件的接口部分,用于完成不同電氣特性下對輸入輸出信號的的驅動和匹配要求。目IO口的頻率越來越高,一些高端的fpga通過DDR技術可使數據率達到Gb/s.
在這里多提一點:李老師提到,IOB多用在高速數據采樣的時候,對一些很難采的信號要通過連接IOB寄存器(在UCF文件中約束)。在賽靈思系列FPGA的IOB中分別有輸入和輸出寄存器。如果將設計中的第一級寄存器或最后一級寄存器用IOB內部寄存器實現,那么就可以縮短IO引腳到寄存器之間的路徑(理解這句話是關鍵,我的理解是:若輸入輸出不連IOB寄存器,則代碼修改后(但邏輯功能相同)每次的布局布線后,輸入輸出信號會被連在不同的內部寄存器上,這樣輸入信號進入第一級寄存器的布線延遲就會每次都不同,這樣有可能在高速信號采集的時候不能正確采樣,因為布線延遲會導致建立或保持時間不滿足;如果在UCF文件中使用IOB寄存器,則不管代碼如何修改,輸入信號進入fpga內部都是被第一級的IOB寄存器采樣,更能滿足采樣條件),這通常可以縮短大約1~2ns的傳輸時延。
但是在使用UCF文件約束IOB寄存器時,首先,有一些限制。對于輸入寄存器在從管腳到寄存器間不能有組合邏輯存在。對于輸出寄存器,在寄存器和管腳之間也不能有組合邏輯存在(也就是信號在輸入輸出之前在代碼設計中都要干干凈凈打一拍)。對于三態輸出,在IOB中的所有的寄存器必須使用同一個時鐘信號和復位信號,而且IOB三態寄存器必須低電平有效才能放到IOB中(三態緩沖器低電平有效,所以在寄存器和三態緩沖器之間不需要一個反相器)。必須使軟件能夠選用IOB寄存器,可以設置全局實現選項:為輸入、輸出或輸入輸出選擇IOB寄存器。缺省值為關off。
你也可在綜合工具或在用戶約束文件UCF中設定,使得能夠使用IOB寄存器。句法為:INSTIOB=TRUE;
下邊是一網友的的例子:我想大家都應該知道IOBpacking的概念吧,就是把寄存器放置到IOB內,這樣寄存器數據可以直接從PAD輸出,和FPGA內部SLICE實現相比,減少了布線延遲,提高了性能。
下載地址
FPGA中IOB寄存器的使用心得下載
本月熱點資料
最新資料
- LTM4630 Demo Circuit - High Efficiency 4-Phase 70A Step-Down Regulator (4.5-15V t
- DC1989B-A - Design Files
- DC1989B-B - Design Files
- DC2431A - Design Files
- LT8609 Project - 42V, 2A Synchronous Buck Regulator (8-42V to 5V @ 2A)
- LTC3603 Project - 2.5A, 15V Monolithic Buck Regulator (4.5-15V to 3.3V @ 2.5A)
- HMC1114LP5DE Gerber Files
- HMC1114LP5DE S-Parameters
- ADG5298 IBIS Model
- LTC3622-2 Project - 17V, Dual 1A Buck Regulator (5-12V to 5V & 3.3V @ 1A)
用戶評論
查看全部 條評論
發表評論請先 登錄, 還沒有賬號?免費注冊。
發表評論