第一章概论第二章数字集成电路设计流程和设计方法2.1设计流程2.2设计描述2.3综合方法2.4设计验证2.5EDA工具第一章概论数字集成电路设计总体上可分为1.电路设计(前端设计)电路设计是指根据对ASIC的要求或规范,从电路系统的行为描述开始,直到设计出相应的电路图,对于数字系统来说就是设计出它的逻辑图或逻辑网表2.版图设计(后端设计)版图设计就是根据逻辑网表进一步设计集成电路的物理版图,也就是制造工艺所需的掩膜版的版图。第一章概论一、bottom-Up•自底向上(Bottom-Up)设计是集成电路和PCB板的传统设计方法,该方法盛行于七、八十年•设计从逻辑级开始,采用逻辑单元和少数行为级模块构成层次式模型进行层次设计,从门级开始逐级向上组成RTL级模块,再由若于RTL模块构成电路系统•对于集成度在一万门以内的IC设计是行之有效的,无法完成十万门以上的设计•设计效率低、周期长,一次设计成功率低2.1设计流程第一章概论SystemSpecificationArchitectural&BehavioralAnalysis,Design,VerificationRTLModel&VerificationLogic/TestSynthesisGateLevelVerificationTimingAnalysisAutomaticTestVectorGen.&FaultSim.ASIC/FPGAProcess&LayoutDesignPostLayoutVerification(Timing)ChipLayoutDatabaseTop-DownDesignFlowSpecificationStructuralDesign&PartitionGateLevelDesign&VerificationTimingAnalysisFaultSimulationLayoutDesign&Verification(DRC,ERC,LVS)GDSIILayoutDataBottom-UpDesignFlowOkYesModificationNoOkYesNoOkYesNoOkYesNo第一章概论二、Top-Down设计•Top-Down流程在EDA工具支持下逐步成为IC主要的设计方法•从确定电路系统的性能指标开始,自系统级、寄存器传输级、逻辑级直到物理级逐级细化并逐级验证其功能和性能2.1设计流程第一章概论二、Top-Down设计从电路行为到逻辑结构的转换是由逻辑综合这一步骤自动进行的。逻辑综合是采用编译的方法,自动生成与行为级描述等效的门级逻辑的过程,并且在综合的过程中可以根据具体情况对电路的速度、面积、功耗等指标进行优化。测试综合是为了电路的可测性而设置步骤,它同样是通过编译方法在逻辑综合产生的门级逻辑电路基础上,自动插入扫描链,确保了电路的可测性。在此阶段同样可进行门级模拟和测试生成等步骤。最后是版图综合,进行自动布局布线,并经过验证最终产生版图数据文件。2.1设计流程第一章概论Top-Down设计的关键技术–首先是需要开发系统级模型及建立模型库,这些行为模型与实现工艺无关,仅用于系统级和RTL级模拟。–系统级功能验证技术。验证系统功能时不必考虑电路的实现结构和实现方法,这是对付设计复杂性日益增加的重要技术。–逻辑综合--是行为设计自动转换到逻辑结构设计的重要步骤2.1设计流程第一章概论Top-Down设计与Bottom-Up设计相比,具有以下优点:•设计从行为到结构再到物理级,每一步部进都进行验证,提高了一次设计的成功率。•提高了设计效率,缩短了开发周期,降低了产品的开发成本•设计成功的电路或其中的模块可以放入以后的设计中提高了设计的再使用率(Reuse)。2.1设计流程第一章概论描述方面•行为描述(是指数字系统的行为,表示了系统输出与输入之间的数学和物理关系)•结构描述(规定了集成电路系统的组成和电路结构)•物理描述(是系统的实现结构,也就是集成电路在硅片上形成的物理结构。)设计抽象的层次(从电路高层的系统逐步细化,直到最底层的晶体管级电路)•系统算法级•寄存器传输级(RTL级)•逻辑级和电路级•最低层的晶体管级电路对于每一个层次都可以从以上三个方面进行描述2.2设计描述第一章概论一、硬件描述语言HDL(HardwareDescriptionLanguage)硬件描述语言可以用来描述电路系统的行为和结构,它是集成电路设计人员和EDA工具的界面。设计者是用HDL来描述自己的设计方案,包括集成电路的行为,结构和几何特性,并把描述以文件形式告诉EDA工具,并在EDA工具的帮助下进行修改和验证,直到设计成功。国际上通用的、标准的硬件描述语言主要有两种,即VHDL和VerilogHDL。2.2设计描述第一章概论二、行为描述一个特定的设计行为描述表达了由它规定的电路输出与输入之间的关系,对于数字系统或电路而言,行为描述的形式可以是布尔表达式、输入输出式的列表,也可以是C、C++等高级语言或硬件描述语言编写的程序。以全加器为例来说明2.2设计描述第一章概论modulecarry(co,a,b,c);outputco;inputa,b,c;wire#10co=(a&b)|(a&c)|(b&c)endmoduleVerilog-HDL描述进位算法描述2.2设计描述第一章概论三、结构描述结构描述规定了电路系统的结构,规定了元件之间的连接关系,并由此确定了系统的功能。结构描述的层次可以分成RTL级(功能块级)、门级、开关级、和电路级。2.2设计描述第一章概论4位加法器的结构描述(RTL级)moduleadd4(s,c4,ci,a,b);input[3:0]a,b;inputci;output[3:0]s;outputc4;wire[2:0]co;adda0(co[0],s[0],a[0],b[0],ci);adda1(co[1],s[1],a[1],b[1],co[0]);adda2(co[2],s[2],a[2],b[2],co[1]);adda3(c4,s[3],a[3],b[3],co[2]);endmodule2.2设计描述第一章概论moduleadd(co,s,a,b,c);inputa,b,c;outputs,co;sums1(s,a,b,c);carryc1(co,a,b,c);endmodulemodulecarry(co,a,b,c);(门级)inputa,b,c;outputco;wirex,y,z;andg1(x,a,b);andg2(y,a,c);andg3(z,b,c)or3g4(co,x,y,z)endmoduleabacbcco2.2设计描述门级结构描述采用通用门电路,与工艺无关。第一章概论(晶体管级)第一章概论加法器的开关级描述(1)modulecarry(co,a,b,c);inputa,b,c;outputco;wireil,i2,i3,i4,i5,i6;nmosnl(i3,i4,a);nmosn2(i4,vss,b);nmosn3(i3,i5,b);nmosn4(i5,vss,c);nmosn5(i3,i6,a);nmosn6(i6,vss,c);nmosn7(co,vss,i3);pmosp1(il,vdd,a);pmosp2(i2,il,b);pmosp3(i3,i2,c);pmosp4(il,vdd,b);pmosp5(i2,il,c);pmosp6(i3,i2,a);pmosp7(co,vdd,i3);endmodule2.2设计描述晶体管级实现涉及到流片工艺,若用CMOS工艺,则描述如下:第一章概论第一章概论开关级描述(2)modulecarry(co,a,b,c);inputa,b,c;outputco;wireil,i2,i3,i4,en;nmosnl(il,vss,a);nmosn2(il,vss,b);nmosn3(en,il,c);nmosn4(i2,vss,b);nmosns(en,i2,a);pmospl(i3,vdd,b);.pmosp2(en,i3,a);pmosp3(cn,i4,c);pmosp4(i4,vdd,b);pmosp5(i4,vdd,a);pmosp6(co,vdd,en);pmosn6(co,vss,en);endmodule2.2设计描述第一章概论四、物理描述电路的物理描述是用来定义在硅表面的物理实现,并由物理实现来产生指定的结构和行为。在集成电路的工艺中,物理描述的最低层次是由各种工艺处理所要求的掩膜信息,即版图信息。2.2设计描述第一章概论4位加法器单元的物理形式1位加法器的物理形式2.2设计描述第一章概论4位加法器的物理描述moduleadd4;inputa[3:0],b[3:0];inputci;outputs[3:0],outpuc4;boundary[0,0,100,400];portporta[0]aluminumwidth=lorigin=[0,25];portb[0]aluminumwidth=lorigin=[0,75];portcopolysiliconwidth=lorigin=[50,0];ports[0]aluminumwidth=lorgin=[100,50];addaoorigin=[0,0];adda1origin=[0,100];adda2origin=[0,200];adda3origin=[0,300];endmodule2.2设计描述第一章概论一、概述–综合方法是指电路从较高级别的描述自动地转换到较低级别的描述的自动设计方法。–综合可分为三个层次•行为综合:是指从系统算法级的行为描述到寄存器传输级(RTL)结构描述的转换•逻辑综合:是从RTL级描述到门级逻辑级的转换•版图综合:是从门级描述到产生相应版图的综合2.3综合方法第一章概论第一章概论二、行为综合行为综合是一种高层次的综合,它的任务是实现从系统算法级的行为描述到寄存传输级结构描述的转换。这里所说的行为是数字系统或其部件与外界环境的相互关系与作用;而结构是指组成系统RTL级的各个部件及其相互之间的连接关系。2.3综合方法第一章概论三、逻辑综合和逻辑优化–逻辑综合通常是使RTL级HDL描述自动转换成一组寄存器和组合逻辑,也就是说经过逻辑综合可以得到集成电路的门级逻辑结构。一般逻辑综合以后紧接着是逻辑优化,主要是考虑面积和时序优化,最后得到一个满足时序,面积和功耗约束条件的优化的逻辑电路。–综合过程是将HDL描述转换成非优化的布尔等式的描述,也就是门级描述,该转换过程是综合软件自动完成的,其过程不受用户控制。采用一定的算法和规则,在约束条件控制下使非优化的布尔等式进一步转换成优化的布尔描述,这就是逻辑优化的过程。–逻辑综合和优化时必须选择合适的综合库。综合库的选择体现设计人员对综合优化过程的控制,反映了对综合的要求。2.3综合方法第一章概论三、逻辑综合和逻辑优化逻辑优化是在给定综合库的情况下,对于逻辑描述所形成的门电路网络进行优化,优化的目标是根据电路速度和面积等约束条件进行协调,简化和改善电路的逻辑设计。优化过程分两个阶段进行,它们是:(1)与工艺无关的逻辑优化阶段:运用代数和布尔代数技术对电路进行优化(运用两极极小化过程);(2)结合综合库,与目标工艺对照阶段:根据制造工艺的要求,将已筒化的逻辑描述转换成综合库耍求的表达形式,也就是用相应的单元符号,包括标准单元或FPGA元件符号以及其它物理实现的逻辑符号替代已简化的描述。2.3综合方法第一章概论四、版图综合从电路的逻辑结构到集成电路版图的转换是物理综合的过程,也称为版图综合,实际上就是自动布局布线的过程。按照设计流程,逻辑设计验证完毕接着就可以进行自动的版图设计。1.布局算法布局是放置版图模块的工作,考虑到以后的布线通常是把连接紧密的模块依次放置,目的是使整个版图的面积和电路的工作周期最小,这就是所谓基于Timing的布局。2.3综合方法第一章概论1.布局算法两种自动布局算法,MinCut算法和“热退火”算法。1