創建時鐘是針對代碼中主時鐘而言,創建時鐘之前需要知道代碼中的主時鐘都是什麼,可以在綜合以後,打開綜合,然後在TCL 中輸入命令:
report_clock_networks –name mynetwork
確定了主時鐘,就可以對其創建時鐘週期約束:
情形1:主時鐘之間有明確的相位關係
-waveform不僅確定了時鐘的佔空比,也確定了時鐘之間的相位關係。
(1)clka頻率爲200Mhz,等佔空比。(初始化爲1,waveform不是從0開始)
(2)clkb頻率爲100Mhz,佔空比爲40:60。
(3)clkc頻率爲200Mhz,等佔空比,時鐘抖動爲120ps。
下面這些指令,可以在tools --- language templates ---- XDC 裏面對應查找
create_clock -name <clock_name> -period <period> [get_ports <clock port>]
create_clock -period 8 -name i_x1_sys_clkp0 [get_ports i_x1_sys_clkp0]
情形2:主時鐘之間爲異步關係
主時鐘之間如果是異步關係,則需要通過set_clock_groups命令明確指定。
set_clock_groups -asynchronous -group <clock_name_1> -group <clock_name_2>
如果兩個主時鐘還通過MMCM或PLL生成了其他時鐘,若這兩個主時鐘爲異步關係,則它們的生成時鐘也爲異步關係。
set_clock_groups -asynchronous -group <clock_name_1> -group <clock_name_2>
創建兩個時鐘不相關
set_clock_groups -asynchronous -group i_x1_sys_clkp0 -group i_x4_sys_clkp0
創建兩個時鐘不相關,其生產時鐘也不相關
set_clock_groups -asynchronous -group [get_clocks i_x1_sys_clkp0 -include_generated_clocks] -group [get_clocks i_x4_sys_clkp0 -include_generated_clocks]