数字IC设计方法学课件

上传人:新** 文档编号:569856600 上传时间:2024-07-31 格式:PPT 页数:53 大小:422KB
返回 下载 相关 举报
数字IC设计方法学课件_第1页
第1页 / 共53页
数字IC设计方法学课件_第2页
第2页 / 共53页
数字IC设计方法学课件_第3页
第3页 / 共53页
数字IC设计方法学课件_第4页
第4页 / 共53页
数字IC设计方法学课件_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《数字IC设计方法学课件》由会员分享,可在线阅读,更多相关《数字IC设计方法学课件(53页珍藏版)》请在金锄头文库上搜索。

1、第第2 2章章 数字数字ICIC设计方法学设计方法学2.1 2.1 2.1 2.1 数字数字数字数字ICICICIC设计流程设计流程设计流程设计流程2.2 2.2 2.2 2.2 层次化设计和模块划分层次化设计和模块划分层次化设计和模块划分层次化设计和模块划分2.3 2.3 2.3 2.3 芯片封装和散热芯片封装和散热芯片封装和散热芯片封装和散热2.4 CMOS2.4 CMOS2.4 CMOS2.4 CMOS工艺选择工艺选择工艺选择工艺选择1数字IC设计方法学2.1 2.1 2.1 2.1 数字数字数字数字ICICICIC设计流程设计流程设计流程设计流程数字数字数字数字ICICICIC设计是一

2、个设计是一个设计是一个设计是一个非常复杂的系统工程,非常复杂的系统工程,非常复杂的系统工程,非常复杂的系统工程,其流程也不是固定不其流程也不是固定不其流程也不是固定不其流程也不是固定不变的,而是随着设计变的,而是随着设计变的,而是随着设计变的,而是随着设计复杂度、设计方法、复杂度、设计方法、复杂度、设计方法、复杂度、设计方法、制造工艺、制造工艺、制造工艺、制造工艺、EDAEDAEDAEDA工具工具工具工具的发展而不断演化的。的发展而不断演化的。的发展而不断演化的。的发展而不断演化的。右图是目前业界普右图是目前业界普右图是目前业界普右图是目前业界普遍认可的数字遍认可的数字遍认可的数字遍认可的数字

3、ICICICIC设计设计设计设计的基本流程的基本流程的基本流程的基本流程RTL代码功能仿真代码功能仿真 RTL simulation BSD & DFT插入插入 BSD & DFT insertion 后端布局布线后端布局布线 back-end place & route版图后静态时序分析版图后静态时序分析 post-layout static timing analysis系统体系结构设计系统体系结构设计 architecture designRTL代码编写代码编写 RTL coding综合和静态时序分析综合和静态时序分析 synthesis & static timing analysis

4、门级仿真和形式验证门级仿真和形式验证 gate simulation & formal verification后仿真和形式验证后仿真和形式验证 post simulation & formal verification流片生产流片生产 tape out2数字IC设计方法学数字数字ICIC的实际设计过程中,各个阶段之间必然会有交互和反复,只有的实际设计过程中,各个阶段之间必然会有交互和反复,只有在设计的前一阶段充分考虑后续阶段会遇到的困难,后续阶段才有可在设计的前一阶段充分考虑后续阶段会遇到的困难,后续阶段才有可能顺利完成,否则需要返回到前面的阶段重新设计。能顺利完成,否则需要返回到前面的阶段

5、重新设计。比如,体系结构设计阶段要考虑硬件实现代价,否则到后端设计阶段比如,体系结构设计阶段要考虑硬件实现代价,否则到后端设计阶段发现面积和功耗上的要求无法实现,只好返回到体系结构设计阶段重发现面积和功耗上的要求无法实现,只好返回到体系结构设计阶段重新设计或修改;新设计或修改;RTLRTL代码编写的质量太差,或者综合时约束条件不完备,代码编写的质量太差,或者综合时约束条件不完备,会导致后端布局布线时时序无法收敛,只有重新修改会导致后端布局布线时时序无法收敛,只有重新修改RTLRTL代码,重新综代码,重新综合仿真。合仿真。显然,反复次数过多会大大影响设计的进度。显然,反复次数过多会大大影响设计的

6、进度。现代现代EDAEDA工具发展的一个重要原则就是尽可能在设计的前端发现并克工具发展的一个重要原则就是尽可能在设计的前端发现并克服或减少后端设计将要面临的困难,减少设计中反复的次数。服或减少后端设计将要面临的困难,减少设计中反复的次数。数字数字ICIC的实际设计过程中,各个阶段之间也不是完全串行进行的,在的实际设计过程中,各个阶段之间也不是完全串行进行的,在合理安排的情况下,多个阶段之间可以并行操作。合理安排的情况下,多个阶段之间可以并行操作。比如,比如,RTLRTL综合等后端处理阶段和综合等后端处理阶段和RTLRTL代码功能仿真阶段可以并行进行;代码功能仿真阶段可以并行进行;再如,后端设计

7、过程中的静态时序分析和后仿真可以并行进行。再如,后端设计过程中的静态时序分析和后仿真可以并行进行。多阶段之间的并行操作缩短了多阶段之间的并行操作缩短了ICIC设计周期,但也给设计中数据管理提设计周期,但也给设计中数据管理提出了更高要求,因为多个操作阶段间有数据依赖关系。出了更高要求,因为多个操作阶段间有数据依赖关系。设计各阶段间的反复迭代和并行操作要求数字设计各阶段间的反复迭代和并行操作要求数字ICIC设计必须有严格的数设计必须有严格的数据管理机制才能保证项目正常进行。据管理机制才能保证项目正常进行。3数字IC设计方法学2.1.1 2.1.1 2.1.1 2.1.1 系统体系结构设计系统体系结

8、构设计系统体系结构设计系统体系结构设计系统体系结构设计是集成电路设计的第一步,也是最重要的一步。系统体系结构设计是集成电路设计的第一步,也是最重要的一步。系统体系结构设计是集成电路设计的第一步,也是最重要的一步。系统体系结构设计是集成电路设计的第一步,也是最重要的一步。系统架构设计的好坏,很大程度上决定了后续所有设计阶段的质系统架构设计的好坏,很大程度上决定了后续所有设计阶段的质系统架构设计的好坏,很大程度上决定了后续所有设计阶段的质系统架构设计的好坏,很大程度上决定了后续所有设计阶段的质量,即决定了整个集成电路设计的成败。量,即决定了整个集成电路设计的成败。量,即决定了整个集成电路设计的成败

9、。量,即决定了整个集成电路设计的成败。系统体系结构设计要完成的主要工作包括:系统体系结构设计要完成的主要工作包括:系统体系结构设计要完成的主要工作包括:系统体系结构设计要完成的主要工作包括:定义集成电路的功能和应用环境,划分整个电子系统定义集成电路的功能和应用环境,划分整个电子系统定义集成电路的功能和应用环境,划分整个电子系统定义集成电路的功能和应用环境,划分整个电子系统( ( ( (包括集成电包括集成电包括集成电包括集成电路和其所处应用环境路和其所处应用环境路和其所处应用环境路和其所处应用环境) ) ) )的软硬件功能,定义可配置寄存器;的软硬件功能,定义可配置寄存器;的软硬件功能,定义可配

10、置寄存器;的软硬件功能,定义可配置寄存器;划分集成电路各个模块的功能并画出这个系统的模块框图,定义划分集成电路各个模块的功能并画出这个系统的模块框图,定义划分集成电路各个模块的功能并画出这个系统的模块框图,定义划分集成电路各个模块的功能并画出这个系统的模块框图,定义各个模块间的接口信号,定义各个模块间的信号互连规范和信号流各个模块间的接口信号,定义各个模块间的信号互连规范和信号流各个模块间的接口信号,定义各个模块间的信号互连规范和信号流各个模块间的接口信号,定义各个模块间的信号互连规范和信号流向;向;向;向;设计集成电路的系统时钟、系统复位方案,设计跨时钟域的信号设计集成电路的系统时钟、系统复

11、位方案,设计跨时钟域的信号设计集成电路的系统时钟、系统复位方案,设计跨时钟域的信号设计集成电路的系统时钟、系统复位方案,设计跨时钟域的信号握手方式并评估其对整个集成电路性能的影响;握手方式并评估其对整个集成电路性能的影响;握手方式并评估其对整个集成电路性能的影响;握手方式并评估其对整个集成电路性能的影响;确定集成电路的关键性能指标,评估实现这些指标对系统体系结确定集成电路的关键性能指标,评估实现这些指标对系统体系结确定集成电路的关键性能指标,评估实现这些指标对系统体系结确定集成电路的关键性能指标,评估实现这些指标对系统体系结构的影响;构的影响;构的影响;构的影响;分析和比较关键的算法,评估算法

12、的硬件可实现性和硬件代价;分析和比较关键的算法,评估算法的硬件可实现性和硬件代价;分析和比较关键的算法,评估算法的硬件可实现性和硬件代价;分析和比较关键的算法,评估算法的硬件可实现性和硬件代价;确定可测性确定可测性确定可测性确定可测性DFTDFTDFTDFT功能模块功能模块功能模块功能模块( ( ( (如如如如BSDBSDBSDBSD、BISTBISTBISTBIST、JTAG)JTAG)JTAG)JTAG)的需求和实现代价。的需求和实现代价。的需求和实现代价。的需求和实现代价。4数字IC设计方法学系统体系结构设计举例:系统体系结构设计举例:系统体系结构设计举例:系统体系结构设计举例: 可重构

13、密码协处理器可重构密码协处理器可重构密码协处理器可重构密码协处理器 -青岛市重点技术创新项目青岛市重点技术创新项目青岛市重点技术创新项目青岛市重点技术创新项目 可重构密码协处理器是一款新型的用于对数据进行可重构密码协处理器是一款新型的用于对数据进行可重构密码协处理器是一款新型的用于对数据进行可重构密码协处理器是一款新型的用于对数据进行加密加密加密加密/ / / /解密处理的集成电路芯片,可以作为核心芯片应解密处理的集成电路芯片,可以作为核心芯片应解密处理的集成电路芯片,可以作为核心芯片应解密处理的集成电路芯片,可以作为核心芯片应用于各种各样的信息安全产品中,比如电脑加密卡、保用于各种各样的信息

14、安全产品中,比如电脑加密卡、保用于各种各样的信息安全产品中,比如电脑加密卡、保用于各种各样的信息安全产品中,比如电脑加密卡、保密电话等,其特点是能够灵活地、方便地、快速地实现密电话等,其特点是能够灵活地、方便地、快速地实现密电话等,其特点是能够灵活地、方便地、快速地实现密电话等,其特点是能够灵活地、方便地、快速地实现许多种不同的密码算法,同现有的密码芯片相比,它具许多种不同的密码算法,同现有的密码芯片相比,它具许多种不同的密码算法,同现有的密码芯片相比,它具许多种不同的密码算法,同现有的密码芯片相比,它具有灵活性大、适应性强、扩展性好、安全性高等优点。有灵活性大、适应性强、扩展性好、安全性高等

15、优点。有灵活性大、适应性强、扩展性好、安全性高等优点。有灵活性大、适应性强、扩展性好、安全性高等优点。5数字IC设计方法学1.1.1.1.应用环境和功能定义应用环境和功能定义应用环境和功能定义应用环境和功能定义应用环境:应用环境:应用环境:应用环境:外部总线外部总线接口电路接口电路应用系统结构图可重构密可重构密码协处理码协处理器接口电器接口电路路可重构密可重构密码协处理码协处理器器BUS6数字IC设计方法学7数字IC设计方法学8数字IC设计方法学9数字IC设计方法学需求分析:需求分析:需求分析:需求分析:算法类别算法类别算法类别算法类别基本操作成分基本操作成分基本操作成分基本操作成分使用频度使

16、用频度使用频度使用频度分组密码算法分组密码算法分组密码算法分组密码算法异或运算异或运算异或运算异或运算100%100%100%100%S S S S盒变换盒变换盒变换盒变换50%50%50%50%移位运算移位运算移位运算移位运算58.82%58.82%58.82%58.82%置换运算置换运算置换运算置换运算29.41%29.41%29.41%29.41%模加运算模加运算模加运算模加运算44.12%44.12%44.12%44.12%模减运算模减运算模减运算模减运算8.82%8.82%8.82%8.82%模加逆运算模加逆运算模加逆运算模加逆运算2.94%2.94%2.94%2.94%模乘运算模乘

17、运算模乘运算模乘运算26.47%26.47%26.47%26.47%模乘逆运算模乘逆运算模乘逆运算模乘逆运算2.94%2.94%2.94%2.94%逻辑非运算逻辑非运算逻辑非运算逻辑非运算11.76%11.76%11.76%11.76%逻辑与运算逻辑与运算逻辑与运算逻辑与运算11.76%11.76%11.76%11.76%逻辑或运算逻辑或运算逻辑或运算逻辑或运算11.76%11.76%11.76%11.76%指数运算指数运算指数运算指数运算8.82%8.82%8.82%8.82%对数运算对数运算对数运算对数运算5.88%5.88%5.88%5.88%序列密码算法序列密码算法序列密码算法序列密码

18、算法反馈移位寄存器反馈移位寄存器反馈移位寄存器反馈移位寄存器100%100%100%100%10数字IC设计方法学功能定义:功能定义:功能定义:功能定义:右表:可重右表:可重构密码协处理构密码协处理器实现的各种器实现的各种基本密码运算基本密码运算序号序号基本密码运算名称基本密码运算名称所需时钟周期数所需时钟周期数1 11616位位异或运算异或运算1 12 23232位移位位移位运算运算1 13 3128128位移位位移位运算运算1 14 432*3232*32置换置换运算运算1 15 564*3264*32置换置换运算运算1 16 664*6464*64置换置换运算运算1 17 78*8 S8

19、*8 S盒代替盒代替运算运算1 18 83232位线性反馈移位位线性反馈移位运算运算1 19 91616位逻辑运算位逻辑运算1 110101616位比较位比较运算运算1 11111模模2 21616加法加法运算运算1 11212模模2 21616+1+1乘法乘法运算运算2 21313模模2 21616+1+1乘法逆乘法逆运算运算小于或等于小于或等于4004001414模模2 23232乘法乘法运算运算2 215158 8位模多项式乘法位模多项式乘法运算运算1 1161616*1616*16寄存器堆写操作寄存器堆写操作1 1171716*1616*16寄存器堆读操作寄存器堆读操作1 118181

