EETOP 创芯网论坛 (原名:电子顶级开发网)
标题:
如何约束这种情况下的寄存器到寄存器之间的路径
[打印本页]
作者:
ibenben666
时间:
2018-8-19 16:26
标题:
如何约束这种情况下的寄存器到寄存器之间的路径
一个模块A产生的控制寄存器R作为其他模块B,C,D的控制,
由于系统资源占用较大,Quartus布线后竟然在简单的两个寄存器之间产生时序违规(主要是由于寄存器间隔太远),
尝试每个模块使用R前打一拍寄存,可是效果不明显。例如R->R1->R2,理想情况下R1应该在R和R2中间,可是R1经常不是靠近R就是靠近R2,同样时序不满足。有无更好的约束方法使R1正好布局在R和R2中间的位置呢?
或者可以转化为一个通用问题:
一个(组)寄存器允许自动延迟n拍被其他模块使用,布线软件能否自动插入多拍寄存来满足此条件,而无需过分优化之间的路径。
作者:
gaurson
时间:
2018-8-20 14:33
2个寄存器之间是同步的吗?
作者:
imfelix
时间:
2018-8-20 20:32
如果是同步的应该不会出现这种情况,或者再多插入几拍寄存器试一下
作者:
y23angchen
时间:
2018-8-22 08:53
试试set_max_delay -from regA -to regB
作者:
谁枫而飘
时间:
2018-8-22 08:59
刚刚在eetop看见个帖子,手动布局,阔以在assignment Editor 中设置Location,是的两个寄存器在指定的LBA中,那样能否满足你的要求。帖子
http://bbs.eetop.cn/thread-345966-3-7.html
,27楼
作者:
fhy420462303
时间:
2018-8-22 15:05
这个是可以手动放在一起的
作者:
ibenben666
时间:
2018-8-22 21:22
回复
6#
fhy420462303
受控模块较多,手动放在一起有困难;而且即便手动放在一起,从属模块也难保证不出现类似的问题(这其实和原始问题等价)
作者:
ibenben666
时间:
2018-8-22 21:27
回复
3#
imfelix
是同步的;
试过打一拍,效果不明显,有时还是出现违规。
环境为Quartus 17.0,Stratix V A7,逻辑资源占用超过90%;
避免奇怪的是很多复杂路径都布线成功,唯独这么简单的寄存器之间路径却出现问题。分析主要问题如下:
1) 时钟确实较高 ,250MHZ
2) 受控模块复杂度高,使得布线策略将受控寄存器尽量靠近某个区域,从而造成距离过大。
打多拍也许能解决问题,就是代码太难看。
作者:
ibenben666
时间:
2018-8-22 21:33
此问题还有一个难点在于:由于资源占用较高,受控模块的寄存器实际放置位置很难确定。因此如果将主控和从属寄存器约束某个固定位置同样不能保证从属寄存器到受控模块内其他连线满足时序。
作者:
XAUT-海洋
时间:
2018-8-24 16:24
回复
1#
ibenben666
帮顶一下
作者:
Cccyz
时间:
2025-8-17 00:14
请问解决问题了吗?
作者:
xhopo
时间:
2025-8-25 13:28
R->R1->R2,分别设置R-R1和R1->R2的max_delay试试呢
作者:
xhopo
时间:
2025-8-25 13:30
xhopo 发表于 2025-8-25 13:28
R->R1->R2,分别设置R-R1和R1->R2的max_delay试试呢
如果实在满足不了,是否可以考虑这里做CDC改成异步时序
欢迎光临 EETOP 创芯网论坛 (原名:电子顶级开发网) (https://bbs.eetop.cn/)
Powered by Discuz! X3.5