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

相关推荐
仲南音2 天前
Xilinx FPGA——时钟IP核MMCM、PLL
fpga开发
I'm a winner2 天前
基于Xilinx FPGA的LVDS高速串行通信系统(三)--数据训练及握手机制【文末源码】
fpga开发
upper20203 天前
coremark移植坑之-nostartfiles -nostdlib参数
学习·fpga开发·coremark移植·riscv设计
Eloudy3 天前
Vivado 纯命令行构建 FPGA 项目教程
fpga开发
Rambo.xia3 天前
AXI跨时钟域与数据一致性——CDC FIFO深度不够、写后读冒险、多Master仲裁、乱序返回,出了Bug根本查不出来
fpga开发·bug
upper20203 天前
FPGA部署卷积神经网络识别MINST图片
fpga开发·卷积神经网络·minst·minst识别·部署神经网络·神经网络识别图片
你是我的解忧王子3 天前
嵌入式 ADC采样 原始数据分析上层(平均值 波动率 正态分布 线性补偿 系统误差)
fpga开发·数据挖掘·数据分析
9527华安4 天前
FPGA纯verilog代码ISP图像处理培训教程,基于IMX214,提供工程源码+视频教程+FPGA开发板
图像处理·fpga开发·isp·imx214·mipi
千寻xun4 天前
二、实战篇-NVME SSD控制之ZYNQ实现(六)-读写NVME SSD硬盘数据
fpga开发·nvme·nvme ssd
千寻xun4 天前
二、实战篇-NVME SSD控制之ZYNQ实现(三)
fpga开发·nvme ssd·nvme协议