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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2877|回复: 9

[求助] 如何约束这种情况下的寄存器到寄存器之间的路径

[复制链接]
发表于 2018-8-19 16:26:15 | 显示全部楼层 |阅读模式

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

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

x
一个模块A产生的控制寄存器R作为其他模块B,C,D的控制,
由于系统资源占用较大,Quartus布线后竟然在简单的两个寄存器之间产生时序违规(主要是由于寄存器间隔太远),
尝试每个模块使用R前打一拍寄存,可是效果不明显。例如R->R1->R2,理想情况下R1应该在R和R2中间,可是R1经常不是靠近R就是靠近R2,同样时序不满足。有无更好的约束方法使R1正好布局在R和R2中间的位置呢?

或者可以转化为一个通用问题:
  一个(组)寄存器允许自动延迟n拍被其他模块使用,布线软件能否自动插入多拍寄存来满足此条件,而无需过分优化之间的路径。
发表于 2018-8-20 14:33:39 | 显示全部楼层
2个寄存器之间是同步的吗?
发表于 2018-8-20 20:32:41 | 显示全部楼层
如果是同步的应该不会出现这种情况,或者再多插入几拍寄存器试一下
发表于 2018-8-22 08:53:45 | 显示全部楼层
试试set_max_delay -from regA -to regB
发表于 2018-8-22 08:59:39 | 显示全部楼层
刚刚在eetop看见个帖子,手动布局,阔以在assignment Editor 中设置Location,是的两个寄存器在指定的LBA中,那样能否满足你的要求。帖子http://bbs.eetop.cn/thread-345966-3-7.html,27楼
发表于 2018-8-22 15:05:17 | 显示全部楼层
这个是可以手动放在一起的
 楼主| 发表于 2018-8-22 21:22:03 | 显示全部楼层
回复 6# fhy420462303


   受控模块较多,手动放在一起有困难;而且即便手动放在一起,从属模块也难保证不出现类似的问题(这其实和原始问题等价)
 楼主| 发表于 2018-8-22 21:27:19 | 显示全部楼层
回复 3# imfelix


    是同步的;
   试过打一拍,效果不明显,有时还是出现违规。
   环境为Quartus 17.0,Stratix V A7,逻辑资源占用超过90%;
   避免奇怪的是很多复杂路径都布线成功,唯独这么简单的寄存器之间路径却出现问题。分析主要问题如下:
   1) 时钟确实较高 ,250MHZ
   2) 受控模块复杂度高,使得布线策略将受控寄存器尽量靠近某个区域,从而造成距离过大。

   打多拍也许能解决问题,就是代码太难看。
 楼主| 发表于 2018-8-22 21:33:10 | 显示全部楼层
此问题还有一个难点在于:由于资源占用较高,受控模块的寄存器实际放置位置很难确定。因此如果将主控和从属寄存器约束某个固定位置同样不能保证从属寄存器到受控模块内其他连线满足时序。
发表于 2018-8-24 16:24:11 | 显示全部楼层
回复 1# ibenben666


   帮顶一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-16 05:26 , Processed in 0.021735 second(s), 6 queries , Gzip On, Redis On.

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