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






