跳到正文
数字电子技术

RTL可综合风格:仿真能跑不等于有目标硬件

14 分钟

HDL描述硬件结构与并行行为,不是按行执行的软件。综合器只支持可映射结构;阻塞/非阻塞、组合敏感、位宽与有符号规则会造成仿真—综合差异。

时序与组合分离

时钟always块用非阻塞赋值描述寄存器同时更新;组合块用阻塞赋值并覆盖所有路径。混用可能让仿真顺序掩盖真实并行关系。

位宽与符号

无尺寸常量、拼接和算术扩展容易截断或符号扩展错误。显式声明signed、位宽和中间结果,针对最大最小值做断言。

锁存与组合环

组合输出未在所有路径赋值会推断锁存;变量组合依赖自己可能形成环。lint应作为入口门槛,但警告豁免需解释,不可一键关闭。

初始化

仿真initial值、FPGA配置初值和ASIC上电未知不是同一件事。可移植控制逻辑依赖明确复位或启动协议,不把测试平台初始化当硬件保证。

综合结果复核

查看推断RAM、DSP、锁存、时钟和面积报告。RTL文本短不表示电路小,除法、可变移位和大循环可能生成巨大组合逻辑。

综合警告要逐条分类:已理解并豁免的写入说明,其余作为失败处理。使用参数化generate时,用多个边界参数实例化,防止零宽、非2次幂和负索引只在罕见配置出现。

任务:对一段有位宽、锁存和赋值问题的RTL做lint—修复—综合—门级抽查。

小纸条

RTL仿真正确为什么仍可能综合出意外硬件?