RGMIIタイミング制約の例

RGMIIインタフェース:

https://blog.csdn.net/kemi450/article/details/91388581

RGMIIインタフェースの制約:

ここでは、例としては、125MHzのクロック、クロック、およびPHY構成データの位相が90°ずれてきました。


受信側


  1. 入力クロックと仮想クロックを作成します。前記仮想クロックが入力遅延を記述すること。

    create_clockの-name {rgmii_rxclk}は8.000 -waveform {2 6} [get_ports {rgmii_rxclk}] -period
    create_clockの-name {rgmii_rxclk_virtual}が8.000を-period

  2. 入力遅延制約。T_ {InputDelay} = T_ {データ} + T_ {CO} -T_ {クロックスキュー}ここでは、同じデータおよびクロックトレース以来、ほぼ同じ遅滞ようにします。
    -clock set_input_delay [get_clocks rgmii_rxclk_virtual] -max 0.5 [get_ports "rgmii_rxd rgmii_rxctl *"] -add_delay
    set_input_delayクロック[get_clocks rgmii_rxclk_virtual] -0.5 -min [get_ports "rgmii_rxdのrgmii_rxctl *"] -add_delay

  3. 设置非关联路径。
    set_false_path -fall_from [get_clocks rgmii_rxclk_virtual] -rise_to [get_clocks rgmii_rxclk] -setup
    set_false_path -rise_from [get_clocks rgmii_rxclk_virtual] -fall_to [get_clocks rgmii_rxclk] -setup
    set_false_path -fall_from [get_clocks rgmii_rxclk_virtual] -fall_to [get_clocks rgmii_rxclk] -hold
    set_false_path -rise_from [get_clocks rgmii_rxclk_virtual] -rise_to [get_clocksrgmii_rxclk] -hold


送信者


  1. 送信クロックを作成します。ここでは、125MHzのクロックはPLL、出力C0によって生成されました。
    -source -name rgmii_txclk create_generated_clock [get_clocks {fpga_pll_inst | altpll_component | PLL | CLK [0]}] \
    [get_portsのrgmii_txclk {}] -相90

  2. 约束输出延迟。T_ {OutputDelayを} = T_ {データ} + T_ {設定} -T_ {クロックスキュー}T_ {OutputDelayを} = T_ {データ} -T_ {ホールド} -T_ {クロックスキュー}。同理、时钟延迟和数据延迟一致。
    set_output_delayを-clock rgmii_txclk -max 1.0 [get_ports "RGMII_TXD * rgmii_txctl"] -add_delay
    set_output_delayを-clock rgmii_txclk -max 1.0 [get_ports "RGMII_TXD * rgmii_txctl"] -clock_fall -add_delay
    set_output_delayを-clock rgmii_txclk -min -0.8 [get_ports "RGMII_TXD * rgmii_txctl"] -add_delay
    set_output_delayを-clock rgmii_txclk -min -0.8 [get_ports "RGMII_TXD * rgmii_txctl"] -clock_fall -add_delay

  3. 。设置非关联路径
    set_false_path -fall_from [get_clocks {fpga_pll_inst | altpll_component | PLL | CLK [0]}] -rise_to [get_clocks rgmii_txclk] -setup
    set_false_path -rise_from [get_clocks {fpga_pll_inst | altpll_component | PLL | CLK [0]}] - fall_to [get_clocks rgmii_txclk] -setup
    set_false_path -fall_from [get_clocks {fpga_pll_inst | altpll_component | PLL | CLK [0]}] -fall_to [get_clocks rgmii_txclk] -hold
    set_false_path -rise_from [get_clocks {fpga_pll_inst | altpll_component | PLL | CLK [0]} ] -rise_to [get_clocks rgmii_txclk] -hold

  4. 好ましくは、出力クロック出力DDIOまたはDDR。

おすすめ

転載: blog.csdn.net/kemi450/article/details/93757716