《数字ic设计方法学》ppt课件

上传人:tia****nde 文档编号:69671336 上传时间:2019-01-14 格式:PPT 页数:53 大小:631.32KB
返回 下载 相关 举报
《数字ic设计方法学》ppt课件_第1页
第1页 / 共53页
《数字ic设计方法学》ppt课件_第2页
第2页 / 共53页
《数字ic设计方法学》ppt课件_第3页
第3页 / 共53页
《数字ic设计方法学》ppt课件_第4页
第4页 / 共53页
《数字ic设计方法学》ppt课件_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《《数字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 an

2、alysis,系统体系结构设计 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表示停机指

7、令,insformat=11表示跳转指令。inscode是指令编码域。,13,2.模块划分 对应不同系统架构和算法实现,相应的模块划分方法也会不同; 对于一个复杂的数字IC,最有效的方法是建立各种架构模型,对不同模块划分方案进行分析比较; 模块的划分可以逐步细化,分为多个层次。 可重构密码协处理器的总体结构设计: 可重构密码协处理器由存储模块、控制模块和可重构密码处理单元三大部分组成。其中,存储模块用于存储密码算法程序、种子密钥和待加/解密数据,控制模块用于控制程序的存储和执行,可重构密码处理单元用于对数据进行加/解密处理。 可重构密码协处理器与外部设备的接口信号包括:clock-时钟信号,r

8、eset-复位信号,insnumr_en-指令条数寄存器写使能信号,insw_en是指令装载使能信号,mem_addr是指令存储器地址,ins_exe-指令执行使能信号,dkw_en-待加/解密数据或密钥装载使能信号,trans_en-将加/解密结果传输到外部的使能信号,ready-可重构密码协处理器状态标志信号,datain-数据输入总线,dataout-数据输出总线。 可重构密码协处理器的总体结构框图如下:,14,可重构密码协处理器的总体结构框图:,15,可重构密码处理单元设计 可重构密码处理单元用于实现加/解密运算,它由大量的基本密码运算模块和灵活可变的内部互联网络构成。 其中,基本密码

9、运算模块用于实现密码算法所需要的基本密码运算,内部互联网络用于实现不同密码运算模块之间的数据传送。 为了提高可重构密码处理单元的灵活性,许多密码运算模块的功能和模块之间的数据传输路径都是可配置的,即可以通过指令来灵活设置密码运算模块的功能和模块之间的数据传输路径,从而可以通过编程来灵活地实现不同的密码算法。,16,可重构密码处理单元的模块结构图:,17,控制模块设计 控制模块包括有限状态机和指令译码逻辑等。 有限状态机用于控制可重构密码协处理器的状态转换和每个状态下的操作。根据加/解密处理的实现过程,我们将可重构密码协处理器的状态划分为三种:指令装载状态、指令执行状态和空闲状态。 在指令装载状

10、态下,可重构密码协处理器将密码程序中的指令按顺序装载到指令存储器中。在指令执行状态下,可重构密码协处理器自动地、不断地从指令存储器中取出指令、进行译码并加以执行,直至所有指令执行完毕。在空闲状态下,可重构密码协处理器不进行指令装载操作和指令执行操作,并保持所有的运算结果寄存器的值不变。 主处理器只需对指令执行使能信号ins_exe施加一个脉冲,就可以将可重构密码协处理器设置为指令执行状态,从而启动指令自动执行过程,然后在整个过程中不再需要主处理器的干预,这大大减少了主处理器的控制开销和可重构密码协处理器访问外部设备的开销,提高了加/解密的处理速度。 指令自动执行过程结束以后,可重构密码协处理器

11、将自动转换为空闲状态,并给出空闲状态的标志信号ready,主处理器在收到ready信号后,就可以驱动可重构密码协处理器进行新的操作了。 指令译码逻辑用于对指令进行分析,确定指令中所包含的操作,并给出相应的控制信号,驱动相应的模块完成所需的操作。,18,19,存储模块设计 存储模块包括指令存储器、数据/密钥缓冲寄存器和指令条数寄存器。 指令存储器用来保存加密或解密程序,其存储容量为256个208位的指令字,即6.5K字节。 指令存储器具有一个写端口和一个读端口。写端口用于将密码程序由外部写入到可重构密码协处理器内部的指令存储器中,为了减少可重构密码协处理器的引脚数,指令存储器写端口的数据宽度为8

