一篇关于IC设计的好文章
扫描二维码
随时随地手机看文章
IC设计中所使用的EDA工具
俗话说“公欲善其事,必先利其器”。IC设计中EDA工具的日臻完善已经使工程师完全摆脱了原先手工操作的蒙昧期。IC设计向来就是EDA工具和人脑的结合。随着IC不断向高集成度、高速度、低功耗、高性能发展,没有高可靠性的计算机辅助设计手段,完成设计是不可能的。IC设计的EDA工具真正起步于80年代,1983年诞生了第一台工作站平台apollo;20年的发展,从硬件描述语言(或是图形输入工具)到逻辑仿真工具(LOGIC SIMUL ICATION),从逻辑综合(logic synthesis)到自动布局布线(auto plane & route )系统;从物理规则检测(DRC & ERC)和参数提取(LVS)到芯片的最终测试;现代EDA工具几乎涵盖了IC设计的方方面面。提到IC设计的EDA工具就不能不说cadence公司,随着compass的倒闭,它成为这个行业名副其实的“老大” cadence提供了IC design中所涉及的几乎所有工具;但它的工具和它的名气一样的值钱!现代IC技术的迅猛发展在EDA软件厂家中掀起并购、重组热潮。除CADENCE公司以外,比较有名的公司包括mentor,avanti,synopsys和INVOED A;mentor和cadence一样是一个在设计的各个层次都有开发工具的公司,而AVANTI因其模拟仿真工具HSPICE出名,SYNOPSYS则因为逻辑综合方面的成就而为市场认可。下面我们根据设计的不同阶段和层次来谈谈这些工具;
(1)输入工具(design input) 对自顶而下的(TOP-DOWN)设计方法,往往首先使用VHDL或是VERILOG HDL来完成器件的功能描述,代表性的语言输入工具有SUMMIT公司的VISUAL HDL和MENTOR公司的RENIOR等。虽然很多的厂家(多为FPGA厂商)都提供自己专用的硬件描述语言输入,如ALTRA公司的AHDL,但所有的公司都提供了对作为IEEE标准的VHDL,VerilogHDL的支持。对自下而上的设计,一般从晶体管或基本门的图形输入开始,这样的工具代表性的有cadence公司的composer;viewlogic公司的viewdraw等,均可根据不同的厂家库而生成和输入晶体管或门电路相对应的模拟网表。
(2)电路仿真软件(circuit simulation)(分为数字和模拟两大类) 电路仿真工具的关键在于对晶体管物理模型的建立,最切和实际工艺中晶体管物理特性的模型必然得到和实际电路更符合的工作波形,随IC集成度的日益提高,线宽的日趋缩小,晶体管的模型也日趋复杂。任何的电路仿真都是基于一定的厂家库,在这些库文件中制造厂为设计者提供了相应的工艺参数;如TSMC0.18um Cu CMOS工艺的相关参数高达300个之多;可以用于数字仿真的工具有很多,先期逻辑仿真的目的只是为了验证功能描述是否正确。对于使用verilog HDL生成的网表,cadence公司的verilog-XL是基于UNIX工作站最负盛名的仿真工具;而近年随PC工作站的出现,viewlogic的VCS和mentor公司的modelsim因其易用性而迅速崛起并成为基于廉价PC工作站的数字仿真工具的后起之秀;对于VHDL网表仿真,cadence公司提供AFROG;SYNOPSYS公司有VSS,而mentor公司基于PC的MODELSIM则愈来愈受到新手们的欢迎。PSPICE最早产生于Berkley大学,经历数十年的发展,随晶体管线宽的不断缩小,PSPICE也引入了更多的参数和更复杂的晶体管模型。使的他在亚微米和深亚微米工艺的今天依旧是模拟电路仿真的主要工具之一。AVANTI是IC设计自动化软件的“英雄少年”,它的HSPICE因其在亚微米和深亚微米工艺中的出色表现而在近年得到了广泛的应用。cadence公司的spectre也是模拟仿真软件,但应用远不及PSPICE和HSPICE广泛;对于特殊工艺设计而言,由于它们使用的不是Si基bipolar或CMOS工艺,因而也有不同的设计方法和仿真软件;例如基于AsGa工艺的微波器件所使用的工具,较著名的有HP的eesoft等;
(3)综合工具(synthesis tools) 用于FPGA和CPLD的综合工具包括有cadence的synplify;synopsys公司的FPGA express和FPGA compiler;mentor公司的leonardo spectrum;一般而言不同的FPGA厂商提供了适用于自己的FPGA电路的专用仿真综合工具,比如altera公司的MAXPLUS2仅仅适用它自己的MAX系列芯片;而foundation则为XILINX器件量身定做...... 最早的IC综合工具应该是cadence的buildgates;而Cadence最新版本的Envisi a Ambit(R)则在99年在ASIC international公司成功用于240万门的设计。使用较广泛的还有synopsys的design compiler和behavial compiler;基于不同的库,逻辑综合工具可以将设计思想转化成对应一定工艺手段的门级电路;将初级仿真中所没有考虑的门沿(gates delay)反标到生成的门级网表中,返回电路仿真阶段进行再仿真。最终仿真结果生成的网表称为物理网表。
(4)layout工具和自动布局布线(auto plane & route)工具
cadence的design framework是常用的基于UNIX工作站的全定制设计的布局布线软件,和silicon ensemble,Envisia place &route DSM; (cadence的版图输入工具Virtuoso)(5)物理验证(physical validate)和参数提取(LVS)工具依然可以分成为ASIC和FPGA两大类。ASIC设计中最有名、功能最强大的是cadence的DRECULA,可以一次完成版图从DRC(设计规则检查),ERC(电气特性检查)到LVS(寄生参数提取)的工序;DIVA作为其相对较弱的软件多提供给教学用途;AVANTI的STAR-RC也是用于物理验证的强力工具,而hercules则是其LVS的排头兵。如同综合工具一样,FPGA厂商的物理验证和参数提取多采用专门的软件、并和其仿真综合工具集成在一起。ALTERA-p.htm" target="_blank" title="ALTERA货源和PDF资料">ALTERA的MAXPLUS2和XILINX的FOUNDATION是这样的典型;
(6)由于VLSI尤其是ULSI电路的预投片费用都相当的高(如TSMC 0.25um CMO S 工艺一次预投片的费用为100万美圆,而0.18um Cu CMOS 3.3V工艺的一次预投竟高达300万美圆)。因而对ASIC芯片,要求芯片设计尽量正确。最好完全消灭错误;解决功耗分析;生成用于芯片测试目的的特殊测试电路;因应这一要求,也产生了一些特殊的EDA工具,以完成诸如power analysis、故障覆盖率分析、测试矢量生成等目的。现代VLSI特别是ULSI IC的迅速发展,正是依靠EDA工具在亚微米和深亚微米技术上的进步及其对应工艺水平的提高。应该说没有EDA工具就没有IC; [!--empirenews.page--]
4.设计团队(design term or group)
(FIG1 是IC设计的流程图)上面我们主要讲了IC设计对研发项目和EDA工具的要求,那么有了切实可行的项目和完整可靠的EDA工具,如何将它变成为产品呢?集成电路设计和足球比赛一样是一个最能体现人类合作精神和智慧的工作了,只是他有更深刻的科技涵义罢了。就如同没有任何一个英雄可以创造足球场上的神话一样(当然一边倒的比赛除外)一个结构合理的研发队伍是产品“成败的关键”;一般而言,一片IC可以从大的方面分成两部分:即数字(Digital)和模拟(An aloge) 电路部分。实际上真正的IC设计应该是ASIC设计,而FPGA或PLD设计更倾向于系统级的设计;可以这样说:一个做IC设计的工程师至少应该是学半体出身的,他更多的是在和诸如晶体管,版图这样的东西打交道;而一个做FPGA的工程师只须懂得硬件描述语言,他只要将行为级描述使用特殊的FPGA 工具写入到FPGA或PLD中即可。因而本部分将着重于ASIC来说IC设计;
(1) 模拟工程师(analog design engineer)在term中主要完成模拟电路的设计,如收发器(transreceiver)、高频锁相环、A/D D/A转换器、放大器等这些无法用数字方法实现的电路,必须用晶体管来搭建。而对于在厂家库中所没有提供的基本门也必须使用晶体管来实现。现代IC设计的发展已经使得工程师只须在厂家提供的库的基础上调整晶体管的宽长比(W/L)来决定晶体管特性。(FIG1是一个基于0.18um 工艺可以达到2.5G频率的D触发器参数图,它采用TSMC的0.18um制程库;而图FIG2则是使用AVANTI公司的HSPICE98.4 version模拟仿真工具所生成的波形图;从图中我们可以发现这个电路设计可以很好的运行在2.5G的高频下,并句有很好的上升和下降沿;USB接口芯片中的transreciever部分就必须是模拟工程师根据USB协议中要求发送和接收的物理和电气特性来采用合适的晶体管电路实现; (2) 在一片功能IC中,大部分是数字电路设计。数位工程师(digital design e ngineer)正是使用verilog HDL或是VHDL语言来完成芯片的功能描述;使用modelsim 这样的仿真工具来完成逻辑验证;然后再使用design compiler这样的综合工具来将行为描述(behaviral descriptor)转化成门级网表(net gate)以便layout工程师可以使用布局布线工具将它转化成版图;下面是在USB芯片中要用到的,一个产生CRC5 校验码模块的verilog HDL描述:
module crc5(sysclk,nfsr,address_endpoint,sout_crc5,en_crc5);
input[1:0] nfsr; input sysclk,en_crc5; input[10:0] address_endpoint;
output[4:0] sout_crc5;
wire[4:0] sout_crc5;
reg[4:0] register5a,register5b; reg[3:0] i; reg[1:0] j;
assign sout_crc5=~register5a;
always @(posedge sysclk)
begin
if ((nfsr==2'b0)||!en_crc5) // if reset or soft_reset;
begin j=0; register5a=5'b11111; register5b=5'b00101; end //initialization
else if (nfsr==2'b10) // if system in operation status;
begin if (j<=1) begin j=j+1; end
if (j==1) begin
for (i=0;i<=10;i=i+1) //every bit would be xor with register5a
begin //then right-move;
if (register5a[4]^address_endpoint[i])
begin register5a=register5a<<1; register5a=register5a^ register5b; end else begin register5a=register5a<<1; end
end
end
end
end
endmodule
图FIG6是对其使用MODELSIM逻辑仿真工具所生成的波形; [!--empirenews.page--]
下面是使用synopsys公司的综合工具DESIGN CPMPILER综合生成的网表文件(基于TSMC的0.35um CMOS数字电路库,注意仅仅选取整个网表的一部分作为示意);:
module crc5 ( sysclk, nfsr, address_endpoint, sout_crc5, en_crc5);
input [10:0] address_endpoint; input[1:0] nfsr; input sysclk, en_crc5; output [4:0] sout_crc5;
wire j[1] , register5b[4] , register5a[3] , register5a[1] , register5b[2] , register5a[4] , register5a[0] , register5b[3] ,
n768[0] , j[0] , register5a[2] , register5b[1] , n899, n900, n901,..... n1041;
RS_ND2_A U458 ( .O(n973), .I1(register5b[2] ), .I2(n1003) );
........
RS_XNR2_A U464 ( .O(n907), .I1(address_endpoint[0]), .I2(register5a[4] ) );
.......
RS_XOR2_A U467 ( .O(n919), .I1(n938), .I2(n917) );
.......
RS_INV_A U472 ( .O(n1002), .I(n921) );
.......
RS_XOR2_A U476 ( .O(n921), .I1(n939), .I2(n918) );
.......
RS_AN2_B U556 ( .O(n899), .I1(n1001), .I2(n908) );
.......
RS_DFF_B j_reg[1] ( .Q(j[1] ), .D(n899), .CK(sysclk) );
RS_DFF_B j_reg[0] ( .Q(j[0] ), .D(n1031), .CK(sysclk) );
RS_DFF_B register5a_reg[4] ( .Q(register5a[4] ), .QB(sout_crc5[4]) , .D( n1032), .CK(sysclk) );
.......
endmodule
design compiler综合生成的门级电路图。
对数位和模拟工程师而言,厂家库是设计的基础,生成的门级电路的模拟输出特性或是数字逻辑是否正确,都须以综合后仿真为依据。如果没有达到自己想要的结果或是电路过于复杂,就必须再回头重新调整自己原先的设计。因而数位和模拟工程师 的工作总是遵循这样的法则:VHDL或VERILOG HDL描述(或图形输入)—前仿真—— 综合——后仿真——修改语言描述(或图形输入);而网表文件则是IC设计EDA工具可以识别的标准语言。
(3)layout设计可能是IC TERM中最需艺术家气质的工作。只是他必须严格按照代工厂所提供的设计规则(design rule)来绘制版图,或编写布局布线的约束文件。有两种版图设计的方法:直接的手工布局布线和EDA工具的自动布局布线。对ASIC和通用IC电路而言,经验丰富layout工程师的手工操作意味着比自动布局布线更紧凑合理的电路结构,更小的芯片面积,更短的线延迟和更高的后仿真成功率;而自动布局布线则意味着更短的设计周期,更少的人力资源投入;
图FIG10为上述2.5G D触发器的手工layout的版图;(采用TSMC的0.18um六层布线 Cu CMOS工艺标准,标准:CMOS018 design rule) 一个优秀的layout工程师可能同时掌握物理验证(DRC,ERC)和参数提取(LVS)工具;设计规则检测用于检查一个版图是否符合芯片加工厂的工艺约束,而参数提取则将在前仿真中没有考虑到的寄生的RC(电阻电容)参数从生成的版图中提取出来,反标到网表文件中供模拟和数位工程师做版图后仿真之用.模拟和数位工程师根据包含了寄生参数的网表文件来调整已有的设计以达到项目要求的物理,电气特性和逻辑功能.然后再将仿真后网表送到layouter手中进行重新的布局布线;这样的循环往往要来回数次才能得到满意的结果. 实际的情况往往是版图设计师和验证设计师各司其职,只是他们统称为layout工程师; 为设计出高效专业的版图,进行正确的物理验证和参数提取,layout工程师必须非常熟悉半导体工艺及其原理,熟悉代工厂的工艺细节,精通工厂提供的设计规则.layo ut设计师是一个term中和工艺关系最密切的环节; layout的经验是设计师最可宝贵的财产;
(4)TEST engineer;众所周知,现代IC的发展已经使得测试占到整个设计成本的 30%左右。设计的可测试性以及样片的测试成为产品的重要方面。所谓可测性即在设计阶段,为了芯片性能测试和工艺正确性测试的需要,设计师必须在芯片上加入大量的与功能无关的测试电路。有时这种测试版图甚至超过功能模块的面积!样片测试则是在预投片后对芯片样品进行细致的预定功能测试。测试手段的不断进步使得芯片的功耗分析、热分析、功能分析、信号完整性分析等等的精度和涵盖的范围愈来愈深入和广泛;而用于测试的设备仪器和软件投入也愈来愈大。 测试工程师的工作结果是一个设计是否成功的标准依据。
(5)经验丰富的项目主管
技术主管首先是资深ASIC设计工程师(Junior ASIC Design Engineers),
4.雄厚的经济基础
5.结论
从项目论证到选择合适的实现方法,从使用不同的EDA工具到分配合理的人力资源。集成电路设计的每一个环节都相互关联和影响,都是关系产品成败不可或缺的因 素。我国的微电子技术在50、60年代并不比美日差,那时半导体技术研究有“遍地开花”之说。但因为种种原因(比如政策上的和大环境上的)使的我们今天已经远远落后于美国、日本、韩国等国家和我国的台湾地区。现在国家开始逐渐重视IC产业;加入WTO有望打破日美发达国家对我们的技术封锁;国内有丰富的人力资源;很多著名的半导体厂商开始在大陆投资建厂、设立研究机构......这些为我国微电子产业的快速启动和发展创造了前所未有的有利条件。国内的微电子行业如何迎接挑战,如何在落后日美10年的情况下迎头赶上?我认为是一个很值得研究的课题。但我们坚信只要可以很好的解决这个课题;国家加大对微电子行业的投资力度;设立有效的IC设计和生产人力资源管理和使用制度,吸引更多的人加入到IC产业并减少每年白白流失到国外的IC设计人才(由于国外的IC产业的报酬都很高,如清华、中科院、复旦等学校的大量IC人才流失到国外);鼓励基础研究和与国外先进技术厂商加强技术和学术交流;借鉴韩国和台湾在微电子产业发展方面的经验教训;不盲目地上马项目,脚踏实地地努力;我想正如台湾UMC首席技术教授、中科院外籍院士、DRAM 器件的发明人施敏先生所说:“不出10年大陆的微电子产业就会赶超台湾”。