仅对英特尔可见 — GUID: bhc1427790468067
Ixiasoft
3.8.4. 输入时钟的时序约束
当生成JESD204B IP时,您的设计还没有完成, JESD204B IP在设计中尚未连接。最终的时钟名和路径还未知。因此, Intel® Quartus® Prime软件无法将最终信号名称集成到自动生成的.sdc文件中。相反,必须手动修改此文件中的时钟信号名,将这些约束集成到整个设计的时序约束中。
这个部分介绍了如何将 Intel® Quartus® Prime软件通过IP生成的时序约束集成到您设计中的时序约束。
Intel® Quartus® Prime软件自动生成包含JESD204B IP的时序约束的altera_jesd204.sdc文件。
- JESD204B TX IP:
- txlink_clk
- reconfig_to_xcvr[0] (for Arria V, Cyclone V, and Stratix V devices only)
- reconfig_clk (for Intel® Arria® 10, Intel® Cyclone® 10 GX, and Intel® Stratix® 10 devices only)
- tx_avs_clk
- JESD204B RX IP:
- rxlink_clk
- reconfig_to_xcvr[0] (for Arria V, Cyclone V, and Stratix V devices only)
- reconfig_clk (for Intel® Arria® 10, Intel® Cyclone® 10 GX, and Intel® Stratix® 10 devices only)
- rx_avs_clk
在工程的.sdc文件中,进行了如下命令更改:
- 使用create_clock命令指定PLL时钟参考管脚频率。
- 使用derive_pll_clocks命令从 PLL Intel® FPGA IP (Arria V,Cyclone V和Stratix V)或者IOPLL Intel® FPGA IP ( Intel® Arria® 10和 Intel® Cyclone® 10 GX)派生出PLL生成的输出时钟。
- 对于 Intel® Stratix® 10器件, Intel® FPGA IOPLL IP core具有SDC文件,此文件基于PLL配置派生出PLL时钟。您不需要将derive_pll_clocks命令添加到顶层SDC文件中。
- 注释掉txlink_clk、reconfig_to_xcvr[0]或reconfig_clk的create_clock命令,以及altera_jesd204.sdc文件中的tx_avs_clk、rxlink_clk和rx_avs_clk时钟。
- 通过report_clock命令,确定与txlink_clk、reconfig_clk和tx_avs_clk、rxlink_clk以及rx_avs_clk时钟相关的基本和生成时钟名。
- 通过set_clock_groups命令,说明了设计中基本时钟和生成时钟之间的关系。
完成设计后,必须将.sdc文件中的时钟名修改成完整设计的时钟名,考虑完整设计中的两个IP实例名,以及设计层次。基于设计添加时序异常时要小心,例如:当JESD204B IP处理txlink_clk、rxlink_clk、pll_ref_clk、tx_avs_clk、rx_avs_clk和reconfig_clk ( Intel® Arria® 10、 Intel® Cyclone® 10 GX和 Intel® Stratix® 10)时钟之间的异步时序时。
下表显示了altera_jesd204.sdc的时钟名以及用户设计的输入时钟名实例。在该实例中,收发器TX PLL和refclk管脚上的CDR有一个专用的输入时钟。device_clk是到内核PLL clkin管脚的输入。IP和收发器Avalon-MM接口具有不同频率的独立的外部时钟源。
altera_jesd204.sdc中的原始时钟名 | 用户设计输入时钟名 | 频率(MHz) | 建议的SDC时序约束 |
---|---|---|---|
tx_pll_ref_clk | xcvr_tx_rx_refclk | 250 | create_clock -name xcvr_tx_rx_refclk -period 4.0 [get_ports xcvr_tx_rx_refclk ] create_clock -name device_clk -period 8.0 [get_ports device_clk] create_clock -name jesd204_avs_clk -period 10.0 [get_ports jesd204_avs_clk] create_clock -name phy_mgmt_clk -period 13.3 [get_ports phy_mgmt_clk] derive_pll_clocks set_clock_groups -asynchronous \ -group {xcvr_tx_rx_refclk \ <base and generated clock names as reported by report_clock commands> \ } \ -group {device_clk \ <base and generated clock names as reported by report_clock commands> \ } \ -group {jesd204_avs_clk} \ -group {phy_mgmt_clk \ <base and generated clock names as reported by report_clock commands> \ } |
rx_pll_ref_clk | |||
txlink_clk | device_clk | 125 | |
rxlink_clk | |||
tx_avs_clk | jesd204_avs_clk | 100 | |
rx_avs_clk | |||
reconfig_clk 16 | phy_mgmt_clk | 75 |
不过,如果设计要求将rx_avs_clk和reconfig_clk连接到相同的时钟,需要将它们置于相同的时钟组。
下表显示了一个实例,其中该设计中的device_clk是一个到收发器refclk管脚的输入。IP的Avalon-MM接口与收发器管理时钟共享相同的时钟源。
altera_jesd204.sdc中的原始时钟名 | 用户设计输入时钟名 | 频率(MHz) | 建议的SDC时序约束 |
---|---|---|---|
tx_pll_ref_clk | device_clk | 125 | create_clock -name device_clk -period 8.0 [get_ports device_clk] create_clock -name mgmt_clk -period 10.0 [get_ports mgmt_clk] derive_pll_clocks set_clock_groups -asynchronous \ -group {device_clk \ <base and generated clock names as reported by report_clock commands> \ } \ -group {mgmt_clk \ <base and generated clock names as reported by report_clock commands> \ } |
rx_pll_ref_clk | |||
txlink_clk | |||
rxlink_clk | |||
tx_avs_clk | mgmt_clk | 100 | |
rx_avs_clk | |||
reconfig_clk 17 |