欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > Vivado中Tri_mode_ethernet_mac的时序约束、分析、调整——(一)时序约束的基本概念

Vivado中Tri_mode_ethernet_mac的时序约束、分析、调整——(一)时序约束的基本概念

2025/2/24 19:16:07 来源:https://blog.csdn.net/leixj025/article/details/144950083  浏览:    关键词:Vivado中Tri_mode_ethernet_mac的时序约束、分析、调整——(一)时序约束的基本概念

1、基本概念

推荐阅读,Ally Zhou编写的《Vivado使用误区与进阶》系列文章,熟悉基本概念、tcl语句的使用。

《Vivado使用误区与进阶》电子书开放下载!!

2、Vivado中的语法例程

1)语法例程

约束的语句可以参考vivado中的,注意其中的rise_data是指由上升沿采样的数据,默认由fall发出。实际使用时也可以由rise发出rise_data,并由rise采样,比如以太网MAC IP中的用法。

  

2)input约束

input delay:外部时钟发送沿到数据头的最大/最小延时;

  • 中心对齐DDR:

采样时,时钟沿直接采样自己下方的数据即可。由发送方调整好对齐关系。

  • Edge-Aligned(clock directly to FF)DDR

      边沿对齐,时钟边沿和数据边沿同时变化(数据不是该时钟沿发出的,而是上一个沿发出的),采样时可对clk延时1/4周期时间完成中心对齐采样。

 

  • Edge-Aligned(clock with MMCM)DDR

注意此处的MMCM是指phase shift mode采用waveform ,而不是latency模式。采用latency模式的时的约束同clock directly to FF。

3)output约束

output delay:数据头到达采样沿的最大最小时间(这是下游器件对FPGA管脚处的时序要求)。不论是skew based还是setup/hold based,都是告知FPGA数据头/尾到采样沿需要的时间max/min。

3、时序分析

    input,output中的-max用于分析setup,-min用于分析hold。vivado中对output做时序分析的点在FPGA的输出管脚端,即在此处比大小slack。

4、forwarded clock

源同步输出时的clock处理方式用ODDR转发,相位不翻转180°时用如下源语及约束,反相180时.D1(1'b0),.D2(1'b1),时钟约束中增加-invert。

   ODDRE1 #(
      .IS_C_INVERTED(1'b0),           // Optional inversion for C
      .IS_D1_INVERTED(1'b0),          // Unsupported, do not use
      .IS_D2_INVERTED(1'b0),          // Unsupported, do not use
      .SIM_DEVICE("ULTRASCALE_PLUS"), // Set the device version for simulation functionality (ULTRASCALE,
                                      // ULTRASCALE_PLUS, ULTRASCALE_PLUS_ES1, ULTRASCALE_PLUS_ES2)
      .SRVAL(1'b0)                    // Initializes the ODDRE1 Flip-Flops to the specified value (1'b0, 1'b1)
   )
   ODDRE1_clk (
      .Q(O_src_clk),   // 1-bit output: Data output to IOB
      .C(W_rsc_clk),   // 1-bit input: High-speed clock input
      .D1(1'b1), // 1'b1 -same with clk,1'b0 -invert to clk
      .D2(1'b0), // 1'b0 -same with clk,1'b1 -invert to clk
      .SR(!I_rst_n)  // 1-bit input: Active-High Async Reset
   ); 

create_generated_clock -name O_src_clk -source [get_pins clk_wiz_0_inst/clk_out1] -multiply_by 1 [get_ports O_src_clk]

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词