我依附西北工业大学计算机学院微电子学研究所,现在是微电子学研究所的研一学生,专业方向是数字集成电路设计。在研一上学期,大致了解掌握到了数字集成电路后端偏文科类设计方法,本篇学术素养课程报告主要注意继续讨论在基于后端流程时的方法、经验、在内相关的感悟。
根据我的观察,软件工程师的需求量和硬件工程师的需求量是10:1,也就是说硬件工程师需求量远大于0软件工程师,硬件工程师中又可分模拟和数字两大类,仿真的集成电路设计比较多以及adc、dac、pll等,数字集成电路设计则更比较杂于实现方法特定的事件功能的芯片,如cpu、gpu、mcu、mpu、dsp等。
很显然,发展到现阶段,数字集成电路的设计方法已经在eda工具的帮助之下相当传说中的软件开发了,典型的数字集成电路开发象为以下步骤:
1、参照需求,自顶向上设计什么电路模块,必须明确该数字系统必须实现什么功能,再具体一点细分到各个功能模块。此时的设计图形式象为模块框图,可以使用visio或其他绘图软件基于。这个环节特有内松外紧,但十分,只不过参照产品需求啊,设计大的模块和指标时,前提是要结合实际情况,不然的话到后期会经历无尽的次返工甚至连不能都没有达到预定啊指标。像是由高望重,见多识广的工程师接受总体设计。
2、定义好各个模块之后,接下来就是具体看实现各个模块的功能。毕竟硬件描述语言的存在,我们也可以很轻易地的通过硬件描述语言来“写”出模块的实现方法方法,在本次实验中,我不使用的是veriloghdl。具体看代码的复杂程度和模块的复杂程度有关,我在这回实验中采用的是“八位格雷码计数器”电路设计。
3、成功“八位格雷码计数器”的verilog代码后,是需要对该设计参与“前仿真”。有所谓前仿真,主要注意是是为验证代码是否是描述错误的,是否需要真正的实现了所规划设计的功能。象在用modelsim软件进行仿真模型,仿真设计成功再次进入下一阶段,不成功了则是需要前往可以修改代码。
4、前仿真成功了后,早有了功能错误的的verilog设计代码,此时可以不将代码上网下载到fpga板上进行验证(quartus,jtag),验证成功了则可以证明此设计正确的确认无误后。相对于某些集成度要求不高且时间相当害怕的数字电路设计项目,这个可以再在用fpga来利用芯片功能。很显然,fpga这种通用器件是肯定不能行最简形矩阵高板载显卡、超低功耗、清洁液性高asic设计需求的,只能用于较为简单点和粗犷的设计。
5、接下来的直接进入后端流程。正当此时不需要胶的服务器包括价格高昂的eda工具支持。这也我想知道为什么硬件技术入了门较难的原因之一,假如一个也没所接触过软件编程的有志青年立志要做做软件工程,象一台电脑,一本书就就够,最少再买个正版编译器(vs,eclipse,dw等),只不过去做硬件电路设计,一台电脑一本书起码学画画pcb。要做最核心的部分,需要在用功能强大的服务器和价格贵得要命的eda工具,而且其它的pc电脑负担不起“后端综合考”的工作需求。而且大量linux下的复杂操作也会使人却步。
6、马上准备好后端平台后,就可以将“八位格雷码计数器”扔到平台里,正在此时马上必须决定的问题是在用什么元件库在内什么工艺?只不过同时一个与非门,有所不同元件库有有所不同利用细节,mos管细节可能会都大不相同,别外又要确定工艺,这些工艺的文件依附于相关厂家(tsmc,csms等),这都是个人不能做后端的原因之一——只不过你完全不可能以自己的名义向台积电好好商量工艺库文件,要知道以及一个涉世未深,无钱无术的初学者,你是没能乐观自信的和人数上万、资金上亿的工艺厂签定合同的。经由亲自炒筛选后(更多情况下是没得选),可以确定你想在用的工艺。在本次实验中,我建议使用的是实验室学长实验过过的元件库,在内tsmc0.18um工艺,eda工具为cadenceic614。7、经过一系列配置之后,“八位格雷码计数器”早就成为了三个浩大的工程文件,我建议您常规tcl脚本文件进行配置。然后就可以接受rtl级综合。所谓rtl级看专业,虽然是指将verilog代码“改写”为综合工具(我可以使用的是encounter)所能不识别的verilog代码。通俗一点的讲,这个类似于将“文言文”英文翻译为“白话文”,也类似c语言中的“编译”,还没有有高级语言翻译为汇编代码。当然,理论上可以不直接写一段rtl级代码,但这就和再写汇编语言差不多,复杂程度非同一般。
8、rtl级综合类成功后,接下来将rtlverilog导入encounter接受唯一的后端综合类。导入rtl代码后,还要那就证明标准单元库的lef文件,并定义电源和地的线名。此时不需要一个mmmcconfig配置,流程烦杂,要注意是配置相关文件和器件状态(tt、ss、ff等)。
9、能完成导入配置,接下来的是芯片布局设计,即floorplan。floorplan不需要设置一些基础参数,如芯片的长宽(面积),带走管脚的空间,芯片利用率等。长宽比我建议你为0.2-5,奇怪电路利用率0.85,象电路利用率0.90,电路图利用率0.95。
10、power计算,得以为据布置电源线路,通常为ring和stripe。比如,某数字电路芯片功耗为55mw,提升系统冗余量到2倍左右,电脑设计为100mw,遵循1.8v供电,电流约为60ma,也就是总电源线为60u,要是每条线10u,则六条电源线,左右两侧各一条,中间四条。encounter中有一类的布线配置器。布线施工之后,也可以先apply,后再可以撤销刚开始尝试。
11、布置io管脚。要是提前没有导入io,也可以恢复导入(tcl),也这个可以让其调整。
12、pre-place,毕竟verilog中来讲有很多的module,每个module对应一个布局模块,布局时应当由再注意一些布局原则。布局时像是简单的移动鼠标就这个可以。“八位格雷码计数器”是因为唯有一个module,因此不是需要急切的布局。
13、布局是一个断的直接修改和改进之处的过程,pre-place之后通过place,之后进行之后post-place。place之后,要参与时钟树综合考(cts),时钟树看专业的目的是为了让每个信号都在约束的时间内传输信号到下一个时序单元,不然会对芯片的主频产生影响(主频是在设计前就定过来的指标),然后把在post-cts对不条件符合时钟约束的部分通过布线调整。
14、布局之后进行电源布线,即route,是对特殊能量还布线施工必须并且sroute,然后把并且post-place,这些步骤某种程度上是“点按钮”和“配参数”,但后端综合考时你必须有清醒过来的头脑,要很清楚为什么不要点这些按钮,和该配置什么参数。
15、布局布线当经过一次迭代,io管脚配置好后,是可以fill全图,用各层金属覆盖未使用的区域。单个“八位格雷码计数器”是因为结构简单,芯片未覆盖区域减小。
16、眼下,encounter内的后端综合类就结束了,可以导出(export)成gdsii格式的网表,以及就是为了做drc,lvs检查,也是需要“netlist”成schematic(电路原理图)的格式。
17,将后端综合考的gdsii文件文件导入(streamin)到virtuoso里。virtuoso是一个用于模拟真实集成电路设计的软件。将gdsii文件导入到该软件主要有两个目的,一是也可以在virtuoso里做“后仿真”,验正经后端偏文科类的一系列流程之后,概念芯片是否是能不满足设计需求,此时的仿真就已经判断到了延时,电阻,功耗等求实际存在的问题,如果仿真时出现了问题,必须通过返工如何修改,必要的话时要原先信号完整性分析。当“后仿真”是从后,还要对该芯片进行drc和lvs检查,drc是栏里点是否需要满足所选工艺的要求,是因为在求实际情况下,一些理论上的值是不现实的,.例如过细的线难以生产出来,栅极间的距离过短可能会会造成电源短路,导线和各金属层之间的电容会影响不大电路功能等。lvs是比较比较layout和schematic之间的拓扑信息如何确定不一致。二是可以不方便啊以后做数模混合芯片设计时接受水的混合物设计,是因为模拟集成电路的是真接在virtuoso中并且的,两者最后结合在一起,就也可以参与数模混合集成电路设计。
18、接受完检查之后,就也可以与工艺需要提供厂家直接联系并且加工了,如tsmc。就像加工不需要跟上来企业的业务流程。总共在1月左右,芯片加工能完成,然后直接进入测试出来环节。焊接,试验,验证验证芯片指标,包括提出来设计改进方案。
至此,一个数字集成电路从概念到实物的整个流程就能完成了,每迈一步都值得去爱研究和再回味,从二四译码器到紧张的cpu,其流程是基本上差不多的。当经过研一上一个学期的学习,我也基本上手中掌握了这个流程。以后会越来越很努力的在本专业方向继续前进,重视培养核心竞争力。
sigmadeltadac象和插值滤波器,sigma-delta调制器(其是真包含数字积分器、数据量化器的和反馈回路的模块),开关电容dac(高精度的有),模拟低通滤波器。工作原理为:输入输入的高精度数字信号,按照插值滤波变为高采样率的高精度数字信号,然后把-delta调制器调制成低精度的高采样率的数字信号(sigma-delta调制器中有有量化器,其作用是对可量化噪声的高通滤波,让可量化噪声其分布在高频处,而在输入信号的带宽内一直保持较高的信噪比),然后把按照开关电容dac转变为模拟信号,之后通过模拟低通滤波器滤掉低频率分量,输出。
sigmadeltaadc像是除开反混频滤波器,sigma-delta调制器(其是中有离散化方法时间积分器、数字量化器、dac、反馈回路的模块),抽样滤波器。工作原理为:对输入输入的模拟信号,并且反混频滤波,然后再键入到sigma-delta调制器调制成低精度高采样率的数字信号,后再按照抽样滤波器低采样率高精度的数字信号。