Verilog程式碼和FPGA硬體的對映關係(四)

相量子發表於2020-05-25

    其實在FPGA的開發中理想情況下FPGA之間的資料要通過暫存器輸入、輸出,這樣才能使得延時最小,從而更容易滿足建立時間要求。我們在FPGA內部硬體結構中得知,IOB內是有暫存器的,且IOB內的暫存器比FPGA內部的暫存器更靠近外部的輸出管腳,這樣就能夠得到更小的延時,從而使時序更好。我們可以看到在沒有指定的情況下暫存器的對映都是隨機的,那麼問題來了,如何才能指定暫存器對映到IOB中呢?我們依然用非同步復位D觸發器的例子來給大家演示。

    如圖1所示,我們回到工程介面點選Assignment Editor”圖示來約束暫存器對映的位置。

 

1

    如圖2所示,在開啟的Assignment Editor”介面中點選“To”下面的“<<new>>”新增要約束的項。

 

2

       點選如圖3所示的望遠鏡圖示,開啟Node Finder”。

 

3

    在開啟的Node Finder”介面中我們找到訊號的輸入key_in,如圖4所示,根據序號順序,在①處的“Named :”選項框中輸入“*”,點選 ②處的“List”,在③處的“Node Found :”列表中就會列出名為key_in 的訊號,雙擊③處key_in 訊號或點選圖示④,key_in 訊號就被新增到⑤處的“Selected Nodes:”中了。如果我們想取消⑤處選擇的訊號則在“Selected Nodes:”選中該訊號後點選圖示⑥即可。設定完畢後點選“OK”退出。

 

4

    如圖5所示,設定Assignment Name”,下拉選單找到“Fast Input Register(Accepts wildcards/groups)”,這是設定將暫存器對映在輸入IOB中的約束,如果設定將暫存器對映在輸出IOB中則選擇“Fast Output Register(Accepts wildcards/groups)”。

 

5

    如圖7所示,設定Value”的值為“on”。

 

6

       全部設定完成後的結果如 22-90所示。

 

7

    點選Start Compilation圖示全編譯進行佈局佈線,否則無法重新對映資源。此時會彈出如圖8所示的對話方塊,提示是否要儲存更改,選擇“Yes”後會執行佈局佈線。

 

8

       當佈局佈線重新完成對映後我們再來看看Chip Planner檢視,如9所示,我們發現整個檢視都沒有什麼明顯的變化,難道是對映失敗了?

 

9

    如圖10所示,既然不能用肉眼直接看到,那我們可以在Chip Planner介面右上角紅色框處的Find what”處搜尋定位訊號在版圖模型中的位置,如果沒有找到Find what搜尋框,按住鍵盤Ctrl + F”就會自動出現。

 

10

       在11中紅色區域中的Find what”搜尋RTL程式碼中的訊號名“key_in”,然後點選“List”。

 

11

    點選圖12所示的“key_in”可以看到在版圖模型的對應位置高亮顯示,這個位置就是FPGAIOB區域。

 

12

    如圖13所示,將對映的IOB區域放大,其中①為我們key_in的輸入端,而②則是暫存器所對映的新位置。

  

13

    如圖14所示,我們雙擊②處的暫存器,觀察其內部結構,發現IOB中的暫存器已經高亮顯示了,說明真的對映上了,實現了我們的要求。

 

14

歡迎加入FPGA技術學習交流群,本群致力於為廣大FPGAer提供良好的學習交流環境,不定期提供各種本行業相關資料!QQ交流群號:450843130

相關文章