当前位置:   article > 正文

RGMII的时序约束实例_fpga的rgmii接口约束

fpga的rgmii接口约束

RGMII接口:

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

RGMII接口的约束:

这里,已125MHz时钟为例,配置PHY使时钟和数据相移90°。


接收端


  1. 创建输入时钟和虚拟时钟。其中,虚拟时钟用以描述输入延时。

    create_clock -name {rgmii_rxclk} -period 8.000 -waveform { 2 6 } [get_ports {rgmii_rxclk}]
    create_clock -name {rgmii_rxclk_virtual} -period 8.000

  2. 约束输入延迟。TInputDelay=Tdata+TCOTClockSkew。在这里,由于数据和时钟的走线一样,因此其延迟近乎一样。
    set_input_delay -clock  [get_clocks rgmii_rxclk_virtual] -max 0.5 [get_ports “rgmii_rxd* rgmii_rxctl”] -add_delay
    set_input_delay -clock  [get_clocks rgmii_rxclk_virtual] -min -0.5 [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的时钟,由c0输出。
    create_generated_clock -name rgmii_txclk -source [get_clocks {fpga_pll_inst|altpll_component|pll|clk[0]}] \
    [get_ports {rgmii_txclk}] -phase 90

  2. 约束输出延迟。TOutputDelay=Tdata+TsetupTClockSkewTOutputDelay=TdataTholdTClockSkew。同理,时钟延迟和数据延迟一致。
    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输出。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/441787
推荐阅读
相关标签
  

闽ICP备14008679号