TimeQuest约束外设之ddio的潜规则_时序分析 good
来源:互联网 发布:淘宝企业店铺扶持政策 编辑:程序博客网 时间:2024/05/17 06:21
TimeQuest约束外设之ddio的潜规则
最近调试了下altera里的ddio模块,在Timequest约束ddio_out输出时,遇到了一个其实不算是问题的问题。
ddio_out模块如图1所示。
DH和DL在clk上升沿采样,时钟的高电平随即使能DH通道输出高位数据,下降沿到来时使能DL通道输出低位数据,这样就实现了数据的双边沿输出。
为了实现ddio_out的数据和时钟的源同步,必须要对输出ddr_out进行约束,简化后工程如图2所示。
整个约束过程和其他外设类似,详情可以查看http://blog.chinaaet.com/detail/25677.html。首先创建衍生时钟,然后set output delay from衍生时钟 to ddr_out,最后查看输出的建立保持余量。
奇怪的事情发生了,Timing报告里只有sysclk (pll_inst|altpll_component|auto_generated|pll1|inclk[0]其实就是sysclk,下文都用sysclk代替) 到ddr_out的路径,如图3所示。按经验,约束一个系统的输出延迟,Timequest会自动列出输出寄存器的路径,ddio_out模块的输出寄存器有DH和DL,但是DH和DL到ddr_out的时序路径报告哪去了呢?
图3
查看set false path,是否有将data_l和data_h到输出设为伪路径,结果sdc文件里没有关于ddio的伪路径。
查看Technology map viewer,DH和DL寄存器是否被优化了,结果两个寄存器都还健在。
更改时序报告生成方式,试了Report Setup Summary、Report ALL I/O Timings...结果都一样。
最后换工程、换quartus 11(当前是9.1)、换电脑...就差没换人品了,Timing报告就是不显示DH和DL的输出路径。
对于我非常确定及其肯定的经验,最终,还是妥协了,现在从头开始分析ddio_out的工作本质。用Technology map viewer sysclk分析唯一的线索从sysclk到ddr_out的路径,如图4所示。源寄存器不在ddio里,而在pll模块里,Timequest将这条看似毫无关联的路径认为是影响ddr_out输出延迟的关键路径,嗯,这个问题开始有点意思。
图4
绘制出ddio_out的时序图如图5所示,sysclk和sysclk(sel)为同一个时钟,都由pll驱动,前者为DH和DL的采样时钟,后者控制选择器的选择端,由于路径不同,存在一定的sysclk_skew,Tco为约束对象ddr_out的输出延迟。
图5
假设改变DL、DH的输出dataout_l和dataout_h的路径延迟,保持sysclk(sel)的延迟不变,ddr_out延迟会怎么变化呢?结果如图6所示,ddr_out的输出延迟没有变化。
图6
假设保持图6中的dataout_l和dataout_h的路径延迟,增大sysclk和sysclk(sel)的延迟sysclk_skew,ddr_out还会不变吗?结果如图7所示,ddr_out的输出延迟变大了。
图7
从上述3个图的假设和结果可以证明,sysclk(sel)才是真正的关键路径,决定了ddr_out的输出延迟,而dataout_l和dataout_h的路径应该就是伪路径了,所以Timequest只显示出这条路径信息,但是伪路径为什么没有出现在sdc文件的set false path呢? 我的回答是:它们不能算是伪路径。
dataout_l和dataout_h的路径延迟虽然不会影响输出延迟,但会改变输出数据,如图8所示,同时增大dataout_l和dataout_h的路径延迟,输出数据变混乱了,由于dataout_h延迟过大,在sysclk(sel)的高电平的前半阶段,仍然会输出上一个高位数据,dataout_l延迟过大也导致低电平阶段前期会输出了上一个低位数据。
图8
数据混乱,当然不是我们所期望的,所以dataout_l和dataout_h的路径肯定还是要被约束的,既然在Timequest里都没有显示,我们肯定是没法操作了,那最大的可能就是被潜规则了,Timequest自己完成了这两条路径的约束,可以从图8推测出这条潜规则:0 < Tco_datah < sysclk_skew,sysclk_skew< Tco_datal < T/2。
综上所述,推测Timequest约束ddio_out输出延迟的过程:
1.根据约束要求,改变sysclk到ddr_out的路径延迟,满足约束要求。
2.潜规则,sysclk到ddr_out的路径延迟确定后,sysclk_skew也就定了,约束ddio_out的Dl,DH寄存器满足0 < Tco_datah < sysclk_skew,sysclk_skew< Tco_datal < T/2,保证输出正确数据。
为了简化用户的操作,Timequest内部还会有很多类似的潜规则约束。虽然无法得知DH、DL被潜规则后的心情是否和XXX一样无奈,只希望大家在遇到此类问题,不用再纠结了。
0 0
- TimeQuest约束外设之ddio的潜规则_时序分析 good
- timequest静态时序分析学习之命令约束
- TimeQuest约束外设之诡异的Create Generated Clocks用法
- TimeQuest约束外设之诡异的Create Generated Clocks用法
- [转]TimeQuest约束外设之诡异的Create Generated Clocks用法
- timequest静态时序分析学习之基本概念
- timequest静态时序分析学习笔记——命令约束
- timequest静态时序分析学习笔记之基本概念
- FPGA时序约束—TimeQuest基础
- FPGA 时序约束(altera timequest)
- 关于静态时序约束的理解以及TimeQuest的约束命令使用
- 约束、时序分析的概念
- 静态时序分析的约束命令
- Timequest Timing Analyzer进行时序分析(一)
- timequest静态时序分析学习笔记——基本概念
- timequest静态时序分析学习笔记——工具使用
- 用Quartus II Timequest Timing Analyzer进行时序分析
- TimeQuest定时分析的基本概念
- UFLDL练习(Sparse Autoencoder)
- Volley加载网络数据加载网咯图片
- js笔记 -- toString() 和String()
- android手机(平板)下载文件后,在文件管理软件中可以看到,通过mtp模式连接电脑后,无法在电脑上看到
- codeforcesGym 101102H
- TimeQuest约束外设之ddio的潜规则_时序分析 good
- Quartz CronTrigger最完整配置说明
- Jquery中的$ajax()
- WAMP_Windows镜像环境配置
- MYSQL数据库设计之字段选择原则
- undefined reference to `SSL_library_init'错误
- linux使用tfn2k攻击之修改tfn2k错误使之正常运行
- 懒加载
- 你还在为忘记自己电脑的密码而烦恼吗?那就快来看看这篇文章吧!