20、28128位数据位数据/ /密钥寄存器写操作密钥寄存器写操作1 11919128128位数据位数据/ /密钥寄存器读操作密钥寄存器读操作1 12020128128位结果寄存器写操作位结果寄存器写操作1 12121128128位结果寄存器读操作位结果寄存器读操作1 12222208*256208*256指令存储器写操作指令存储器写操作1 12323208*256208*256指令存储器读操作指令存储器读操作1 111数字IC设计方法学 指令系统设计:指令系统设计:指令系统设计:指令系统设计:可重构密码协处理器的指令结构采用超长指令字(可重构密码协处理器的指令结构采用超长指令字(可重构密码协处理器

21、的指令结构采用超长指令字(可重构密码协处理器的指令结构采用超长指令字(VLIWVLIW)结构,)结构,)结构,)结构,指令长度为指令长度为指令长度为指令长度为202202位,共有位,共有位,共有位,共有4 4种指令格式种指令格式种指令格式种指令格式, , 其形态如下:其形态如下:其形态如下:其形态如下:insformat201:200insformat201:200insformat201:200insformat201:200inscode199inscode199inscode199inscode199:0000其中,其中,其中,其中,insformatinsformatinsformat

22、insformat是指令格式控制域,是指令格式控制域,是指令格式控制域,是指令格式控制域,insformat=00insformat=00insformat=00insformat=00表示执行指令,表示执行指令,表示执行指令,表示执行指令,insformat=01insformat=01insformat=01insformat=01表示配置指令,表示配置指令,表示配置指令,表示配置指令,insformat=10insformat=10insformat=10insformat=10表示停机指令,表示停机指令,表示停机指令,表示停机指令,insformat=11insformat=11ins

23、format=11insformat=11表示跳转指令。表示跳转指令。表示跳转指令。表示跳转指令。inscodeinscodeinscodeinscode是指令编码域。是指令编码域。是指令编码域。是指令编码域。 insformat201insformat201:200200contreg_num199contreg_num199:196196contreg_addr195contreg_addr195:192192contdata191contdata191:00insformat201insformat201:200200opcode1opcode1Opcode2Opcode2Opcode3

24、Opcode3opcodenopcodeninsformat201insformat201:200200cond_code199cond_code199:197197jump_addr196:189jump_addr196:189reserved188:0reserved188:0insformat201insformat201:200200reserved199reserved199:0012数字IC设计方法学2.2.2.2.模块划分模块划分模块划分模块划分对应不同系统架构和算法实现对应不同系统架构和算法实现对应不同系统架构和算法实现对应不同系统架构和算法实现, , , ,相应的模块划分方法

25、也会不同相应的模块划分方法也会不同相应的模块划分方法也会不同相应的模块划分方法也会不同; ; ; ;对于一个复杂的数字对于一个复杂的数字对于一个复杂的数字对于一个复杂的数字IC,IC,IC,IC,最有效的方法是建立各种架构模型最有效的方法是建立各种架构模型最有效的方法是建立各种架构模型最有效的方法是建立各种架构模型, , , ,对不同模对不同模对不同模对不同模块划分方案进行分析比较;块划分方案进行分析比较;块划分方案进行分析比较;块划分方案进行分析比较;模块的划分可以逐步细化,分为多个层次。模块的划分可以逐步细化,分为多个层次。模块的划分可以逐步细化,分为多个层次。模块的划分可以逐步细化,分为

26、多个层次。可重构密码协处理器的总体结构设计:可重构密码协处理器的总体结构设计:可重构密码协处理器的总体结构设计:可重构密码协处理器的总体结构设计:可重构密码协处理器由存储模块、控制模块和可重构密码处理单元三可重构密码协处理器由存储模块、控制模块和可重构密码处理单元三可重构密码协处理器由存储模块、控制模块和可重构密码处理单元三可重构密码协处理器由存储模块、控制模块和可重构密码处理单元三大部分组成。其中,存储模块用于存储密码算法程序、种子密钥和待大部分组成。其中,存储模块用于存储密码算法程序、种子密钥和待大部分组成。其中,存储模块用于存储密码算法程序、种子密钥和待大部分组成。其中,存储模块用于存储

27、密码算法程序、种子密钥和待加加加加/ / / /解密数据,控制模块用于控制程序的存储和执行,可重构密码处理解密数据,控制模块用于控制程序的存储和执行,可重构密码处理解密数据,控制模块用于控制程序的存储和执行,可重构密码处理解密数据,控制模块用于控制程序的存储和执行,可重构密码处理单元用于对数据进行加单元用于对数据进行加单元用于对数据进行加单元用于对数据进行加/ / / /解密处理。解密处理。解密处理。解密处理。可重构密码协处理器与外部设备的接口信号包括:可重构密码协处理器与外部设备的接口信号包括:可重构密码协处理器与外部设备的接口信号包括:可重构密码协处理器与外部设备的接口信号包括:clock

28、-clock-clock-clock-时钟信号,时钟信号,时钟信号,时钟信号,reset-reset-reset-reset-复位信号,复位信号,复位信号,复位信号,insnumr_eninsnumr_eninsnumr_eninsnumr_en- - - -指令条数寄存器写使能信号,指令条数寄存器写使能信号,指令条数寄存器写使能信号,指令条数寄存器写使能信号,insw_eninsw_eninsw_eninsw_en是指令装载使能信号,是指令装载使能信号,是指令装载使能信号,是指令装载使能信号,mem_addrmem_addrmem_addrmem_addr是指令存储器地址,是指令存储器地址,

29、是指令存储器地址,是指令存储器地址,ins_exeins_exeins_exeins_exe- - - -指指指指令执行使能信号,令执行使能信号,令执行使能信号,令执行使能信号,dkw_endkw_endkw_endkw_en- - - -待加待加待加待加/ / / /解密数据或密钥装载使能信号,解密数据或密钥装载使能信号,解密数据或密钥装载使能信号,解密数据或密钥装载使能信号,trans_entrans_entrans_entrans_en- - - -将加将加将加将加/ / / /解密结果传输到外部的使能信号,解密结果传输到外部的使能信号,解密结果传输到外部的使能信号,解密结果传输到外部的

30、使能信号,ready-ready-ready-ready-可重构密码可重构密码可重构密码可重构密码协处理器状态标志信号,协处理器状态标志信号,协处理器状态标志信号,协处理器状态标志信号,datain-datain-datain-datain-数据输入总线,数据输入总线,数据输入总线,数据输入总线,dataoutdataoutdataoutdataout- - - -数据输出总数据输出总数据输出总数据输出总线。线。线。线。可重构密码协处理器的总体结构框图如下:可重构密码协处理器的总体结构框图如下:可重构密码协处理器的总体结构框图如下:可重构密码协处理器的总体结构框图如下: 13数字IC设计方法学

31、可重构密码协处理器的总体结构框图:可重构密码协处理器的总体结构框图: 14数字IC设计方法学可重构密码处理单元设计可重构密码处理单元设计可重构密码处理单元用于实现加可重构密码处理单元用于实现加/ /解密运算,它由大解密运算,它由大量的基本密码运算模块和灵活可变的内部互联网络构量的基本密码运算模块和灵活可变的内部互联网络构成。成。其中,基本密码运算模块用于实现密码算法所需要的其中,基本密码运算模块用于实现密码算法所需要的基本密码运算,内部互联网络用于实现不同密码运算基本密码运算,内部互联网络用于实现不同密码运算模块之间的数据传送。模块之间的数据传送。为了提高可重构密码处理单元的灵活性,许多密码运

32、为了提高可重构密码处理单元的灵活性,许多密码运算模块的功能和模块之间的数据传输路径都是可配置算模块的功能和模块之间的数据传输路径都是可配置的,即可以通过指令来灵活设置密码运算模块的功能的,即可以通过指令来灵活设置密码运算模块的功能和模块之间的数据传输路径,从而可以通过编程来灵和模块之间的数据传输路径,从而可以通过编程来灵活地实现不同的密码算法。活地实现不同的密码算法。15数字IC设计方法学可重构密码处理单元的模块结构图:可重构密码处理单元的模块结构图:可重构密码处理单元的模块结构图:可重构密码处理单元的模块结构图:16数字IC设计方法学控制模块设计控制模块设计控制模块包括有限状态机和指令译码逻

33、辑等。控制模块包括有限状态机和指令译码逻辑等。有限状态机用于控制可重构密码协处理器的状态转换和每个状态下的操作。有限状态机用于控制可重构密码协处理器的状态转换和每个状态下的操作。根据加根据加/ /解密处理的实现过程,我们将可重构密码协处理器的状态划分为三解密处理的实现过程,我们将可重构密码协处理器的状态划分为三种:指令装载状态、指令执行状态和空闲状态。种:指令装载状态、指令执行状态和空闲状态。在指令装载状态下,可重构密码协处理器将密码程序中的指令按顺序装载在指令装载状态下,可重构密码协处理器将密码程序中的指令按顺序装载到指令存储器中。在指令执行状态下,可重构密码协处理器自动地、不断地到指令存储

34、器中。在指令执行状态下,可重构密码协处理器自动地、不断地从指令存储器中取出指令、进行译码并加以执行,直至所有指令执行完毕。从指令存储器中取出指令、进行译码并加以执行,直至所有指令执行完毕。在空闲状态下,可重构密码协处理器不进行指令装载操作和指令执行操作,在空闲状态下,可重构密码协处理器不进行指令装载操作和指令执行操作,并保持所有的运算结果寄存器的值不变。并保持所有的运算结果寄存器的值不变。主处理器只需对指令执行使能信号主处理器只需对指令执行使能信号ins_exeins_exe施加一个脉冲,就可以将可重构施加一个脉冲,就可以将可重构密码协处理器设置为指令执行状态,从而启动指令自动执行过程,然后在

35、整密码协处理器设置为指令执行状态,从而启动指令自动执行过程,然后在整个过程中不再需要主处理器的干预,这大大减少了主处理器的控制开销和可个过程中不再需要主处理器的干预,这大大减少了主处理器的控制开销和可重构密码协处理器访问外部设备的开销,提高了加重构密码协处理器访问外部设备的开销,提高了加/ /解密的处理速度。解密的处理速度。指令自动执行过程结束以后,可重构密码协处理器将自动转换为空闲状态,指令自动执行过程结束以后,可重构密码协处理器将自动转换为空闲状态,并给出空闲状态的标志信号并给出空闲状态的标志信号readyready,主处理器在收到,主处理器在收到readyready信号后,就可以驱信号后

36、,就可以驱动可重构密码协处理器进行新的操作了。动可重构密码协处理器进行新的操作了。指令译码逻辑用于对指令进行分析,确定指令中所包含的操作,并给出相指令译码逻辑用于对指令进行分析,确定指令中所包含的操作,并给出相应的控制信号,驱动相应的模块完成所需的操作。应的控制信号,驱动相应的模块完成所需的操作。 17数字IC设计方法学18数字IC设计方法学存储模块设计存储模块设计存储模块包括指令存储器、数据存储模块包括指令存储器、数据/ /密钥缓冲寄存器和指令条数寄存器。密钥缓冲寄存器和指令条数寄存器。指令存储器用来保存加密或解密程序,其存储容量为指令存储器用来保存加密或解密程序,其存储容量为256256个

37、个208208位的指令字,位的指令字,即即6.5K6.5K字节。字节。指令存储器具有一个写端口和一个读端口。写端口用于将密码程序由外部指令存储器具有一个写端口和一个读端口。写端口用于将密码程序由外部写入到可重构密码协处理器内部的指令存储器中,为了减少可重构密码协处写入到可重构密码协处理器内部的指令存储器中,为了减少可重构密码协处理器的引脚数,指令存储器写端口的数据宽度为理器的引脚数,指令存储器写端口的数据宽度为8 8位,这样可重构密码协处理位,这样可重构密码协处理器的一条指令(器的一条指令(208208位)需要分位)需要分2626次才能写入到指令存储器中。由于密码程序次才能写入到指令存储器中。

38、由于密码程序装载操作只发生在密码算法初建或更新的时刻,而通常一个密码算法能够保装载操作只发生在密码算法初建或更新的时刻,而通常一个密码算法能够保持一个较长的时间不变,在这段时间内只需进行一次密码程序装载操作,因持一个较长的时间不变,在这段时间内只需进行一次密码程序装载操作,因此它所花费的时间长一点无关紧要。读端口用于读出保存在指令存储器内的此它所花费的时间长一点无关紧要。读端口用于读出保存在指令存储器内的指令,经过译码后控制加指令,经过译码后控制加/ /解密过程的执行。由于可重构密码协处理器的指令解密过程的执行。由于可重构密码协处理器的指令长度为长度为208208位,我们将指令存储器读端口的数

39、据宽度定为位,我们将指令存储器读端口的数据宽度定为208208位,这样能够保位,这样能够保证每个时钟周期读取一条指令执行,有效地加快了加证每个时钟周期读取一条指令执行,有效地加快了加/ /解密的处理速度。解密的处理速度。数据数据/ /密钥缓冲寄存器是一个密钥缓冲寄存器是一个128128位的寄存器,用来保存种子密钥和待加位的寄存器,用来保存种子密钥和待加/ /解解密的数据。为了进一步节省可重构密码协处理器的引脚数,数据密的数据。为了进一步节省可重构密码协处理器的引脚数,数据/ /密钥缓冲寄密钥缓冲寄存器和指令存储器共享同一条数据输入总线存器和指令存储器共享同一条数据输入总线dataindatai

40、n。指令条数寄存器用来保存密码程序中所含的指令的条数,该数据参与控制指令条数寄存器用来保存密码程序中所含的指令的条数,该数据参与控制程序装载操作的结束。程序装载操作的结束。 19数字IC设计方法学20数字IC设计方法学基本密码运算模块的设置基本密码运算模块的设置根据计算机体系结构的基本理论我们知道,对于那些在应用中频繁根据计算机体系结构的基本理论我们知道,对于那些在应用中频繁出现的计算任务,应该用专门的硬件加以实现,这样将大大提高计算出现的计算任务,应该用专门的硬件加以实现,这样将大大提高计算机系统的性能。因此,我们应该在可重构密码处理单元中设置那些能机系统的性能。因此,我们应该在可重构密码处

41、理单元中设置那些能够被不同密码算法频繁使用的密码运算模块。够被不同密码算法频繁使用的密码运算模块。通过对通过对DESDES、IDEAIDEA、AESAES等等5050余种典型的对称密码算法进行分析,我余种典型的对称密码算法进行分析,我们发现,一些典型的密码运算在不同密码算法中出现的频率很高,如:们发现,一些典型的密码运算在不同密码算法中出现的频率很高,如:异或、移位、置换、异或、移位、置换、S S盒代替、模乘盒代替、模乘/ /加运算、反馈移位运算等,因此,加运算、反馈移位运算等,因此,我们应该在可重构密码处理单元中设置相应类型的密码运算模块,这我们应该在可重构密码处理单元中设置相应类型的密码运

