約束主時(shí)鐘
在這一節(jié)開講之前,我們先把wave_gen工程的wave_gen_timing.xdc中的內(nèi)容都刪掉,即先看下在沒(méi)有任何時(shí)序約束的情況下會(huì)綜合出什么結(jié)果?
對(duì)工程綜合并Implementation后,Open Implemented Design,會(huì)看到下圖所示內(nèi)容。

可以看到,時(shí)序并未收斂??赡艿竭@里有的同學(xué)就會(huì)有疑問(wèn),我們都已經(jīng)把時(shí)序約束的內(nèi)容都刪了,按我們第一講中提到的“因此如果我們不加時(shí)序約束,軟件是無(wú)法得知我們的時(shí)鐘周期是多少,PAR后的結(jié)果是不會(huì)提示時(shí)序警告的”,這是因?yàn)樵谠摴こ讨?,用了一個(gè)MMCM,并在里面設(shè)置了輸入信號(hào)頻率,因此這個(gè)時(shí)鐘軟件會(huì)自動(dòng)加上約束。
接下來(lái),我們?cè)趖cl命令行中輸入report_clock_networks -name main,顯示如下:

可以看出,Vivado會(huì)自動(dòng)設(shè)別出兩個(gè)主時(shí)鐘,其中clk_pin_p是200MHz,這個(gè)是直接輸入到了MMCM中,因此會(huì)自動(dòng)約束;另一個(gè)輸入時(shí)鐘clk_in2沒(méi)有約束,需要我們手動(dòng)進(jìn)行約束。
或者可以使用check_timing -override_defaults no_clock指令,這個(gè)指令我們之前的內(nèi)容講過(guò),這里不再重復(fù)講了。
在tcl中輸入
create_clock -name clk2 -period 25 [get_ports clk_in2]
注:在Vivado中,可以直接通過(guò)tcl直接運(yùn)行時(shí)序約束腳本,運(yùn)行后Vivado會(huì)自動(dòng)把這些約束加入到xdc文件中。
再執(zhí)行report_clock_networks -name main,顯示如下:

可以看到,主時(shí)鐘都已被正確約束。
編輯:hfy
-
FPGA
+關(guān)注
關(guān)注
1660文章
22408瀏覽量
636239 -
TCL
+關(guān)注
關(guān)注
11文章
1807瀏覽量
91509 -
Vivado
+關(guān)注
關(guān)注
19文章
857瀏覽量
71105 -
時(shí)鐘約束
+關(guān)注
關(guān)注
0文章
15瀏覽量
6186
發(fā)布評(píng)論請(qǐng)先 登錄
FPGA時(shí)序案例分析之時(shí)鐘周期約束
FPGA案例解析:針對(duì)源同步的時(shí)序約束
FPGA的IO口時(shí)序約束分析
FPGA主時(shí)鐘約束詳解 Vivado添加時(shí)序約束方法
FPGA時(shí)序約束之衍生時(shí)鐘約束和時(shí)鐘分組約束
FPGA時(shí)鐘周期約束講解
FPGA全局時(shí)鐘約束(Xilinx版本)
FPGA時(shí)鐘約束問(wèn)題
FPGA案例之衍生時(shí)鐘約束
簡(jiǎn)述FPGA時(shí)鐘約束時(shí)鐘余量超差解決方法
進(jìn)入IP Core的時(shí)鐘,都不需要再手動(dòng)添加約束嗎
FPGA設(shè)計(jì)衍生時(shí)鐘約束和時(shí)鐘分組約束設(shè)置
時(shí)序約束一主時(shí)鐘與生成時(shí)鐘
FPGA時(shí)序約束之設(shè)置時(shí)鐘組
FPGA之主時(shí)鐘約束解析
評(píng)論