- 博客(607)
- 收藏
- 关注
原创 跟着老实人领导会受窝囊气
朋友吐槽说:"我们数字设计领导太老实了,项目会上被模拟领导骂得狗血淋头,还得点头哈腰说'是我们考虑不周'。听完我就笑了,这不是老实人领导的通病吗?
2025-04-25 12:29:41
262
原创 DRAMSys4.0:开源内存子系统设计探索框架
在当今复杂的计算环境中,内存系统设计越来越成为影响整体性能的关键因素。今天我想介绍一个非常实用的工具——DRAMSys4.0,它是一个灵活、快速的开源DRAM子系统设计探索框架。
2025-04-24 16:47:54
312
原创 别慌,新人只是在抢你不想干的活
入职两年,终于能独立负责一个芯片模块的设计了。每天忙得不可开交,但至少有成就感。然后,一个新人来了。领导说:"带带他,double check一下。瞬间心凉了半截。这是要把我替换掉?我辛辛苦苦打下的"江山"就这么拱手让人?其实,很多老员工都有过这种恐慌。特别是在芯片行业,技术迭代快,总担心被新人"卡位"。但冷静想想,这真的是坏事吗?虽然公司确实是想找个备胎。
2025-04-24 12:20:07
376
原创 在面对设计缺陷时,我们不要指责
在芯片行业,我们面对的不是简单的对错问题,而是无数的权衡和取舍。最后,作为芯片工程师,我们都知道一个道理:最好的系统不是没有缺陷的系统,而是能够不断自我修正和进化的系统。你想一想,当别人说"你这个地方做错了"时,即使是最资深的工程师也会下意识地进入防御状态。当发现同事的方案存在问题时,很多工程师的第一反应是直接指出:"这个地方你设计得不太合理",或者更直接地:"这里有bug"。毕竟,一个成功的芯片背后,不仅仅是优秀的技术,还有良好的团队互动。我们都是在一艘叫"项目"的船上航行的水手,而不是互相审判的法官。
2025-04-24 07:30:48
127
原创 [AI速读]DDR4内存条中VREF优化技术
VREF是参考电压的简称,在内存系统中起着至关重要的作用。与DDR3不同,DDR4采用了内部Data参考电压(VREFDQ)生成方案,而不是像DDR3那样由外部设备提供固定不变的电压。
2025-04-23 20:36:10
380
原创 如何解决设计中的Hold时序违例
什么是hold违例?简单来说,hold违例发生在数据从发送端到接收端的时间太短,导致接收端无法正确捕获数据。本应该被后续的触发器在下一个周期采样,结果可能在当拍就被采样,甚至还会导致亚稳态。
2025-04-23 19:08:06
213
原创 什么是静态时序分析(STA)?
静态时序分析(Static Timing Analysis,简称STA)是一种验证设计时序性能的方法,它通过检查所有可能的路径来发现时序违例。STA将设计分解为时序路径,计算每条路径上的信号传播延迟,并检查设计内部和输入/输出接口的时序约束违例情况。
2025-04-23 07:43:23
521
原创 DRAM刷新时序参数解析:tRFC、tREF和tREFI
聊聊DRAM中几个容易被忽略但非常重要的参数:tRFC、tREF和tREFI。DRAM存储数据的方式很特别,它用小电容来存储数据。简单来说,有电表示1,没电表示0。但是这些电容会慢慢漏电,如果不定期"充电"(刷新),数据就会丢失。这就是为什么DRAM被称为"动态"内存。
2025-04-22 20:29:25
509
原创 为什么工程师一到体检就像面临TAPE OUT最后一天
芯片工程师体检前的焦虑感,可能比修复一个Timing violation还要强烈。平时能扛通宵fix RTL,到了体检前一天就开始焦虑:"能不能推迟一天啊,我昨晚为了改bug睡太晚了......"是的,我们芯片人都有这种微妙的恐惧。体检前不敢熬夜,不敢吃零食,不敢喝酒,平时灌咖啡续命的习惯也得强行中断。就像芯片测试前要准备好测试向量一样,体检前也有一套"准备流程"。体检报告就像一块tape out回来的芯片,盖上了医院的章,黑白分明地展示着你的"性能指标"。
2025-04-22 12:07:58
297
原创 那不是幸福,只是极短暂的成就感
把工作当工作,准时上下班,拒绝无意义的加班,给自己留出空间去感受生活的其他美好。每天早上醒来,拖着疲惫的身体去公司,盯着屏幕上那些看不完的RTL代码,解决永远解决不完的时序问题,跟老板解释为什么这个bug还没修好。表面上看,我们拿着体面的薪资,朋友眼中的"高薪技术人才",但实际上,我们在用生命和健康换钱。真正的快乐来源于家人的陪伴、朋友的聚会、自己的兴趣爱好,甚至只是一个悠闲的周末早晨。连续加班到凌晨的tape-out,是无休止的仿真和验证,是与EDA工具的无尽纠缠。工作只是谋生的手段,不是生活的全部。
2025-04-22 07:26:06
174
原创 静态时序分析 Q&A(17)
A1: 基于锁存器的时间借用是一种时序优化技术,允许在锁存器之间的路径上灵活分配时间。当一个路径段需要额外时间时,可以从相邻路径段"借用"时间。例如,如果一个锁存器阶段需要额外的处理时间,它可以从下一个锁存器阶段借用时间,只要整体时序约束仍然满足。这种技术使设计更加灵活,允许某些关键路径获得更多处理时间,从而提高整体性能或降低功耗。文档中的LINEAR_DECODER示例展示了这种技术的应用。
2025-04-21 21:52:59
322
原创 静态时序分析 Q&A(18)(End)
A1: 静态时序分析是一种在IC设计中用于计算和验证信号传播延迟的技术。它通过分析设计中所有时序路径的延迟信息,帮助工具优化设计并改善关键路径的slack。具体来说,时序分析器计算每个门和互连的延迟,然后追踪关键路径,计算信号到达兴趣点的最小和最大到达时间。这些信息被用来评估设计约束并生成时序报告。静态时序分析不需要实际运行电路,而是通过数学模型预测电路性能,这使得它在设计早期就能发现潜在的时序问题,从而减少设计周期和成本。
2025-04-21 21:52:59
1062
原创 静态时序分析 Q&A(15)
A1: 图形用户界面(GUI)在时序分析中的主要作用是以图形化方式查看设计数据和时序分析结果,包括原理图(schematics)、布局视图(layout views)、直方图(histograms)、数据表(data tables)和报告(reports)。通过GUI,用户可以直观地理解设计中时序问题的性质,包括问题类型、数量、严重程度以及导致时序问题的路径(paths)、单元(cells)和网络(nets)的位置。
2025-04-21 21:52:59
914
原创 静态时序分析 Q&A(16)
A2: 时间借用是锁存器设计中的一种技术,允许一个时钟周期从下一个周期"借用"时间。如果通向锁存器数据引脚的路径太长,可以从下一个周期借用时间来延长锁存器启用的时间。平衡连续锁存器路径阶段之间的时序裕量优化接近临界的路径减少延迟成本允许某些路径超过单个时钟周期的时间约束分析工具使用时间借用来分析电平敏感锁存器的时序。当锁存器透明时(在有效时钟脉冲期间),输入数据直接传播到输出。如果一个阶段的组合逻辑延迟较长,可以从下一阶段借用时间,使设计整体满足时序要求。
2025-04-21 21:52:59
400
原创 静态时序分析 Q&A(10)
A: Case Analysis是一种在时序分析中设置信号恒定逻辑值的技术。分析特定操作模式下的时序路径禁用不相关的时序路径模拟测试模式或特定工作状态启用特定电路组件的特定模式(如RAM的读/写模式)使用命令可以设置输入端口、引脚或内部节点的逻辑常量值。设置后,这些值会通过设计传播,可能禁用某些时序弧,从而影响时序分析结果。
2025-04-21 07:09:18
289
原创 静态时序分析 Q&A(8)
A1: Parametric On-Chip Variation (POCV) 分析是Design Compiler Graphical和IC Compiler工具中的一种可选时序分析模式,它采用统计方法来建模芯片内变异。在这种模式下,工具会将到达时间、所需时间和裕量计算为统计分布,而不是固定的最小值和最大值。传统min-max延迟分析指定时序弧的绝对最小和最大延迟值,实际延迟在这两个极端值之间具有相等的概率,且不可能超出这些极端值。
2025-04-21 07:09:18
123
原创 静态时序分析 Q&A(12)
A1: Back-annotation是在数字电路设计中的一个重要过程,它指的是将布局布线(layout)后得到的实际延迟、电容、电阻等参数值反馈到前端设计工具中。这个过程能让设计者更准确地了解电路的实际时序表现,而不仅仅依赖于前端设计阶段的估计值。Back-annotation通常通过SDF(Standard Delay Format)文件实现,能够提高时序分析的准确性,使设计优化更有针对性,帮助设计者在电路最终制造前发现并解决潜在的时序问题。
2025-04-21 07:09:18
307
原创 静态时序分析 Q&A(11)
A: Back-Annotation是从外部文件读取电阻、电容和延迟值到时序分析工具的过程。它允许设计者在物理设计的每个阶段(布局规划、布局、全局布线和详细布线)后更准确地分析电路时序。通过Back-Annotation,可以获取更精确的实际延迟信息,而不是仅依赖于初步估计,从而提高时序分析的准确性。这对于验证设计是否满足时序要求至关重要,也有助于指导后续的设计优化过程。
2025-04-21 07:09:18
297
原创 静态时序分析 Q&A(13)
check_timing: 检查约束问题,如未定义的时钟、未定义的输入到达时间和未定义的输出约束report_constraint: 报告设计是否满足时序、面积、功耗和设计规则约束report_timing: 提供具有最差时序裕量的时钟和数据路径的详细点对点信息report_delay_calculation: 报告单元或网络时序延迟的计算get_timing_paths: 创建时序路径集合供进一步分析。
2025-04-21 07:09:18
203
原创 静态时序分析 Q&A(9)
A1: Input delay是指输入端口上的转换时间相对于时钟边沿的到达时间。在时序分析中,它用于指定连接到输入端口的外部路径的时序。当使用命令时,设计者可以指定延迟值是否包含网络延迟或源延迟。Input delay对于准确模拟芯片外部路径至关重要,因为设计工具需要了解外部信号何时到达芯片边界,以便正确分析从输入端口到内部寄存器的路径是否满足时序要求。A3: Output delay表示从输出端口到外部寄存器的时序路径。
2025-04-21 07:09:18
111
原创 静态时序分析 Q&A(14)
A1: report_timing是一个用于生成时序路径报告的命令,它的主要功能是显示设计中的时序路径信息,包括起点、终点、延迟、所需时间和时序裕量(slack)。它可以报告具有最差最大延迟(建立时间)裕量的路径,这些路径具有最长延迟和最早所需时间。通过各种选项,用户可以定制报告的内容和格式,例如显示完整路径(-path full_clock)、仅显示数据路径(-path only)或仅显示端点信息(-path end)。
2025-04-21 07:09:18
230
原创 别总对新人说教,你也不是啥都懂
在芯片这个圈子里,见过太多这样的场景:资深工程师坐在会议室的中央位置,神情严肃地对刚入行的新人说:"你这个方案根本行不通,我之前就试过了。还有:"你们这代人就是缺乏专业态度,流片前这个场景都没想到。听起来很熟悉吧?作为一个在芯片行业摸爬滚打多年的人,我真想对这些"老兵"们说一句:兄弟,差不多得了。
2025-04-20 19:26:44
246
原创 我们应该鼓励验证工程师吹毛求疵
"结果呢,这个"小问题"在后续流片后可能导致芯片在特定工作模式下的功能问题。但现实是,在项目紧张的时候,验证常常是第一个被压缩的环节。这就像是家里的保险箱,平时看着就是个铁盒子占地方,但一旦遇到意外,你才明白它的价值。那些让设计师们头疼的"无理取闹"的验证要求,其实是在为产品筑起一道防线。毕竟,在芯片这个没有退路的行业里,一个较真的验证工程师,可能是我们避免灾难的最后一道防线。但在这个平衡中,我们至少应该给那些"吹毛求疵"的验证工程师足够的尊重和话语权。所以,验证团队的"过度谨慎"其实是整个项目的安全网。
2025-04-20 13:09:51
235
原创 静态时序分析 Q&A(2)
SDC命令包括创建时钟(create_clock)、设置时钟延迟(set_clock_latency)、指定输入延迟(set_input_delay)等。可以通过set_clock_latency、set_clock_uncertainty和set_clock_transition命令指定非零值来模拟实际时钟网络的特性。例如,在一个设计中有两个来自不同来源的时钟(一个是系统时钟,一个是外部接口时钟),它们之间没有相位关系,就需要使用此命令标记它们为异步时钟组。
2025-04-20 10:39:47
283
原创 静态时序分析 Q&A(7)
这些参数定义了芯片预期工作的条件。这些参数的不同组合可以表示最佳情况(best case)、典型情况(typical case)和最差情况(worst case)等不同工作环境,或者商业级、工业级和军用级等不同规格要求。A2: Best-case/worst-case分析模式是一种时序分析模式,工具会同时检查电路在两种极端操作条件下的情况:minimum和maximum。与单一操作条件分析或best-case/worst-case分析不同,OCV考虑了芯片内部不同区域可能存在的操作条件变化。
2025-04-20 10:39:47
284
原创 静态时序分析 Q&A(4)
这个命令指定在AND门输出处的时钟是一个在源时钟上升沿触发的高电平脉冲。set_sense命令支持四种脉冲类型:rise_triggered_high_pulse、rise_triggered_low_pulse、fall_triggered_high_pulse和fall_triggered_low_pulse。A2: 使用create_generated_clock命令定义pulse clock时,需要利用-edges选项并重复某个边沿数字,这样可以确保正确检查源时钟和脉冲时钟之间的延迟。
2025-04-20 10:39:47
276
原创 静态时序分析 Q&A(5)
权重越高,工具应用于该group的优化努力就越大。例如,对一个group设置更高的权重意味着合成工具将尝试以牺牲低权重group的slack为代价来减少该group中路径的timing violation。A2: Path Group是合成工具组织timing paths的一种方式,它影响设计的优化和timing reports的生成。默认情况下,每个时钟在设计中都有一个path group,所有在path endpoint使用该时钟的timing paths都属于该时钟的path group。
2025-04-20 10:39:47
321
原创 静态时序分析 Q&A(3)
A1: 在时序分析中,准确指定时钟和时钟效应是至关重要的,因为这直接影响电路的正确性和性能。准确描述时钟的特性(如周期、占空比、相位关系)以及时钟效应(如latency、uncertainty、skew等)能够确保设计工具正确评估电路的时序行为,特别是在设置时间(setup time)和保持时间(hold time)的验证中。这三个特性共同影响着时序分析的准确性。在设计流程中,通常先使用ideal clock进行初始约束,然后在CTS和布局后转向propagated clock以获得更准确的时序分析。
2025-04-20 10:39:47
515
原创 静态时序分析 Q&A(6)
A1: Multicycle path是一种时序例外设置,允许特定路径在多个时钟周期内完成,而不是默认的单个周期。对于setup例外,我们使用。会导致hold关系自动向后移动到捕获沿之前的一个周期,这可能不是设计所需的正确关系。命令,这样会将hold关系的捕获沿向后移动一个时钟周期,从虚线箭头移到实线箭头位置,确保正确的hold检查。时,setup检查会在第二个时钟沿进行,而hold检查会自动调整到先前的capture edge。参数的整数值指定相对于有效的setup关系,要将捕获沿向后移动的时钟周期数;
2025-04-20 10:39:47
374
原创 静态时序分析 Q&A(1)
这实质上是在验证数据从一个时序元件传播到下一个时序元件的过程中,能否在规定的时钟周期内完成传输,并满足目标时序元件的建立时间(setup time)和保持时间(hold time)要求,从而确保数据能被可靠地锁存。A1: 静态时序分析是一种在最坏情况条件下,通过检查所有可能路径的时序违例来验证设计时序性能的方法。它考虑每个逻辑元件中可能的最坏延迟,但不考虑电路的逻辑操作。A2: 静态时序分析试图回答的核心问题是:"在所有可能的条件下,当时钟边沿到达时,正确的数据是否会出现在每个同步设备的数据输入端?
2025-04-20 10:39:47
209
原创 为何有些人能一直拿A
毕竟芯片设计不是简单活,从RTL到验证,从时序收敛到功耗优化,每个环节都能让人掉几根头发。归根结底,在芯片这个需要长期积累的行业里,那些能持续拿A的人并不是单纯靠聪明或者努力,而是找到了适合自己的节奏和方法。而那些常拿A的人,他们会把经验上升到方法论的高度,形成自己独特的思维框架。当大家还在为了某个奇怪的仿真结果挠头时,他们已经开始思考几种可能的原因,并且制定排查计划。这背后反映的,或许是我们行业存在的一些问题——高强度工作常态化,对身体透支的忽视。那些连续拿A的人,付出的往往不仅仅是才智,还有健康。
2025-04-19 19:24:26
243
原创 DDR内存的Burst Length和Prefetch关系浅析
内存中的指一次内存访问操作中连续传输的数据数量。Prefetch则是内存芯片内部一次从存储阵列获取的数据位数。这两个参数看似独立,实际上有着紧密的关系。
2025-04-19 14:32:20
286
原创 为何我们总在帮别人实现梦想?
最讽刺的是,我们这些芯片工程师,拿着微薄的薪水,天天加班,是为了帮谁实现梦想?七年过去了,公司还在苦哈哈地找下一轮融资,而你的同学已经在大厂升到了总监。五年过去了,第二代产品勉强做出来了,但卖不出去,因为市场已经被友商占领。不要被"情怀"绑架,我们只是普通人,需要为自己的职业负责。三年过去了,公司那颗"改变世界"的芯片连流片都没完成。有的人留下了技术,有的人什么也没留下。看看公司的产品和市场规划,是踏实的还是画大饼的?小公司技术再好,如果没后台支持,很难突围。你的青春,就这么给公司当了免费"期权"。
2025-04-18 18:18:38
294
原创 DDR设计中的Write Leveling技术:改善DQ时序
今天和大家分享一下DDR内存设计中一个重要的技术 - 写平衡(Write Leveling)。这项技术对于高速DDR内存的正常工作至关重要。
2025-04-18 07:44:26
305
原创 换领导就换绩效?芯片人的职场生存法则
说实话,这种担心不无道理。新官上任三把火,很多新领导为了树立威信,往往会重新洗牌,按照自己的标准重新评价团队。在芯片这种高度专业化的行业里,不同的领导确实可能有不同的技术偏好和管理风格。结果公司重组,来了个新领导,对这块不太感冒,比较在意数字侧逻辑。老王那段时间愁得不行,天天加班加点,就怕自己的A保不住。毕竟咱们都懂,在这个行业里,绩效评级关系到奖金、升职,甚至有时候还关系到能不能继续在这个岗位上干下去。在咱们芯片这一行,经常会听到这样的感慨:"唉,领导换了,我的A是不是也保不住了?
2025-04-17 16:53:05
74
原创 为什么你的验证环境总在走向混乱?
作为芯片人,你是否有过这种感受:刚搭好的验证环境清清爽爽,脚本运行顺畅,工具链配置明确,bug复现率高。三个月后再看,满是临时方案的补丁,配置文件里注释掉的代码比正常代码还多,没人敢动那个"能跑就行"的测试脚本...这不是你一个人的问题,这是数字芯片行业的通病,更是一种必然规律。
2025-04-17 12:22:06
351
原创 DDR数据总线的双向通信
与只能单向传输的地址总线不同,数据总线是双向的,负责在DRAM和控制器之间来回传输数据。当需要从DRAM读取数据时,DRAM驱动数据总线将存储的数据发送出去。增加系统中的"ranks"(等级) - 这意味着让数据信号在多个DRAM之间共享,而不是保持控制器与一个DRAM之间的点对点连接。DQS信号用于同步DQ和DM信号的采样,这些信号在时钟的上升沿和下降沿都会被采样。在实际设计中,多负载(ranks)的使用以及信号完整性效应都需要特别注意。根据使用的DRAM类型,每个DQS信号可能对应四个或八个DQ信号。
2025-04-17 07:47:08
393
原创 芯片老兵:35岁前后是两个赛道
二十多岁时,设计个简单的模块,调个参数,优化个功耗,都觉得自己了不起。或许我们该接受这个现实:技术的更迭从不以人的意志为转移,就像28nm工艺终将被5nm取代,老工程师也会被新生代一点点挤出核心岗位。而我们这些老兵,被固化的思维和技能就像10年前的老工艺节点,跟不上摩尔定律的脚步。简历上的年龄像块烙印,不管你懂多少EDA工具,不管你经手过几颗流片成功的芯片,公司招人时总是把目光投向那些刚毕业的"又便宜又能熬"的年轻人。芯片老兵们总是苦笑着熬夜调时序过日子,挤在工位的角落,好像无家可归的样子。
2025-04-16 19:26:15
116
原创 HR部门:芯片人的同路者,而非监工
在当下的芯片行业,HR常常被误解为公司的"纪检委"。当一个Tape out期限逼近,工程师们熬夜排查Bug时,他们需要的不是HR的"激励演讲",而是实际的后勤保障和理解。当项目结束后的调整期,他们需要的不是立即投入新工作的压力,而是合理的休整时间。HR真正发挥作用的地方在于:理解工程师的思维方式,尊重专业人才的工作节奏,提供真正需要的支持,而不是简单地监督考勤或者组织无意义的团建活动。对于身处高压环境的芯片人来说,真正需要的HR是那种能在你失败时不指责,在你迷茫时给予方向,在你疲惫时提供支持的存在。
2025-04-16 12:14:37
114
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人