2. 时序基础回顾:时钟周期与频率、建立时间与保持时间、时序路径的组成
各位同学,咱们今天聊点最基础的东西。别觉得基础就简单,我见过太多项目翻车,都是栽在这些“老生常谈”的概念上。你想想看,如果连时钟周期和频率的关系都搞混,后面谈什么跨层互连?
2.1 时钟周期与频率:芯片的“心跳”
时钟,说白了就是芯片的“心跳”。它决定了你的电路什么时候干活,什么时候休息。
时钟周期,就是一次心跳到下一次心跳的时间间隔。单位通常是纳秒(ns)。时钟频率,就是一秒钟心跳多少次,单位是赫兹(Hz)。
它们俩的关系很简单:
频率 (Hz) = 1 / 周期 (s)
举个例子:
- 如果周期是 1 ns,频率就是 1 GHz。
- 如果周期是 10 ns,频率就是 100 MHz。
我个人习惯,在项目初期估算性能时,会先定一个目标频率,然后反推周期。比如目标 2 GHz,那周期就是 0.5 ns。嗯,这个数字你记着,后面讲跨层互连的延迟预算时,你会知道 0.5 ns 有多紧张。
2.2 建立时间与保持时间:触发器的“脾气”
触发器不是万能的,它有自己的“脾气”。这个脾气,就是建立时间和保持时间。
建立时间(Setup Time, Tsu):在时钟有效沿到来之前,数据必须提前稳定下来的最短时间。
保持时间(Hold Time, Th):在时钟有效沿到来之后,数据必须继续保持稳定的最短时间。
我曾经在一个项目中,因为忽略了保持时间,导致芯片在低温下频繁出错。当时排查了整整两周,最后发现是时钟树综合时,时钟偏斜(skew)太大,把保持时间给“吃”掉了。嗯,那教训太深刻了。
你可以把触发器想象成一个“拍照”的过程:
- 建立时间:拍照前,人必须站好,不能动。
- 保持时间:拍照后,人还得再保持一下姿势,不能马上走。
如果数据来得太晚(建立时间违例),或者变得太快(保持时间违例),触发器就会拍到一张“模糊”的照片——也就是亚稳态,输出不确定。
2.3 时序路径的组成:发射路径、数据路径、捕获路径
一条完整的时序路径,其实就三部分。我画个图给你看:
你看这张图,一条路径分三段:
- 发射路径(Launch Path):从时钟源到发射触发器的时钟端。这段延迟叫时钟偏斜(clock skew)的一部分。
- 数据路径(Data Path):从发射触发器的输出 Q,经过组合逻辑和互连线,到达捕获触发器的输入 D。这段延迟包括组合逻辑延迟(Tcombo)和线延迟(Twire)。
- 捕获路径(Capture Path):从时钟源到捕获触发器的时钟端。同样也是时钟偏斜的一部分。
说白了,时序分析就是在算:数据从发射触发器出发,经过数据路径,能不能在捕获触发器的建立时间窗口之前到达?
2.4 组合逻辑延迟与线延迟:谁才是“老大”?
在传统芯片设计中,组合逻辑延迟是主角,线延迟是配角。但在先进封装里,情况完全反过来了。
组合逻辑延迟:取决于门电路的级数和工艺。比如一个 32 位加法器,大概需要 10-15 级门,延迟在 0.5-1 ns 左右(7nm 工艺)。
线延迟:取决于互连线的长度、宽度、层间介质。在芯片内部,线延迟通常小于组合逻辑延迟。但一旦出了芯片,走封装基板、硅中介层、甚至 PCB,线延迟就变成了“老大”。
我举个例子:
- 芯片内部走 1 mm 的线,延迟大约 10-20 ps。
- 封装基板上走 10 mm 的线,延迟大约 50-100 ps。
- 如果是跨芯片的硅桥(比如 EMIB),走线长度可能达到 20-30 mm,延迟轻松超过 200 ps。
你想想看,如果目标频率是 2 GHz,周期才 500 ps。光互连延迟就吃掉 200 ps,留给组合逻辑的预算还剩多少?
嗯,这里要注意一点:线延迟不是固定的。它跟温度、电压、工艺角都有关系。我曾经在一个 2.5D 封装项目中,因为低估了高温下的线延迟,导致芯片在高温测试时频频报错。后来加了两个缓冲器才搞定。
好了,时序基础就回顾到这里。这些概念虽然简单,但它们是后面所有复杂分析的地基。你把这些搞清楚了,后面讲跨层互连的时序挑战时,你就能跟上节奏了。