Verilog代碼和FPGA硬件的映射關係(四)

    其實在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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章