如何去实现一种数字IC的设计?

一、ic 定义
ic就是半导体元件产品的统称,ic按功能可分为:数字ic、模拟ic、微波ic及其他ic。数字ic就是传递、加工、处理数字信号的ic,是近年来应用最广、发展最快的ic品种,可分为通用数字ic和专用数字ic。
通用ic:是指那些用户多、使用领域广泛、标准型的电路,如存储器(dram)、微处理器(mpu)及微控制器(mcu)等,反映了数字ic的现状和水平。
专用ic(asic):是指为特定的用户、某种专门或特别的用途而设计的电路。
集成电路产品有以下几种设计、生产、销售模式。
1.ic制造商(idm)自行设计,由自己的生产线加工、封装,测试后的成品芯片自行销售。
2.ic设计公司(fabless)与标准工艺加工线(foundry)相结合的方式。设计公司将所设计芯片最终的物理版图交给foundry加工制造,同样,封装测试也委托专业厂家完成,最后的成品芯片作为ic设计公司的产品而自行销售。
二、芯片各个节点分工
全球晶圆片厂排名前五依次是 台积电(tsmc)、格罗方德、联电、三星、中芯国际(smi).
三、数字ic设计全流程
四、ic design
前端设计 :
4.1 spec拟写
(1)工艺的选定 ;(2)详细feature描述 (3)模块划分、ip选型;
(4)架构规划   ;(5)时钟域、时钟结构规划;(6)电源域、低功耗规划
(7)地址空间分配;(7)io选定与分配;
4.2 rtl 逻辑设计
使用硬件描述语言(vhdl,verilog hdl,业界公司一般都是使用后者)将模块功能以代码来描述实现,也就是将实际的硬件电路功能通过hdl语言描述出来,形成rtl(寄存器传输级)代码。
前端逻辑设计时也需要注意ppa(performance、power、area)性能、功耗、面积平衡。需要特别关注面积和速度互换原则(串并转换和并串转换、乒乓操作、流水线设计)和低功耗设计方法(门控时钟clock_gatinng、资源共享、采用独热码多路器)等等,做到这些才能算是比较好的设计。
涉及到代码检查,使用工具vcs/verdi 把一般的错误和警告消除掉,还有一些隐藏比较深的错误和警告就要使用spyglass 进行lint/cdc检查。
物理实现 :
4.3 逻辑综合、dft
综合:仿真验证通过后,进行逻辑综合,一般由后端工程师完成,但是时序的迭代需要与前端工程师配合。需要的文件:rtl代码+约束文件+库文件(.db);使用的工具是design compiler。逻辑综合的结果就是把设计实现的hdl代码翻译成门级网表netlist。
dft:design for test 可测试性设计,一般由前端工程师集成dft逻辑。dft通过插入 dft 逻辑,比如 scan chain(寄存器)、mbist(片上存储器)、boundary scan(io)等,然后利用 atpg、mbist、boundary scan 工具产生测试向量,仿真验证测试向量。目的为了检测到芯片量产过程中出现的带有各种制造缺陷的片子,从而为顾客提供性能更稳定的产品,降低dppm(每百万芯片缺陷数量),从而为公司产品保证良好的口碑。
4.4 布局&布线、cts
布局规划(floorplan)直接影响芯片的面积,布线需要考虑拥塞情况,而且由于线延时的存在,在pr时一般时序比单纯逻辑综合要差一些。
cts :clock tree synthesis 时钟树综合,目的是要时钟到各个寄存器单元延时差异最小。
4.5 静态时序分析(sta)
主要是通过检查建立时间和保持时间是否满足要求,其目的是通过遍历所有的传输路径,寻找所有的组合逻辑电路的最坏延迟情况(以及毛刺、时钟偏差等等),也被称为关键路径。涉及到的时序分析路径有:寄存器到寄存器:reg2reg;寄存器到输出引脚:reg2pin;
输入引脚到寄存器:pin2reg;输入引脚到输出引脚:pin2pin. 此外,在芯片设计中我们还会经常见到reg2mem和mem2reg 时序违例报告。
时序分析只能验证同步时序电路的时序特性,不能自动识别设计中的特殊路径,如多周期路径(multi-cycle path)、非正常路径(false path)、多时钟分配(multiple path)。如果设计中含有较多的异步电路,我们一般把异步路径设置为max_delay进行约束。
4.6 形式验证
它是从功能上(sta是时序上)对综合后的网表进行验证。常用的就是等价性检查方法,以功能验证后的hdl设计为参考,对比综合后的网表功能,他们是否在功能上存在等价性。这样做是为了保证在逻辑综合过程中没有改变原先hdl描述的电路功能。形式验证工具有synopsys的formality。
4.7 tapeout
在流片之前,为提高良率和解决物理规则违规还要做些drc/lvs的工作;芯片设计阶段完成之后,把输出的物理版图gds文件->芯片代工厂->晶体硅->做出实际电路->封装和测试->芯片。
功能验证:
4.8   验证环境
如下图所示,其中,scoreboard主要用于比较reference model与dut输出是否一致,并给出比较结果reference model和dut是对spec的两个独立的实现。当ref model和dut行为不一致时,或者dut错,或者ref model错,或者两者都错,debug就好。stimulus激励,需覆盖dut不同的工作场景以及可能出现的异常情况。monitor 做一些中间状态监控或者计数。
4.9   验证方式
验证方式包含两种:白盒验证和黑盒验证
白盒指的是验证对象(dut)的内部结构是完全可见的,我们可以清楚的看到设计的详细内容,白盒验证的好处是我们可以了解设计者的意图,并且验证可以达到设计上的每一点,但这需要花费更长的时间。
灰盒指的是验证对象(dut)的内部结构,只有一部分是可见的,黑盒验证则dut内部完全不可见,我们只能看到设计的输入接口和输出接口,对黑盒验证,我们只能通过了解其设计文档来了解它的功能。
4.10  验证语言和验证方法学
验证语言 :verilog 、systemverilog、assertion、systemc、perl、makefile
验证方法学 :uvm 、ovm、vmm
4.11  验证覆盖率
代码覆盖率(code coverage):line coverage /condition coverage 、
branch coverage /toggle coverage /fsm coverage
功能覆盖率(function coverage):uassertion
4.12  后仿真
• 门级延迟
– sdf延迟文件加载
– 与rtl不一致
• x 态传播
– 异步时序电路产生x态
– 增加debug难度
– 控制x态传播
• pg网表门级仿真
– 低功耗仿真
4.13  fpga验证
asic 代码移植
– pll/io/mem/stdcell替换
– 时钟产生逻辑去除
– 时钟频率、时钟关系调整
– 设计裁剪partition
• 代码fpga实现
– 时序约束
– 时序检查
• fpga调试、验证
4.14  仿真加速器验证
cadence – palladium
– cpu based
• synopsys – zebu
– fpga based
• mentor – veloce
– fpga based
4.15  验证方式比较
一般在代码开发过程中,以下验证方式一般是逐级递进的,后期同时进行回归验证,由于fpga验证和仿真加速器都是降频模式下验证下,一些时序问题也是验证不出来的。但是两者好处在于仿真速度快,容易验出一些在长时间运行累积的错误,因此,一般需要长时间拷机测试。


聚酰亚胺薄膜应用于数字隔离器
FAULHABER 福尔哈贝扩大IE​​3编码器兼容性
计算机基础知识之汇编语言2
电容RMS纹波额定电流的设定
开关电源直流EMI滤波器的设计及实现
如何去实现一种数字IC的设计?
2023年10个最佳Linux服务器发行版
电力巡检机器人大展身手,未来市场空间广阔
荣耀Magic2评测 YOYO才是绝对核心
基于TDA7294的优秀音频放大电路
小米5X怎么样?小米5X或推出更低价版本,这下你没有理由不买了!
这个价格过了这个双十二 ,以后都不会再有了
盘点物联网最常见的几大安全漏洞
阿米巴,真正强大的生物计算机了解一下?
海尔冰箱!深受国外青睐的中国制造
新能源汽车成长的方向
【EsDA 应用】Modbus RTU Master 转 TCP Server
西门子S7模拟量输入输出模块常见问题
PCIe总线的错误报告机制中四个比较重要的概念
2018中国异构系统架构标准(CSH)暨全球异构系统架构标准(HSA CRC)研讨会在湖南召开