42、算模块,这样,将显著提高一些常用密码算法的运算速度。样,将显著提高一些常用密码算法的运算速度。同时,为了提供足够的灵活性和适应性,可重构密码处理单元还应同时,为了提供足够的灵活性和适应性,可重构密码处理单元还应该包括一些通用计算模块,如算术逻辑单元等,以便处理那些特殊的、该包括一些通用计算模块,如算术逻辑单元等,以便处理那些特殊的、使用频率不高的密码运算。使用频率不高的密码运算。另外,为了进一步提高可重构密码处理单元的性能,往往可以设置另外,为了进一步提高可重构密码处理单元的性能,往往可以设置多个同一类型的密码运算模块,以便增加计算的并行性。多个同一类型的密码运算模块,以便增加计算的并行性。基

43、于上述考虑,我们确定了可重构密码处理单元的组成方案,见表基于上述考虑,我们确定了可重构密码处理单元的组成方案,见表2 2。 21数字IC设计方法学表表2 2:可重构密码处理单元所包括的基本模块的名称、功能和数量:可重构密码处理单元所包括的基本模块的名称、功能和数量序号序号名称名称功能功能数量数量1 11616位位异或运算异或运算器器实现1616位数据的逐位位数据的逐位异或运算。异或运算。4 42 22828位循位循环左移模左移模块能能对2828位数据位数据进行循行循环左移左移1 1位或位或2 2位的操作。位的操作。2 23 33232位移位模位移位模块能能对3232位数据位数据进行行逻辑左移、

44、左移、逻辑右移、循右移、循环左移、循左移、循环右移任意右移任意n(n32)n(n32)位的操作。位的操作。1 14 4128128位移位模位移位模块能能对128128位数据位数据进行行逻辑左移、左移、逻辑右移、循右移、循环左移、循左移、循环右移任意右移任意n(n128)n(n128)位的操作。位的操作。1 15 532*3232*32置置换模模块能能够实现3232位位输入到入到3232位位输出的任意的置出的任意的置换。2 26 664*3264*32置置换模模块能能够实现6464位位输入到入到3232位位输出的任意的置出的任意的置换。1 17 764*6464*64置置换模模块能能够实现646

45、4位位输入到入到6464位位输出的任意的置出的任意的置换。2 28 88*8 S8*8 S盒模盒模块能能够实现8 8位位输入到入到8 8位位输出的任意的出的任意的变换。8 89 93232位位线性反性反馈移位寄存器移位寄存器级数在数在2 23232之之间可可变,反,反馈抽抽头数在数在2 26 6之之间可可变,每个反,每个反馈抽抽头可可以以选择3232个寄存器的任意一个,能个寄存器的任意一个,能够实现2 26 6个反个反馈抽抽头的任意的的任意的线性反性反馈函数。函数。3 310101616位位逻辑运算模运算模块实现1616位数据的与、或、非位数据的与、或、非逻辑运算。运算。1 111111616

46、位比位比较模模块实现1616位数据的比位数据的比较运算。运算。1 11212模模2 21616加法器加法器实现1616位模位模2 21616加法和减法。加法和减法。2 21313模模2 21616+1+1乘法器乘法器实现1616位模位模2 21616+1+1乘法。乘法。2 21414模模2 21616+1+1乘法逆模乘法逆模块求求1616位整数的模位整数的模2 21616+1+1乘法逆。乘法逆。1 11515模模2 23232乘法器乘法器实现3232位模位模2 23232乘法。乘法。1 116168 8位模多位模多项式乘法器式乘法器能能够实现GF(2GF(28 8) )上的多上的多项式的模乘运

47、算,其中模多式的模乘运算,其中模多项式是可式是可变的。的。8 8171716*1616*16寄存器堆寄存器堆保存工作子密保存工作子密钥和中和中间结果,由果,由1616个个1616位的寄存器位的寄存器组成。成。8 818181616位内部数据位内部数据总线 用于各个模用于各个模块之之间的数据的数据传输。8 819196464位位输入寄存器入寄存器暂存待加存待加/ /解密数据或者种子密解密数据或者种子密钥。1 12020128128位位结果寄存器果寄存器保存加保存加/ /解密解密结果数据。果数据。1 122数字IC设计方法学可重构密码处理单元的子模块可重构密码处理单元的子模块可重构密码处理单元的子

48、模块可重构密码处理单元的子模块-32-32-32-32位移位模块位移位模块位移位模块位移位模块23数字IC设计方法学可重构密码处理单元的子模块可重构密码处理单元的子模块可重构密码处理单元的子模块可重构密码处理单元的子模块-32-32-32-32位置换模块位置换模块位置换模块位置换模块24数字IC设计方法学可重构密码处理单元的子模块可重构密码处理单元的子模块可重构密码处理单元的子模块可重构密码处理单元的子模块-S-S-S-S盒模块盒模块盒模块盒模块25数字IC设计方法学可重构密码处理单元的子模块可重构密码处理单元的子模块可重构密码处理单元的子模块可重构密码处理单元的子模块-32-32-32-32

49、位线性反馈移位寄存器模块位线性反馈移位寄存器模块位线性反馈移位寄存器模块位线性反馈移位寄存器模块26数字IC设计方法学可重构密码处理单元的子模块可重构密码处理单元的子模块可重构密码处理单元的子模块可重构密码处理单元的子模块- - - -寄存器堆模块寄存器堆模块寄存器堆模块寄存器堆模块27数字IC设计方法学2.1.2 RTL2.1.2 RTL2.1.2 RTL2.1.2 RTL代码编写代码编写代码编写代码编写RTLRTLRTLRTL编码在寄存器传输级层次对电路进行抽象描述。编码在寄存器传输级层次对电路进行抽象描述。编码在寄存器传输级层次对电路进行抽象描述。编码在寄存器传输级层次对电路进行抽象描述

50、。RTLRTLRTLRTL编码重点描述寄存器和其间的逻辑。编码重点描述寄存器和其间的逻辑。编码重点描述寄存器和其间的逻辑。编码重点描述寄存器和其间的逻辑。RTLRTLRTLRTL规范比系统级、行为级更严格,可以使用规范比系统级、行为级更严格,可以使用规范比系统级、行为级更严格,可以使用规范比系统级、行为级更严格,可以使用DEADEADEADEA综合工具转换为综合工具转换为综合工具转换为综合工具转换为门级电路,具有物理可实现性。门级电路,具有物理可实现性。门级电路,具有物理可实现性。门级电路,具有物理可实现性。虽然目前业界已有系统级综合工具,但转换效率和可靠性在短时虽然目前业界已有系统级综合工具

51、,但转换效率和可靠性在短时虽然目前业界已有系统级综合工具,但转换效率和可靠性在短时虽然目前业界已有系统级综合工具,但转换效率和可靠性在短时间内还无法达到间内还无法达到间内还无法达到间内还无法达到RTLRTLRTLRTL综合工具的水平。综合工具的水平。综合工具的水平。综合工具的水平。RTLRTLRTLRTL抽象层次比门级高,描述简洁、清晰,设计效率比门级设计高抽象层次比门级高,描述简洁、清晰,设计效率比门级设计高抽象层次比门级高,描述简洁、清晰,设计效率比门级设计高抽象层次比门级高,描述简洁、清晰,设计效率比门级设计高几十到上百倍。几十到上百倍。几十到上百倍。几十到上百倍。RTLRTLRTLRT

52、L设计在很大程度上已经决定了设计的功能和性能,虽然可以通设计在很大程度上已经决定了设计的功能和性能,虽然可以通设计在很大程度上已经决定了设计的功能和性能,虽然可以通设计在很大程度上已经决定了设计的功能和性能,虽然可以通过此后的综合和布局布线来对设计作一定程度的优化,但优化的结过此后的综合和布局布线来对设计作一定程度的优化,但优化的结过此后的综合和布局布线来对设计作一定程度的优化,但优化的结过此后的综合和布局布线来对设计作一定程度的优化,但优化的结果依赖于果依赖于果依赖于果依赖于RTLRTLRTLRTL编码的质量。编码的质量。编码的质量。编码的质量。RTLRTLRTLRTL编码设计者要在不依赖后

53、端的综合和布局布线的情况下,尽可编码设计者要在不依赖后端的综合和布局布线的情况下,尽可编码设计者要在不依赖后端的综合和布局布线的情况下,尽可编码设计者要在不依赖后端的综合和布局布线的情况下,尽可能多地解决延时、面积、测试等问题。能多地解决延时、面积、测试等问题。能多地解决延时、面积、测试等问题。能多地解决延时、面积、测试等问题。在在在在RTLRTLRTLRTL编码过程中,从一开始就考虑到综合,以及到最终会生成的编码过程中,从一开始就考虑到综合,以及到最终会生成的编码过程中,从一开始就考虑到综合,以及到最终会生成的编码过程中,从一开始就考虑到综合,以及到最终会生成的硅物理电路。硅物理电路。硅物理

54、电路。硅物理电路。28数字IC设计方法学高质量的高质量的高质量的高质量的RTLRTLRTLRTL编码设计应该考虑以下因素:编码设计应该考虑以下因素:编码设计应该考虑以下因素:编码设计应该考虑以下因素:(1)(1)(1)(1)可综合性:设计者头脑中要始终保持有电路的概念,即保证编码是综合工可综合性:设计者头脑中要始终保持有电路的概念,即保证编码是综合工可综合性:设计者头脑中要始终保持有电路的概念,即保证编码是综合工可综合性:设计者头脑中要始终保持有电路的概念,即保证编码是综合工具可综合转换的,并保证编码能够被综合工具正确识别,最终产生设计者所具可综合转换的,并保证编码能够被综合工具正确识别,最终

55、产生设计者所具可综合转换的,并保证编码能够被综合工具正确识别,最终产生设计者所具可综合转换的,并保证编码能够被综合工具正确识别,最终产生设计者所期望的电路。期望的电路。期望的电路。期望的电路。(2)(2)(2)(2)可读性:在可读性:在可读性:在可读性:在RTLRTLRTLRTL编码过程中采用统一的、规范的书写风格,避免复杂难以编码过程中采用统一的、规范的书写风格,避免复杂难以编码过程中采用统一的、规范的书写风格,避免复杂难以编码过程中采用统一的、规范的书写风格,避免复杂难以理解的语法形式,并应加入清晰易懂的注释。理解的语法形式,并应加入清晰易懂的注释。理解的语法形式,并应加入清晰易懂的注释。

56、理解的语法形式,并应加入清晰易懂的注释。(3)(3)(3)(3)时序优化:设计者要选择恰当的电路结构和时序划分,保证同步电路的时时序优化:设计者要选择恰当的电路结构和时序划分,保证同步电路的时时序优化:设计者要选择恰当的电路结构和时序划分,保证同步电路的时时序优化:设计者要选择恰当的电路结构和时序划分,保证同步电路的时钟约束钟约束钟约束钟约束( ( ( (建立时间、保持时间建立时间、保持时间建立时间、保持时间建立时间、保持时间) ) ) )在综合阶段能较容易地被满足。在综合阶段能较容易地被满足。在综合阶段能较容易地被满足。在综合阶段能较容易地被满足。(4)(4)(4)(4)面积优化:在面积优化

57、:在面积优化:在面积优化:在RTLRTLRTLRTL编码阶段考虑节约面积往往会得到比只靠综合优化工具编码阶段考虑节约面积往往会得到比只靠综合优化工具编码阶段考虑节约面积往往会得到比只靠综合优化工具编码阶段考虑节约面积往往会得到比只靠综合优化工具更好的效果;另外,对于一些复杂的电路结构,不同的更好的效果;另外,对于一些复杂的电路结构,不同的更好的效果;另外,对于一些复杂的电路结构,不同的更好的效果;另外,对于一些复杂的电路结构,不同的RTLRTLRTLRTL编码方法会得到面编码方法会得到面编码方法会得到面编码方法会得到面积和单元数目完全不同的综合结果。设计者需要学会估算各种积和单元数目完全不同的

58、综合结果。设计者需要学会估算各种积和单元数目完全不同的综合结果。设计者需要学会估算各种积和单元数目完全不同的综合结果。设计者需要学会估算各种RTLRTLRTLRTL编码设计在编码设计在编码设计在编码设计在特定的综合工具和综合库下占用面积资源的情况,从而选择最优的编码形式。特定的综合工具和综合库下占用面积资源的情况,从而选择最优的编码形式。特定的综合工具和综合库下占用面积资源的情况,从而选择最优的编码形式。特定的综合工具和综合库下占用面积资源的情况,从而选择最优的编码形式。(5)(5)(5)(5)功耗优化:设计者在功耗优化:设计者在功耗优化:设计者在功耗优化:设计者在RTLRTLRTLRTL编码

59、阶段就要考虑减少不必要的信号跳变,降低编码阶段就要考虑减少不必要的信号跳变,降低编码阶段就要考虑减少不必要的信号跳变,降低编码阶段就要考虑减少不必要的信号跳变,降低信号翻转频率,以降低整个数字信号翻转频率,以降低整个数字信号翻转频率,以降低整个数字信号翻转频率,以降低整个数字ICICICIC系统的功耗。系统的功耗。系统的功耗。系统的功耗。(6)(6)(6)(6)可测性:设计者只有按照一定的可测性规则进行可测性:设计者只有按照一定的可测性规则进行可测性:设计者只有按照一定的可测性规则进行可测性:设计者只有按照一定的可测性规则进行RTLRTLRTLRTL编码,后端的可测性编码,后端的可测性编码,后

60、端的可测性编码,后端的可测性设计工作才能顺利进行。设计工作才能顺利进行。设计工作才能顺利进行。设计工作才能顺利进行。(7)(7)(7)(7)物理实现性:在物理实现性:在物理实现性:在物理实现性:在RTLRTLRTLRTL编码阶段还应该考虑到后端布局布线的难度,如多个编码阶段还应该考虑到后端布局布线的难度,如多个编码阶段还应该考虑到后端布局布线的难度,如多个编码阶段还应该考虑到后端布局布线的难度,如多个模块间的数目巨大的交叉走线必然会让后端工具无能为力;再如,某些电路模块间的数目巨大的交叉走线必然会让后端工具无能为力;再如,某些电路模块间的数目巨大的交叉走线必然会让后端工具无能为力;再如,某些电

61、路模块间的数目巨大的交叉走线必然会让后端工具无能为力;再如,某些电路信号扇入扇出太多会造成布局布线的局部拥塞。信号扇入扇出太多会造成布局布线的局部拥塞。信号扇入扇出太多会造成布局布线的局部拥塞。信号扇入扇出太多会造成布局布线的局部拥塞。29数字IC设计方法学2.1.3 RTL2.1.3 RTL2.1.3 RTL2.1.3 RTL功能仿真功能仿真功能仿真功能仿真功能仿真是芯片设计的重要步骤功能仿真是芯片设计的重要步骤功能仿真是芯片设计的重要步骤功能仿真是芯片设计的重要步骤, , , ,目的是验证设计是否达到了目的是验证设计是否达到了目的是验证设计是否达到了目的是验证设计是否达到了预期的功能。预期

