![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SNkFmNyUzNiljYkF2Y2QmYxQTOmRDOiV2NlFzNxcTYk9CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
Front End前端设计
Spec 系统需求说明 function performance Cost
首先确定所需的功能。
包含系统基本输入输出及基本算法需求,以及系统要求的功能、性能、功耗、成本和开发时间。
将用户需求转换为用于设计的技术文档,并初步确定系统的设计流程。
System Model 系统级 C/C++/ Matlab/SystemC
说明芯片总体的架构、规格参数、模块划分、使用的总线,以及各个模块的详细定义等。
使用C/C++等高级语言创建整个系统的高级算法模型和仿真模型。
RTL Coding RTL级 Verilog VHDL SystemVerilog
RTL代码抽象层次是寄存器传输级,且能被工具自动转化成与或非门级网表。
对电路以寄存器之间的传输为基础进行描述。
根据划分出的功能模块,确定需要重新设计的部分及可复用的IP核(模块设计及IP核复用)。
将各个不同的功能模块,包括新设计的和复用的整合在一起,形成一个完整的设计。
Function Verify UVM平台
RTL级仿真,功能仿真,前仿真
通过HDL仿真器验证电路逻辑功能是否有效,即HDL描述是否符合设计所定义的功能期望。
通常与具体的电路版图实现无关,没有时序信息。
通常是有DV工程师来完成这部分工作,通过搭建test bench,对电路功能进行验证。
Back End 后端设计
Logic Synthesis 逻辑综合 Design Compiler RTL Compiler
使用EDA工具把硬件描述语言设计的电路自动转换成特定工艺下的网表(Netlist),即RTL级的HDL通过编译产生符合约束条件的门级网表。
网表:描述逻辑单元和它们之间互连的数据文件。
约束条件:包括时序、面积和功耗的约束。
输入:RTL& SDC (SDC标准设计约束)
输出: Netlist&SDC
将确定无误的 HDL code,放入电子设计自动化工具(EDA tool),让电脑将 HDL code转换成逻辑电路,产生如下的电路图。之后,反覆的确定此逻辑闸设计图是否符合规格并修改,直到功能正确为止。
DFT Design for Test 可测性电路插入 DFT ADvtor
基本思想:通过插入扫描链,增加电路内部节点的可控性和可观测性。
对逻辑电路采用扫描链的可测试结构
对于芯片的输入/输出端口采用边界扫描的可测试结构
输出: Netlist&SDC
Auto P&R 自动布局布线 IC Compiler Enconter
输出: Netlist&GDSII
Sign OFF
将设计数据交给芯片制造厂商生产之前,对设计数据进行复检,确认设计数据达到交付标准,这些检查和确认统称为signoff。
sign off的主要方向:
timing signoff 静态时序验证
PA signoff 电源完整性分析
PV signoff 物理验证
RV signoff 可靠性验证
FM/CLP signoff 形式验证和低功耗验证
Tapeout流片
参考:
数字IC设计全流程介绍
大概聊聊一些数字后端入门的基本流程吧
《Soc设计方法与实现》
半导体科普:IC芯片设计及生产流程