FPGA中IOB寄存器的使用心得

資料大小: 0.01 MB

所需積分: 0

下載次數:

用戶評論: 0條評論,查看

上傳日期: 2020-12-28

上 傳 者: 易水寒他上傳的所有資料

資料介紹

標簽:寄存器(2316)芯片(24610)fpga(12257)

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實現相比,減少了布線延遲,提高了性能。

用戶評論

查看全部 條評論

發表評論請先 , 還沒有賬號?免費注冊

發表評論

用戶評論
技術交流、我要發言! 發表評論可獲取積分! 請遵守相關規定。
上傳電子資料
宝贝在楼梯间做好刺激_日本tvvivodes欧美_日本变态强奷在线播放