- 博客(14)
- 收藏
- 关注
原创 ECO对DFT scan chain的影响
然后直接把给syn网表用的eco脚本给dft或pr网表用,这时就出问题了,因为dft会打乱寄存器位置,前端串链是依照function的寄存器顺序串的,但对dft或pr网表做eco要重新找dft下的寄存器顺序。首先,断开Q端,但要保持原来的寄存器还在scan chain中,也就是只断开Q到D的线,而不断开Q到SI的线。这是改动最小的方法,对timing的影响也最小,但不能影响整个chain的测试,DFT同事说只需要改pattern,将输出的对应bit mask掉就行。但涉及到寄存器就要考虑对DFT的影响。
2025-11-10 17:40:27
377
原创 亚稳态产生后导致的几种可能情况
摘要:亚稳态由异步采样不满足时序条件导致,可能产生两种后果:1)最终稳定为0/1,若后续逻辑不依赖中间错误数据则不影响功能;2)持续传播引发系统紊乱。同步器设计的关键在于通过多级DFF和限制组合逻辑,为亚稳态提供足够恢复时间,将其控制在同步器内部。设计需综合考虑时钟频率、工艺参数等因素,通过降低恢复时间小于时钟周期,来最小化亚稳态传播概率。
2025-09-11 14:42:35
172
原创 异步复位不用做同步释放的情况
如果如上面代码的情况,是一个set型DFF,在复位释放时,如果切到SDN,Q输出1,如果切到D端,是保持住的(因为你知道软件不可能在刚释放复位的时候就又配置寄存器的D端为0,即使有这个需求也是需要经过apb的几拍延迟的,不可能发生在复位释放的当拍),Q仍然是1,不会发生跳变。可以看到(23行和37行),global_soft_wrstn寄存器的时钟为pclk,复位为rstn,复位域是clk_aon,即rstn从0跳1的相位和clk_aon对齐,与pclk不同步。这个亚稳态怎么理解?需要具体问题具体分析。
2025-08-14 15:22:12
441
原创 DW DMA controller
对source和destination在不同AHB layer的dma传输,可以配置dmac拥有多个master,每个AHB layer对应一个master,这样避免了总线竞争,总线利用率得到提高。多说点:每个layer拥有一个arbiter,仅当多个master想要同时访问相同layer时,arbiter才需要仲裁master的先后。回到上面这张图,source和destination作为两个独立的layer,分别拥有各自的arbiter。,内部可以继续做地址解析,但在AHB上看到的是独立的AHB通道。
2025-08-01 18:18:45
459
原创 SPEF和SDF的区别及使用
(有时可能不包含net),除此之外,SDF还包含了timing check。注意注意,延迟信息本身就包含了SDC信息,原因是延迟计算涉及到路径选择,最简单的比如数据遇到MUX选I0还是I1走,lib中给出的delay都不一样。如果SPEF是原料,那么SDF就是一个精加工的产品,只是有时候可以缺少SPEF的原料。比如DC时没有位置信息,net delay用WLM来估算,那么此时生成的SDF只包含cell delay,这时SDF中不会出现“INTERCONNECT“。描述的是cell+net的。
2025-06-20 18:18:41
1008
原创 为什么hold check不需要考虑jitter等timing signoff三问
T40项目中,timing signoff对setup加的uncertainty为100ps,对hold的uncertainty为50ps。hold uncertainty = margin,且hold margin可以加在launch或capture path上。那么问题来了,为什么hold不需要考虑jitter呢?
2025-06-16 18:08:14
646
原创 Cache物理结构和缓存一致性
易失,断电丢失无需刷新易失,断电丢失需定期刷新(64ms)非易失,断电保留无需刷新读快,写慢NOR快,NAND慢NAND:SSD、U盘NOR:固件存储对于同一个index可以索引出4条cacheline。该4条cacheline不可能都要用,因此还需要地址中的高段tag位域和cache中存的tag做比较,如果两者都相等,并且当前cacheline的“valid”有效,则证明命中该cacheline。一个cacheline其实是存储了一段。
2025-06-13 17:37:58
1077
原创 ECO后formal failed的一种原因
不论是DC、PT还是innovus,在读入这些文件之时都会对netlist和lib做接口检查,mismatch都没法继续玩儿。FM没报什么特别的error,后面match和verify的流程也正常继续,最后报fail,就比较浪费时间。为配合数模接口修改,对网表做ECO,修改RTL和syn网表后,直接开始run formality,有failed点。failed点是ANALOG两个已删除的pin,忽然想起来,改得急,lib中的这两个pin忘记删除了!
2025-05-28 16:17:34
344
原创 library capacitance&transition
前言:因为涉及lib的generation,cap和trans定义无可避免,之前对cap、max_cap、max_trans的定义比较混乱,特别是有的是input cap有的是output cap,最近终于搞清楚了。对于input pin,只关心前级,后级的问题自己有电路可以算,因此不涉及ocap;lib开头会有default_input_pin_cap(可以理解为input cap),但不论是input pin还是output pin,都具有内部固有的cap,对前级相当于负载,是有条件定义清楚的。
2025-05-21 16:49:03
783
原创 libary timing arc
这是一个定义了基于下降沿或上升沿delay和transition的timing arc。f_itrans_ocap是template名,定义了output pin的因变量input transition和output cap。基于该二维因变量,lib列出了ADC_OUT rise/fall情况下的两个自变量delay和transition。
2025-05-12 16:48:03
1142
原创 用liberate生成lib
liberate中的各种命令选项相当多,搞懂还是挺花时间的,这次因为模拟内部只有vendor提供的ADC(已有现成的lib,无完整gds)和其他一些timing不敏感的功能和接口,所以我的策略就是把liberate当作一个大型脚本,生成一个只提供接口信息的lib,然后再写脚本将ADC的详细timing信息和接口信息merge到一起。问了很多做模拟的同事和朋友,似乎只有做对外模拟IP交付的人才会生成lib,对内交付时,要么频率低,不用lib,直接当异步处理,要么就数字自己来搞lib。就试了试,可以顺利跑完。
2025-05-09 16:49:37
2008
2
原创 Crosstalk and Noise-静态时序分析圣经第六章
之前timing signoff 阶段,IP边界的出现了violation,当时IP vendor不提供netlist,后端根据抽取的lib来做STA,但lib check和flatten check肯定存在一定偏差,理解这个偏差就需要了解crosstalk、timing window等概念。找到STA圣经,第六章看完,还顺便解决了我在配合后端做STA收敛的过程中产生的很多其他疑问。比如输出sdf为什么一定要输入sdc?),sdf是否只反标真实的path?
2024-07-18 16:52:15
1966
原创 clock gating check两种类型归类
对于XOR或MUX,clock gating check不会自动推断了,STA会报no clock gating check的warning,如果用户确认需要做check,那么可以用set_clock_gating_check的命令来做约束。clock_gating_check是一种对ICG cell做timing check的约束,可以用户设置,也可由工具推断,目的是保证穿过ICG cell的clock没有glitch。下降沿触发对AND gate clock gating check的时序收敛更友好。
2024-07-15 17:27:20
2937
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