62、的功能。预期的功能。预期的功能。仿真环境从待验证设计的输入端输入激励信号仿真环境从待验证设计的输入端输入激励信号仿真环境从待验证设计的输入端输入激励信号仿真环境从待验证设计的输入端输入激励信号, , , ,观察信号在设观察信号在设观察信号在设观察信号在设计内部传输到输出的过程计内部传输到输出的过程计内部传输到输出的过程计内部传输到输出的过程, , , ,从而分析设计功能是否正确。从而分析设计功能是否正确。从而分析设计功能是否正确。从而分析设计功能是否正确。不同设计的仿真环境的结构往往是不同的不同设计的仿真环境的结构往往是不同的不同设计的仿真环境的结构往往是不同的不同设计的仿真环境的结构往往是不

63、同的, , , ,需要根据待验证设需要根据待验证设需要根据待验证设需要根据待验证设计和验证的目标来设计。计和验证的目标来设计。计和验证的目标来设计。计和验证的目标来设计。仿真环境模拟真实的应用环境。仿真环境模拟真实的应用环境。仿真环境模拟真实的应用环境。仿真环境模拟真实的应用环境。用用用用VerilogVerilogVerilogVerilog语言可以建立仿真环境,称为语言可以建立仿真环境,称为语言可以建立仿真环境,称为语言可以建立仿真环境,称为testbenchtestbenchtestbenchtestbench。下面给出一个功能仿真的例子:下面给出一个功能仿真的例子:下面给出一个功能仿真

64、的例子:下面给出一个功能仿真的例子:32323232位位位位ALUALUALUALU的功能仿真。的功能仿真。的功能仿真。的功能仿真。例子:利用例子:利用例子:利用例子:利用VerilogVerilogVerilogVerilog HDL HDL HDL HDL设计一个运算器模型,并进行仿真测设计一个运算器模型,并进行仿真测设计一个运算器模型,并进行仿真测设计一个运算器模型,并进行仿真测试。要求该运算器的字长为试。要求该运算器的字长为试。要求该运算器的字长为试。要求该运算器的字长为32323232位,能够实现加法、减法、逻辑与、位,能够实现加法、减法、逻辑与、位,能够实现加法、减法、逻辑与、位,

65、能够实现加法、减法、逻辑与、逻辑或四种运算,并产生逻辑或四种运算,并产生逻辑或四种运算,并产生逻辑或四种运算,并产生N(N(N(N(结果为负结果为负结果为负结果为负) ) ) )、Z(Z(Z(Z(结果为零结果为零结果为零结果为零) ) ) )、V(V(V(V(结果溢结果溢结果溢结果溢出出出出) ) ) )、C(C(C(C(进位进位进位进位) ) ) )四个标志位。四个标志位。四个标志位。四个标志位。 30数字IC设计方法学ALUALU的电路结构图的电路结构图OPABOPOPOPAYBAYBand2*32or2*32SSA1 A0Ymux2*32A1 A0Ymux2*32零判断零判断ZSasbs

66、ubCVsNVCOP00 AND01 OR10 ADD11 SUB31数字IC设计方法学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&b; 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 ALUALU的的VerilogVer

67、ilog模型模型32数字IC设计方法学ALUALUALUALU的测试文件的测试文件的测试文件的测试文件timescale 1ns / 1nsmodule 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 generationalways #50 clk = clk;initial begin#20 a=32b0100_0101_0100_000

68、0_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=32b010

69、0_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; endendmodule 33数字IC设计方法学ALUALUA

70、LUALU的仿真波形图的仿真波形图的仿真波形图的仿真波形图34数字IC设计方法学2.1.4 RTL2.1.4 RTL2.1.4 RTL2.1.4 RTL综合综合综合综合RTLRTLRTLRTL综合综合综合综合( ( ( (或逻辑综合或逻辑综合或逻辑综合或逻辑综合) ) ) )是通过是通过是通过是通过EDAEDAEDAEDA工具将工具将工具将工具将RTLRTLRTLRTL代码映射到由制造代码映射到由制造代码映射到由制造代码映射到由制造厂家标准单元库中的元件所构成的门级电路的过程。厂家标准单元库中的元件所构成的门级电路的过程。厂家标准单元库中的元件所构成的门级电路的过程。厂家标准单元库中的元件所构

71、成的门级电路的过程。常用的综合工具:常用的综合工具:常用的综合工具:常用的综合工具:SynopsysSynopsysSynopsysSynopsys公司的公司的公司的公司的Design CompilerDesign CompilerDesign CompilerDesign Compiler,CadenceCadenceCadenceCadence公司的公司的公司的公司的RTL CompilerRTL CompilerRTL CompilerRTL Compiler,MagmaMagmaMagmaMagma公司的公司的公司的公司的RTL BlasterRTL BlasterRTL Blaste

72、rRTL Blaster等。等。等。等。典型的典型的典型的典型的RTLRTLRTLRTL综合分为两个阶段:综合分为两个阶段:综合分为两个阶段:综合分为两个阶段:(1 1 1 1)逻辑表达和优化阶段:分析)逻辑表达和优化阶段:分析)逻辑表达和优化阶段:分析)逻辑表达和优化阶段:分析RTLRTLRTLRTL电路描述,并使用布尔方程电路描述,并使用布尔方程电路描述,并使用布尔方程电路描述,并使用布尔方程划简得到最优的逻辑电路表达,这一阶段使用划简得到最优的逻辑电路表达,这一阶段使用划简得到最优的逻辑电路表达,这一阶段使用划简得到最优的逻辑电路表达,这一阶段使用EDAEDAEDAEDA工具自带的通工具

73、自带的通工具自带的通工具自带的通用元件库。用元件库。用元件库。用元件库。(2 2 2 2)工艺标准单元库映射阶段:将通用元件库网表映射为工艺)工艺标准单元库映射阶段:将通用元件库网表映射为工艺)工艺标准单元库映射阶段:将通用元件库网表映射为工艺)工艺标准单元库映射阶段:将通用元件库网表映射为工艺标准单元库网表,这个阶段会根据标准单元库各元件的面积、延标准单元库网表,这个阶段会根据标准单元库各元件的面积、延标准单元库网表,这个阶段会根据标准单元库各元件的面积、延标准单元库网表,这个阶段会根据标准单元库各元件的面积、延时、功耗信息和设计所需达到的目标来优化电路。时、功耗信息和设计所需达到的目标来优

74、化电路。时、功耗信息和设计所需达到的目标来优化电路。时、功耗信息和设计所需达到的目标来优化电路。RTLRTLRTLRTL综合是由各种约束条件驱动的,包括工作环境、时序要求、综合是由各种约束条件驱动的,包括工作环境、时序要求、综合是由各种约束条件驱动的,包括工作环境、时序要求、综合是由各种约束条件驱动的,包括工作环境、时序要求、面积、功耗等。面积、功耗等。面积、功耗等。面积、功耗等。综合实际上是要在所有约束条件下折中产生一个最优网表。综合实际上是要在所有约束条件下折中产生一个最优网表。综合实际上是要在所有约束条件下折中产生一个最优网表。综合实际上是要在所有约束条件下折中产生一个最优网表。约束条件

75、中最重要的是时间约束,满足时间约束达到时序收敛约束条件中最重要的是时间约束,满足时间约束达到时序收敛约束条件中最重要的是时间约束,满足时间约束达到时序收敛约束条件中最重要的是时间约束,满足时间约束达到时序收敛是综合最重要的目标。是综合最重要的目标。是综合最重要的目标。是综合最重要的目标。35数字IC设计方法学RTLRTLRTLRTL综合的各个步骤:综合的各个步骤:综合的各个步骤:综合的各个步骤:(1 1 1 1)确定综合工具和综合策略:自顶向下综合、自底向上综合。)确定综合工具和综合策略:自顶向下综合、自底向上综合。)确定综合工具和综合策略:自顶向下综合、自底向上综合。)确定综合工具和综合策略

76、:自顶向下综合、自底向上综合。(2 2 2 2)确定制造厂家工艺库文件:工艺库文件中包含了标准元件的面积、延时、)确定制造厂家工艺库文件:工艺库文件中包含了标准元件的面积、延时、)确定制造厂家工艺库文件:工艺库文件中包含了标准元件的面积、延时、)确定制造厂家工艺库文件:工艺库文件中包含了标准元件的面积、延时、输入输出、功耗、工作环境、设计规则等信息,通常制造厂家会按照常用输入输出、功耗、工作环境、设计规则等信息,通常制造厂家会按照常用输入输出、功耗、工作环境、设计规则等信息,通常制造厂家会按照常用输入输出、功耗、工作环境、设计规则等信息,通常制造厂家会按照常用EDAEDAEDAEDA综合工具要

77、求的格式产生库文件。工艺库文件中的延时信息,通常会根据不综合工具要求的格式产生库文件。工艺库文件中的延时信息,通常会根据不综合工具要求的格式产生库文件。工艺库文件中的延时信息,通常会根据不综合工具要求的格式产生库文件。工艺库文件中的延时信息,通常会根据不同的工作环境和工艺极限参数提供最大、最小和典型三种延时信息。综合工同的工作环境和工艺极限参数提供最大、最小和典型三种延时信息。综合工同的工作环境和工艺极限参数提供最大、最小和典型三种延时信息。综合工同的工作环境和工艺极限参数提供最大、最小和典型三种延时信息。综合工具以及后续的各种时序分析工具都会分别用最大、最小两组延时信息分析具以及后续的各种时

78、序分析工具都会分别用最大、最小两组延时信息分析具以及后续的各种时序分析工具都会分别用最大、最小两组延时信息分析具以及后续的各种时序分析工具都会分别用最大、最小两组延时信息分析set set set set upupupup时间和时间和时间和时间和holdholdholdhold时间,以保证芯片在各种工作环境和工艺偏差下都能正常工作。时间,以保证芯片在各种工作环境和工艺偏差下都能正常工作。时间,以保证芯片在各种工作环境和工艺偏差下都能正常工作。时间,以保证芯片在各种工作环境和工艺偏差下都能正常工作。(3 3 3 3)分析)分析)分析)分析RTLRTLRTLRTL设计:首先输入设计:首先输入设计:

79、首先输入设计:首先输入RTLRTLRTLRTL设计文件,一般是采用设计文件,一般是采用设计文件,一般是采用设计文件,一般是采用HDLHDLHDLHDL语言描述的文件;语言描述的文件;语言描述的文件;语言描述的文件;其次综合工具会分析其次综合工具会分析其次综合工具会分析其次综合工具会分析RTLRTLRTLRTL设计的正确性,包括设计的正确性,包括设计的正确性,包括设计的正确性,包括HDLHDLHDLHDL语言描述的语法正确性,语言描述的语法正确性,语言描述的语法正确性,语言描述的语法正确性,RTLRTLRTLRTL设计的完整性,以及设计的完整性,以及设计的完整性,以及设计的完整性,以及RTLRT

80、LRTLRTL设计的可综合性和代码质量;再次综合工具会将所有设计的可综合性和代码质量;再次综合工具会将所有设计的可综合性和代码质量;再次综合工具会将所有设计的可综合性和代码质量;再次综合工具会将所有的子模块链接成一个大的完整的模块,并将多次例化的子模块按例化环境复的子模块链接成一个大的完整的模块,并将多次例化的子模块按例化环境复的子模块链接成一个大的完整的模块,并将多次例化的子模块按例化环境复的子模块链接成一个大的完整的模块,并将多次例化的子模块按例化环境复制成唯一的子模块,这样做是因为同一子模块的不同例化在综合时会有不同制成唯一的子模块,这样做是因为同一子模块的不同例化在综合时会有不同制成唯

81、一的子模块,这样做是因为同一子模块的不同例化在综合时会有不同制成唯一的子模块,这样做是因为同一子模块的不同例化在综合时会有不同的约束要求。的约束要求。的约束要求。的约束要求。(4 4 4 4)确定综合环境:综合环境包括芯片的目标工作环境、线负载模型和元件)确定综合环境:综合环境包括芯片的目标工作环境、线负载模型和元件)确定综合环境:综合环境包括芯片的目标工作环境、线负载模型和元件)确定综合环境:综合环境包括芯片的目标工作环境、线负载模型和元件的接口特征。厂家工艺库中对综合环境做出了各种设定,包括温度、电压、的接口特征。厂家工艺库中对综合环境做出了各种设定,包括温度、电压、的接口特征。厂家工艺库

82、中对综合环境做出了各种设定,包括温度、电压、的接口特征。厂家工艺库中对综合环境做出了各种设定,包括温度、电压、工艺变化范围、预估的走线长度等。综合时综合工具需要根据芯片设计的具工艺变化范围、预估的走线长度等。综合时综合工具需要根据芯片设计的具工艺变化范围、预估的走线长度等。综合时综合工具需要根据芯片设计的具工艺变化范围、预估的走线长度等。综合时综合工具需要根据芯片设计的具体情况从工艺库中选择,这样就能保证综合的结果尽可能地接近预期目标。体情况从工艺库中选择,这样就能保证综合的结果尽可能地接近预期目标。体情况从工艺库中选择,这样就能保证综合的结果尽可能地接近预期目标。体情况从工艺库中选择,这样就

83、能保证综合的结果尽可能地接近预期目标。36数字IC设计方法学(5 5 5 5)确定设计目标约束:最常用的设计目标约束是时钟约束、边界约)确定设计目标约束:最常用的设计目标约束是时钟约束、边界约)确定设计目标约束:最常用的设计目标约束是时钟约束、边界约)确定设计目标约束:最常用的设计目标约束是时钟约束、边界约束和面积约束。时钟约束和边界约束的实际是给同步电路中的每一条束和面积约束。时钟约束和边界约束的实际是给同步电路中的每一条束和面积约束。时钟约束和边界约束的实际是给同步电路中的每一条束和面积约束。时钟约束和边界约束的实际是给同步电路中的每一条信号路径设定信号路径设定信号路径设定信号路径设定se

84、t upset upset upset up时间和时间和时间和时间和holdholdholdhold时间约束,包括芯片或模块内部的路时间约束,包括芯片或模块内部的路时间约束,包括芯片或模块内部的路时间约束,包括芯片或模块内部的路径,端口的输入输出路径,以及多时钟系统中的跨时钟域路径。面积径,端口的输入输出路径,以及多时钟系统中的跨时钟域路径。面积径,端口的输入输出路径,以及多时钟系统中的跨时钟域路径。面积径,端口的输入输出路径,以及多时钟系统中的跨时钟域路径。面积约束和时间约束是一对矛盾,约束和时间约束是一对矛盾,约束和时间约束是一对矛盾,约束和时间约束是一对矛盾,EDAEDAEDAEDA工具

