在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 16265|回复: 14

[求助] 工程 vivado 建立时间,保持时间不满足,修改思路

[复制链接]
发表于 2018-1-23 23:34:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
捕获.PNG
如图所示:打开path1的property。
捕获.PNG
其中arrival time太大,导致建立时间不满足,也就是data path太大,如下图。可以看到,是寄存器还有net的不断累加最后导致data path太大。但是怎样才能把他变小呢,首先考虑把data path变小,但是,但是把register还有net延时变小,真不知道该怎么办,怎么个约束法。
大神给指导一下吧。
捕获.PNG
其次考虑把destination clock path变大,这个可以考虑在代码中加一个或几个ibufg如下图,这个思路对吗?
捕获.PNG

假如我把set up的path1弄好了,path2,3...会不会跟着变好,还是得一个一个的来。
大神给讲讲吧,就着我的具体的问题,相信大家都会喜闻乐见。
发表于 2018-1-24 08:18:06 | 显示全部楼层
你这是生成的核还是自己写的代码?130M过不了我觉得更多的可能是代码结构的问题,加1级寄存器试试?
发表于 2018-1-24 09:30:14 | 显示全部楼层
西野翔
发表于 2018-1-24 09:34:00 | 显示全部楼层
回复 3# lkpkf
 楼主| 发表于 2018-1-24 09:40:17 | 显示全部楼层
回复 2# lxc806705

是调用复数乘法器的IP核。您说的加一级寄存器,是加在哪里呀,是加在乘法器的后面还是前面?我不是很懂呀。
发表于 2018-1-24 09:49:32 | 显示全部楼层
多个IP核级联? 我没法看清楚你的代码结构,如果是多级级联,再每个乘法器后的输出加上一级寄存器就可以了,或者看看IP里面是否可以选择嵌入寄存器
 楼主| 发表于 2018-1-24 12:00:57 | 显示全部楼层
回复 6# lxc806705
首先再次感谢您的回复。
确实是多个IP核级联。您说的方法我还没有试,我一会儿试试。受您的启发,我把乘法器的的参数设置成fullly pipelined之后,第一级latency8个,第二级9个latency,setup不满足消失了,只是这样的话我的数据控制程序还要改一下。我以前的参数设置是manual,1一个延迟。

还有一个问题是保持时间不满足。
关于保持时间违例,要么是数据到的太早,要么是时钟到的太晚,是相对的。在FPGA设计中这个相对建立时间而言比较少遇到。如果遇到保持时间违例,好好检查一下时钟路径。                                            ----------------别人说的

捕获.PNG   
具体到工程中的不满足如下:
捕获.PNG
捕获.PNG
这里头源时钟还有目的时钟同步但是频率不一样,clkout1=50M,clkout2=100M,是慢时钟到快时钟,我不知道怎么处理。
1.是不是首先进行多周期约束
   但是多周期约束是用start point到end point还是用source clk 到destination clk;
   在见红的区域中,只有一条路径就用start point到end point,要是一片,而且见红的数据都相同,就像上图所示,就用source clk 到  
   destination clk;
   怎么约束呢?像这个例子中,右击一条见红的路径,选择set multiple path之后选择source clk 到destination clk,再选择hold,设置成
   1,再勾上end。然后再report timing summary,这一片红消失了,我这样做对吗?因为我看到很多资料说应该是,set up设置成N,hold
   设置成N-1,在这个具体的例子中就是虽然只设置hold=1,红就不见了,还需不需要弄一个setup并设置成2.

2.暂时不知道说什么了。
发表于 2018-1-25 11:41:48 | 显示全部楼层
RapidIO,跑100M是不会出现这样的问题的。 你在RapidIO的入口和出口分别加入FIFO来隔断异步时钟就行了,控制信号加上双寄存器同步或者分布式RAM的FIFO来传递。
我初步判断还是你的时钟和程序结构的问题,如果时钟低于200MHz,出现这种情况,一般考虑调整代码结构,从约束上来满足时序不是一个好办法。
 楼主| 发表于 2018-1-25 22:50:30 | 显示全部楼层
回复 8# lxc806705

谢谢您的回复,受教了,应该是代码结构不好造成的结果。
异步控制信号传到下一个模块的时候,我只是简单的用一级缓存器缓存了一下,因为是慢时钟到快时钟的缘故,有必要用两级缓存器吗?
发表于 2018-1-26 09:37:47 | 显示全部楼层
源时钟和目的时钟不是同步时钟的话,就设置成异步时钟组或者直接false path
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-23 09:42 , Processed in 0.025652 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表