《数字IC设计方法学》PPT课件.ppt_第1页
《数字IC设计方法学》PPT课件.ppt_第2页
《数字IC设计方法学》PPT课件.ppt_第3页
《数字IC设计方法学》PPT课件.ppt_第4页
《数字IC设计方法学》PPT课件.ppt_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,第2章 数字IC设计方法学 2.1 数字IC设计流程 2.2 层次化设计和模块划分 2.3 芯片封装和散热 2.4 CMOS工艺选择,2,2.1 数字IC设计流程 数字IC设计是一个非常复杂的系统工程,其流程也不是固定不变的,而是随着设计复杂度、设计方法、制造工艺、EDA工具的发展而不断演化的。 右图是目前业界普遍认可的数字IC设计的基本流程,RTL代码功能仿真 RTL simulation,BSD & DFT插入 BSD & DFT insertion,后端布局布线 back-end place & route,版图后静态时序分析 post-layout static timing analysis,系统体系结构设计 architecture design,RTL代码编写 RTL coding,综合和静态时序分析 synthesis & static timing analysis,门级仿真和形式验证 gate simulation & formal verification,后仿真和形式验证 post simulation & formal verification,流片生产 tape out,3,数字IC的实际设计过程中,各个阶段之间必然会有交互和反复,只有在设计的前一阶段充分考虑后续阶段会遇到的困难,后续阶段才有可能顺利完成,否则需要返回到前面的阶段重新设计。 比如,体系结构设计阶段要考虑硬件实现代价,否则到后端设计阶段发现面积和功耗上的要求无法实现,只好返回到体系结构设计阶段重新设计或修改;RTL代码编写的质量太差,或者综合时约束条件不完备,会导致后端布局布线时时序无法收敛,只有重新修改RTL代码,重新综合仿真。 显然,反复次数过多会大大影响设计的进度。 现代EDA工具发展的一个重要原则就是尽可能在设计的前端发现并克服或减少后端设计将要面临的困难,减少设计中反复的次数。 数字IC的实际设计过程中,各个阶段之间也不是完全串行进行的,在合理安排的情况下,多个阶段之间可以并行操作。 比如,RTL综合等后端处理阶段和RTL代码功能仿真阶段可以并行进行;再如,后端设计过程中的静态时序分析和后仿真可以并行进行。 多阶段之间的并行操作缩短了IC设计周期,但也给设计中数据管理提出了更高要求,因为多个操作阶段间有数据依赖关系。 设计各阶段间的反复迭代和并行操作要求数字IC设计必须有严格的数据管理机制才能保证项目正常进行。,4,2.1.1 系统体系结构设计 系统体系结构设计是集成电路设计的第一步,也是最重要的一步。 系统架构设计的好坏,很大程度上决定了后续所有设计阶段的质量,即决定了整个集成电路设计的成败。 系统体系结构设计要完成的主要工作包括: 定义集成电路的功能和应用环境,划分整个电子系统(包括集成电路和其所处应用环境)的软硬件功能,定义可配置寄存器; 划分集成电路各个模块的功能并画出这个系统的模块框图,定义各个模块间的接口信号,定义各个模块间的信号互连规范和信号流向; 设计集成电路的系统时钟、系统复位方案,设计跨时钟域的信号握手方式并评估其对整个集成电路性能的影响; 确定集成电路的关键性能指标,评估实现这些指标对系统体系结构的影响; 分析和比较关键的算法,评估算法的硬件可实现性和硬件代价; 确定可测性DFT功能模块(如BSD、BIST、JTAG)的需求和实现代价。,5,系统体系结构设计举例: 可重构密码协处理器 -青岛市重点技术创新项目 可重构密码协处理器是一款新型的用于对数据进行加密/解密处理的集成电路芯片,可以作为核心芯片应用于各种各样的信息安全产品中,比如电脑加密卡、保密电话等,其特点是能够灵活地、方便地、快速地实现许多种不同的密码算法,同现有的密码芯片相比,它具有灵活性大、适应性强、扩展性好、安全性高等优点。,6,1.应用环境和功能定义 应用环境:,7,8,9,10,需求分析:,11,功能定义:,右表:可重构密码协处理器实现的各种基本密码运算,12,指令系统设计: 可重构密码协处理器的指令结构采用超长指令字(VLIW)结构,指令长度为202位,共有4种指令格式, 其形态如下:,其中,insformat是指令格式控制域,insformat=00表示执行指令,insformat=01表示配置指令,insformat=10表示停机指令,insformat=11表示跳转指令。inscode是指令编码域。,13,2.模块划分 对应不同系统架构和算法实现,相应的模块划分方法也会不同; 对于一个复杂的数字IC,最有效的方法是建立各种架构模型,对不同模块划分方案进行分析比较; 模块的划分可以逐步细化,分为多个层次。 可重构密码协处理器的总体结构设计: 可重构密码协处理器由存储模块、控制模块和可重构密码处理单元三大部分组成。其中,存储模块用于存储密码算法程序、种子密钥和待加/解密数据,控制模块用于控制程序的存储和执行,可重构密码处理单元用于对数据进行加/解密处理。 可重构密码协处理器与外部设备的接口信号包括:clock-时钟信号,reset-复位信号,insnumr_en-指令条数寄存器写使能信号,insw_en是指令装载使能信号,mem_addr是指令存储器地址,ins_exe-指令执行使能信号,dkw_en-待加/解密数据或密钥装载使能信号,trans_en-将加/解密结果传输到外部的使能信号,ready-可重构密码协处理器状态标志信号,datain-数据输入总线,dataout-数据输出总线。 可重构密码协处理器的总体结构框图如下:,14,可重构密码协处理器的总体结构框图:,15,可重构密码处理单元设计 可重构密码处理单元用于实现加/解密运算,它由大量的基本密码运算模块和灵活可变的内部互联网络构成。 其中,基本密码运算模块用于实现密码算法所需要的基本密码运算,内部互联网络用于实现不同密码运算模块之间的数据传送。 为了提高可重构密码处理单元的灵活性,许多密码运算模块的功能和模块之间的数据传输路径都是可配置的,即可以通过指令来灵活设置密码运算模块的功能和模块之间的数据传输路径,从而可以通过编程来灵活地实现不同的密码算法。,16,可重构密码处理单元的模块结构图:,17,控制模块设计 控制模块包括有限状态机和指令译码逻辑等。 有限状态机用于控制可重构密码协处理器的状态转换和每个状态下的操作。根据加/解密处理的实现过程,我们将可重构密码协处理器的状态划分为三种:指令装载状态、指令执行状态和空闲状态。 在指令装载状态下,可重构密码协处理器将密码程序中的指令按顺序装载到指令存储器中。在指令执行状态下,可重构密码协处理器自动地、不断地从指令存储器中取出指令、进行译码并加以执行,直至所有指令执行完毕。在空闲状态下,可重构密码协处理器不进行指令装载操作和指令执行操作,并保持所有的运算结果寄存器的值不变。 主处理器只需对指令执行使能信号ins_exe施加一个脉冲,就可以将可重构密码协处理器设置为指令执行状态,从而启动指令自动执行过程,然后在整个过程中不再需要主处理器的干预,这大大减少了主处理器的控制开销和可重构密码协处理器访问外部设备的开销,提高了加/解密的处理速度。 指令自动执行过程结束以后,可重构密码协处理器将自动转换为空闲状态,并给出空闲状态的标志信号ready,主处理器在收到ready信号后,就可以驱动可重构密码协处理器进行新的操作了。 指令译码逻辑用于对指令进行分析,确定指令中所包含的操作,并给出相应的控制信号,驱动相应的模块完成所需的操作。,18,19,存储模块设计 存储模块包括指令存储器、数据/密钥缓冲寄存器和指令条数寄存器。 指令存储器用来保存加密或解密程序,其存储容量为256个208位的指令字,即6.5K字节。 指令存储器具有一个写端口和一个读端口。写端口用于将密码程序由外部写入到可重构密码协处理器内部的指令存储器中,为了减少可重构密码协处理器的引脚数,指令存储器写端口的数据宽度为8位,这样可重构密码协处理器的一条指令(208位)需要分26次才能写入到指令存储器中。由于密码程序装载操作只发生在密码算法初建或更新的时刻,而通常一个密码算法能够保持一个较长的时间不变,在这段时间内只需进行一次密码程序装载操作,因此它所花费的时间长一点无关紧要。读端口用于读出保存在指令存储器内的指令,经过译码后控制加/解密过程的执行。由于可重构密码协处理器的指令长度为208位,我们将指令存储器读端口的数据宽度定为208位,这样能够保证每个时钟周期读取一条指令执行,有效地加快了加/解密的处理速度。 数据/密钥缓冲寄存器是一个128位的寄存器,用来保存种子密钥和待加/解密的数据。为了进一步节省可重构密码协处理器的引脚数,数据/密钥缓冲寄存器和指令存储器共享同一条数据输入总线datain。 指令条数寄存器用来保存密码程序中所含的指令的条数,该数据参与控制程序装载操作的结束。,20,21,基本密码运算模块的设置 根据计算机体系结构的基本理论我们知道,对于那些在应用中频繁出现的计算任务,应该用专门的硬件加以实现,这样将大大提高计算机系统的性能。因此,我们应该在可重构密码处理单元中设置那些能够被不同密码算法频繁使用的密码运算模块。 通过对DES、IDEA、AES等50余种典型的对称密码算法进行分析,我们发现,一些典型的密码运算在不同密码算法中出现的频率很高,如:异或、移位、置换、S盒代替、模乘/加运算、反馈移位运算等,因此,我们应该在可重构密码处理单元中设置相应类型的密码运算模块,这样,将显著提高一些常用密码算法的运算速度。 同时,为了提供足够的灵活性和适应性,可重构密码处理单元还应该包括一些通用计算模块,如算术逻辑单元等,以便处理那些特殊的、使用频率不高的密码运算。 另外,为了进一步提高可重构密码处理单元的性能,往往可以设置多个同一类型的密码运算模块,以便增加计算的并行性。 基于上述考虑,我们确定了可重构密码处理单元的组成方案,见表2。,22,表2:可重构密码处理单元所包括的基本模块的名称、功能和数量,23,可重构密码处理单元的子模块-32位移位模块,24,可重构密码处理单元的子模块-32位置换模块,25,可重构密码处理单元的子模块-S盒模块,26,可重构密码处理单元的子模块-32位线性反馈移位寄存器模块,27,可重构密码处理单元的子模块-寄存器堆模块,28,2.1.2 RTL代码编写 RTL编码在寄存器传输级层次对电路进行抽象描述。 RTL编码重点描述寄存器和其间的逻辑。 RTL规范比系统级、行为级更严格,可以使用DEA综合工具转换为门级电路,具有物理可实现性。 虽然目前业界已有系统级综合工具,但转换效率和可靠性在短时间内还无法达到RTL综合工具的水平。 RTL抽象层次比门级高,描述简洁、清晰,设计效率比门级设计高几十到上百倍。 RTL设计在很大程度上已经决定了设计的功能和性能,虽然可以通过此后的综合和布局布线来对设计作一定程度的优化,但优化的结果依赖于RTL编码的质量。 RTL编码设计者要在不依赖后端的综合和布局布线的情况下,尽可能多地解决延时、面积、测试等问题。 在RTL编码过程中,从一开始就考虑到综合,以及到最终会生成的硅物理电路。,29,高质量的RTL编码设计应该考虑以下因素: (1)可综合性:设计者头脑中要始终保持有电路的概念,即保证编码是综合工具可综合转换的,并保证编码能够被综合工具正确识别,最终产生设计者所期望的电路。 (2)可读性:在RTL编码过程中采用统一的、规范的书写风格,避免复杂难以理解的语法形式,并应加入清晰易懂的注释。 (3)时序优化:设计者要选择恰当的电路结构和时序划分,保证同步电路的时钟约束(建立时间、保持时间)在综合阶段能较容易地被满足。 (4)面积优化:在RTL编码阶段考虑节约面积往往会得到比只靠综合优化工具更好的效果;另外,对于一些复杂的电路结构,不同的RTL编码方法会得到面积和单元数目完全不同的综合结果。设计者需要学会估算各种RTL编码设计在特定的综合工具和综合库下占用面积资源的情况,从而选择最优的编码形式。 (5)功耗优化:设计者在RTL编码阶段就要考虑减少不必要的信号跳变,降低信号翻转频率,以降低整个数字IC系统的功耗。 (6)可测性:设计者只有按照一定的可测性规则进行RTL编码,后端的可测性设计工作才能顺利进行。 (7)物理实现性:在RTL编码阶段还应该考虑到后端布局布线的难度,如多个模块间的数目巨大的交叉走线必然会让后端工具无能为力;再如,某些电路信号扇入扇出太多会造成布局布线的局部拥塞。,30,2.1.3 RTL功能仿真 功能仿真是芯片设计的重要步骤,目的是验证设计是否达到了预期的功能。 仿真环境从待验证设计的输入端输入激励信号,观察信号在设计内部传输到输出的过程,从而分析设计功能是否正确。 不同设计的仿真环境的结构往往是不同的,需要根据待验证设计和验证的目标来设计。 仿真环境模拟真实的应用环境。 用Verilog语言可以建立仿真环境,称为testbench。 下面给出一个功能仿真的例子:32位ALU的功能仿真。 例子:利用Verilog HDL设计一个运算器模型,并进行仿真测试。要求该运算器的字长为32位,能够实现加法、减法、逻辑与、逻辑或四种运算,并产生N(结果为负)、Z(结果为零)、V(结果溢出)、C(进位)四个标志位。,31,ALU的电路结构图,OP 00 AND 01 OR 10 ADD 11 SUB,32,module ALU(op,a,b,s,n,v,c,z); input 1:0 op; input 31:0 a,b; output 31:0 s; output n,v,c,z; wire 31:0 d,e,f,s1; assign d=a endmodule,ALU的Verilog模型,33,ALU的测试文件,timescale 1ns / 1ns module ALUtest; reg clk; reg 1:0op; reg 31:0a,b; wire 31:0s; wire n,v,c,z; /op=00 AND;op=01 OR;op=10 ADD;op=11 SUB; ALU A(op,a,b,s,n,v,c,z); initial clk = 1; /clock generation always #50 clk = clk; initial begin #20 a=32b0100_0101_0100_0000_0010_0010_0101_0001; b=32b1010_0101_0010_0000_0100_0010_0011_0010; op=2b00; #100 a=32b0100_0101_0100_0000_0010_0010_0101_0001; b=32b1010_0101_0010_0000_0100_0010_0011_0010; op=2b01; #100 a=32b0100_0101_0100_0000_0010_0010_0101_0001; b=32b1010_0101_0010_0000_0100_0010_0011_0010; op=2b10; #100 a=32b0100_0101_0100_0000_0010_0010_0101_0001; b=32b1010_0101_0010_0000_0100_0010_0011_0010; op=2b11; #100 a=32b0111_1011_1101_1110_1111_1111_1111_1111; b=32b0111_1011_1101_1110_1111_1111_1111_1111; op=2b11; #100 a=32d15; b=32d9; op=2b11; #100 a=32d9; b=32d15; op=2b11; #100 $stop; end endmodule,34,ALU的仿真波形图,35,2.1.4 RTL综合 RTL综合(或逻辑综合)是通过EDA工具将RTL代码映射到由制造厂家标准单元库中的元件所构成的门级电路的过程。 常用的综合工具:Synopsys公司的Design Compiler,Cadence公司的RTL Compiler,Magma公司的RTL Blaster等。 典型的RTL综合分为两个阶段: (1)逻辑表达和优化阶段:分析RTL电路描述,并使用布尔方程划简得到最优的逻辑电路表达,这一阶段使用EDA工具自带的通用元件库。 (2)工艺标准单元库映射阶段:将通用元件库网表映射为工艺标准单元库网表,这个阶段会根据标准单元库各元件的面积、延时、功耗信息和设计所需达到的目标来优化电路。 RTL综合是由各种约束条件驱动的,包括工作环境、时序要求、面积、功耗等。 综合实际上是要在所有约束条件下折中产生一个最优网表。 约束条件中最重要的是时间约束,满足时间约束达到时序收敛是综合最重要的目标。,36,RTL综合的各个步骤: (1)确定综合工具和综合策略:自顶向下综合、自底向上综合。 (2)确定制造厂家工艺库文件:工艺库文件中包含了标准元件的面积、延时、输入输出、功耗、工作环境、设计规则等信息,通常制造厂家会按照常用EDA综合工具要求的格式产生库文件。工艺库文件中的延时信息,通常会根据不同的工作环境和工艺极限参数提供最大、最小和典型三种延时信息。综合工具以及后续的各种时序分析工具都会分别用最大、最小两组延时信息分析set up时间和hold时间,以保证芯片在各种工作环境和工艺偏差下都能正常工作。 (3)分析RTL设计:首先输入RTL设计文件,一般是采用HDL语言描述的文件;其次综合工具会分析RTL设计的正确性,包括HDL语言描述的语法正确性,RTL设计的完整性,以及RTL设计的可综合性和代码质量;再次综合工具会将所有的子模块链接成一个大的完整的模块,并将多次例化的子模块按例化环境复制成唯一的子模块,这样做是因为同一子模块的不同例化在综合时会有不同的约束要求。 (4)确定综合环境:综合环境包括芯片的目标工作环境、线负载模型和元件的接口特征。厂家工艺库中对综合环境做出了各种设定,包括温度、电压、工艺变化范围、预估的走线长度等。综合时综合工具需要根据芯片设计的具体情况从工艺库中选择,这样就能保证综合的结果尽可能地接近预期目标。,37,(5)确定设计目标约束:最常用的设计目标约束是时钟约束、边界约束和面积约束。时钟约束和边界约束的实际是给同步电路中的每一条信号路径设定set up时间和hold时间约束,包括芯片或模块内部的路径,端口的输入输出路径,以及多时钟系统中的跨时钟域路径。面积约束和时间约束是一对矛盾,EDA工具通常采用的策略是在满足时间约束的前提下尽可能满足面积约束。例如,RTL代码中的加法可以被综合转换为超前进位加法器或串行进位加法器,前者比后者的电路延时短,但面积会大很多,所以综合时在串行进位加法器能满足时间约束的情况下,就不会采用超前进位加法器了。 (6)确定设计规则约束:设计规则约束保证了综合结果的可靠性和后端布局布线质量。设计规则约束通常包括信号最大翻转时间、节点最大负载电容和节点最大驱动扇出。最大翻转时间约束和节点最大负载电容约束保证了芯片内部信号驱动的可靠性,同时保证芯片功耗不会因信号质量问题而增加。节点最大负载电容约束和节点最大驱动扇出约束保证了芯片内部连线不会过长,不会出现一点到多点的拥塞,这在很大程度上减少了后端布局布线的难度。,38,(7)综合优化和结果分析:EDA工具根据前面设定好的各种环境和约束,综合优化得到最终的网表。实际上综合优化可以看成是一个在设定的边界约束下反复迭代求NP问题最优解的过程,因此当边界约束过于苛刻时,优化最终产生的网表并不一定总能满足所有设定的约束条件。综合结束后,根据EDA工具产生的报告分析约束是否满足和约束不满足的原因是RTL综合最重要的工作,根据分析的结果往往需要修改RTL代码甚至电路结构。 (8)形式验证:形式验证(formal verification)用于检查综合的结果和RTL代码在逻辑功能上是否一致。形式验证是一种等效性检查,它不是通过仿真,而是通过直接分析电路的逻辑关系来进行验证的。RTL综合转换的正确性和RTL编码的质量有很大关系,形式验证能及时检查出综合转换过程中的错误,保证综合的正确性。数字IC设计中,形式验证还用于多种场合,如不同版本的RTL代码比较以找出版本间的差别,以及比较布局布线前后的网表以保证布局布线的正确性。 RTL综合在数字IC设计中起着重要的承前启后的作用。好的综合结果能及时发现并反映RTL编码中时序结构的不合理性,指导RTL代码修改;同时RTL综合的质量对后端布局布线影响很大,后端布局布线后时序不收敛,往往是因为RTL综合时约束不完备或不准确造成的。,39,例子:可重构密码协处理器综合后的功能与性能指标,可重构密码协处理器的最终实现形式是ASIC芯片,其性能和规模与生产工艺和厂家库有关。我们选用业界权威的综合优化工具Synopsys公司的Design Compiler,基于TSMC 0.25u工艺库在最坏情况下对可重构密码协处理器的性能和规模进行了评估,结果表明可重构密码协处理器的工作时钟频率可以达到111Mhz、规模约为8平方毫米(若折合为门数,则大约相当于279792门)。由此可以估算出在可重构密码协处理器上实现的一些典型的密码算法的加/解密速度,详见下表。,40,可重构密码协处理器功能与性能指标(续一),41,可重构密码协处理器功能与性能指标(续二),具体地说可重构密码协处理器支持的操作及其时序要求如下: (1)支持系统复位操作,复位后所有内部寄存器立即被置为0。 (2)支持指令条数寄存器装载操作,2个时钟周期完成。 (3)支持程序装载操作,每个时钟周期装载1个字节。 (4)支持密钥/数据装载操作,每个周期装载1个字节。 (5)支持程序执行操作,给出触发信号后,程序自动执行。 (6)支持结果传输操作,每个时钟周期传输1个字节。 (7)支持64位输入寄存器写操作,1个周期完成。 (8)支持128位结果寄存器写操作,1个周期完成。 (9)支持8个16*16寄存器堆写操作并行执行,1个周期完成。,42,可重构密码协处理器功能与性能指标(续三),(10)支持8个16*16寄存器堆读操作并行执行,1个周期完成。 (11)支持4个16位异或操作并行执行,1个时钟周期完成。 (12)支持2个28位循环左移操作并行执行,1个时钟周期完成。 (13)支持32位移位操作,1个时钟周期完成。 (14)支持128位移位操作,1个时钟周期完成。 (15)支持2个32*32置换操作并行执行,1个时钟周期完成。 (16)支持64*32置换操作,1个时钟周期完成。 (17)支持2个64*64置换操作并行执行,1个时钟周期完成。 (18)支持8个8*8 S盒代替操作并行执行,1个时钟周期完成。 (19)支持3个32位线性反馈移位操作并行执行,1个时钟周期完成。,43,可重构密码协处理器功能与性能指标(续四),(20)支持16位逻辑运算操作,1个时钟周期完成。 (21)支持16位比较操作,1个时钟周期完成。 (22)支持2个模216加法/减法操作并行执行,1个时钟周期完成。 (23)支持2个模216+1乘法操作并行执行,2个时钟周期完成。 (24)支持模216+1乘法逆操作,最多需要400个时钟周期完成。 (25)支持模232乘法操作,2个时钟周期完成。 (26)支持8个8位模多项式乘法操作并行执行,1个时钟周期完成。 (27)支持配置操作,每个周期可以配置128-192bit。 (28)支持程序跳转操作,2个周期完成。 (29)支持停机操作,1个周期完成。,44,2.1.5 可测性设计 在芯片的生产制造过程中,由于各种原因会产生一定的制造缺陷,导致小量芯片不可用。制造测试要求检查出制造缺陷,保证每个逻辑门和寄存器都可运行,从而保证芯片所有的功能都正确。对于大规模的数字IC设计,仅仅依靠功能测试向量是不足以高效地测试出所有的制造缺陷的。数字IC设计中插入的专为提高测试效率的电路,称为可测性设计(design for test,DFT)电路。 可测性设计的目的是要实现电路的可测量性、可控制性和可观察性。良好的可观察性和可控制性能提高测试效率,在相对较少的测试向量下能够得到高的故障覆盖率。常用的可测性设计方法包括基于扫描链(scan chain)的测试方法和内建自测试电路(built-in self-test,BIST)。 基于扫描链的测试方法是通过建立专门扫描链电路为每个寄存器提供可观察性和可控制性,它通过对寄存器的控制将复杂的时序逻辑设计划分为完全隔离的组合逻辑块,从而简化了测试过程。基于扫描链的测试方法又分为两种:一种是芯片内部寄存器的扫描链,用于测试芯片内部制造缺陷,另一种是芯片I/O端口的扫描链,又称为边界扫描设计(boundary scan design),用于测试系统电路板级的制造缺陷。,45,内建自测试电路方法是通过芯片内部专门设计的测试逻辑电路(区别于扫描电路)的运行来检查设计功能正常的电路的制造缺陷,它相当于把一个小型专用的测试仪器集成到芯片内部。BIST方法常用于片内存储器的测试,如数据缓存、FIFO、Cache等。在实际应用中,BIST和BSD经常与JTAG结合起来使用。JTAG接口提供了一种简单通用的通过有限I/O访问芯片内部信号的方法。 可测性设计实际上分布在数字IC设计的多个阶段,各种BIST在系统体系结构设计阶段就要规划,然后在RTL编码阶段实现,在RTL功能仿真阶段还要验证其正确性;而DFT扫描链、BSD和JTAG主要在RTL综合完成之后,直接由EDA工具插入。,46,2.1.6 后端布局布线 后端布局布线是数字IC设计的物理实现过程,即把RTL综合和插入可测性设计后的网表文件转换为可生产的版图的过程。布局布线阶段是数字IC设计难度较高的阶段,特别是随着芯片规模的增大和工作频率的提高,深亚微米设计的布局布线的设计风险也在加大。 后端布局布线主要由EDA工具自动完成,但输入给EDA工具的各种约束条件以及在后端设计中各阶段的分析、优化、判断和设置,决定了布局布线的质量。实际中发现,布局布线产生的版图达不到最终的设计时序要求往往和后端工作输入的约束条件不完备或不准确有关。 后端输入的约束主要包括芯片的布局(floor-plan)要求和芯片的时序要求。布局要求包括:芯片面积大小的设定,各I/O单元的摆放位置,内部电源网络设计要求,各模块的摆放位置、大小和相互之间的关系等。时序要求包括:各时钟树布线要求,各时钟树间关系,输入输出约束等。,47,后端布局布线的基本步骤包括: (1)设计输入:标准单元库、标准I/O库、综合后网表、各种约束文件等。 (2)芯片布局(floor-plan):设定芯片面积,确定各模块位置,确定预留出来不能占用的空间(如SRAM块),设定电源网络,设定各I/O信号出口位置等。 (3)标准单元布局(placement):根据芯片布局来摆放网表中调用的所有标准单元,EDA工具会对时序约束、布线面积、布线拥塞等因素综合分析决定标准单元的摆放。芯片布局和标准单元布局的质量比实际的布线还要关键。好的布局,不仅可以加快最后布线的速度,还可以得到比较理想的延时效果,并减少布线拥塞的可能性。 (4)时钟树综合:按照时钟树约束,插入buffer产生均衡(balance)时钟树的最优布线,即尽量保证时钟跟节点到各叶子节点延时基本一致。自动综合时钟树的能力是衡量后端布局布线EDA工具性能的一个重要指标,对于复杂的设计还往往需要人工的直接干预。时钟树综合工具还能针对特殊的要求在不同的时钟树间做均衡,或者在版图设计上对时钟信号做出更多保护等。,48,(5)自动布线:EDA工具自动布线的过程包含多个阶段,首先是全局布线,然后在全局布线的基础上反复修改,知道修复所有的violations,包括连接上的问题和时序约束上的问题。 (6)RC参数提取:根据布线完成的版图提取RC参数文件。RC参数提取需要输入相应的工艺参数,如工艺各层的厚度、介电常数等,一般由工艺厂家提供。EDA工具根据这些参数和版图实际几何形体的面积计算版图中RC值。提取出来的RC参数,可以直接用于静态时序分析,也可以在计算出对应的路径延时后用于反标功能后仿真。 (7)版图物理检查:版图物理检查包括DRC(design rules check)和LVS(layout versus schematic)。DRC检查是否满足工艺厂家提供的版图设计规则,LVS检查版图是否和网表设计完全一致。,49,2.1.7 静态时序分析和时序收敛 1、静态时序分析 静态时序分析的功能是确定设计是否达到了设定的时序约束要求。 静态时序分析和动态的功能仿真不同,动态功能仿真是加激励在待验证设计上,然后分析输出,从而确定设计的功能是否正确,而静态时序分析是对所有信号路径的延时信息直接进行计算比较,分析设计是否满足时序约束的要求。 静态时序分析相比动态仿真,执行速度很快,可以确定关键路径并提供详细的路径延时报告;同时,静态时序分析检查的比动态仿真彻底,很容易保证检查的完备性。因此,从某种意义上来讲,静态时序分析是数字IC流片前最重要的一项检查。 但静态时序分析工具一般无法区分伪路径,即在正常的激励路径下芯片内部不可能出现的路径。 同时静态时序分析计算比较延时是基于分析对象为同步电路的假设,因此它对异步电路无法分析。 在这两方面,功能仿真(反标RC参数延时)都是对静态时序分析的有力补充。 实际应用中,静态时序分析结果为最终时序收敛的判断依据,同时辅助后仿真以增加仿真的覆盖率和对比检查静态时序分析的时间约束是否正确。,50,2、时序收敛 时序收敛是指后端设计符合时序约束条件的要求。 但在深亚微米设计中,由于布局布线的延时可能远远超过综合时的估计值,导致最终布线后的电路时序无法收敛,这是因为在综合后得到的延时信息是基于虚拟的统计模型而非电路的实际RC参数。 如果时序不收敛,需要返回到布局布线阶段通过修改设计和约束等手段来改进时序,这就是常说的后端的迭代。 有时迭代多次还不能解决问题,就需要返回到综合甚至RTL设计阶段重新设计,显然这种迭代对IC设计的进度影响很大。 目前,很多EDA工具厂商都推出了物理综合工具,以解决后端时序不收敛的问题。 所谓物理综合是指通过将RTL综合与布局甚至布线阶段相结合来克服综合时对线延时估算严重不准的方法。 物理综合时可以根据布线之后真实的RC延时信息来优化关键路径,但也正由于它在综合阶段就引入了类似布局布线的计算,导致综合分析的计算量增加了很多,也就导致了物理综合工具物理综合工具往往需要远大于普通综合的计算资源,同时运行速度也很慢,这些都限制了物理综合的广泛应用。 尽管存在问题,随着特征尺寸的减少,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论