spyglass CDC方法学
来源:互联网 发布:致远协创软件 编辑:程序博客网 时间:2024/06/06 00:18
- CDC issues
- 亚稳态
- spyglass CDC方法学流程
- sdc2sgdc
- 黑盒子的clock用assume_path约束
- 该goal会产生clockreset的约束文件
- 利用cdc_top_down也可以从soc顶层生成block-level的约束
- 错误报告太多怎么看
- 优先解决
- Ac_Sync_group属于结构性的错误
- Convergence
- Glitches
- DataHold
- Data Correlation and Race Conditions
- Reset同步复位异步释放
- fifo的识别和验证
- 优先解决
- spyglass CDC方法学推荐原则
- RTL阶段执行所有检查
- 先IP验证后SOC整体系统验证
- 基础工作
- 技巧
- 如何屏蔽某些报告信息
- 帮助命令
- rule检查顺序
参考文档来源spyglass工具文档(2015.12)。spydocviewer
clock-domain crossing(CDC).
CDC issues
亚稳态
跨时钟域的异步设计,存在setup和hold-time问题。会导致亚稳态产生。原文档有图有例子。
移除亚稳态,可以用以下方法:
1. 控制信号的同步
利用multi-flop同步。多级触发器,会把亚稳态值转变为干净的0或者1,之后才会传到下游逻辑。
2. 数据信号的同步
数据信号的同步,一般使用enable技术。跨时钟域的数据稳定之后,利用使能使得目的触发器捕获稳定的数据(所以不会产生建立保持时间的时序违反)。fifo,就是依赖格雷码指针的full/empty控制信号作为使能,解决数据的亚稳态问题。
数据同步的关键概念,就是如何保证数据不会在变化的情况下被捕获到。一般的数据跨时钟域,有图。qualifier(英文翻译:有资格的。在这里,一般就是多级触发器同步的控制信号,有责任保证跨时钟域的数据已经稳定可以被目的触发器正常捕获。)
spyglass CDC方法学流程
基于goal目标的流程。
1. cdc_setup
2. cdc_setup_check
建立必需的
- constraits(约束,时钟复位之类的。约束文件扩展名.sgdc)
- parameters(命令参数及options)
sdc2sgdc
sdc文件,可以转换为sgdc文件
黑盒子的clock,用assume_path约束
该goal会产生clock/reset的约束文件
默认可以不加任何约束,利用cdc_setup这个goal可以产生很多约束文件,比如
autoclocks.sgdc
autoresets.sgdc
generated_clocks.sgdc
cdc_setup_generated_clocks.sgdc
waive/set_case_analysis等。
但是需要检查修改确认后,然后放入spyglass执行脚本里。
利用cdc_top_down
也可以从soc顶层生成block-level的约束
clock_reset_integrity
clock/reset的完整性检查cdc_verify
block-level CDC验证cdc_verify_struct
SOC-level CDC验证- Signing-Off
查看报告
错误报告,太多。怎么看?
优先解决
Ac_Sync_group属于结构性的错误
Ac_unsync01 rule
Ac_unsync02 rule
debug方法,可以参考另外一个博客笔记。
Convergence
Glitches
DataHold
Data Correlation and Race Conditions
Reset同步复位异步释放
fifo的识别和验证
spyglass CDC方法学推荐原则
RTL阶段,执行所有检查
fifo或复杂的同步机制,在综合后或布局布线后的netlist是不会检测到的。
先IP验证,后SOC整体系统验证
SOC的特点,是大量IP集成,关注点一般都集中在block boundaries,即子模块接口上的情况。
推荐使用CDC hierarchical Verification Flow。
基础工作
- clocks和sets定义,设计中的端口、内部clocks和reset,要定义完整正确;
- 黑盒子设置
- 设置boundary assumptions。即I/O引脚的设置
- 可以指定设计中定义的合理同步practices。减少不必要的检查工作。
- 图形界面的setup goal是有setup status可以查看质量情况的。
技巧
如何屏蔽某些报告信息
- 屏蔽单个路径的报告
使用cdc_false_path - 屏蔽某个rule的报告
使用waive - 屏蔽某个模块的报告
使用黑盒子
帮助命令
spydocviewer
是分类pdf,可以查询并打开相关pdf文档。
sg_shell下,执行下述命令,看看就知道了。
helphelp helphelp -rules
rule检查顺序
按照上述流程顺序,依次排查warning和error。
基于goal目标的流程。
1. cdc_setup
2. cdc_setup_check
3. clock_reset_integrity
4. cdc_verify
5. cdc_verify_struct
- spyglass CDC方法学
- spyglass CDC入门笔记
- CDC
- CDC
- CDC
- cdc
- CDC
- CDC
- CDC
- spyglass的学习步骤
- [DFT] Spyglass DFT
- 谈谈MFC for WindowsCE中的CDC::GetClipBox方法
- 学汇编的方法
- 学汇编的方法
- 学汇编的方法
- 写作方法学
- 软件工程方法学探究
- 学软件的方法
- cvWarpAffine( src, dst, warp_mat ); //对图像做仿射变换
- 100天土鸡饲养计划(75)
- 当需要切换多个不同的frame
- NOIP 2015 提高组 初赛
- 一起学opencv2(一)
- spyglass CDC方法学
- CUDA 学习(九)、CUDA 内存
- zookeeper学习
- 深究JavaScript——参数传递与变量复制
- cookie.getPath Domain MaxAge 为null的问题
- win7访问virutualbox中的centos下面的redis
- Tomcat 支持 Https
- 算法导论之单源最短路径
- VB从MySQLDB检索数据以及写入数据