85、通常采用的策略是在满足时间约工具通常采用的策略是在满足时间约工具通常采用的策略是在满足时间约工具通常采用的策略是在满足时间约束的前提下尽可能满足面积约束。例如,束的前提下尽可能满足面积约束。例如,束的前提下尽可能满足面积约束。例如,束的前提下尽可能满足面积约束。例如,RTLRTLRTLRTL代码中的加法可以被综合代码中的加法可以被综合代码中的加法可以被综合代码中的加法可以被综合转换为超前进位加法器或串行进位加法器,前者比后者的电路延时短,转换为超前进位加法器或串行进位加法器,前者比后者的电路延时短,转换为超前进位加法器或串行进位加法器,前者比后者的电路延时短,转换为超前进位加法器或串行进位加法

86、器,前者比后者的电路延时短,但面积会大很多,所以综合时在串行进位加法器能满足时间约束的情但面积会大很多,所以综合时在串行进位加法器能满足时间约束的情但面积会大很多,所以综合时在串行进位加法器能满足时间约束的情但面积会大很多,所以综合时在串行进位加法器能满足时间约束的情况下,就不会采用超前进位加法器了。况下,就不会采用超前进位加法器了。况下,就不会采用超前进位加法器了。况下,就不会采用超前进位加法器了。(6 6 6 6)确定设计规则约束:设计规则约束保证了综合结果的可靠性和后)确定设计规则约束:设计规则约束保证了综合结果的可靠性和后)确定设计规则约束:设计规则约束保证了综合结果的可靠性和后)确定

87、设计规则约束:设计规则约束保证了综合结果的可靠性和后端布局布线质量。设计规则约束通常包括信号最大翻转时间、节点最端布局布线质量。设计规则约束通常包括信号最大翻转时间、节点最端布局布线质量。设计规则约束通常包括信号最大翻转时间、节点最端布局布线质量。设计规则约束通常包括信号最大翻转时间、节点最大负载电容和节点最大驱动扇出。最大翻转时间约束和节点最大负载大负载电容和节点最大驱动扇出。最大翻转时间约束和节点最大负载大负载电容和节点最大驱动扇出。最大翻转时间约束和节点最大负载大负载电容和节点最大驱动扇出。最大翻转时间约束和节点最大负载电容约束保证了芯片内部信号驱动的可靠性,同时保证芯片功耗不会电容约束

88、保证了芯片内部信号驱动的可靠性,同时保证芯片功耗不会电容约束保证了芯片内部信号驱动的可靠性,同时保证芯片功耗不会电容约束保证了芯片内部信号驱动的可靠性,同时保证芯片功耗不会因信号质量问题而增加。节点最大负载电容约束和节点最大驱动扇出因信号质量问题而增加。节点最大负载电容约束和节点最大驱动扇出因信号质量问题而增加。节点最大负载电容约束和节点最大驱动扇出因信号质量问题而增加。节点最大负载电容约束和节点最大驱动扇出约束保证了芯片内部连线不会过长,不会出现一点到多点的拥塞,这约束保证了芯片内部连线不会过长,不会出现一点到多点的拥塞,这约束保证了芯片内部连线不会过长,不会出现一点到多点的拥塞,这约束保证

89、了芯片内部连线不会过长,不会出现一点到多点的拥塞,这在很大程度上减少了后端布局布线的难度。在很大程度上减少了后端布局布线的难度。在很大程度上减少了后端布局布线的难度。在很大程度上减少了后端布局布线的难度。37数字IC设计方法学(7 7 7 7)综合优化和结果分析:)综合优化和结果分析:)综合优化和结果分析:)综合优化和结果分析:EDAEDAEDAEDA工具根据前面设定好的各种环境和约束,工具根据前面设定好的各种环境和约束,工具根据前面设定好的各种环境和约束,工具根据前面设定好的各种环境和约束,综合优化得到最终的网表。实际上综合优化可以看成是一个在设定的边界综合优化得到最终的网表。实际上综合优化

90、可以看成是一个在设定的边界综合优化得到最终的网表。实际上综合优化可以看成是一个在设定的边界综合优化得到最终的网表。实际上综合优化可以看成是一个在设定的边界约束下反复迭代求约束下反复迭代求约束下反复迭代求约束下反复迭代求NPNPNPNP问题最优解的过程,因此当边界约束过于苛刻时,优问题最优解的过程,因此当边界约束过于苛刻时,优问题最优解的过程,因此当边界约束过于苛刻时,优问题最优解的过程,因此当边界约束过于苛刻时,优化最终产生的网表并不一定总能满足所有设定的约束条件。综合结束后,化最终产生的网表并不一定总能满足所有设定的约束条件。综合结束后,化最终产生的网表并不一定总能满足所有设定的约束条件。综

91、合结束后,化最终产生的网表并不一定总能满足所有设定的约束条件。综合结束后,根据根据根据根据EDAEDAEDAEDA工具产生的报告分析约束是否满足和约束不满足的原因是工具产生的报告分析约束是否满足和约束不满足的原因是工具产生的报告分析约束是否满足和约束不满足的原因是工具产生的报告分析约束是否满足和约束不满足的原因是RTLRTLRTLRTL综合综合综合综合最重要的工作,根据分析的结果往往需要修改最重要的工作,根据分析的结果往往需要修改最重要的工作,根据分析的结果往往需要修改最重要的工作,根据分析的结果往往需要修改RTLRTLRTLRTL代码甚至电路结构。代码甚至电路结构。代码甚至电路结构。代码甚至

92、电路结构。(8 8 8 8)形式验证:形式验证)形式验证:形式验证)形式验证:形式验证)形式验证:形式验证(formal verification)(formal verification)(formal verification)(formal verification)用于检查综合的结果和用于检查综合的结果和用于检查综合的结果和用于检查综合的结果和RTLRTLRTLRTL代码在逻辑功能上是否一致。形式验证是一种等效性检查,它不是通代码在逻辑功能上是否一致。形式验证是一种等效性检查,它不是通代码在逻辑功能上是否一致。形式验证是一种等效性检查,它不是通代码在逻辑功能上是否一致。形式验证是一种等

93、效性检查,它不是通过仿真,而是通过直接分析电路的逻辑关系来进行验证的。过仿真,而是通过直接分析电路的逻辑关系来进行验证的。过仿真,而是通过直接分析电路的逻辑关系来进行验证的。过仿真,而是通过直接分析电路的逻辑关系来进行验证的。RTLRTLRTLRTL综合转换综合转换综合转换综合转换的正确性和的正确性和的正确性和的正确性和RTLRTLRTLRTL编码的质量有很大关系,形式验证能及时检查出综合转换编码的质量有很大关系,形式验证能及时检查出综合转换编码的质量有很大关系,形式验证能及时检查出综合转换编码的质量有很大关系,形式验证能及时检查出综合转换过程中的错误,保证综合的正确性。数字过程中的错误,保证

94、综合的正确性。数字过程中的错误,保证综合的正确性。数字过程中的错误,保证综合的正确性。数字ICICICIC设计中,形式验证还用于多种设计中,形式验证还用于多种设计中,形式验证还用于多种设计中,形式验证还用于多种场合,如不同版本的场合,如不同版本的场合,如不同版本的场合,如不同版本的RTLRTLRTLRTL代码比较以找出版本间的差别,以及比较布局布代码比较以找出版本间的差别,以及比较布局布代码比较以找出版本间的差别,以及比较布局布代码比较以找出版本间的差别,以及比较布局布线前后的网表以保证布局布线的正确性。线前后的网表以保证布局布线的正确性。线前后的网表以保证布局布线的正确性。线前后的网表以保证

95、布局布线的正确性。RTLRTLRTLRTL综合在数字综合在数字综合在数字综合在数字ICICICIC设计中起着重要的承前启后的作用。好的综合结果能及设计中起着重要的承前启后的作用。好的综合结果能及设计中起着重要的承前启后的作用。好的综合结果能及设计中起着重要的承前启后的作用。好的综合结果能及时发现并反映时发现并反映时发现并反映时发现并反映RTLRTLRTLRTL编码中时序结构的不合理性,指导编码中时序结构的不合理性,指导编码中时序结构的不合理性,指导编码中时序结构的不合理性,指导RTLRTLRTLRTL代码修改;同时代码修改;同时代码修改;同时代码修改;同时RTLRTLRTLRTL综合的质量对后

96、端布局布线影响很大,后端布局布线后时序不收敛,综合的质量对后端布局布线影响很大,后端布局布线后时序不收敛,综合的质量对后端布局布线影响很大,后端布局布线后时序不收敛,综合的质量对后端布局布线影响很大,后端布局布线后时序不收敛,往往是因为往往是因为往往是因为往往是因为RTLRTLRTLRTL综合时约束不完备或不准确造成的。综合时约束不完备或不准确造成的。综合时约束不完备或不准确造成的。综合时约束不完备或不准确造成的。38数字IC设计方法学例子:可重构密码协处理器综合后的例子:可重构密码协处理器综合后的功能与性能指标功能与性能指标 可重构密码协处理器的最终实现形式是可重构密码协处理器的最终实现形式

97、是ASICASIC芯片,其性芯片,其性能和规模与生产工艺和厂家库有关。我们选用业界权威的综能和规模与生产工艺和厂家库有关。我们选用业界权威的综合优化工具合优化工具SynopsysSynopsys公司的公司的Design CompilerDesign Compiler,基于,基于TSMC TSMC 0.25u0.25u工艺库在最坏情况下对可重构密码协处理器的性能和规工艺库在最坏情况下对可重构密码协处理器的性能和规模进行了评估,结果表明可重构密码协处理器的工作时钟频模进行了评估,结果表明可重构密码协处理器的工作时钟频率可以达到率可以达到111Mhz111Mhz、规模约为、规模约为8 8平方毫米平方

98、毫米( (若折合为门数,则若折合为门数,则大约相当于大约相当于279792279792门门) )。由此可以估算出在可重构密码协处理。由此可以估算出在可重构密码协处理器上实现的一些典型的密码算法的加器上实现的一些典型的密码算法的加/ /解密速度,详见下表。解密速度,详见下表。 39数字IC设计方法学可重构密码协处理器功能与性能指标(续一)可重构密码协处理器功能与性能指标(续一)密码算法密码算法加密速度加密速度( (位位/ /秒秒) )解密速度解密速度( (位位/ /秒秒) )DESDES8.36*108.36*107 78.36*108.36*107 7IDEAIDEA8.36*108.36*1

99、07 78.36*108.36*107 7AESAES7.21*107.21*107 76.73*106.73*107 7GiffordGifford1.71*101.71*108 81.71*101.71*108 8GeffeGeffe1.1*101.1*108 81.1*101.1*108 840数字IC设计方法学可重构密码协处理器功能与性能指标(续二)可重构密码协处理器功能与性能指标(续二)具体地说可重构密码协处理器支持的操作及其时序要求如下:具体地说可重构密码协处理器支持的操作及其时序要求如下:(1 1)支持系统复位操作,复位后所有内部寄存器立即被置为)支持系统复位操作,复位后所有内部

100、寄存器立即被置为0 0。(2 2)支持指令条数寄存器装载操作,)支持指令条数寄存器装载操作,2 2个时钟周期完成。个时钟周期完成。(3 3)支持程序装载操作,每个时钟周期装载)支持程序装载操作,每个时钟周期装载1 1个字节。个字节。(4 4)支持密钥)支持密钥/ /数据装载操作,每个周期装载数据装载操作,每个周期装载1 1个字节。个字节。(5 5)支持程序执行操作,给出触发信号后,程序自动执行。)支持程序执行操作,给出触发信号后,程序自动执行。(6 6)支持结果传输操作,每个时钟周期传输)支持结果传输操作,每个时钟周期传输1 1个字节。个字节。(7 7)支持)支持6464位输入寄存器写操作,位

101、输入寄存器写操作,1 1个周期完成。个周期完成。(8 8)支持)支持128128位结果寄存器写操作,位结果寄存器写操作,1 1个周期完成。个周期完成。(9 9)支持)支持8 8个个16*1616*16寄存器堆写操作并行执行,寄存器堆写操作并行执行,1 1个周期完成。个周期完成。41数字IC设计方法学可重构密码协处理器功能与性能指标(续三)可重构密码协处理器功能与性能指标(续三)(1010)支持)支持8 8个个16*1616*16寄存器堆读操作并行执行,寄存器堆读操作并行执行,1 1个周期完成。个周期完成。(1111)支持)支持4 4个个1616位异或操作并行执行,位异或操作并行执行,1 1个时

102、钟周期完成。个时钟周期完成。(1212)支持)支持2 2个个2828位循环左移操作并行执行,位循环左移操作并行执行,1 1个时钟周期完成。个时钟周期完成。(1313)支持)支持3232位移位操作,位移位操作,1 1个时钟周期完成。个时钟周期完成。(1414)支持)支持128128位移位操作,位移位操作,1 1个时钟周期完成。个时钟周期完成。(1515)支持)支持2 2个个32*3232*32置换操作并行执行,置换操作并行执行,1 1个时钟周期完成。个时钟周期完成。(1616)支持)支持64*3264*32置换操作,置换操作,1 1个时钟周期完成。个时钟周期完成。(1717)支持)支持2 2个个

103、64*6464*64置换操作并行执行,置换操作并行执行,1 1个时钟周期完成。个时钟周期完成。(1818)支持)支持8 8个个8*8 S8*8 S盒代替操作并行执行,盒代替操作并行执行,1 1个时钟周期完成。个时钟周期完成。(1919)支持)支持3 3个个3232位线性反馈移位操作并行执行,位线性反馈移位操作并行执行,1 1个时钟周期完成。个时钟周期完成。 42数字IC设计方法学可重构密码协处理器功能与性能指标(续四)可重构密码协处理器功能与性能指标(续四)(2020)支持)支持1616位逻辑运算操作,位逻辑运算操作,1 1个时钟周期完成。个时钟周期完成。(2121)支持)支持1616位比较操

104、作,位比较操作,1 1个时钟周期完成。个时钟周期完成。(2222)支持)支持2 2个模个模2 21616加法加法/ /减法操作并行执行,减法操作并行执行,1 1个时钟周期完成。个时钟周期完成。(2323)支持)支持2 2个模个模2 21616+1+1乘法操作并行执行,乘法操作并行执行,2 2个时钟周期完成。个时钟周期完成。(2424)支持模)支持模2 21616+1+1乘法逆操作,最多需要乘法逆操作,最多需要400400个时钟周期完成。个时钟周期完成。(2525)支持模)支持模2 23232乘法操作,乘法操作,2 2个时钟周期完成。个时钟周期完成。(2626)支持)支持8 8个个8 8位模多项

