如何復用原有設計中Block的位置
- 2019 年 10 月 31 日
- 筆記
這裡的Block是指Block RAM和DSP48。在有些設計中,這兩者有其一或者兩者均出現利用率比較高的情形,而且在某一版本中可以達到時序收斂。如果後續版本並不涉及到對Block的修改,特別是不會出現對Block RAM位寬的修改,為了達到時序收斂,一個可行的方案就是繼承收斂版本的Block的布局。本質上,就是復用這些Block的位置資訊。在Vivado下完成這樣的操作非常簡單。
Step 1
打開布線後的設計,並找到設計中的Block,這裡以Block RAM為例,查找方法如下圖所示,依次選擇Edit -> Find,即可出現此介面。

Step 2
固定BRAM的位置。選中第一步中找到的BRAM,點擊右鍵,選擇Fix Cells即可,如下圖所示。

Step 3
保存Block的位置資訊。一旦固定了BRAM的位置,即可點擊Vivado菜單欄內的保存按鈕,這樣就把BRAM的位置資訊保存到了target約束文件中。一個小技巧是在保存之前創建一個新的約束文件,並把該文件設置為target約束文件,然後保存,這些資訊就在該文件中,如下圖所示。

實際上,上述操作均可通過Tcl腳本完成,如下圖所示。

結論
對於Block RAM或DSP48利用率較高的情形,在時序收斂時,可繼承其位置資訊。這樣,如果後續設計不牽涉到這些Block的改動,那麼即可復用其位置資訊,從而加速時序收斂的進程。