2014-10-21jmlai设计描述和设计策略设计描述BehavioralStructuralPhysicalDesignstrategies2014-10-21jmlaiContent设计描述:在三个域中对集成电路进行描述BehavioralStructuralPhysicalDesignstrategies2014-10-21jmlai表示了电路输入与输出之间的数学和物理关系描述形式(HDL、C\C++、MATLAB、Verilog-A、SyetemC):BooleanequationsTableofinputandoutputvaluesHDL描述…在IC设计中,一般采用行为HDL语言描述行为域描述2014-10-21jmlai例:一位全加器的布尔表达式BooleanequationsCBAABC)(0ABCACBCABCBAS2014-10-21jmlai行为描述例:一位全加器的真值表Tableofinputandoutputvalues2014-10-21jmlaimodulefulladder(a,b,c,s,cout);inputa,b,c;outputs,cout;sums1(s,a,b,c);carryc1(cout,a,b,c);endmodule行为描述例子2014-10-21jmlaiHDLforthecarryfunction(co):modulecarry(co,a,b,c);//模块的端口定义outputco;//输出inputa,b,c;//输入assignco=(a&b)|(a&c)|(b&c);//声明语句,按位与再按位或endmodule行为描述例子2014-10-21jmlaiContent设计描述BehavioralStructuralPhysicalDesignstrategies2014-10-21jmlai结构描述描述了电路与系统的结构,规定了元件之间的连接关系,并由此确定了系统的功能。描述形式:功能模块级(RTLorfunctionalblock)门级(GateLevel)电路级(CircuitLevel)在IC设计中,一般功能模块、门级和电路级均采用结构HDL语言描述2014-10-21jmlaiFour-bitAdder输入:A,B,Cin输出:S,CoutA,B,S均是4bit[3:0]2014-10-21jmlaiExampleStructuralrepresentationThecascadingof1-bitadderstoform4-bitadder:moduleadd4(s,Cout,Cin,a,b);input[3:0]a,b;//数据位宽是4inputcin;output[3:0]s;outputCout;wire[2:0]co;//用于连接器件单元的变量,不能储存值adda0(co[0],s[0],a[0],b[0],ci);//add模块定义的实例a0adda1(co[1],s[1],a[1],b[1],co[0]);adda2(co[2],s[2],a[2],b[2],co[1]);adda3(Cout,s[3],a[3],b[3],co[2]);endmodule模块级描述2014-10-21jmlaiExampleStructuralrepresentation(contd.)moduleadd(co,s,a,b,c);inputa,b,c;outputs,co;sums1(s,a,b,c);carryc1(co,a,b,c);endmoduleadd加法模块的描述2014-10-21jmlaiExampleStructuralrepresentation(contd.)modulecarry(co,a,b,c);inputa,b,c;outputco;wirex,y,z;andg1(x,a,b);andg2(y,a,c);andg3(z,b,c);org4(co,x,y,z);endmoduleabacbcco进位模块逻辑级描述xyz2014-10-21jmlai开关级描述(1):采用CMOS工艺晶体管级描述2014-10-21jmlaimodulecarry(co,a,b,c);inputa,b,c;outputco;wireil,i2,i3,i4,i5,i6;tranif1nl(i3,i4,a);tranif1n2(i4,vss,b);tranif1n3(i3,i5,b);tranif1n4(i5,vss,c);tranif1n5(i3,i6,a);tranif1n6(i6,vss,c);tranif1n7(co,vss,i3);tranif0pi(il,vdd,a);tranif0p2(i2,il,b);tranif0p3(i3,i2,c);tranif0p4(il,vdd,b);tranif0p5(i2,il,c);tranif0p6(i3,i2,a);tranif0p7(co,vdd,i3);endmodule晶体管类型管名(输出/漏输出/源输入/栅)tranif1:NMOStranif0:PMOS开关级描述(1):采用CMOS工艺晶体管级描述2014-10-21jmlai开关级描述(2):采用CMOS工艺晶体管级描述en2014-10-21jmlai开关级描述(2):采用CMOS工艺晶体管级描述2014-10-21jmlai结论从模块级、逻辑门级到晶体管,更细微地描述了电路结构上升一个设计层次,就可以隐藏或忽略下一层次的某些细节信息,简化设计工作。2014-10-21jmlai设计描述和设计策略设计描述BehavioralStructuralPhysicalDesignstrategies2014-10-21jmlaiPhysicalrepresentation用来定义硅表面的物理实现,是最低层次的描述是各种工艺处理所要求的掩膜信息,即版图信息4位加法器的物理描述抽象模块图2014-10-21jmlaiPhysicalrepresentation4位加法器的物理描述2014-10-21jmlai小结2014-10-21jmlai小结CMOSIC的设计包含了行为、结构和物理三个不同域的描述。每个域的设计层次包括系统层、RTL层、逻辑层和电路层.电路的设计描述取决于电路的复杂度以及设计人员的EDA工具和经验决定电路的输入可采用行为域描述或结构域描述描述层次通常从RTL级开始。芯片设计采用高度自动化的设计方法设计过程可以看为行为、结构和物理描述的生成、转换和验证的过程从行为到物理描述的转换过程在理论上、操作上是有充分保证的。2014-10-21jmlai设计描述和设计策略IntroductionCircuitandsystemrepresentationDesignstrategiesHierarchyRegularityModularityLocality2014-10-21jmlaiDesignStrategies设计策略:Hierarchy;Regularity;Modularity;Locality;2014-10-21jmlaiHierarchyDivideamoduleintosubmodulesandthenrepeatingthisoperationonthesubmodulesuntilthecomplexityofthesmallerpartsbecomesmanageableHierarchycanbethereinalldomainsBehavior,structural,physical2014-10-21jmlaiHierarchy2014-10-21jmlaiExampleofStructuralHierarchyafour-bitaddercircuit,showingthehierarchydowntogatelevel2014-10-21jmlaiHierarchy版图层次化2014-10-21jmlaiLayoutofa16-bitadder,andthesub-blocksofitsphysicalhierarchy2014-10-21jmlaiHierarchy总结层次设计从高层到低层从抽象到具体利于多人同时设计使设计思想清晰,设计工简化层次设计存在的问题不能解决复杂性问题,最终有可能存在一系列子系统2014-10-21jmlaiContentIntroductionCircuitandsystemrepresentationDesignstrategiesHierarchyRegularityModularityLocality2014-10-21jmlai规则化设计(Regularity)采用规划性结构的设计,达到简化设计的目的尽可能地将电路划分成一组相同或相似模块,减少单元模块.减少需验证的子模块数量适用于设计的各个阶段和层次在系统级:尽可能使用多个相同的处理器、采用公用的电源、地线、时钟和总线在RTL级:尽可能调用相同功能块来组成在电路级:尽可能采用相同尺寸晶体管,且进行优化设计在版图级:尽可能采用重复的版图单元,提高设计效率。如基于标准单元的版图设计,电路结构(典型、规则)和版图形式(等高不等宽、引线脚等)2014-10-21jmlaiCircuit-levelRegularityExample(a)A2-1MUX(b)D-typeedgetriggeredflipflop(c)One-bitfulladdinvertersandtristatebuffers2014-10-21jmlaiContentIntroductionCircuitandsystemrepresentationDesignstrategiesHierarchyRegularityModularityLocality2014-10-21jmlai模块化Modularity对系统进行仔细系统的功能分析和结构分析,遵守的原则如下:模块在整个系统中的作用及其更换的可能性和必要性。保持模块在功能及结构方面有一定的独立性和完整性,模块必须有明确定义的功能和接口模块间的接合要素要便于联接与分离:串接结构、迭代结构、条件结构模块定时:采用公共时钟(同步):结构清晰、较易验证、可测性好、关键路径在一个模块内2014-10-21jmlai模块化Modularity模块接口标准化端口要明确:输入端口、输出端口、双向端口模拟端口、数字端口电源端口和地端口端口的功能、名字、信号类型和电气与时序约束;端口的负载电容、驱动能力输入信号驱动:为了抵抗噪声并达到预想的时序,输入信号最好驱动晶体管的栅,不要是驱动晶体管的漏和源端。输入信号的寄存、输出信号的寄存2014-10-21jmlaiContentIntroductionCircuitandsystemrepresentationDesignstrategiesHierarchyRegularityModularityLocality2014-10-21jmlai局部化Locality局部化通常指时间的局部化,指遵守某种时钟或时序协议要求模块采用同一个时钟,采用同步时序的方法,整个电路在统一的时钟节拍下动作指明输入信号与时钟边沿相关的建立时间和保持时间指明输出信号与时钟边沿相关的延迟时间关键路径尽可能控制在一个模块内布局时尽可能使得全局线最短;避免模块之间的长距离连接;尽可能使得连接是在邻近模块之间2014-10-21jmlai参考材料[Neil]:CH1;CH8鸣谢本讲义引用了IntroductiontoICDesign,designofICsystem、Digitalintegratedcircuits、Acircuitand