105、式乘法操作并行执行,位模多项式乘法操作并行执行,1 1个时钟周期完成。个时钟周期完成。(2727)支持配置操作,每个周期可以配置)支持配置操作,每个周期可以配置128-192bit128-192bit。(2828)支持程序跳转操作,)支持程序跳转操作,2 2个周期完成。个周期完成。(2929)支持停机操作,)支持停机操作,1 1个周期完成。个周期完成。 43数字IC设计方法学2.1.5 2.1.5 2.1.5 2.1.5 可测性设计可测性设计可测性设计可测性设计在芯片的生产制造过程中,由于各种原因会产生一定的制造缺陷,导在芯片的生产制造过程中,由于各种原因会产生一定的制造缺陷,导在芯片的生产制

106、造过程中,由于各种原因会产生一定的制造缺陷,导在芯片的生产制造过程中,由于各种原因会产生一定的制造缺陷,导致小量芯片不可用。制造测试要求检查出制造缺陷,保证每个逻辑门致小量芯片不可用。制造测试要求检查出制造缺陷,保证每个逻辑门致小量芯片不可用。制造测试要求检查出制造缺陷,保证每个逻辑门致小量芯片不可用。制造测试要求检查出制造缺陷,保证每个逻辑门和寄存器都可运行,从而保证芯片所有的功能都正确。对于大规模的和寄存器都可运行,从而保证芯片所有的功能都正确。对于大规模的和寄存器都可运行,从而保证芯片所有的功能都正确。对于大规模的和寄存器都可运行,从而保证芯片所有的功能都正确。对于大规模的数字数字数字数

107、字ICICICIC设计,仅仅依靠功能测试向量是不足以高效地测试出所有的制设计,仅仅依靠功能测试向量是不足以高效地测试出所有的制设计,仅仅依靠功能测试向量是不足以高效地测试出所有的制设计,仅仅依靠功能测试向量是不足以高效地测试出所有的制造缺陷的。数字造缺陷的。数字造缺陷的。数字造缺陷的。数字ICICICIC设计中插入的专为提高测试效率的电路,称为可测设计中插入的专为提高测试效率的电路,称为可测设计中插入的专为提高测试效率的电路,称为可测设计中插入的专为提高测试效率的电路,称为可测性设计性设计性设计性设计(design for (design for (design for (design for

108、 test,DFTtest,DFTtest,DFTtest,DFT) ) ) )电路。电路。电路。电路。可测性设计的目的是要实现电路的可测量性、可控制性和可观察性。可测性设计的目的是要实现电路的可测量性、可控制性和可观察性。可测性设计的目的是要实现电路的可测量性、可控制性和可观察性。可测性设计的目的是要实现电路的可测量性、可控制性和可观察性。良好的可观察性和可控制性能提高测试效率,在相对较少的测试向量良好的可观察性和可控制性能提高测试效率,在相对较少的测试向量良好的可观察性和可控制性能提高测试效率,在相对较少的测试向量良好的可观察性和可控制性能提高测试效率,在相对较少的测试向量下能够得到高的故

109、障覆盖率。常用的可测性设计方法包括基于扫描链下能够得到高的故障覆盖率。常用的可测性设计方法包括基于扫描链下能够得到高的故障覆盖率。常用的可测性设计方法包括基于扫描链下能够得到高的故障覆盖率。常用的可测性设计方法包括基于扫描链(scan chain)(scan chain)(scan chain)(scan chain)的测试方法和内建自测试电路的测试方法和内建自测试电路的测试方法和内建自测试电路的测试方法和内建自测试电路(built-in self-test(built-in self-test(built-in self-test(built-in self-test,BIST)BIST)B

110、IST)BIST)。基于扫描链的测试方法是通过建立专门扫描链电路为每个寄存器提供基于扫描链的测试方法是通过建立专门扫描链电路为每个寄存器提供基于扫描链的测试方法是通过建立专门扫描链电路为每个寄存器提供基于扫描链的测试方法是通过建立专门扫描链电路为每个寄存器提供可观察性和可控制性,它通过对寄存器的控制将复杂的时序逻辑设计可观察性和可控制性,它通过对寄存器的控制将复杂的时序逻辑设计可观察性和可控制性,它通过对寄存器的控制将复杂的时序逻辑设计可观察性和可控制性,它通过对寄存器的控制将复杂的时序逻辑设计划分为完全隔离的组合逻辑块,从而简化了测试过程。基于扫描链的划分为完全隔离的组合逻辑块,从而简化了测

111、试过程。基于扫描链的划分为完全隔离的组合逻辑块,从而简化了测试过程。基于扫描链的划分为完全隔离的组合逻辑块,从而简化了测试过程。基于扫描链的测试方法又分为两种:一种是芯片内部寄存器的扫描链,用于测试芯测试方法又分为两种:一种是芯片内部寄存器的扫描链,用于测试芯测试方法又分为两种:一种是芯片内部寄存器的扫描链,用于测试芯测试方法又分为两种:一种是芯片内部寄存器的扫描链,用于测试芯片内部制造缺陷,另一种是芯片片内部制造缺陷,另一种是芯片片内部制造缺陷,另一种是芯片片内部制造缺陷,另一种是芯片I/OI/OI/OI/O端口的扫描链,又称为边界扫描设端口的扫描链,又称为边界扫描设端口的扫描链,又称为边界

112、扫描设端口的扫描链,又称为边界扫描设计计计计(boundary scan design)(boundary scan design)(boundary scan design)(boundary scan design),用于测试系统电路板级的制造缺陷。,用于测试系统电路板级的制造缺陷。,用于测试系统电路板级的制造缺陷。,用于测试系统电路板级的制造缺陷。44数字IC设计方法学内建自测试电路方法是通过芯片内部专门设计的测试内建自测试电路方法是通过芯片内部专门设计的测试内建自测试电路方法是通过芯片内部专门设计的测试内建自测试电路方法是通过芯片内部专门设计的测试逻辑电路逻辑电路逻辑电路逻辑电路( (

113、 ( (区别于扫描电路区别于扫描电路区别于扫描电路区别于扫描电路) ) ) )的运行来检查设计功能正常的运行来检查设计功能正常的运行来检查设计功能正常的运行来检查设计功能正常的电路的制造缺陷,它相当于把一个小型专用的测试仪的电路的制造缺陷,它相当于把一个小型专用的测试仪的电路的制造缺陷,它相当于把一个小型专用的测试仪的电路的制造缺陷,它相当于把一个小型专用的测试仪器集成到芯片内部。器集成到芯片内部。器集成到芯片内部。器集成到芯片内部。BISTBISTBISTBIST方法常用于片内存储器的测试,方法常用于片内存储器的测试,方法常用于片内存储器的测试,方法常用于片内存储器的测试,如数据缓存、如数据

114、缓存、如数据缓存、如数据缓存、FIFOFIFOFIFOFIFO、CacheCacheCacheCache等。在实际应用中,等。在实际应用中,等。在实际应用中,等。在实际应用中,BISTBISTBISTBIST和和和和BSDBSDBSDBSD经常与经常与经常与经常与JTAGJTAGJTAGJTAG结合起来使用。结合起来使用。结合起来使用。结合起来使用。JTAGJTAGJTAGJTAG接口提供了一种简接口提供了一种简接口提供了一种简接口提供了一种简单通用的通过有限单通用的通过有限单通用的通过有限单通用的通过有限I/OI/OI/OI/O访问芯片内部信号的方法。访问芯片内部信号的方法。访问芯片内部信号

115、的方法。访问芯片内部信号的方法。可测性设计实际上分布在数字可测性设计实际上分布在数字可测性设计实际上分布在数字可测性设计实际上分布在数字ICICICIC设计的多个阶段,各设计的多个阶段,各设计的多个阶段,各设计的多个阶段,各种种种种BISTBISTBISTBIST在系统体系结构设计阶段就要规划,然后在在系统体系结构设计阶段就要规划,然后在在系统体系结构设计阶段就要规划,然后在在系统体系结构设计阶段就要规划,然后在RTLRTLRTLRTL编码阶段实现,在编码阶段实现,在编码阶段实现,在编码阶段实现,在RTLRTLRTLRTL功能仿真阶段还要验证其正确性;功能仿真阶段还要验证其正确性;功能仿真阶段

116、还要验证其正确性;功能仿真阶段还要验证其正确性;而而而而DFTDFTDFTDFT扫描链、扫描链、扫描链、扫描链、BSDBSDBSDBSD和和和和JTAGJTAGJTAGJTAG主要在主要在主要在主要在RTLRTLRTLRTL综合完成之后,直综合完成之后,直综合完成之后,直综合完成之后,直接由接由接由接由EDAEDAEDAEDA工具插入。工具插入。工具插入。工具插入。45数字IC设计方法学2.1.6 2.1.6 2.1.6 2.1.6 后端布局布线后端布局布线后端布局布线后端布局布线后端布局布线是数字后端布局布线是数字后端布局布线是数字后端布局布线是数字ICICICIC设计的物理实现过程,即把设

117、计的物理实现过程,即把设计的物理实现过程,即把设计的物理实现过程,即把RTLRTLRTLRTL综合和综合和综合和综合和插入可测性设计后的网表文件转换为可生产的版图的过程。布局插入可测性设计后的网表文件转换为可生产的版图的过程。布局插入可测性设计后的网表文件转换为可生产的版图的过程。布局插入可测性设计后的网表文件转换为可生产的版图的过程。布局布线阶段是数字布线阶段是数字布线阶段是数字布线阶段是数字ICICICIC设计难度较高的阶段,特别是随着芯片规模的设计难度较高的阶段,特别是随着芯片规模的设计难度较高的阶段,特别是随着芯片规模的设计难度较高的阶段,特别是随着芯片规模的增大和工作频率的提高,深亚

118、微米设计的布局布线的设计风险也增大和工作频率的提高,深亚微米设计的布局布线的设计风险也增大和工作频率的提高,深亚微米设计的布局布线的设计风险也增大和工作频率的提高,深亚微米设计的布局布线的设计风险也在加大。在加大。在加大。在加大。后端布局布线主要由后端布局布线主要由后端布局布线主要由后端布局布线主要由EDAEDAEDAEDA工具自动完成,但输入给工具自动完成,但输入给工具自动完成,但输入给工具自动完成,但输入给EDAEDAEDAEDA工具的各工具的各工具的各工具的各种约束条件以及在后端设计中各阶段的分析、优化、判断和设置,种约束条件以及在后端设计中各阶段的分析、优化、判断和设置,种约束条件以及

119、在后端设计中各阶段的分析、优化、判断和设置,种约束条件以及在后端设计中各阶段的分析、优化、判断和设置,决定了布局布线的质量。实际中发现,布局布线产生的版图达不决定了布局布线的质量。实际中发现,布局布线产生的版图达不决定了布局布线的质量。实际中发现,布局布线产生的版图达不决定了布局布线的质量。实际中发现,布局布线产生的版图达不到最终的设计时序要求往往和后端工作输入的约束条件不完备或到最终的设计时序要求往往和后端工作输入的约束条件不完备或到最终的设计时序要求往往和后端工作输入的约束条件不完备或到最终的设计时序要求往往和后端工作输入的约束条件不完备或不准确有关。不准确有关。不准确有关。不准确有关。后

120、端输入的约束主要包括芯片的布局后端输入的约束主要包括芯片的布局后端输入的约束主要包括芯片的布局后端输入的约束主要包括芯片的布局(floor-plan)(floor-plan)(floor-plan)(floor-plan)要求和芯片要求和芯片要求和芯片要求和芯片的时序要求。布局要求包括:芯片面积大小的设定,各的时序要求。布局要求包括:芯片面积大小的设定,各的时序要求。布局要求包括:芯片面积大小的设定,各的时序要求。布局要求包括:芯片面积大小的设定,各I/OI/OI/OI/O单元单元单元单元的摆放位置,内部电源网络设计要求,各模块的摆放位置、大小的摆放位置,内部电源网络设计要求,各模块的摆放位置

121、、大小的摆放位置,内部电源网络设计要求,各模块的摆放位置、大小的摆放位置,内部电源网络设计要求,各模块的摆放位置、大小和相互之间的关系等。时序要求包括:各时钟树布线要求,各时和相互之间的关系等。时序要求包括:各时钟树布线要求,各时和相互之间的关系等。时序要求包括:各时钟树布线要求,各时和相互之间的关系等。时序要求包括:各时钟树布线要求,各时钟树间关系,输入输出约束等。钟树间关系,输入输出约束等。钟树间关系,输入输出约束等。钟树间关系,输入输出约束等。46数字IC设计方法学后端布局布线的基本步骤包括:后端布局布线的基本步骤包括:后端布局布线的基本步骤包括:后端布局布线的基本步骤包括:(1)(1)

122、(1)(1)设计输入:标准单元库、标准设计输入:标准单元库、标准设计输入:标准单元库、标准设计输入:标准单元库、标准I/OI/OI/OI/O库、综合后网表、各种约束文件库、综合后网表、各种约束文件库、综合后网表、各种约束文件库、综合后网表、各种约束文件等。等。等。等。(2)(2)(2)(2)芯片布局芯片布局芯片布局芯片布局(floor-plan)(floor-plan)(floor-plan)(floor-plan):设定芯片面积,确定各模块位置,确定预:设定芯片面积,确定各模块位置,确定预:设定芯片面积,确定各模块位置,确定预:设定芯片面积,确定各模块位置,确定预留出来不能占用的空间留出来不

123、能占用的空间留出来不能占用的空间留出来不能占用的空间( ( ( (如如如如SRAMSRAMSRAMSRAM块块块块) ) ) ),设定电源网络,设定各,设定电源网络,设定各,设定电源网络,设定各,设定电源网络,设定各I/OI/OI/OI/O信号出信号出信号出信号出口位置等。口位置等。口位置等。口位置等。(3)(3)(3)(3)标准单元布局标准单元布局标准单元布局标准单元布局(placement)(placement)(placement)(placement):根据芯片布局来摆放网表中调用的所:根据芯片布局来摆放网表中调用的所:根据芯片布局来摆放网表中调用的所:根据芯片布局来摆放网表中调用的所

124、有标准单元,有标准单元,有标准单元,有标准单元,EDAEDAEDAEDA工具会对时序约束、布线面积、布线拥塞等因素综合工具会对时序约束、布线面积、布线拥塞等因素综合工具会对时序约束、布线面积、布线拥塞等因素综合工具会对时序约束、布线面积、布线拥塞等因素综合分析决定标准单元的摆放。芯片布局和标准单元布局的质量比实际的分析决定标准单元的摆放。芯片布局和标准单元布局的质量比实际的分析决定标准单元的摆放。芯片布局和标准单元布局的质量比实际的分析决定标准单元的摆放。芯片布局和标准单元布局的质量比实际的布线还要关键。好的布局,不仅可以加快最后布线的速度,还可以得布线还要关键。好的布局,不仅可以加快最后布线

