一个芯片是如何被设计出来的 寄存器传输级

寄存器传输级(芯片的设计方式)
【一个芯片是如何被设计出来的 寄存器传输级】对于其他很多转专业学IC的同学来说,往往很难理解数字IC设计从前端到后端的工作分工和功能需求 。他们总以为只有前端设计才是最火的,却忽略了功能验证和后端设计的价值和意义 。
从就业的角度来看,三个岗位的优劣没有区别 。都很吃香,缺人,工资也差不了多少 。
更多的是看你在选择的方向上能有多努力,能走多高多远 。
数字前端从设计架构开始,到生成可布局布线的网表结束 。就是用设计好的电路来实现这个想法 。
它主要包括基本的RTL编程和仿真,前端设计还可以包括ic系统设计、验证、综合、STA和逻辑等价检查 。其中,IC系统设计是最难掌握的 。它需要多年的IC设计经验和对那个应用领域的熟悉,就像软件行业的系统架构设计一样,而RTL编程相当于软件编程 。
数字后端从布局布线开始,到生成可以发送给foundry进行流式处理的GDSⅱⅱ文件结束 。
就是制作设计好的电路,在技术上实现这个想法 。主要包括:后端设计简称P&R,如芯片封装和引脚设计、版图设计、电源布线和功率验证、线间干扰的预防和纠正、时序收敛、自动布局布线、STA、DRC、LVS等 。要求掌握和熟悉各种EDA工具和ic厂商的具体要求 。
前端设计流程
1.需求分析和规格制定
市场调研,搞清楚需要什么样的功能芯片 。
芯片规格和功能清单一样,是客户对芯片设计公司提出的设计要求,包括芯片需要达到的具体功能和性能要求 。
2.架构设计和算法设计 。
根据客户提出的规范要求,对部分功能进行算法化设计,提出设计方案和具体实现架构,划分模块功能 。
3.HDL编码
用硬件描述语言(VHDL,Verilog HDL,业界公司普遍使用)来描述代码中的模块功能,也就是用HDL语言描述实际的硬件电路功能,形成RTL(寄存器传输级)代码 。
设计工具:具有强大的文本编辑功能,多种输入法(VHDL、Verilog、状态转移图、模块图等 。)、语法模板、语法检查、代码和文档的自动生成等 。Active-HDL、VisualVHDL/Verilog等 。
4.功能模拟(功能验证)
模拟是检查编码设计的正确性,如果不符合规范就重新设计编码 。
你可以理解为验证是为设计纠错的存在,是验证价值的体现 。如果一个小问题没发现,直接去后端设计,最后流片失败,损失巨大 。所以好的IC设计公司一般设计和验证比例是1:3 。
并且设计和仿真验证是一个迭代的过程,直到验证结果表明它完全满足规范标准 。这部分叫做预模拟 。
先进行模块级(IP级)仿真,再拼芯片级仿真 。
仿真工具:Synopsys的VCS,Mentor Modelsim(Questasim for Linux),cadence verilog-XL,Cadence NC-Verilog 。一些个人通常使用Modelsim,VCS是公司中使用最广泛的一个 。
IP级验证采用基于SystemVerilog的UVM方法,属于验证工程师范畴 。
5.逻辑综合-逻辑综合
逻辑是一个灵活的环节,有时候在前端,有时候在后端,由不同的公司安排 。
模拟通过,逻辑合成 。逻辑是将HDL代码翻译成网表 。
需要设定合成的约束条件,即你希望合成的电路在面积、时序等目标参数上达到的标准 。逻辑综合需要基于特定的综合库,门电路基本标准单元的面积和时序参数在不同的库中是不同的 。所以集成库不一样,集成电路在时序和面积上也不一样 。一般来说,综合完成后需要再次做仿真验证(这也叫后仿真) 。
综合工具:设计Synopsys的编译器,仿真工具可从以上三种仿真工具中选择 。
6.静态时序分析
静态时序分析(STA)属于静态时序分析和验证的范畴,主要对电路进行时序验证,检查电路中是否存在违反建立时间和保持时间的情况 。这是数字电路的基础知识 。当寄存器中出现这两种时序冲突时,无法正确采样数据和输出数据 。所以基于寄存器的数字芯片的功能肯定会有问题 。
STA工具:Synopsys的黄金时间 。
7.形式验证-有效性
验证类,从功能上验证综合网表(STA是时序) 。
常用的是等价性检查法,以功能验证后的HDL设计为参考,比较合成后的网表功能,看其功能是否等价 。这样做是为了确保原始HDL中描述的电路功能在逻辑综合过程中不会改变 。
形式验证工具:Synopsys的有效性 。
从设计的角度来看,前端设计的结果就是芯片的门级网表电路 。
后端设计流程
1.可测性设计
可测试性设计 。芯片往往有自己的测试电路,DFT的目的是在设计时考虑未来的测试 。DFT常用的方法是在设计中插入一个扫描链,把非扫描单元(如寄存器)变成扫描单元 。关于DFT,有些书上有详细的介绍,对比图片更容易理解 。


推荐阅读