20211109:DC综合的一些简单概念理解记录

本文总结了动态功能验证与时序验证的区别,探讨了建立时间与保持时间的概念及其修正方法,包括添加BUF、选择更强驱动能力的cell以及usefulskew。此外,还介绍了跨时钟域中处理亚稳态的三种策略,如异步FIFO、数据方向判断和握手信号。通过这些知识,帮助读者深入理解数字逻辑设计中的关键验证和时序问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DC综合的一些简单概念总结


首先写在最前面,关于我的个人博客只是一个学习记录,方便我在需要回顾时可以更快的找出这些知识点来回顾,而不是单纯的为了记录而记录。各位共勉!

问题描述

  1. 动态、静态的功能验证和时序验证明辨。
  2. 建立时间和保持时间的明确定义以及如何去修正这些violation。
  3. 跨时钟域后对亚稳态的处理方法。

分析与解答

  1. 四种验证或分析的辨析
动态功能验证最为常见的验证,输入激励根据输出进行验证功能是否正确
动态时序验证加入综合后的sdc文件来进行验证,也就是所谓的后仿,一般只验证主要功能
静态功能验证前提是做完动态验证,也就是形式验证。
静态时序验证所谓的STA,根据foundry厂的工艺库进行setup和hold的仿真,能仿真全部路径,速度快。
  1. 建立时间与保持时间的理解
    这个概念实际上比较基础,不能说简单,很多人对其的概念并不到位,会导致后续一系列的概念出问题,我找到比较合适的解释是在菜鸟教程,贴出网址:setup_hold_time
    主要说一下建立时间和保持时间的修的方法,这里不是说在版图工程师那边根据布局布线进行的预留进行修,而是说单纯我们设计端的问题,总结就三种方法,常见的两种先说一下,第一种,加BUF,这个乍看不太理解,加buf岂不是增加延迟了,而实际上BUF的延迟在低于几个G的时钟下的延迟是非常小的,但由于BUF阻断,导致了将线延迟拆解开来,再根据单位长度的寄生电容和电阻的数量不变的特性,这样的打断下,隔断下的寄生电容和电阻是相乘之后再乘一个系数来计算延迟的。因此打断可以得到更小的延迟。这样就留出了时间给setup时间。第二种,使用驱动能力更强的cell,根据器件库来选择,这个事一般版图工程师也会采用这个办法来修。这两种办法均是属于面积换速度的方法。这个就突出一个鱼和熊掌不可兼得。第三种方法,useful skew,简单来讲就是将我们capture register上时钟路径后延,给本来不满足的setup腾时间。总体来讲设计端常见的就这三种方法,第三种一般用不到,第一种和第二种非常常见,务必熟练掌握。
  2. 跨时钟域后对亚稳态的处理方法。
    三种方法,第一种,使用异步FIFO,并且用格雷码进行编码。第二种,根据数据的方向,如果是慢时钟往快时钟传,那么打两拍即可。第三种,快传慢,那么需要一个握手信号来确认,让握手信号保持一段时间,确保慢时钟正确收到数据信号。

每日总结

  1. 最近的时间给的比较紧张,总之就是又到了忙的不可开交的时候了,尽量保持每日锻炼,每日学习记录吧。
  2. 怕死,先睡了,晚安自己。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IMMUNIZE

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值