125、的速度,还可以得布线还要关键。好的布局,不仅可以加快最后布线的速度,还可以得布线还要关键。好的布局,不仅可以加快最后布线的速度,还可以得到比较理想的延时效果,并减少布线拥塞的可能性。到比较理想的延时效果,并减少布线拥塞的可能性。到比较理想的延时效果,并减少布线拥塞的可能性。到比较理想的延时效果,并减少布线拥塞的可能性。(4)(4)(4)(4)时钟树综合:按照时钟树约束,插入时钟树综合:按照时钟树约束,插入时钟树综合:按照时钟树约束,插入时钟树综合:按照时钟树约束,插入bufferbufferbufferbuffer产生均衡产生均衡产生均衡产生均衡(balance)(balance)(balan

126、ce)(balance)时时时时钟树的最优布线,即尽量保证时钟跟节点到各叶子节点延时基本一致。钟树的最优布线,即尽量保证时钟跟节点到各叶子节点延时基本一致。钟树的最优布线,即尽量保证时钟跟节点到各叶子节点延时基本一致。钟树的最优布线,即尽量保证时钟跟节点到各叶子节点延时基本一致。自动综合时钟树的能力是衡量后端布局布线自动综合时钟树的能力是衡量后端布局布线自动综合时钟树的能力是衡量后端布局布线自动综合时钟树的能力是衡量后端布局布线EDAEDAEDAEDA工具性能的一个重要指工具性能的一个重要指工具性能的一个重要指工具性能的一个重要指标,对于复杂的设计还往往需要人工的直接干预。时钟树综合工具还标,

127、对于复杂的设计还往往需要人工的直接干预。时钟树综合工具还标,对于复杂的设计还往往需要人工的直接干预。时钟树综合工具还标,对于复杂的设计还往往需要人工的直接干预。时钟树综合工具还能针对特殊的要求在不同的时钟树间做均衡,或者在版图设计上对时能针对特殊的要求在不同的时钟树间做均衡,或者在版图设计上对时能针对特殊的要求在不同的时钟树间做均衡,或者在版图设计上对时能针对特殊的要求在不同的时钟树间做均衡,或者在版图设计上对时钟信号做出更多保护等。钟信号做出更多保护等。钟信号做出更多保护等。钟信号做出更多保护等。47数字IC设计方法学(5)(5)(5)(5)自动布线:自动布线:自动布线:自动布线:EDAED

128、AEDAEDA工具自动布线的过程包含多个阶段,工具自动布线的过程包含多个阶段,工具自动布线的过程包含多个阶段,工具自动布线的过程包含多个阶段,首先是全局布线,然后在全局布线的基础上反复修改,首先是全局布线,然后在全局布线的基础上反复修改,首先是全局布线,然后在全局布线的基础上反复修改,首先是全局布线,然后在全局布线的基础上反复修改,知道修复所有的知道修复所有的知道修复所有的知道修复所有的violationsviolationsviolationsviolations,包括连接上的问题和时序,包括连接上的问题和时序,包括连接上的问题和时序,包括连接上的问题和时序约束上的问题。约束上的问题。约束上

129、的问题。约束上的问题。(6)RC(6)RC(6)RC(6)RC参数提取:根据布线完成的版图提取参数提取:根据布线完成的版图提取参数提取:根据布线完成的版图提取参数提取:根据布线完成的版图提取RCRCRCRC参数文件。参数文件。参数文件。参数文件。RCRCRCRC参数提取需要输入相应的工艺参数,如工艺各层的厚参数提取需要输入相应的工艺参数,如工艺各层的厚参数提取需要输入相应的工艺参数,如工艺各层的厚参数提取需要输入相应的工艺参数,如工艺各层的厚度、介电常数等,一般由工艺厂家提供。度、介电常数等,一般由工艺厂家提供。度、介电常数等,一般由工艺厂家提供。度、介电常数等,一般由工艺厂家提供。EDAED

130、AEDAEDA工具根据工具根据工具根据工具根据这些参数和版图实际几何形体的面积计算版图中这些参数和版图实际几何形体的面积计算版图中这些参数和版图实际几何形体的面积计算版图中这些参数和版图实际几何形体的面积计算版图中RCRCRCRC值。值。值。值。提取出来的提取出来的提取出来的提取出来的RCRCRCRC参数,可以直接用于静态时序分析,也可参数,可以直接用于静态时序分析,也可参数,可以直接用于静态时序分析,也可参数,可以直接用于静态时序分析,也可以在计算出对应的路径延时后用于反标功能后仿真。以在计算出对应的路径延时后用于反标功能后仿真。以在计算出对应的路径延时后用于反标功能后仿真。以在计算出对应的

131、路径延时后用于反标功能后仿真。(7)(7)(7)(7)版图物理检查:版图物理检查包括版图物理检查:版图物理检查包括版图物理检查:版图物理检查包括版图物理检查:版图物理检查包括DRC(design DRC(design DRC(design DRC(design rules check)rules check)rules check)rules check)和和和和LVS(layout versus schematic)LVS(layout versus schematic)LVS(layout versus schematic)LVS(layout versus schematic)。DRCD

132、RCDRCDRC检查是否满足工艺厂家提供的版图设计规则,检查是否满足工艺厂家提供的版图设计规则,检查是否满足工艺厂家提供的版图设计规则,检查是否满足工艺厂家提供的版图设计规则,LVSLVSLVSLVS检查检查检查检查版图是否和网表设计完全一致。版图是否和网表设计完全一致。版图是否和网表设计完全一致。版图是否和网表设计完全一致。48数字IC设计方法学2.1.7 2.1.7 2.1.7 2.1.7 静态时序分析和时序收敛静态时序分析和时序收敛静态时序分析和时序收敛静态时序分析和时序收敛1 1 1 1、静态时序分析、静态时序分析、静态时序分析、静态时序分析静态时序分析的功能是确定设计是否达到了设定的

133、时序约束要求。静态时序分析的功能是确定设计是否达到了设定的时序约束要求。静态时序分析的功能是确定设计是否达到了设定的时序约束要求。静态时序分析的功能是确定设计是否达到了设定的时序约束要求。静态时序分析和动态的功能仿真不同,动态功能仿真是加激励在待验证静态时序分析和动态的功能仿真不同,动态功能仿真是加激励在待验证静态时序分析和动态的功能仿真不同,动态功能仿真是加激励在待验证静态时序分析和动态的功能仿真不同,动态功能仿真是加激励在待验证设计上,然后分析输出,从而确定设计的功能是否正确,而静态时序分析设计上,然后分析输出,从而确定设计的功能是否正确,而静态时序分析设计上,然后分析输出,从而确定设计的

134、功能是否正确,而静态时序分析设计上,然后分析输出,从而确定设计的功能是否正确,而静态时序分析是对所有信号路径的延时信息直接进行计算比较,分析设计是否满足时序是对所有信号路径的延时信息直接进行计算比较,分析设计是否满足时序是对所有信号路径的延时信息直接进行计算比较,分析设计是否满足时序是对所有信号路径的延时信息直接进行计算比较,分析设计是否满足时序约束的要求。约束的要求。约束的要求。约束的要求。静态时序分析相比动态仿真,执行速度很快,可以确定关键路径并提供静态时序分析相比动态仿真,执行速度很快,可以确定关键路径并提供静态时序分析相比动态仿真,执行速度很快,可以确定关键路径并提供静态时序分析相比动

135、态仿真,执行速度很快,可以确定关键路径并提供详细的路径延时报告;同时,静态时序分析检查的比动态仿真彻底,很容详细的路径延时报告;同时,静态时序分析检查的比动态仿真彻底,很容详细的路径延时报告;同时,静态时序分析检查的比动态仿真彻底,很容详细的路径延时报告;同时,静态时序分析检查的比动态仿真彻底,很容易保证检查的完备性。因此,从某种意义上来讲,静态时序分析是数字易保证检查的完备性。因此,从某种意义上来讲,静态时序分析是数字易保证检查的完备性。因此,从某种意义上来讲,静态时序分析是数字易保证检查的完备性。因此,从某种意义上来讲,静态时序分析是数字ICICICIC流片前最重要的一项检查。流片前最重要

136、的一项检查。流片前最重要的一项检查。流片前最重要的一项检查。但静态时序分析工具一般无法区分伪路径,即在正常的激励路径下芯片但静态时序分析工具一般无法区分伪路径,即在正常的激励路径下芯片但静态时序分析工具一般无法区分伪路径,即在正常的激励路径下芯片但静态时序分析工具一般无法区分伪路径,即在正常的激励路径下芯片内部不可能出现的路径。内部不可能出现的路径。内部不可能出现的路径。内部不可能出现的路径。同时静态时序分析计算比较延时是基于分析对象为同步电路的假设,因同时静态时序分析计算比较延时是基于分析对象为同步电路的假设,因同时静态时序分析计算比较延时是基于分析对象为同步电路的假设,因同时静态时序分析计

137、算比较延时是基于分析对象为同步电路的假设,因此它对异步电路无法分析。此它对异步电路无法分析。此它对异步电路无法分析。此它对异步电路无法分析。在这两方面,功能仿真在这两方面,功能仿真在这两方面,功能仿真在这两方面,功能仿真( ( ( (反标反标反标反标RCRCRCRC参数延时参数延时参数延时参数延时) ) ) )都是对静态时序分析的有力补都是对静态时序分析的有力补都是对静态时序分析的有力补都是对静态时序分析的有力补充。充。充。充。实际应用中,静态时序分析结果为最终时序收敛的判断依据,同时辅助实际应用中,静态时序分析结果为最终时序收敛的判断依据,同时辅助实际应用中,静态时序分析结果为最终时序收敛的

138、判断依据,同时辅助实际应用中,静态时序分析结果为最终时序收敛的判断依据,同时辅助后仿真以增加仿真的覆盖率和对比检查静态时序分析的时间约束是否正确。后仿真以增加仿真的覆盖率和对比检查静态时序分析的时间约束是否正确。后仿真以增加仿真的覆盖率和对比检查静态时序分析的时间约束是否正确。后仿真以增加仿真的覆盖率和对比检查静态时序分析的时间约束是否正确。49数字IC设计方法学2 2 2 2、时序收敛、时序收敛、时序收敛、时序收敛时序收敛是指后端设计符合时序约束条件的要求。时序收敛是指后端设计符合时序约束条件的要求。时序收敛是指后端设计符合时序约束条件的要求。时序收敛是指后端设计符合时序约束条件的要求。但在

139、深亚微米设计中,由于布局布线的延时可能远远超过综合时的估计值,导但在深亚微米设计中,由于布局布线的延时可能远远超过综合时的估计值,导但在深亚微米设计中,由于布局布线的延时可能远远超过综合时的估计值,导但在深亚微米设计中,由于布局布线的延时可能远远超过综合时的估计值,导致最终布线后的电路时序无法收敛,这是因为在综合后得到的延时信息是基于虚致最终布线后的电路时序无法收敛,这是因为在综合后得到的延时信息是基于虚致最终布线后的电路时序无法收敛,这是因为在综合后得到的延时信息是基于虚致最终布线后的电路时序无法收敛,这是因为在综合后得到的延时信息是基于虚拟的统计模型而非电路的实际拟的统计模型而非电路的实际

140、拟的统计模型而非电路的实际拟的统计模型而非电路的实际RCRCRCRC参数。参数。参数。参数。如果时序不收敛,需要返回到布局布线阶段通过修改设计和约束等手段来改进如果时序不收敛,需要返回到布局布线阶段通过修改设计和约束等手段来改进如果时序不收敛,需要返回到布局布线阶段通过修改设计和约束等手段来改进如果时序不收敛,需要返回到布局布线阶段通过修改设计和约束等手段来改进时序,这就是常说的后端的迭代。时序,这就是常说的后端的迭代。时序,这就是常说的后端的迭代。时序,这就是常说的后端的迭代。有时迭代多次还不能解决问题,就需要返回到综合甚至有时迭代多次还不能解决问题,就需要返回到综合甚至有时迭代多次还不能解

141、决问题,就需要返回到综合甚至有时迭代多次还不能解决问题,就需要返回到综合甚至RTLRTLRTLRTL设计阶段重新设计,设计阶段重新设计,设计阶段重新设计,设计阶段重新设计,显然这种迭代对显然这种迭代对显然这种迭代对显然这种迭代对ICICICIC设计的进度影响很大。设计的进度影响很大。设计的进度影响很大。设计的进度影响很大。目前,很多目前,很多目前,很多目前,很多EDAEDAEDAEDA工具厂商都推出了物理综合工具,以解决后端时序不收敛的问题。工具厂商都推出了物理综合工具,以解决后端时序不收敛的问题。工具厂商都推出了物理综合工具,以解决后端时序不收敛的问题。工具厂商都推出了物理综合工具,以解决后

142、端时序不收敛的问题。所谓物理综合是指通过将所谓物理综合是指通过将所谓物理综合是指通过将所谓物理综合是指通过将RTLRTLRTLRTL综合与布局甚至布线阶段相结合来克服综合时对线综合与布局甚至布线阶段相结合来克服综合时对线综合与布局甚至布线阶段相结合来克服综合时对线综合与布局甚至布线阶段相结合来克服综合时对线延时估算严重不准的方法。延时估算严重不准的方法。延时估算严重不准的方法。延时估算严重不准的方法。物理综合时可以根据布线之后真实的物理综合时可以根据布线之后真实的物理综合时可以根据布线之后真实的物理综合时可以根据布线之后真实的RCRCRCRC延时信息来优化关键路径,但也正由于延时信息来优化关键

143、路径,但也正由于延时信息来优化关键路径,但也正由于延时信息来优化关键路径,但也正由于它在综合阶段就引入了类似布局布线的计算,导致综合分析的计算量增加了很多,它在综合阶段就引入了类似布局布线的计算,导致综合分析的计算量增加了很多,它在综合阶段就引入了类似布局布线的计算,导致综合分析的计算量增加了很多,它在综合阶段就引入了类似布局布线的计算,导致综合分析的计算量增加了很多,也就导致了物理综合工具物理综合工具往往需要远大于普通综合的计算资源,同也就导致了物理综合工具物理综合工具往往需要远大于普通综合的计算资源,同也就导致了物理综合工具物理综合工具往往需要远大于普通综合的计算资源,同也就导致了物理综合

