vivado时序出错的解决方法

这几天一直改程序,请教师兄帮我解决了一些时序上的问题。
由于现在项目里用的是200M时钟,所以会出现很多时序问题,下面一一举例。
问题1:逻辑级数太高导致Net Delay过高,该问题显示在时许报告的Levels列下,如图1所示。(这里我已经解决了问题,图片只是指出Levels)
![图1](https://img-blog.csdnimg.cn/20200731162557381.png图1图1
导致该问题出现的有两种情况,
第一种是由于程序中自己写的逻辑级数过高,比如:assign a = c * b + d * e ,这种情况在高速时钟下是会导致时序问题。讲一下我自己遇到的问题吧,reg_q <= -fifo_out; 我在一段程序中这样写最终导致时序出错,我的解决方法是对fifo_out打三拍,第一拍对fifo_out取反,第二拍+1’b1(完成对fifo_out取负的功能),在第三拍的时候取出这个信号。
第二种情况是在使用IP核时,选择流水等级太低,在高速时钟下可能会导致时序出错。还是举一个例子吧,比如我调用了一个乘法器IP核,(如图2)
图2
图2
如果选择流水级数为0,乘法器会立刻输出结果,这在实际中可能会导致乘法器内部逻辑级数过高无法满足时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值