【芯片前端】关于set_input_delay/set_output_delay慢信号约束到快时钟的思考

简介: 【芯片前端】关于set_input_delay/set_output_delay慢信号约束到快时钟的思考

前言

继续学习sdc的配置知识,这次思考的缘由是在写上一篇 【芯片前端】sdc学习日常——端口delay的正向设置与反向设置 中,写了这样一句话“还有一种方式,是把约束更恶劣的设置放在下面写,这样即使sigx被约束了两次,也会按更恶劣的配置进去。我理解更恶劣的应该是慢时钟的设置”。

但事实上写这句话时,我是非常困惑的,因为这和我之前工作里项目里的经验不一样的。我记得很清楚,之前的要求是把快时钟port的约束放在后面,这样当一个信号误被约束在两个port中时,令其约束在快时钟域的set_input_delay/set_output_delay中。在之前的实操中也一直是这样做的,当然我同时设置了-add并且进行细致的port review来保证没有错约和漏约的问题。


错约的后果

因此这次想讨论的问题就是,如果有错误约束,那么将慢信号约到快时钟域和快信号约到慢时钟域,哪一种会造成问题。


以set_input_delay示例,书中对其有明确的解释:



那么很明确的,input_delay =  clk2Q + C1 + C2的时间,换句话说留给C1的时间就是clk_period - input_delay。通过dc timing report也可以印证此事:



从report的计算里也可以很明确的看出,计算时序时是通过endpoint的时钟clk_period - input_delay来计算的时序违规。


在实际的sdc约束中,一般会以对应port的clk_period * ratio来设置delay。那么如果将快信号约束到慢时钟,clk_period * ratio会偏大,等效于输入信号的时序预期更加恶劣;将慢信号约束到快时钟,clk_period * ratio会偏小,等效于输入信号的时序预期更加乐观。而在更加恶劣的预期下match了时序要求,在真实情况下也必然是match的。而在乐观预期下match时序了,在真实情况delay更大的场景下,就有可能出现时序问题。


所以是不是说,应该将慢时钟域的set_delay语句放在下面写才是合理的?


相关文章
|
3月前
|
应用服务中间件 开发工具 nginx
Mac M1/M2/M3 芯片环境配置以及常用软件安装-前端
Mac M1/M2/M3 芯片环境配置以及常用软件安装-前端 最近换了台新 Mac,所有的配置和软件就重新安装下,顺便写个文章。
338 1
|
4月前
|
资源调度 前端开发
编译第三方前端项目时候出现Syntax Error: TypeError: Cannot set properties of undefined (setting ‘parent‘)
编译第三方前端项目时候出现Syntax Error: TypeError: Cannot set properties of undefined (setting ‘parent‘)
370 0
|
1月前
|
前端开发 芯片
用于生物电测量的低功耗八通道模拟前端芯片 Low-Power, 8-Channel AFE for Biopotential Measurement
此低功耗八通道模拟前端芯片专为生物电测量设计,集成了八个低噪声放大器与24位高精度ADC,支持125SPS至8kSPS数据速率及多种增益设置。芯片配备内置时钟、参考电压源与断线检测等功能,并兼容多种电极类型。适用于心电图、肌电图和个人健康监测设备,采用VQFN与TQFP封装,尺寸紧凑,确保医疗设备兼具性能与便携性。
|
1月前
|
编解码 前端开发 芯片
全国产化用于生物电测量的低功耗双通道模拟前端芯片 Low-Power, 2-Channel AFE for Biopotential Measurement
这款低功耗双通道模拟前端芯片专为生物电测量设计,集成两个低噪声放大器与24位高精度ADC,支持125至8k SPS的数据速率及多种增益设置。工作电压2.7至3.3V,内置RLD、断线检测等功能,并具备SPI接口。适用于穿戴式健康监测设备、运动智能装备及医疗仪器,如心电图监测。提供TQFP(32)与VQFN(32)封装选项,尺寸紧凑,满足便携与小型化需求。
|
4月前
|
存储 前端开发 索引
【Web 前端】ES6中,Set和Map的区别 ?
【5月更文挑战第1天】【Web 前端】ES6中,Set和Map的区别 ?
|
11月前
|
前端开发 芯片
【芯片前端】延迟一拍出数的握手型ram结构的一次探索
【芯片前端】延迟一拍出数的握手型ram结构的一次探索
|
11月前
|
前端开发 芯片
【芯片前端】保持代码手感——一对多的握手拆分模块
【芯片前端】保持代码手感——一对多的握手拆分模块
|
4月前
|
存储 前端开发 索引
前端知识笔记(三)———Map和Set有什么区别?
前端知识笔记(三)———Map和Set有什么区别?
84 0
|
11月前
|
前端开发 调度 芯片
【芯片前端】根据数据有效选择输出的握手型FIFO结构探究
【芯片前端】根据数据有效选择输出的握手型FIFO结构探究
|
7天前
|
SpringCloudAlibaba JavaScript 前端开发
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
分布式组件、nacos注册配置中心、openfegin远程调用、网关gateway、ES6脚本语言规范、vue、elementUI
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架