144、工具物理综合工具往往需要远大于普通综合的计算资源,同时运行速度也很慢,这些都限制了物理综合的广泛应用。时运行速度也很慢,这些都限制了物理综合的广泛应用。时运行速度也很慢,这些都限制了物理综合的广泛应用。时运行速度也很慢,这些都限制了物理综合的广泛应用。尽管存在问题,随着特征尺寸的减少,物理综合工具将越来越多地应用到数字尽管存在问题,随着特征尺寸的减少,物理综合工具将越来越多地应用到数字尽管存在问题,随着特征尺寸的减少,物理综合工具将越来越多地应用到数字尽管存在问题,随着特征尺寸的减少,物理综合工具将越来越多地应用到数字ICICICIC设计流程中,通常在特征尺寸为设计流程中,通常在特征尺寸为设计

145、流程中,通常在特征尺寸为设计流程中,通常在特征尺寸为0.13um0.13um0.13um0.13um以下的设计中都会考虑使用物理综合工以下的设计中都会考虑使用物理综合工以下的设计中都会考虑使用物理综合工以下的设计中都会考虑使用物理综合工具。具。具。具。时序收敛除了依赖于时序收敛除了依赖于时序收敛除了依赖于时序收敛除了依赖于EDAEDAEDAEDA工具,更依赖于设计各个环节的质量。只有在前面设计工具,更依赖于设计各个环节的质量。只有在前面设计工具,更依赖于设计各个环节的质量。只有在前面设计工具,更依赖于设计各个环节的质量。只有在前面设计的各个环节提前考虑后端问题才能有效地减少后端时序收敛的难度。

146、的各个环节提前考虑后端问题才能有效地减少后端时序收敛的难度。的各个环节提前考虑后端问题才能有效地减少后端时序收敛的难度。的各个环节提前考虑后端问题才能有效地减少后端时序收敛的难度。50数字IC设计方法学2.2 2.2 2.2 2.2 层次化设计和模块划分层次化设计和模块划分层次化设计和模块划分层次化设计和模块划分复杂大规模数字复杂大规模数字复杂大规模数字复杂大规模数字ICICICIC的设计通常采用层次化的设计方法。的设计通常采用层次化的设计方法。的设计通常采用层次化的设计方法。的设计通常采用层次化的设计方法。所谓层次化设计方法是指所谓层次化设计方法是指所谓层次化设计方法是指所谓层次化设计方法是

147、指ICICICIC设计时把一个复杂的系统划分为多设计时把一个复杂的系统划分为多设计时把一个复杂的系统划分为多设计时把一个复杂的系统划分为多个模块,然后对每一个模块重复应用这种划分过程,直到可以详个模块,然后对每一个模块重复应用这种划分过程,直到可以详个模块,然后对每一个模块重复应用这种划分过程,直到可以详个模块,然后对每一个模块重复应用这种划分过程,直到可以详细理解细理解细理解细理解( ( ( (或控制或控制或控制或控制) ) ) )各个子模块的复杂性为止。各个子模块的复杂性为止。各个子模块的复杂性为止。各个子模块的复杂性为止。层次化设计方法有以下优点:层次化设计方法有以下优点:层次化设计方法

148、有以下优点:层次化设计方法有以下优点:设计并行化设计并行化设计并行化设计并行化减少减少减少减少EDAEDAEDAEDA工具的工作难度工具的工作难度工具的工作难度工具的工作难度设计规则化设计规则化设计规则化设计规则化基于基于基于基于IPIPIPIP的设计方法和的设计方法和的设计方法和的设计方法和SOCSOCSOCSOC例子:可重构密码协处理器的层次化设计。例子:可重构密码协处理器的层次化设计。例子:可重构密码协处理器的层次化设计。例子:可重构密码协处理器的层次化设计。2.3 2.3 2.3 2.3 芯片封装和散热芯片封装和散热芯片封装和散热芯片封装和散热略。略。略。略。51数字IC设计方法学2.

149、4 CMOS2.4 CMOS2.4 CMOS2.4 CMOS工艺选择工艺选择工艺选择工艺选择硅基硅基硅基硅基CMOSCMOSCMOSCMOS工艺是目前和今后一个比较长的时期内的主流工艺。工艺是目前和今后一个比较长的时期内的主流工艺。工艺是目前和今后一个比较长的时期内的主流工艺。工艺是目前和今后一个比较长的时期内的主流工艺。在选择在选择在选择在选择CMOSCMOSCMOSCMOS工艺和制造厂家时要考虑以下问题:工艺和制造厂家时要考虑以下问题:工艺和制造厂家时要考虑以下问题:工艺和制造厂家时要考虑以下问题:(1)(1)(1)(1)特征尺寸:对于日益复杂的数字特征尺寸:对于日益复杂的数字特征尺寸:对

150、于日益复杂的数字特征尺寸:对于日益复杂的数字ICICICIC和和和和SOCSOCSOCSOC,必须采用特征尺寸足够,必须采用特征尺寸足够,必须采用特征尺寸足够,必须采用特征尺寸足够小的工艺,才能保证在适当尺寸的芯片上集成足够多的晶体管以满足小的工艺,才能保证在适当尺寸的芯片上集成足够多的晶体管以满足小的工艺,才能保证在适当尺寸的芯片上集成足够多的晶体管以满足小的工艺,才能保证在适当尺寸的芯片上集成足够多的晶体管以满足设计要求;通过缩小特征尺寸提高集成度也是提高产品性设计要求;通过缩小特征尺寸提高集成度也是提高产品性设计要求;通过缩小特征尺寸提高集成度也是提高产品性设计要求;通过缩小特征尺寸提高

151、集成度也是提高产品性/ / / /价比的最有价比的最有价比的最有价比的最有效手段之一。效手段之一。效手段之一。效手段之一。(2)(2)(2)(2)晶圆尺寸:晶圆尺寸增大可降低单个芯片的成本。晶圆尺寸:晶圆尺寸增大可降低单个芯片的成本。晶圆尺寸:晶圆尺寸增大可降低单个芯片的成本。晶圆尺寸:晶圆尺寸增大可降低单个芯片的成本。(3)(3)(3)(3)功耗:当工艺特征尺寸缩小时,应保持芯片的功率密度基本不变。功耗:当工艺特征尺寸缩小时,应保持芯片的功率密度基本不变。功耗:当工艺特征尺寸缩小时,应保持芯片的功率密度基本不变。功耗:当工艺特征尺寸缩小时,应保持芯片的功率密度基本不变。可通过降低工作电压、减

152、少可通过降低工作电压、减少可通过降低工作电压、减少可通过降低工作电压、减少MOSMOSMOSMOS器件漏电流等方法降低功耗。器件漏电流等方法降低功耗。器件漏电流等方法降低功耗。器件漏电流等方法降低功耗。(4)(4)(4)(4)工艺能够达到的最高工作频率:一般来说特征尺寸越小,速度越高,工艺能够达到的最高工作频率:一般来说特征尺寸越小,速度越高,工艺能够达到的最高工作频率:一般来说特征尺寸越小,速度越高,工艺能够达到的最高工作频率:一般来说特征尺寸越小,速度越高,同一制造厂家的同一特征尺寸也往往会提供多种不同速度的工艺供用同一制造厂家的同一特征尺寸也往往会提供多种不同速度的工艺供用同一制造厂家的

153、同一特征尺寸也往往会提供多种不同速度的工艺供用同一制造厂家的同一特征尺寸也往往会提供多种不同速度的工艺供用户选择。户选择。户选择。户选择。(5)EDA(5)EDA(5)EDA(5)EDA工具对工艺的支持:工具对工艺的支持:工具对工艺的支持:工具对工艺的支持:ICICICIC设计的每个阶段都需要对应的设计的每个阶段都需要对应的设计的每个阶段都需要对应的设计的每个阶段都需要对应的EDAEDAEDAEDA工具的工具的工具的工具的支持,以保证设计高效可靠地进行。对于深亚微米工艺,如支持,以保证设计高效可靠地进行。对于深亚微米工艺,如支持,以保证设计高效可靠地进行。对于深亚微米工艺,如支持,以保证设计高

154、效可靠地进行。对于深亚微米工艺,如90nm90nm90nm90nm、65nm65nm65nm65nm、45nm45nm45nm45nm,EDAEDAEDAEDA工具的发展速度明显滞后于工艺的发展速度,很多工具的发展速度明显滞后于工艺的发展速度,很多工具的发展速度明显滞后于工艺的发展速度,很多工具的发展速度明显滞后于工艺的发展速度,很多EDAEDAEDAEDA工具的功能还达不到最新工艺的要求,因此盲目追求采用最新工艺工具的功能还达不到最新工艺的要求,因此盲目追求采用最新工艺工具的功能还达不到最新工艺的要求,因此盲目追求采用最新工艺工具的功能还达不到最新工艺的要求,因此盲目追求采用最新工艺会带来很

155、多工具开发的困难。会带来很多工具开发的困难。会带来很多工具开发的困难。会带来很多工具开发的困难。52数字IC设计方法学(6)(6)(6)(6)工艺库和设计参数:目前大规模数字工艺库和设计参数:目前大规模数字工艺库和设计参数:目前大规模数字工艺库和设计参数:目前大规模数字ICICICIC大都采用标准单元库的设计方法,大都采用标准单元库的设计方法,大都采用标准单元库的设计方法,大都采用标准单元库的设计方法,所以制造厂家是否提供标准单元、标准所以制造厂家是否提供标准单元、标准所以制造厂家是否提供标准单元、标准所以制造厂家是否提供标准单元、标准I/OI/OI/OI/O,提供的标准单元、标准,提供的标准

156、单元、标准,提供的标准单元、标准,提供的标准单元、标准I/O I/O I/O I/O 是否是否是否是否准确,与通用准确,与通用准确,与通用准确,与通用EDAEDAEDAEDA工具是否配合的好,都会成为影响设计的关键因素。另外,工具是否配合的好,都会成为影响设计的关键因素。另外,工具是否配合的好,都会成为影响设计的关键因素。另外,工具是否配合的好,都会成为影响设计的关键因素。另外,ICICICIC设计过程中还往往需要厂家提供设计过程中还往往需要厂家提供设计过程中还往往需要厂家提供设计过程中还往往需要厂家提供SRAMSRAMSRAMSRAM、CPUCPUCPUCPU核、核、核、核、PLLPLLPL

157、LPLL以及其他常用的以及其他常用的以及其他常用的以及其他常用的IPIPIPIP模块。模块。模块。模块。(7)(7)(7)(7)工艺工艺工艺工艺NRENRENRENRE费用和生产成本:采用的工艺越先进,费用和生产成本:采用的工艺越先进,费用和生产成本:采用的工艺越先进,费用和生产成本:采用的工艺越先进,NRENRENRENRE费用和弹片生产成本就费用和弹片生产成本就费用和弹片生产成本就费用和弹片生产成本就越高。另外,工艺的生产良率和生产周期也会对芯片的最终制造成本带来很越高。另外,工艺的生产良率和生产周期也会对芯片的最终制造成本带来很越高。另外,工艺的生产良率和生产周期也会对芯片的最终制造成本

158、带来很越高。另外,工艺的生产良率和生产周期也会对芯片的最终制造成本带来很大影响。大影响。大影响。大影响。2.4.1 CMOS2.4.1 CMOS2.4.1 CMOS2.4.1 CMOS工艺增强技术工艺增强技术工艺增强技术工艺增强技术(1)(1)(1)(1)改善晶体管器件改善晶体管器件改善晶体管器件改善晶体管器件增强型应变硅技术。增强型应变硅技术。增强型应变硅技术。增强型应变硅技术。(2)(2)(2)(2)改善掩模光刻改善掩模光刻改善掩模光刻改善掩模光刻相互相移掩模技术。相互相移掩模技术。相互相移掩模技术。相互相移掩模技术。(3)(3)(3)(3)改善片内互连改善片内互连改善片内互连改善片内互连

159、低低低低K K K K电介质材料。电介质材料。电介质材料。电介质材料。2.4.2 2.4.2 2.4.2 2.4.2 晶圆代工晶圆代工晶圆代工晶圆代工在在在在ICICICIC制造领域,全球范围内主要存在两种服务模式:制造领域,全球范围内主要存在两种服务模式:制造领域,全球范围内主要存在两种服务模式:制造领域,全球范围内主要存在两种服务模式:IDM(integrated IDM(integrated IDM(integrated IDM(integrated device manufacture)device manufacture)device manufacture)device manuf

160、acture)模式和晶圆代工模式和晶圆代工模式和晶圆代工模式和晶圆代工(foundry)(foundry)(foundry)(foundry)模式。模式。模式。模式。IDMIDMIDMIDM模式的特点是,业务覆盖芯片设计、生产制造、封装测试等各环节,甚模式的特点是,业务覆盖芯片设计、生产制造、封装测试等各环节,甚模式的特点是,业务覆盖芯片设计、生产制造、封装测试等各环节,甚模式的特点是,业务覆盖芯片设计、生产制造、封装测试等各环节,甚至延伸至下游终端。美国和日本半导体产业主要采用这一模式,典型的至延伸至下游终端。美国和日本半导体产业主要采用这一模式,典型的至延伸至下游终端。美国和日本半导体产业

161、主要采用这一模式,典型的至延伸至下游终端。美国和日本半导体产业主要采用这一模式,典型的IDMIDMIDMIDM大大大大厂有厂有厂有厂有IBMIBMIBMIBM、IntelIntelIntelIntel、TITITITI、三星、东芝、三星、东芝、三星、东芝、三星、东芝、NECNECNECNEC等。等。等。等。晶圆代工厂则只专注于晶圆代工厂则只专注于晶圆代工厂则只专注于晶圆代工厂则只专注于ICICICIC制造环节,不涉足制造环节,不涉足制造环节,不涉足制造环节,不涉足ICICICIC设计和封装测试,只为设计公设计和封装测试,只为设计公设计和封装测试,只为设计公设计和封装测试,只为设计公司司司司(

162、( ( (fablessfablessfablessfabless) ) ) )和和和和IDMIDMIDMIDM提供代工服务。目前全球最大的四家晶圆代工厂是台积电提供代工服务。目前全球最大的四家晶圆代工厂是台积电提供代工服务。目前全球最大的四家晶圆代工厂是台积电提供代工服务。目前全球最大的四家晶圆代工厂是台积电(TSMC)(TSMC)(TSMC)(TSMC)、台联电、台联电、台联电、台联电(UMC)(UMC)(UMC)(UMC)、新加坡特许半导体、新加坡特许半导体、新加坡特许半导体、新加坡特许半导体(Chartered)(Chartered)(Chartered)(Chartered)、中芯国际、中芯国际、中芯国际、中芯国际(SMIC)(SMIC)(SMIC)(SMIC)。53数字IC设计方法学

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号