安徽合肥做網(wǎng)站的公司最新熱點(diǎn)新聞
隨手記錄一下項(xiàng)目中學(xué)到的約束文件編寫(xiě)技巧。
時(shí)序約束
創(chuàng)建生成時(shí)鐘
參考鏈接:
Vivado Design Suite Tcl Command Reference Guide (UG835)
Vivado Design Suite User Guide: Using Constraints (UG903)
通過(guò)Clocking Wizard IP創(chuàng)建的時(shí)鐘(MMCM或PLL),系統(tǒng)會(huì)自動(dòng)生成約束。由于項(xiàng)目布局布線(xiàn)后的結(jié)果中時(shí)序勉強(qiáng)收斂,因此我想不修改MMCM輸出時(shí)鐘頻率的同時(shí),手動(dòng)修改約束,驗(yàn)證一下時(shí)序設(shè)計(jì)裕量。
create_generated_clock -name clk_low_freq -source [get_pins Classifier_hw_i/clk_wiz_1/clk_in1] -multiply_by 3 -divide_by 4 [get_pins Classifier_hw_i/clk_wiz_1/clk_out1]
源時(shí)鐘是200MHz,這里想將輸出時(shí)鐘約束到150MHz,因此通過(guò) -multiply_by 和 -divide_by 組合實(shí)現(xiàn)。
需要注意的是,對(duì)于使用get_pins、get_ports還是get_nets來(lái)獲取信號(hào),可以參考FPGA時(shí)序約束之Tcl命令的對(duì)象及屬性
以及官方文檔UG835。
在本示例中,約束的對(duì)象是clk_wiz IP模塊的輸出,因此選擇get_pins。在引腳名稱(chēng)中,Classifier_hw_i是bd的名字。可以在TCL窗口輸入get_ports來(lái)驗(yàn)證是否能夠正確獲取到對(duì)應(yīng)的引腳。
其它實(shí)現(xiàn)示例可以看官方文檔。
扇出約束
參考鏈接:
Vivado Design Suite Properties Reference Guide (UG912)
在優(yōu)化布局布線(xiàn)后的時(shí)序時(shí)發(fā)現(xiàn),一些寄存器的扇出數(shù)過(guò)大。因此嘗試通過(guò)約束限制特定端口的最大扇出。
set_property MAX_FANOUT 32 [get_nets -hier {IPs_match*}]
其中,IPs_match* 表示所有前綴為IPs_match的信號(hào)組。
(隨緣更新中……)