数字IC设计方法学.ppt
《数字IC设计方法学.ppt》由会员分享,可在线阅读,更多相关《数字IC设计方法学.ppt(53页珍藏版)》请在三一办公上搜索。
1、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,系统体系结
2、构设计 architecture design,RTL代码编写 RTL coding,综合和静态时序分析 synthesis&static timing analysis,门级仿真和形式验证 gate simulation&formal verification,后仿真和形式验证 post simulation&formal verification,流片生产 tape out,3,数字IC的实际设计过程中,各个阶段之间必然会有交互和反复,只有在设计的前一阶段充分考虑后续阶段会遇到的困难,后续阶段才有可能顺利完成,否则需要返回到前面的阶段重新设计。比如,体系结构设计阶段要考虑硬件实现代价,否则
3、到后端设计阶段发现面积和功耗上的要求无法实现,只好返回到体系结构设计阶段重新设计或修改;RTL代码编写的质量太差,或者综合时约束条件不完备,会导致后端布局布线时时序无法收敛,只有重新修改RTL代码,重新综合仿真。显然,反复次数过多会大大影响设计的进度。现代EDA工具发展的一个重要原则就是尽可能在设计的前端发现并克服或减少后端设计将要面临的困难,减少设计中反复的次数。数字IC的实际设计过程中,各个阶段之间也不是完全串行进行的,在合理安排的情况下,多个阶段之间可以并行操作。比如,RTL综合等后端处理阶段和RTL代码功能仿真阶段可以并行进行;再如,后端设计过程中的静态时序分析和后仿真可以并行进行。多
4、阶段之间的并行操作缩短了IC设计周期,但也给设计中数据管理提出了更高要求,因为多个操作阶段间有数据依赖关系。设计各阶段间的反复迭代和并行操作要求数字IC设计必须有严格的数据管理机制才能保证项目正常进行。,4,2.1.1 系统体系结构设计系统体系结构设计是集成电路设计的第一步,也是最重要的一步。系统架构设计的好坏,很大程度上决定了后续所有设计阶段的质量,即决定了整个集成电路设计的成败。系统体系结构设计要完成的主要工作包括:定义集成电路的功能和应用环境,划分整个电子系统(包括集成电路和其所处应用环境)的软硬件功能,定义可配置寄存器;划分集成电路各个模块的功能并画出这个系统的模块框图,定义各个模块间
5、的接口信号,定义各个模块间的信号互连规范和信号流向;设计集成电路的系统时钟、系统复位方案,设计跨时钟域的信号握手方式并评估其对整个集成电路性能的影响;确定集成电路的关键性能指标,评估实现这些指标对系统体系结构的影响;分析和比较关键的算法,评估算法的硬件可实现性和硬件代价;确定可测性DFT功能模块(如BSD、BIST、JTAG)的需求和实现代价。,5,系统体系结构设计举例:可重构密码协处理器-青岛市重点技术创新项目 可重构密码协处理器是一款新型的用于对数据进行加密/解密处理的集成电路芯片,可以作为核心芯片应用于各种各样的信息安全产品中,比如电脑加密卡、保密电话等,其特点是能够灵活地、方便地、快速
6、地实现许多种不同的密码算法,同现有的密码芯片相比,它具有灵活性大、适应性强、扩展性好、安全性高等优点。,6,1.应用环境和功能定义应用环境:,7,8,9,10,需求分析:,11,功能定义:,右表:可重构密码协处理器实现的各种基本密码运算,12,指令系统设计:可重构密码协处理器的指令结构采用超长指令字(VLIW)结构,指令长度为202位,共有4种指令格式,其形态如下:,其中,insformat是指令格式控制域,insformat=00表示执行指令,insformat=01表示配置指令,insformat=10表示停机指令,insformat=11表示跳转指令。inscode是指令编码域。,13,
7、2.模块划分对应不同系统架构和算法实现,相应的模块划分方法也会不同;对于一个复杂的数字IC,最有效的方法是建立各种架构模型,对不同模块划分方案进行分析比较;模块的划分可以逐步细化,分为多个层次。可重构密码协处理器的总体结构设计:可重构密码协处理器由存储模块、控制模块和可重构密码处理单元三大部分组成。其中,存储模块用于存储密码算法程序、种子密钥和待加/解密数据,控制模块用于控制程序的存储和执行,可重构密码处理单元用于对数据进行加/解密处理。可重构密码协处理器与外部设备的接口信号包括:clock-时钟信号,reset-复位信号,insnumr_en-指令条数寄存器写使能信号,insw_en是指令装
8、载使能信号,mem_addr是指令存储器地址,ins_exe-指令执行使能信号,dkw_en-待加/解密数据或密钥装载使能信号,trans_en-将加/解密结果传输到外部的使能信号,ready-可重构密码协处理器状态标志信号,datain-数据输入总线,dataout-数据输出总线。可重构密码协处理器的总体结构框图如下:,14,可重构密码协处理器的总体结构框图:,15,可重构密码处理单元设计可重构密码处理单元用于实现加/解密运算,它由大量的基本密码运算模块和灵活可变的内部互联网络构成。其中,基本密码运算模块用于实现密码算法所需要的基本密码运算,内部互联网络用于实现不同密码运算模块之间的数据传送
9、。为了提高可重构密码处理单元的灵活性,许多密码运算模块的功能和模块之间的数据传输路径都是可配置的,即可以通过指令来灵活设置密码运算模块的功能和模块之间的数据传输路径,从而可以通过编程来灵活地实现不同的密码算法。,16,可重构密码处理单元的模块结构图:,17,控制模块设计控制模块包括有限状态机和指令译码逻辑等。有限状态机用于控制可重构密码协处理器的状态转换和每个状态下的操作。根据加/解密处理的实现过程,我们将可重构密码协处理器的状态划分为三种:指令装载状态、指令执行状态和空闲状态。在指令装载状态下,可重构密码协处理器将密码程序中的指令按顺序装载到指令存储器中。在指令执行状态下,可重构密码协处理器
10、自动地、不断地从指令存储器中取出指令、进行译码并加以执行,直至所有指令执行完毕。在空闲状态下,可重构密码协处理器不进行指令装载操作和指令执行操作,并保持所有的运算结果寄存器的值不变。主处理器只需对指令执行使能信号ins_exe施加一个脉冲,就可以将可重构密码协处理器设置为指令执行状态,从而启动指令自动执行过程,然后在整个过程中不再需要主处理器的干预,这大大减少了主处理器的控制开销和可重构密码协处理器访问外部设备的开销,提高了加/解密的处理速度。指令自动执行过程结束以后,可重构密码协处理器将自动转换为空闲状态,并给出空闲状态的标志信号ready,主处理器在收到ready信号后,就可以驱动可重构密
11、码协处理器进行新的操作了。指令译码逻辑用于对指令进行分析,确定指令中所包含的操作,并给出相应的控制信号,驱动相应的模块完成所需的操作。,18,19,存储模块设计存储模块包括指令存储器、数据/密钥缓冲寄存器和指令条数寄存器。指令存储器用来保存加密或解密程序,其存储容量为256个208位的指令字,即6.5K字节。指令存储器具有一个写端口和一个读端口。写端口用于将密码程序由外部写入到可重构密码协处理器内部的指令存储器中,为了减少可重构密码协处理器的引脚数,指令存储器写端口的数据宽度为8位,这样可重构密码协处理器的一条指令(208位)需要分26次才能写入到指令存储器中。由于密码程序装载操作只发生在密码
12、算法初建或更新的时刻,而通常一个密码算法能够保持一个较长的时间不变,在这段时间内只需进行一次密码程序装载操作,因此它所花费的时间长一点无关紧要。读端口用于读出保存在指令存储器内的指令,经过译码后控制加/解密过程的执行。由于可重构密码协处理器的指令长度为208位,我们将指令存储器读端口的数据宽度定为208位,这样能够保证每个时钟周期读取一条指令执行,有效地加快了加/解密的处理速度。数据/密钥缓冲寄存器是一个128位的寄存器,用来保存种子密钥和待加/解密的数据。为了进一步节省可重构密码协处理器的引脚数,数据/密钥缓冲寄存器和指令存储器共享同一条数据输入总线datain。指令条数寄存器用来保存密码程
13、序中所含的指令的条数,该数据参与控制程序装载操作的结束。,20,21,基本密码运算模块的设置根据计算机体系结构的基本理论我们知道,对于那些在应用中频繁出现的计算任务,应该用专门的硬件加以实现,这样将大大提高计算机系统的性能。因此,我们应该在可重构密码处理单元中设置那些能够被不同密码算法频繁使用的密码运算模块。通过对DES、IDEA、AES等50余种典型的对称密码算法进行分析,我们发现,一些典型的密码运算在不同密码算法中出现的频率很高,如:异或、移位、置换、S盒代替、模乘/加运算、反馈移位运算等,因此,我们应该在可重构密码处理单元中设置相应类型的密码运算模块,这样,将显著提高一些常用密码算法的运
14、算速度。同时,为了提供足够的灵活性和适应性,可重构密码处理单元还应该包括一些通用计算模块,如算术逻辑单元等,以便处理那些特殊的、使用频率不高的密码运算。另外,为了进一步提高可重构密码处理单元的性能,往往可以设置多个同一类型的密码运算模块,以便增加计算的并行性。基于上述考虑,我们确定了可重构密码处理单元的组成方案,见表2。,22,表2:可重构密码处理单元所包括的基本模块的名称、功能和数量,23,可重构密码处理单元的子模块-32位移位模块,24,可重构密码处理单元的子模块-32位置换模块,25,可重构密码处理单元的子模块-S盒模块,26,可重构密码处理单元的子模块-32位线性反馈移位寄存器模块,2
15、7,可重构密码处理单元的子模块-寄存器堆模块,28,2.1.2 RTL代码编写RTL编码在寄存器传输级层次对电路进行抽象描述。RTL编码重点描述寄存器和其间的逻辑。RTL规范比系统级、行为级更严格,可以使用DEA综合工具转换为门级电路,具有物理可实现性。虽然目前业界已有系统级综合工具,但转换效率和可靠性在短时间内还无法达到RTL综合工具的水平。RTL抽象层次比门级高,描述简洁、清晰,设计效率比门级设计高几十到上百倍。RTL设计在很大程度上已经决定了设计的功能和性能,虽然可以通过此后的综合和布局布线来对设计作一定程度的优化,但优化的结果依赖于RTL编码的质量。RTL编码设计者要在不依赖后端的综合
16、和布局布线的情况下,尽可能多地解决延时、面积、测试等问题。在RTL编码过程中,从一开始就考虑到综合,以及到最终会生成的硅物理电路。,29,高质量的RTL编码设计应该考虑以下因素:(1)可综合性:设计者头脑中要始终保持有电路的概念,即保证编码是综合工具可综合转换的,并保证编码能够被综合工具正确识别,最终产生设计者所期望的电路。(2)可读性:在RTL编码过程中采用统一的、规范的书写风格,避免复杂难以理解的语法形式,并应加入清晰易懂的注释。(3)时序优化:设计者要选择恰当的电路结构和时序划分,保证同步电路的时钟约束(建立时间、保持时间)在综合阶段能较容易地被满足。(4)面积优化:在RTL编码阶段考虑
17、节约面积往往会得到比只靠综合优化工具更好的效果;另外,对于一些复杂的电路结构,不同的RTL编码方法会得到面积和单元数目完全不同的综合结果。设计者需要学会估算各种RTL编码设计在特定的综合工具和综合库下占用面积资源的情况,从而选择最优的编码形式。(5)功耗优化:设计者在RTL编码阶段就要考虑减少不必要的信号跳变,降低信号翻转频率,以降低整个数字IC系统的功耗。(6)可测性:设计者只有按照一定的可测性规则进行RTL编码,后端的可测性设计工作才能顺利进行。(7)物理实现性:在RTL编码阶段还应该考虑到后端布局布线的难度,如多个模块间的数目巨大的交叉走线必然会让后端工具无能为力;再如,某些电路信号扇入
18、扇出太多会造成布局布线的局部拥塞。,30,2.1.3 RTL功能仿真功能仿真是芯片设计的重要步骤,目的是验证设计是否达到了预期的功能。仿真环境从待验证设计的输入端输入激励信号,观察信号在设计内部传输到输出的过程,从而分析设计功能是否正确。不同设计的仿真环境的结构往往是不同的,需要根据待验证设计和验证的目标来设计。仿真环境模拟真实的应用环境。用Verilog语言可以建立仿真环境,称为testbench。下面给出一个功能仿真的例子:32位ALU的功能仿真。例子:利用Verilog HDL设计一个运算器模型,并进行仿真测试。要求该运算器的字长为32位,能够实现加法、减法、逻辑与、逻辑或四种运算,并产
19、生N(结果为负)、Z(结果为零)、V(结果溢出)、C(进位)四个标志位。,31,ALU的电路结构图,OP00 AND01 OR10 ADD11 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=aendmodule,ALU的Verilog模型,33,ALU的测试文件,timescale 1ns/1nsmodule ALUtest;reg clk;reg 1:0op;reg 31:0a,b;wire 31:
20、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 generationalways#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=32b1
21、010_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_11
22、11;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;endendmodule,34,ALU的仿真波形图,35,2.1.4 RTL综合RTL综合(或逻辑综合)是通过EDA工具将RTL代码映射到由制造厂家标准单元库中的元件所构成的门级电路的过程。常用的综合工具:Synopsys公司的Design Compiler,Cadence公司的RTL Compiler,Magma公司的RTL Blaster等。典型的R
23、TL综合分为两个阶段:(1)逻辑表达和优化阶段:分析RTL电路描述,并使用布尔方程划简得到最优的逻辑电路表达,这一阶段使用EDA工具自带的通用元件库。(2)工艺标准单元库映射阶段:将通用元件库网表映射为工艺标准单元库网表,这个阶段会根据标准单元库各元件的面积、延时、功耗信息和设计所需达到的目标来优化电路。RTL综合是由各种约束条件驱动的,包括工作环境、时序要求、面积、功耗等。综合实际上是要在所有约束条件下折中产生一个最优网表。约束条件中最重要的是时间约束,满足时间约束达到时序收敛是综合最重要的目标。,36,RTL综合的各个步骤:(1)确定综合工具和综合策略:自顶向下综合、自底向上综合。(2)确
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 IC 设计 方法
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6230560.html