12、位,这样可重构密码协处理器的一条指令(208位)需要分26次才能写入到指令存储器中。由于密码程序装载操作只发生在密码算法初建或更新的时刻,而通常一个密码算法能够保持一个较长的时间不变,在这段时间内只需进行一次密码程序装载操作,因此它所花费的时间长一点无关紧要。读端口用于读出保存在指令存储器内的指令,经过译码后控制加/解密过程的执行。由于可重构密码协处理器的指令长度为208位,我们将指令存储器读端口的数据宽度定为208位,这样能够保证每个时钟周期读取一条指令执行,有效地加快了加/解密的处理速度。 数据/密钥缓冲寄存器是一个128位的寄存器,用来保存种子密钥和待加/解密的数据。为了进一步节省可重构

13、密码协处理器的引脚数,数据/密钥缓冲寄存器和指令存储器共享同一条数据输入总线datain。 指令条数寄存器用来保存密码程序中所含的指令的条数,该数据参与控制程序装载操作的结束。,20,21,基本密码运算模块的设置 根据计算机体系结构的基本理论我们知道,对于那些在应用中频繁出现的计算任务,应该用专门的硬件加以实现,这样将大大提高计算机系统的性能。因此,我们应该在可重构密码处理单元中设置那些能够被不同密码算法频繁使用的密码运算模块。 通过对DES、IDEA、AES等50余种典型的对称密码算法进行分析,我们发现,一些典型的密码运算在不同密码算法中出现的频率很高,如:异或、移位、置换、S盒代替、模乘/

14、加运算、反馈移位运算等,因此,我们应该在可重构密码处理单元中设置相应类型的密码运算模块,这样,将显著提高一些常用密码算法的运算速度。 同时,为了提供足够的灵活性和适应性,可重构密码处理单元还应该包括一些通用计算模块,如算术逻辑单元等,以便处理那些特殊的、使用频率不高的密码运算。 另外,为了进一步提高可重构密码处理单元的性能,往往可以设置多个同一类型的密码运算模块,以便增加计算的并行性。 基于上述考虑,我们确定了可重构密码处理单元的组成方案,见表2。,22,表2:可重构密码处理单元所包括的基本模块的名称、功能和数量,23,可重构密码处理单元的子模块-32位移位模块,24,可重构密码处理单元的子模

15、块-32位置换模块,25,可重构密码处理单元的子模块-S盒模块,26,可重构密码处理单元的子模块-32位线性反馈移位寄存器模块,27,可重构密码处理单元的子模块-寄存器堆模块,28,2.1.2 RTL代码编写 RTL编码在寄存器传输级层次对电路进行抽象描述。 RTL编码重点描述寄存器和其间的逻辑。 RTL规范比系统级、行为级更严格,可以使用DEA综合工具转换为门级电路,具有物理可实现性。 虽然目前业界已有系统级综合工具,但转换效率和可靠性在短时间内还无法达到RTL综合工具的水平。 RTL抽象层次比门级高,描述简洁、清晰,设计效率比门级设计高几十到上百倍。 RTL设计在很大程度上已经决定了设计的

16、功能和性能,虽然可以通过此后的综合和布局布线来对设计作一定程度的优化,但优化的结果依赖于RTL编码的质量。 RTL编码设计者要在不依赖后端的综合和布局布线的情况下,尽可能多地解决延时、面积、测试等问题。 在RTL编码过程中,从一开始就考虑到综合,以及到最终会生成的硅物理电路。,29,高质量的RTL编码设计应该考虑以下因素: (1)可综合性:设计者头脑中要始终保持有电路的概念,即保证编码是综合工具可综合转换的,并保证编码能够被综合工具正确识别,最终产生设计者所期望的电路。 (2)可读性:在RTL编码过程中采用统一的、规范的书写风格,避免复杂难以理解的语法形式,并应加入清晰易懂的注释。 (3)时序优化:设计者要选择恰当的电路结构和时序划分,保证同步电路的时钟约束(建立时间、保持时间)在综合阶段能较容易地被满足。 (4)面积优化:在RTL编码阶段考虑节约面积往往会得到比只靠综合优化工具更好的效果;另外,对于一些复杂的电路结构,不同的RTL编码方法会得到面积和单元数目完全不同的综合结果。设计者需要学会估算各种RTL编码设计在特定的综合工具和综合

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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