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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 11633|回复: 14

[求助] SGDC 约束应该怎么写呀

[复制链接]
发表于 2021-8-20 15:37:50 | 显示全部楼层 |阅读模式
悬赏60资产已解决
一般的约束应该怎么写呀,SpyGlass做CDC时候的约束有关时钟复位的处理
black box怎么处理
还有就是一般的assume_path,abstract_port,quasi_static,set_case_analysis是怎么用的呀

最佳答案

查看完整内容

看看文档。 assume_path -name -input -output 就是通过assume path 告诉工具 module 的q和d是一个path,那么假如d是的clock是clk_a,就穿过了这个bbox到达q, q也属于clk_a。 quasi_static : refers to flip-flop and take constant values in a design. (认为是一个静态flop输出信号) set_case_analysis: 就是把一个可变的值只取其中一个值来分析。 set_case_analysis -value 0 -name : 把signal_a 固定为0分析。 ...
发表于 2021-8-20 15:37:51 | 显示全部楼层
看看文档。
assume_path -name <mod_name> -input <d> -output <q>
就是通过assume path 告诉工具 module <mod_name>的q和d是一个path,那么假如d是的clock是clk_a,就穿过了这个bbox到达q, q也属于clk_a。

quasi_static : refers to flip-flop and take constant values in a design. (认为是一个静态flop输出信号)
set_case_analysis: 就是把一个可变的值只取其中一个值来分析。
set_case_analysis -value 0 -name <signal_a> : 把signal_a 固定为0分析。

 楼主| 发表于 2021-8-20 23:00:33 | 显示全部楼层


   
loglong 发表于 2021-8-20 16:55
看看文档。
assume_path -name  -input  -output
就是通过assume path 告诉工具 module 的q和d是一个path ...


谢谢版主.资料我看有前辈发的下载了,看了一段时间,有些不太理解.我了解到,一般SGDC自己写的话,基本的就是定义时钟以及复位信号.
然后对于bbox的端口进行处理约束
就是在约束的时候,不太能确切的知道使用那个约束对于某种特定的情况

 楼主| 发表于 2021-8-24 17:43:46 | 显示全部楼层
在设计时候,应该将CRG模块设为bbox吗?要是设的话,一般怎么CRG模块里的时钟与复位,怎么下约束呀
发表于 2021-8-27 10:22:08 | 显示全部楼层
一般通过综合的约束文件sdc直接转sgdc,然后再根据需要适当增减。时钟定义,重点要告诉工具哪些是时钟,以及时钟之间是同步的还是异步的,这样工具才能对异步时钟之间的路径检查cdc。

assume_path与absrtact_port,一般用于block box的,比如模拟IP,用于告诉工具block box的port都是哪个时钟域的,这样工具才能对这些port检查cdc。
quasi_static与set_case_analysis,一般用于控制芯片工作模式选择或者关键MUX选择,比如test_mode为1表示scan mode,test_mode为0表示user mode,一般会将test_mode设置为0来跑cdc,避免不能同时出现的模式之间的时钟路径分析。

 楼主| 发表于 2021-8-27 17:59:27 | 显示全部楼层


   
coolbear2021 发表于 2021-8-27 10:22
一般通过综合的约束文件sdc直接转sgdc,然后再根据需要适当增减。时钟定义,重点要告诉工具哪些是时钟,以 ...


一般感觉转来的不怎么敢直接用,PT会将异步路径设为false_path,而异步就是CDC需要检查的,而且没有复位。DC吐出来的还好。感谢,这段时间也学习了一些,嘻嘻,谢谢老哥
发表于 2022-3-11 10:30:03 | 显示全部楼层


   
ty_xiumud 发表于 2021-8-27 17:59
一般感觉转来的不怎么敢直接用,PT会将异步路径设为false_path,而异步就是CDC需要检查的,而且没有复位 ...


请问,你说的PT将异步路径设为false_path,是PT根据clock group自动识别的?还是手动写的FALSE_PATH? 想请教下 PT 和 SPYGLASS没有直接关系,为什么PT的false_path会影响SGDC?
发表于 2022-3-11 10:38:18 | 显示全部楼层


   
ty_xiumud 发表于 2021-8-27 17:59
一般感觉转来的不怎么敢直接用,PT会将异步路径设为false_path,而异步就是CDC需要检查的,而且没有复位 ...


请问,你说的PT将异步路径设为false_path,是PT根据clock group自动识别的?还是手动写的FALSE_PATH? 想请教下 PT 和 SPYGLASS没有直接关系,为什么PT的false_path会影响SGDC?
 楼主| 发表于 2022-3-11 11:14:56 | 显示全部楼层


   
guidoahead 发表于 2022-3-11 10:38
请问,你说的PT将异步路径设为false_path,是PT根据clock group自动识别的?还是手动写的FALSE_PATH? 想 ...


SPYGLASS可以做LINT与CDC对吧,CDC主要是做一个跨时钟域的检查,但是你静态时序分析是只能做一个同一个时钟域内的检查的吧。我感觉这是是有点矛盾的,个人理解,我也是开始做
发表于 2022-3-18 18:12:21 | 显示全部楼层
本帖最后由 Love24 于 2022-3-18 18:16 编辑

1、Lint的话不需要约束,直接跑就行,主要检查语法;
2、CDC的话,不需要太复杂的约束,在约束中指出哪些信号是时钟、哪些是复位、模块端口信号分别属于哪个时钟域就行;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-8 10:24 , Processed in 0.127256 second(s), 5 queries , Gzip On, Redis On.

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