vivado时序分析工具使用----input_delay(1)

  在上一篇博客中,学习了使用vivado时序分析工具去约束基准时钟,生成时钟和虚拟时钟。在这篇博客中,试着记录一下input_delay如何去约束。

问题分析

  在上一篇博客中,将采样时钟,直接使用了rgmii接口的输入时钟来采集数据,导致数据不能正常采集。我在通过ila抓取数据后发现,使用未经移相的时钟进行数据采集时,采集到的数据发生了错误,因此不能正确地识别以太网帧。
在这里插入图片描述
  因此首先还是通过使用移相的时钟,来进行数据的采集。
在这里插入图片描述

设置 input_dealy

  设置input_delay的意义,并不是为了来延时数据,只是指明了采样时钟和数据之间的关系。在我使用的工程中,采样时钟是经过移相过后的125MHz时钟。input_delay约束的是采样时钟和IO口输入数据之间的时序关系。将工程重新综合过后,可以看到时序信息中会提示如下信息。
没有对输入数据进行约束
  于此同时,通过ila抓取数据发现,使用移动相位后的时钟进行数据采集,已经能够正确地识别处以太网数据帧了。
在这里插入图片描述
  接下来对输入的数据进行约束。input_delay约束的是输入数据与采样时钟之间的关系。在input_delay基础中已经介绍过,input_delay是数据发射沿到数据有效之间的skew。
在这里插入图片描述
  根据PHY芯片数据手册,可以得到其skew的值。因为采样所用到的时钟是移相过后的时钟,需要根据此时钟来确定延时值。如下图所示:
在这里插入图片描述
在这里插入图片描述
  添加好约束后,将约束保存,可以在约束文件中,发现新增了几条约束:
在这里插入图片描述

  再次综合后来观察添加input_delay后的时序信息。可以看到建立时间和保持时间的余量都大于0.

在这里插入图片描述
在这里插入图片描述
  以其中一条路径来分析,这里以保持时间为例。
在这里插入图片描述
  可以看到数据要求结束时间在数据实际结束时间之前。满足保持时间的要求。
  set_input_delay的描述中,大家可以看到,这个约束是告诉vivado我们的输入信号和输入时钟之间的延迟关系,跟下面要讲的时钟周期约束是一个原理,让vivado在这个前提下去Place and Route。并不是调节输入信号的延迟。
  如果要调整输入信号的延迟,只能使用IDELAY,IDELAY模块有32个tap值,每个tap可延迟78ps,这样总共差不多是2.5ns。


参考:
  1. 知乎专栏 https://zhuanlan.zhihu.com/p/88262316
  2. V3学院时序分析课程

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值