数字集成电路的设计流程
1. 前端设计流程
1. 算法或硬件架构设计与分析
目的:完成芯片中数字部分的高层次算法或架构的分析与建模,为硬件提供一个正确
的软件功能模型,更为重要的是,通过大量的高层次仿真和调试,为 RTL 实现提供总体性
的设计指导。数字部分越复杂,这一点就越重要。
工具:MATLAB、C++、C、System C、System Verilog 等。不同类型的芯片都有
不同的选择,如数字信号处理类芯片,偏好 MATLAB。
特点:这部分工作至关重要,基本上奠定了整个芯片的性能和功耗的基础。这部分工
作主要由具有通信、信号处理、计算机、软件专业背景的工程师完成,也有很多微电子专
业背景的工程师参与。
2. RTL 实现
目的:依据第一步的结果,完成由高层次描述到 Verilog HDL 实现的过程。
工具:Vim、Emac(二者不分前后顺序哦)。
特点:这一步能明显区别中训练有素的工程师和初学者。前者在写代码的过程中,具
有极强的大局观,能够在书写 Verilog HDL、描述逻辑功能的同时,还能够兼顾逻辑综合、
STA、P&R、DFX、功耗分析等多方面因素,最终提供一份令其他环节的工程师都赏心悦
目的代码。初学者则处处留地雷,一不小心就引爆。
3. Coding Style Check
目的:排除 RTL 代码中 Clock Domain Cross、Lint 等问题。
工具:Syglass、LEDA、0inCDC。
特点:目前大部分芯片中的数字部分基本上都采用局部同步和全局异步的设计策略,
因此,在设计中需要小心注意跨时钟域的数据同步问题。
4. 功能验证
目的:在无延迟的理想情况下,通过大量的仿真,发现电路设计过程中的人为或者非
人为引起的 bug。主要指标是功能覆盖率。
工具:Modelsim、VCS、NC-Verilog。
语言: C++、C、System C、System Verilog,基于 UVM 的方法学等。主要是
System Verilog,一般哪个方便用哪个。