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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[求助] DC逻辑综合的纯组合逻辑电路I/O约束问题

[复制链接]
发表于 2022-7-25 11:35:14 | 显示全部楼层 |阅读模式

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

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

x
1、Logic Synthesis中不知道DUA的外设,怎么编写I/O的约束?按照周期的64开?
2、对于纯逻辑组合电路,如何对I/O口进行约束?设置虚拟时钟,会报错“Value for list 'source_objects' must have 1 elements”。
求大佬解答
发表于 2022-7-25 20:28:00 | 显示全部楼层
保守一点,7/3开吧
Virtual clock应该可以,是不是没写对。set_max_delay应该也可以,无法就是想让组合逻辑紧凑一些。
 楼主| 发表于 2022-8-2 13:33:31 | 显示全部楼层


jake 发表于 2022-7-25 20:28
保守一点,7/3开吧
Virtual clock应该可以,是不是没写对。set_max_delay应该也可以,无法就是想让组合逻辑 ...


很抱歉现在才回复了您。因为之前才入门,又是自学,迫切想体验各种约束效果。
当时设计只写了一层组合逻辑,就想尝试。
现在知道了虚拟时钟是真实存在,只是不会作用在当前设计。
谢谢您的回答。
发表于 2022-8-2 14:37:21 | 显示全部楼层


挽梦夏已深 发表于 2022-8-2 13:33
很抱歉现在才回复了您。因为之前才入门,又是自学,迫切想体验各种约束效果。
当时设计只写了一层组合逻 ...


请教下,“现在知道了虚拟时钟是真实存在,只是不会作用在当前设计”,这个的意思是?我的理解,同样会约束影响你的设计,影响PR工具优化
发表于 2022-8-2 14:39:57 | 显示全部楼层
本帖最后由 xingyun666666 于 2022-8-2 14:42 编辑


jake 发表于 2022-7-25 20:28
保守一点,7/3开吧
Virtual clock应该可以,是不是没写对。set_max_delay应该也可以,无法就是想让组合逻辑 ...


保守一点,7/3开吧
--jake哥,这个其实一直是我很懵懂的地方,做了很多项目,有些设计拿到前端的SDC,看到是2/8,有的是3/7,好像不太一样,这个怎么决定?根据经验值吗?比如同样size,频率,工艺,同样类型的芯片,有一个经验值,具体根据什么,不确定,我只是在猜测
发表于 2022-8-2 14:50:49 | 显示全部楼层


xingyun666666 发表于 2022-8-2 00:39
保守一点,7/3开吧
--jake哥,这个其实一直是我很懵懂的地方,做了很多项目,有些设计拿到前端的SDC,看到 ...


一般block I/O默认是7/3。
出现8/2可能是top level预计到了上游下游两个block离得远,上游输出的数据经过一些组合逻辑,或是上下游的时钟有很大的skew, 这时可能会要求上游下游两个block都用8/2,给中间的top level路径多争取一点时间。
Top level的I/O很多时候要看通信协议的标准,并不遵循默认的7/3。

 楼主| 发表于 2022-8-2 15:26:19 | 显示全部楼层


xingyun666666 发表于 2022-8-2 14:37
请教下,“现在知道了虚拟时钟是真实存在,只是不会作用在当前设计”,这个的意思是?我的理解,同样会约 ...


比如一个设计模块下有多个子设计模块,并且由不同的clk控制,这些clk由domain clk分频得到。如果你只是综合其中的某个子模块,其Input port的前一级触发器由另一个clk控制,你需要创建这个时钟来约束输入端口延迟,但这个虚拟时钟不作用于你当前综合的子模块。
我的理解是这样。
 楼主| 发表于 2022-8-2 15:44:51 | 显示全部楼层


xingyun666666 发表于 2022-8-2 14:39
保守一点,7/3开吧
--jake哥,这个其实一直是我很懵懂的地方,做了很多项目,有些设计拿到前端的SDC,看到 ...


指正我想说的是master clock。
主要对部分设计综合吧,虚拟时钟不作用在这部分设计的port or pin 上。
但可以影响I/O口的时序。
发表于 2022-8-2 15:59:17 | 显示全部楼层


挽梦夏已深 发表于 2022-8-2 01:26
比如一个设计模块下有多个子设计模块,并且由不同的clk控制,这些clk由domain clk分频得到。如果你只是综 ...


Rule #1:任何timing分析,首先要确定的是参照(timing reference)。确定了参照,各个delay无非就是加加减减。
对于一个block的I/O,最直接的参照就是和数据一起进来或出去的clock。这样做有个小小的缺陷。在synthesis的时候,clock network是ideal的。但到了place & route的CTS阶段,clock network变成了propagated。例如, clock进来后会经过一些clock buffer后才到达reg/CLK。因为这些clock buffer有delay,clock在刚到达block边缘的时间和clock到达锁存输入reg/CLK的时间是不一样的。如果仍旧用clock作为参照,会出现一些模糊,具体就暂时不展开讲了。 这时如果在block外面设一个频率和实际clock一样的virtual clock,并用这个virtual clock作为参照,对I/O进行约束,就会精准一些。Virtual clock不会因为place & route的CTS而改变,是一个绝对的timing reference。

当然,你提到的子模块使用分频后的时钟,但不是I/O的reference clock,这个情况用virtual clock是最自然的。



 楼主| 发表于 2022-8-2 16:19:48 | 显示全部楼层


jake 发表于 2022-8-2 15:59
Rule #1:任何timing分析,首先要确定的是参照(timing reference)。确定了参照,各个delay无非就是加加减 ...


一个实际的参考点这个概念,非常受用,谢谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-5-6 18:26 , Processed in 0.027700 second(s), 7 queries , Gzip On, Redis On.

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