【芯片前端】关于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语句放在下面写才是合理的?


相关文章
|
30天前
|
存储 算法 Java
作为Collection接口的子接口,Set不支持重复元素,也不保证元素顺序,适用于需要唯一性约束的场景。
【10月更文挑战第16天】Java的Set接口因其独特的“不重复性”而备受关注。作为Collection接口的子接口,Set不支持重复元素,也不保证元素顺序,适用于需要唯一性约束的场景。其背后的实现机制依赖于哈希表或红黑树等数据结构,通过哈希算法和equals()方法确保元素的唯一性。例如,使用HashSet可以轻松过滤重复的字符串。这种设计使Set在处理唯一数据时高效便捷。
25 3
|
30天前
|
Java
Java Set以其“不重复”的特性,为我们提供了一个高效、简洁的处理唯一性约束数据的方式。
【10月更文挑战第16天】在Java编程中,Set接口确保集合中没有重复元素,每个元素都是独一无二的。HashSet基于哈希表实现,提供高效的添加、删除和查找操作;TreeSet则基于红黑树实现,不仅去重还能自动排序。通过这两个实现类,我们可以轻松处理需要唯一性约束的数据,提升代码质量和效率。
35 2
|
1月前
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其独特的“不重复性”要求,彻底改变了处理唯一性约束数据的方式。
【10月更文挑战第14天】从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其独特的“不重复性”要求,彻底改变了处理唯一性约束数据的方式。本文深入探讨Set的核心理念,并通过示例代码展示了HashSet和TreeSet的特点和应用场景。
19 2
|
5月前
|
应用服务中间件 开发工具 nginx
Mac M1/M2/M3 芯片环境配置以及常用软件安装-前端
Mac M1/M2/M3 芯片环境配置以及常用软件安装-前端 最近换了台新 Mac,所有的配置和软件就重新安装下,顺便写个文章。
540 1
|
6月前
|
资源调度 前端开发
编译第三方前端项目时候出现Syntax Error: TypeError: Cannot set properties of undefined (setting ‘parent‘)
编译第三方前端项目时候出现Syntax Error: TypeError: Cannot set properties of undefined (setting ‘parent‘)
470 0
|
3月前
|
前端开发 芯片
用于生物电测量的低功耗八通道模拟前端芯片 Low-Power, 8-Channel AFE for Biopotential Measurement
此低功耗八通道模拟前端芯片专为生物电测量设计,集成了八个低噪声放大器与24位高精度ADC,支持125SPS至8kSPS数据速率及多种增益设置。芯片配备内置时钟、参考电压源与断线检测等功能,并兼容多种电极类型。适用于心电图、肌电图和个人健康监测设备,采用VQFN与TQFP封装,尺寸紧凑,确保医疗设备兼具性能与便携性。
|
3月前
|
编解码 前端开发 芯片
全国产化用于生物电测量的低功耗双通道模拟前端芯片 Low-Power, 2-Channel AFE for Biopotential Measurement
这款低功耗双通道模拟前端芯片专为生物电测量设计,集成两个低噪声放大器与24位高精度ADC,支持125至8k SPS的数据速率及多种增益设置。工作电压2.7至3.3V,内置RLD、断线检测等功能,并具备SPI接口。适用于穿戴式健康监测设备、运动智能装备及医疗仪器,如心电图监测。提供TQFP(32)与VQFN(32)封装选项,尺寸紧凑,满足便携与小型化需求。
|
5月前
|
SQL 关系型数据库 MySQL
MySQL外键约束行为解析:CASCADE, NO ACTION, RESTRICT, SET NULL
MySQL外键约束行为解析:CASCADE, NO ACTION, RESTRICT, SET NULL
353 0
|
6月前
|
存储 前端开发 索引
【Web 前端】ES6中,Set和Map的区别 ?
【5月更文挑战第1天】【Web 前端】ES6中,Set和Map的区别 ?
|
前端开发 芯片
【芯片前端】延迟一拍出数的握手型ram结构的一次探索
【芯片前端】延迟一拍出数的握手型ram结构的一次探索
107 0

热门文章

最新文章