計時分析器會考慮將傳入或主機頻率的特性修改或變更為產生頻率的頻率分流器、波紋頻率或電路。您應該將這些電路的輸出定義為產生的頻率。這個定義讓計時分析器可以分析這些頻率,並解釋與它們相關的任何網路延遲。
您可以使用 create_generated_clock 指令來建立產生的頻率。下列清單顯示 create_generated_clock 命令和可用選項:
create_generated_clock [名稱 <clock name>] -來源 <host 針腳> [邊緣<列>] [-edge_shift <保護清單>] [-divide_by <factor>] [-multiply_by < >] [-duty_cycle <%>] [-add] [-invert] [-host_clock <clock>] [相<phase>] [-偏移<offset>] <來源物件>
表 1 說明 create_generated_clock 指令的選項。
表 1。create_generated_clock命令的選項說明
選項 | 描述 |
---|---|
-名稱 <clock 名稱> | 例如,所產生的頻率名稱clk_x2。若您未指定頻率名稱,時鐘名稱與指派給該節點的第一節點相同。 |
-來源 <host 針腳> | <host 針腳>指定頻率設定所衍生的設計節點。 |
-edges <edge 清單> |-edge_shift <保護清單> | 邊緣選項針對主機頻率的上升和下降邊緣,指定新的上升和下降邊緣。主機頻率的上升與下降邊緣編號為 1.<n>從第一個上升的邊緣(例如邊緣 1)開始。之後的第一個下降邊緣是邊緣編號 2、下一個上升的邊緣編號 3 等。<列清單>必須正在增加訂單。同一邊緣可用於兩個專案,以表示與原始波形工作週期無關的頻率脈衝。edge_shift指定<列中每個邊緣的班次數量>。反向選項可用於在邊緣和 -edge_shifts 套用後倒轉頻率。 |
-divide_by <因素>|-multiply_by<因素> | divide_by與multiply_by因素系根據頻率的第一個上升邊緣,並根據特定因素延伸或合約波形。例如,a-divide_by 2 相當於 -edges {1 3 5\。對於乘倍頻率,也可以指定工作週期。時序分析器支援同時指定乘數和分割因素。 |
-duty_cycle<%> | 指定產生的頻率工作週期。工作週期最後套用。 |
-新增 | 允許您指定一個以上的頻率到相同的針腳。 |
-倒轉 | 除工作週期外,所有其他修改都套用在時鐘輸出處。 |
-host_clock<clock> | host_clock用於指定主機針腳是否存在多個頻率的頻率。 |
-相<相> | 指定產生頻率的階段。 |
-偏移<> | 指定產生的頻率偏移。 |
<來源物件> | 指定作業適用的埠或針腳。 |
來源延遲系根據主機頻率 (不一定是主機針腳) 的頻率網路延遲。您可以使用 set_clock_latency源 指令來覆寫來源延遲。
圖 1 顯示以下 SDC 指令的波形,以 10 ns 頻率建立倒置產生的頻率。
create_clock-期間 10 [get_ports clk] create_generated_clock -divide_by 1 -invert-source [get_registers clk] \ [get_registers gen|clkreg]
圖 2 顯示以下 SDC 指令的波形,這些指令使用 -edges 和 -edge_shift 選項修改產生的頻率。
create_clock-期間 10-waveform { 0 5 = [get_ports clk] # 建立一個按 2 個頻率 create_generated_clock-來源 [get_ports clk] -edges { 1 3 5 \ [get_registers clkdivA|clkreg] # 建立 獨立于主機頻率工作週期的分 2 個頻率現在為 50%)create_generated_clock- 來源 [get_ports clk] -edges { 1 1 5 \ -edge_shift 0 5 0 \ [get_registers clkdivB|clkreg]
圖 3 顯示下列 SDC 指令的 wafeforms,顯示 -乘乘 選項對產生頻率的效果。
create_clock-期間 10 -waveform { 0 5 [ [get_ports clk] # 建立乘乘 2 頻率 create_generated_clock-來源 [get_ports clk] -multiply_by 2 \ [get_registers clkmult|clkreg]