2. Lattice FPGA时序基础与静态时序分析
时序收敛的本质,是让每一组“发射沿—数据路径—捕获沿”的关系都满足建立与保持的双重约束。Lattice FPGA 的静态时序分析(STA)不依赖激励向量,而是把设计拆解成时序路径,逐条计算到达时间与要求时间,再给出裕量(Slack)。理解 STA,先要理解它衡量的四个基本量:建立时间、保持时间、时钟偏斜与抖动。
建立时间与保持时间:捕获端的双重窗口
建立时间 Tsu 指数据必须在捕获时钟有效沿之前稳定的最短时间;保持时间 Th 指有效沿之后数据仍需保持稳定的最短时间。二者共同在捕获沿两侧划出一个“禁止跳变窗口”,数据穿越窗口就会导致亚稳态或误采样。
以 Lattice ECP5 的通用寄存器为例,数据从发射寄存器经组合逻辑到达捕获寄存器,建立关系可写成:
Tclk_period ≥ Tco + Tlogic + Trouting + Tsu − Tskew
Slack_setup = 要求时间 − 到达时间
= (Tclk_period + Tskew) − (Tco + Tlogic + Trouting + Tsu)
保持关系则与时钟周期无关,只比较同一沿附近的数据保持能力:
Slack_hold = (Tco + Tlogic + Trouting) − (Th + Tskew)
这里约定:Tskew 定义为捕获时钟到达时刻减去发射时钟到达时刻,正值表示捕获沿“来得更晚”。全文与图示均采用这一约定。若 Tskew 为正,建立裕量增大、保持裕量减小;反之则相反。这正是偏斜治理中“不能只盯建立”的原因。
时钟偏斜与抖动:两类不同的时钟不确定性
时钟偏斜是空间概念:同一时钟域内,因走线长度、缓冲级数、时钟树结构不同,各寄存器收到的时钟沿存在固定的到达时间差。抖动是时间概念:同一节点上,时钟沿相对理想位置随周期波动,包括随机抖动与确定性抖动。STA 通常把抖动折算为时钟不确定度(Uncertainty),从要求时间中扣除;偏斜则通过时钟树分析或显式约束参与计算。
时序路径分类:四条路径,四种约束
Lattice Timing Analyzer 把路径分为四类,每类的起止点和约束方式都不同:
- 输入到寄存器:从器件输入引脚经外部器件到内部寄存器,用
set_input_delay描述。 - 寄存器到寄存器:完全在 FPGA 内部,由时钟周期与时钟不确定性约束,是时序收敛的主战场。
- 寄存器到输出:从内部寄存器经输出逻辑到引脚,用
set_output_delay描述。 - 输入到输出(纯组合):不经过寄存器,需用
set_max_delay或虚拟时钟单独约束。
此外还有跨时钟域路径与异步复位路径,前者通常用 set_clock_groups 或 set_false_path 声明为伪路径,后者需检查恢复/移除时间。分类的意义在于:只有先判断路径属于哪一类,才能选对约束命令,否则约束再紧也只是“错位的努力”。
Lattice Timing Analyzer 工具链概览
Lattice 的 STA 能力主要集成在 Diamond 与 Radiant 两条工具链中。Diamond 面向 ECP5、MachXO 等器件,使用 TRACE 引擎;Radiant 面向 CrossLink-NX、Certus-NX、Mach-NX 等新一代器件,使用 Timing Analyzer 视图。两者流程一致:综合后生成网表,映射布局布线后提取实际延迟,再执行时序分析。
典型使用路径如下:
- 在
.lpf(Diamond)或.pdc(Radiant)约束文件中定义时钟、输入输出延迟与伪路径。 - 运行布局布线,工具自动调用时序引擎。
- 打开 Timing Analyzer,查看 Summary 中的 WNS(最差建立裕量)、TNS(总负裕量)、WHS(最差保持裕量)、THS。
- 在 Path 列表中定位关键路径,查看其起点、终点、逻辑级数与各级延迟。
判断收敛的常用标准是:WNS ≥ 0 且 WHS ≥ 0,同时 TNS 与 THS 为 0。若 WNS 为负,说明存在建立违例;若 WHS 为负,说明保持违例。前者通常通过降低逻辑级数、优化布局或放宽周期解决;后者多与偏斜过大或路径过短有关,可通过插入延迟或调整时钟树改善。
一个可复用的时序检查清单
| 检查项 | 关注内容 | 判断依据 |
|---|---|---|
| 时钟定义 | 主时钟、生成时钟、PLL 输出是否全部约束 | Timing Analyzer 中无未约束时钟 |
| 输入输出延迟 | 外部器件 Tco/Tsu/Th 与板级走线是否折算 | IO 路径裕量合理,不过松也不过紧 |
| 跨时钟域 | 同步器是否存在,是否声明 clock_groups | 无跨域误报,无真实违例被掩盖 |
| 伪路径 | 异步复位、静态配置、测试逻辑是否排除 | 伪路径列表可追溯、有依据 |
| 裕量汇总 | WNS/TNS/WHS/THS 是否全部达标 | 四项均满足,且留有一定余量 |
把这张清单与前面的路径分类对应起来,就能形成“先分类、再约束、后看裕量”的闭环。下一阶段的实际收敛工作,都将围绕这四类路径和四个裕量指标展开。