JESD204B Intel® FPGA IP用户指南

ID 683442
日期 9/10/2020
Public
文档目录

3.8.4. 输入时钟的时序约束

当生成JESD204B IP variation时, Intel® Quartus® Prime软件生成一个Synopsys Design Constraint文件(.sdc),此文件对IP的输入时钟指定时序约束。

当生成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
在一个功能系统设计中,这些时钟(除了reconfig_to_xcvr[0]时钟)通常由core PLL提供。

在工程的.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_clkreconfig_to_xcvr[0]reconfig_clkcreate_clock命令,以及altera_jesd204.sdc文件中的tx_avs_clkrxlink_clkrx_avs_clk时钟。
  • 通过report_clock命令,确定与txlink_clkreconfig_clktx_avs_clkrxlink_clk以及rx_avs_clk时钟相关的基本和生成时钟名。
  • 通过set_clock_groups命令,说明了设计中基本时钟和生成时钟之间的关系。

完成设计后,必须将.sdc文件中的时钟名修改成完整设计的时钟名,考虑完整设计中的两个IP实例名,以及设计层次。基于设计添加时序异常时要小心,例如:当JESD204B IP处理txlink_clkrxlink_clkpll_ref_clktx_avs_clkrx_avs_clkreconfig_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接口具有不同频率的独立的外部时钟源。

表 13.  实例A
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_clkreconfig_clk连接到相同的时钟,需要将它们置于相同的时钟组。

下表显示了一个实例,其中该设计中的device_clk是一个到收发器refclk管脚的输入。IP的Avalon-MM接口与收发器管理时钟共享相同的时钟源。

表 14.  实例B
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
16 For Intel® Arria® 10, Intel® Cyclone® 10 GX, and Intel® Stratix® 10 only.
17 For Intel® Agilex™ , Intel® Stratix® 10, Intel® Cyclone® 10 GX, and Intel® Arria® 10 only.