3DES加密芯片逻辑综合实现

更新时间:2024-04-16 17:23:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

福州大学至诚学院

本科生毕业设计(论文)

题 目: 3DES加密芯片逻辑综合实现

姓 名: 周 桂

学 号: 210991857

系 别: 信息工程系

专 业: 微电子学

年 级: 2009级

指导教师: 陈传东

2013年 4 月 15 日

独创性声明

本毕业设计(论文)是我个人在导师指导下完成的。文中引用他人研究成果的部分已在标注中说明;其他同志对本设计(论文)的启发和贡献均已在谢辞中体现;其它内容及成果为本人独立完成。特此声明。

论文作者签名: 日期:

关于论文使用授权的说明

本人完全了解福州大学至诚学院有关保留、使用学位论文的规定,即:学院有权保留送交论文的印刷本、复印件和电子版本,允许论文被查阅和借阅;学院可以公布论文的全部或部分内容,可以采用影印、缩印、数字化或其他复制手段保存论文。保密的论文在解密后应遵守此规定。

论文作者签名: 指导教师签名: 日期:

3DES加密芯片逻辑综合实现

摘要

微电子技术是21世纪信息时代的关键技术之一,同时由于集成电路工艺变得越来越复杂也由于其设计复杂度也需要提高,测试集成电路变得越来越困难,可测试性设计(Design For Testability,DFT)或DFT设计已经成为解决芯片测试问题的主要手段。又因为测试问题因基于IP(Intellectual Property)核复用的片上系统(System-On-Chip,SOC)芯片使得变得更加突出,这样一来也对集成电路可测性设计方法和相关的流程提出了新的要求。本文以逻辑综合和可测性设计的基本理论为指导,以3DES加密芯片为例,在Synopsys公司的逻辑综合工具Design Compiler下,采用Top-down的综合策略,对复杂系统芯片进行时序、面积等约束,从而实现逻辑综合的具体流程。而且逻辑综合工具Design Compiler含有DFT Compiler工具,它集成了DFT功能,包括在编译期间进行约束驱动的扫描插入。本文就是用全扫描的测试方法,对优化后的网表进行可测性设计。为了验证逻辑综合结果的正确性,本文使用Synopsys公司的形式化验证工具Formality进行功能一致性检查。

关键词:信息加密,可测性设计,3DES算法,逻辑综合

I

Comprehensive implementation of 3DES encryption chip

logic

Abstract

Microelectronics technology is one of the key technologies in information era in twenty-first Century. At the same time, with the ever continuing improvement of the density and complexity of integrated circuits, the test of the Integrated Circuit is more and more difficult. Design for test has been the major method for the test of the chip. The coming of System-On-Chip (SOC) makes the test problem more severe, and put forward new requirement for the methodology and IC’s design flow.The thesis will firstly introduce the basic theory of logic synthesis and testability. Then, taking the 3DES encryption chip for example, the thesis will discuss and present the specific logic synthesis process based on the Design Compiler logic synthesis tool which is from Synopsys company, from setting constraints of timing, area and so on of complex systems’ chip to logic synthesis. Design Compiler logic synthesis with the DFT Compiler tool that integrates DFT features, including the compilation during constraint-driven scan insertion. The thesis is using full scan method to test and design for testability to netlist of the optimized. In order to verify the correctness of logic synthesis results, the paper uses Formality which is a formal verification tool coming from Synopsys company for functional consistency check.

Keywords:encryption ,DFT,3DES Algorithm,logic synthesis

II

目 录

第1章 绪论 ............................................................. 1

1.1 研究的背景及其意义 .............................................. 1 1.2 研究的现状 ...................................................... 3 1.3 本文的主要内容 .................................................. 4 第2章 3DES加密原理 .................................................... 5

2.1 3DES加密算法简介 ................................................ 5

2.1.1 3DES加密算法简介 .......................................... 5 2.2 3DES的加密过程 .................................................. 5

2.2.1 3DES-EEE3加密 ............................................. 5 2.2.2 3DES-EDE3加密 ............................................. 6 2.2.3 3DES-EEE2加密 ............................................. 6 2.2.4 3DES-EDE2加密 ............................................. 6 2.3 3DES的解密过程 .................................................. 7

2.3.1 3DES-EEE3解密 ............................................. 7 2.3.2 3DES-EDE3解密 ............................................. 7 2.3.3 3DES-EEE2解密 ............................................. 8 2.3.4 3DES-EDE2解密 ............................................. 8

第3章 3DES加密芯片的DFT设计 .......................................... 9

3.1 逻辑综合简介 .................................................... 9 3.2 3DES加密芯片常规的逻辑综合 ...................................... 9

3.2.1 综合的策略 ................................................ 10 3.2.3 设计约束 .................................................. 12 3.2.4 设计优化 .................................................. 13 3.2.5 综合报告分析以及结果输出 .................................. 13

第4章 Formality软件验证 .............................................. 15 结 论 .................................................................. 16 参考文献 ............................................................... 17 谢 辞 ................................................................. 18 附录1:.synopsys_dc.setup ............................................. 19 附录2:3DES.con ....................................................... 21

III

附录3:面积报告 ....................................................... 23 附录4:时序报告 ....................................................... 24 附录5:Match,Verify结果 .............................................. 25

IV

3DES加密芯片逻辑综合实现

第1章 绪论

1.1 研究的背景及其意义

随着制造水平的不断进步,在一块芯片上集成的元件密度愈来愈大,被测电路的复杂性也愈来愈大。特别是在深亚微米以及复杂的百万门级芯片设计的推动下,各种集成IP核、系统级芯片(System on Chip,SOC)的出现使得面向故障的测试方法遇到了一些难以克服的问题。首先由于芯片内部元器件的密度增加,受到芯片管脚树木的限制,芯片内部的部分节点变得不可访问,难以在输出端观察到这些芯片的故障效应。在最坏情况下,面向故障的测试方法故障覆盖率只能达到50%至60%。其次,由于芯片的复杂性越来越大,使得测试的复杂性也不断的增加,从而使得测试的成本也不断增加(测试矢量生成成本、测试设备成本)甚至超过了设计和制造成本。为了解决这一系列问题,人们希望能在芯片设计阶段就考虑到测试问题,通过增加辅助电路和结构化设计来降低芯片的测试难度,这就是可测性设计(Design For Testability,DFT)。事实上DFT已经成为当今集成电路设计中不可或缺的一部分。

DFT的最终目的就是为了增加电路的可测性,降低测试成本。DFT虽然能降低测试成本,但是其本身在降低测试难度的同时,修改了原有电路,影响了电路的一些参数,增加了芯片的I/O管脚数目和芯片面积。对于大规模集成电路来说,面积的增加会导致功耗变大以及成品率的下降,而DFT的目的是为了降低测试的难度,提高测试的良品率,因此测试工程师和设计工程师会在DFT的使用方面存在分歧。通常采用折中的方法是将芯片的内部电路模块化,然后对部分模块进行可测性设计。目前比较熟悉的技术主要有特定的DFT、内部扫描设计、内建自测试和边界扫描测试等。

下面我们来说说可测性设的意义所在,一个产品的好坏决定于它本身的质量,而测试则对质量起到很大的作用。

设产品的成品率为Y,故障覆盖率为T,投放市场的产品的质量用故障级

DL(DefectLevel)表示。又假设数字电路内可能发生n个互相独立的故障,每一个故障发生的概率都是Pn,因此,有一个好电路的概率(即成品率)为

Y=(1 - Pn)n (1-1)

设有一测试集Ts,它能覆盖电路中n个故障中的m个,因此,此故障集 的覆盖率

T?mn (1-2)

1

福州大学至诚学院本科生毕业设计(论文)

如果把经过Ts测试之后的产品投放市场,显然,在此产品中还存在n-m个故障未被测试出来,故其概率实际应为

P=(1-Pn)n-m (1-3)

现在我们定义故障集为

DL=1-P (1-4)

现在将上面的(1-2)和(1-3)联立带入(1-4)

DL?1?(1?Pn)

图1-1为成品率Y、故障级DL和故障覆盖率T三者的关系曲线。显然我们可以从图中看出,只有测试集需要测出电路中90%以上的故障,才能长生出高质量产品。这样一来,测试集Ts的故障覆盖率就必须提高以保证被投放入市场的产品有较高的品质,这就意味着测试的开销(测试产生开销和测试时间开销)需要一并得到提高。

图1-1 Y,DL与T的关系曲线

n?m?1?Y(n?m)n?1?Y1?T (1-5)

据不完全统计,在门级、芯片级、板级、系统级或域级的其中一个地方出现一个故障则测试这个故障的开销是十分大的并且它们的开销还依次以十倍增长,而且随着电路的I/O管脚数的增加及时钟频率的加快这一开销又近乎疯狂的增长[1]。实验证明测试开销与电路规模是成指数关系增加,而研制与生产成本的增长速度却远远赶不上这一增长速度,因此快速发展的集成电路技术使得单个芯片中集成的电路门数越来越多,这就迫使测试成本在产品总成本中有着强大的重要性。

综上所述,芯片测试问题变得越来越重要。故障覆盖率增大,测试开销减少的现状使得人们在集中到电路设计方领域投入更多的心思与关注,同时研究者们还不能忘记对电路本身进行适当的改动从而使之变得更容易测试。这就是可测性设计当下的意义所在。

2

3DES加密芯片逻辑综合实现

1.2 研究的现状

随着半导体技术和设计自动化工具的快速发展,芯片的复杂性不断上升,超大规模集成电路VLSI(Very Large Scale Integration)需要提供广泛的可测试性特点[1]。如今,越来越多设计者普遍使用嵌入式核的设计方法来设计系统芯片,其目的是为了缩短芯片的上市时间。这样,系统芯片就由多个内核构成,而且这些内核可能来自不同的开发商,因此也就有不同的内建自测试策略。

鉴于在测试模式下,起功耗远远高于正常模式情况下的功耗,因此许多学者为了达到将其改善并做出最大化利益的目的有益的从多个方面不同角度的尝试。主要方法有:满足功耗约束的测试调度算法,低功耗BIST测试向量生成算法,测试矢量压缩技术,电路划分技术[5],低功耗自动测试图形向量(Automatic Test Pattern Generation,ATPG)生成技术[6],测试向量的排序技术[7],扫描路径分段技术[8],多扫描电路的交叉扫描结构[9],利用系统芯片上的处理器、寄存器、存储器等资源进行软硬件协同DFT设计等多种BIST技术[10],减少翻转次数的DFT结构技术[11]等。

接着要提出的问题也值得注意,即测试电路的工作频率问题,在实际情况中内核正常工作的频率往往和测试情况下的频率会有较大的差异,这样一来会出现这样的情况即在切换到工作频率时,电路可能不能正常工作,但是在检验的过程中却通过测试所认为是无故障的电路。理论上,系统芯片中会有一个或多个处理器、寄存器,锁存器以及存储器,把这些资源加以利用,通过各个核心逻辑之间合适的接口,访问相应的核心逻辑及其辅助电路,根据捕获到的响应来对芯片进行故障检测和故障定位。这样做无疑会带来很大的好处因为这种测试频率与实际工作频率完全相同,因此说一些特殊的故障就可以完完全全的被杜绝掉[12]。

对芯片中的若干IP核进行相应的测试就是我们经常所说的系统芯片测试。随着IP数据库建设的发展,基于嵌入式核设计的系统芯片将变得愈来愈广泛。如今的系统芯片,其中的IP核数目已经达到几十个以上,而毫无疑问的是在未来稳固和突破齐并的发展势头下,嵌入式核在系统芯片中的数目将会达到数百乃至更多。只有提前做好对这一块问题进行并行测试,测试时间才能得到相对有效的缩减。这些问题无疑直指调度问题,这样一来调度问题需要得到重视和改进。为了为各种测试调度算法进行评价从而得出孰优孰劣,ITC’02测试基准电路作为一个公用的测试基准就应运而生了。而后研究者们为了对其不断的改进完善开展了大量的围绕着该套测试基准的研究工作。

随着集成电路制造工艺的进步,测试SoC内部IP核间互连导线已不仅仅只为了测试一些传统故障例如:短路及桥接、互连导线的导通等,其还应能够测试由于特征尺寸变小,工作频率提高而带来的串扰和信号完整性的故障。SoC的芯片级测试则是一个极为复杂的系统工程,其所涉及的测试要求不仅仅是要提供从芯片引脚到IP核的测试访问和支持用户定义逻辑及IP核间互连测试,还包括IP核的隔离和测试控制、测试资源共享、测试调

3

[2]

[3]

[4]

福州大学至诚学院本科生毕业设计(论文)

度以及测试方法评估和优化等内容等。

在集成电路设计制造过程中可测性设计技术已得到广泛全面的应用,许多大型公司如IBM等,他们的产品都已经采用了这种方法。与国外相比,在数字电路的可测性和故障诊断研究这方面的理论与实践都存在相当大的差距,其中原因当然有许多但主要原因是在于国内更强调设计功能达到要求而忽略了可测性设计的前提是以产量多少为必要基础的。鉴于该原因,国内对可测性设计还只是处于起步阶段,国内各个高校以及研究所都在这方面做出更多努力。

1.3 本文的主要内容

本文最开始先介绍了DFT设计的背景以及现在这一技术存在的意义,同时介绍DFT设计的国内外现状并作出适当的评价。随后将具体讲述DFT设计的概念,并且深入浅出的介绍DFT设计的几个普遍方法,故障的分析类型以及建模等。接着,将结合3DES加密芯片模块粗略做具体的DFT设计实例,其中将粗略介绍Design Cpmpiler(DC),Formality等软件,同时还介绍脚本中的语句意义,得出结果的分析等,最后将大致介绍DFT设计的结论。

4

3DES加密芯片逻辑综合实现

第2章 3DES加密原理

2.1 3DES加密算法简介

2.1.1 3DES加密算法简介

对于3DES加密过程而言其实质就是运用3次DES加密算法来实现的,3DES又称Triple DES,是DES加密算法的一种模式,它使用3条56位的密钥对数据进行三次加密。根据使用的密钥数和加解密变换过程不同,三重DES有四种模型: 1) 3DES-EEE3,使用三个不同的密钥,顺序进行三次加密 2) 3DES-EDE3,使用三个不同的密钥,依次进行加密-解密-加密 3) 3DES-EEE2,使用两个不同的密钥,其中K1=K3,顺序进行三次加密 4) 3DES-EDE2,使用两个不同的密钥,其中K1=K3,依次进行加密-解密-加密

数据加密标准(DES)是美国由来已久的一种加密标准,它使用的是对称密钥加密法的一种方法, DES使用56位密钥和密码块的方法,而在这些密码块的方法之中,文本被分成64位大小的文本块,然后再进行加密,和最初的DES相比,3DES更为安全。

2.2 3DES的加密过程

2.2.1 3DES-EEE3加密

3DES加密算法是以DES为基本模块,通过组合分组方法设计出分组加密算法,其具体实现如下:设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密文,得出,

3DES-EEE3加密过程为:C=Ek3(Ek2(Ek1(P)))如下图2-1: 密钥K1 密钥K2 密钥K3 明文P 加密算法E 加密算法E 加密算法E 密文C 图2-1 3DES-EEE3加密

5

福州大学至诚学院本科生毕业设计(论文)

2.2.2 3DES-EDE3加密

3DES加密算法是以DES为基本模块,通过组合分组方法设计出分组加密算法,其具体实现如下:设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密文,得出, 3DES-EDE3加密过程为:C=Ek3(Dk2(Ek1(P)))如下图2-2: 明文P 加密算法E

图2-2 3DES-EDE3加密 解密算法D 加密算法E 密文C 秘钥K3 密钥K2 密钥K1 2.2.3 3DES-EEE2加密

3DES加密算法是以DES为基本模块,通过组合分组方法设计出分组加密算法,其具体实现如下:设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密文,得出, 3DES-EEE2加密过程为:C=Ek1(Ek2(Ek1(P)))如下图2-3:

明文P 加密算法E 加密算法E 加密算法E 密文C 密钥K1 密钥K2 密钥K1 图2-3 3DES-EEE2加密

2.2.4 3DES-EDE2加密

3DES加密算法是以DES为基本模块,通过组合分组方法设计出分组加密算法,其具体实现如下:设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密文,得出, 3DES加密过程为EDE2:C=Ek1(Dk2(Ek1(P)))如下图2-4:

6

3DES加密芯片逻辑综合实现

明文P

图2-4 3DES-EDE2加密

密钥K1 密钥K2 密钥K1 加密算法E 解密算法D 加密算法E 密文C 2.3 3DES的解密过程

2.3.1 3DES-EEE3解密

其对于3DES-EEE3解密来说,第一次用K1对初始数据解密,再用K2对K1解密后的数据解密,再用K3对K2加密后的数据进行解密,这样就实现了对数据的3DES解密算法的实现。

3DES-EEE3解密过程为:P=Dk1((DK2(Dk3(C))) 如下图2-5:

密文C 解密算法E 解密算法E 解密算法E 明文P 密钥K1 密钥K2 密钥K3 图2-5 3DES-EEE3解密

2.3.2 3DES-EDE3解密

其对于3DES-EDE3解密来说,第一次用K1对初始数据解密,再用K2对K1加密后的数据加密,再用K3对K2加密后的数据进行解密,这样就实现了对数据的3DES解密算法的实现。

3DES-EDE3解密过程为:P=Dk1((EK2(Dk3(C))) 如下图2-6: 密文C 解密算法E 加密算法D 解密算法E 明文P 密钥K1 密钥K2 密钥K3 图2-6 3DES-EDE3解密

7

福州大学至诚学院本科生毕业设计(论文)

2.3.3 3DES-EEE2解密

其对于3DES-EEE2解密来说,第一次用K1对初始数据解密,再用K2对K1解密后的数据解密,再用K1对K2解密后的数据进行解密,这样就实现了对数据的3DES解密算法的实现。

3DES-EEE2解密过程为:P=Dk1((DK2(Dk1(C))) 如下图2-7: 密文C 解密算法E 解密算法E 解密算法E 明文P 密钥K1 密钥K2 密钥K1 图2-7 3DES-EEE2解密

2.3.4 3DES-EDE2解密

其对于3DES-EDE2解密来说,第一次用K1对初始数据解密,再用K2对K1解密后的数据加密,再用K1对K2加密后的数据进行解密,这样就实现了对数据的3DES解密算法的实现。

3DES-EDE2解密过程为:P=Dk1((EK2(Dk3(C))) 如下图2-8:

对于3DES加密算法而言它的解密过程其原理与DES加密算法是一样的,也是运用相应K对其解密,这里所运用的密钥的顺序正好与加密密钥顺序相反,在加密的时候用的是Ki加密/解密的,在解密的时候就用对应的Ki进行解密/加密后得出明文。

密文C 解密算法E 加密算法D 解密算法E 明文P 密钥K1 密钥K2 密钥K1 图2-8 3DES-EDE2解密

8

3DES加密芯片逻辑综合实现

第3章 3DES加密芯片的DFT设计

3.1 逻辑综合简介

利用工具将RTL代码转化为门级网表的过程称就叫做逻辑综合。综合一个设计的过程,从读取RTL代码开始,通过时序约束关系,映射产生一个门级网表。它可以分成俩个部分,首先根据用户指定的工艺将RTL翻译及映射成网表,然后根据要求对其进行优化。如图4-1所示 门级网表 逻辑综合优化 RTL代码 工艺库 环境和时序等约束条件

图3-1 综合逻辑

3.2 3DES加密芯片常规的逻辑综合

3DES加密芯片顶层模块如图3-2所示

9

福州大学至诚学院本科生毕业设计(论文)

图3-2 3DES顶层模块

3.2.1 综合的策略

大型设计的综合策略主要有Top-down和bottom-up,在70,80年代时,bottom-up的设计流程是很普遍的,但如今业界所采用的都是Top-down流程。在此我们也主要使用Top-down流程完成综合设计。

Top-Down流程在EDA工具支持下逐步成为IC主要的设计方法。从确定电路系统的性能指标开始,自系统级、寄存器传输级、逻辑级直到物理级逐级细化并逐级验证其功能和性能。

Top-down设计与Bottom-up设计相比具有以下优点: 1)仅需top_level的约束,人工干预少;

2)自动考虑模块间的相互关系,整体优化,可获得较好的结果;

3)设计从行为到结构到物理级每一步都进行验证,提高了一次设计的成功率; 4)提高设计效率,缩短ASIC的开发周期,降低产品的开发成本;

5)设计成功的电路或其中的模块可放入以后的设计中,提高设计的再使用率。 当然Top-down流程还是存在缺点的,其缺点如下 1)计算时间长,无法team-work

2)整个设计在综合时才能对子模块进行改变 3)设计规模受服务器能力限制

4)如果设计包含多个时钟或生成时钟逻辑,则不能很好执行。

3.2.2 综合前的准备

设置库信息: target library:目标库

其为.db格式文件,在门级优化及映射时提供生成网表的cell。target_1ibrary指定的工艺库与设计者让DC 做优化并产生最终映射的单元库一致。这里用到的是smic18_tt.db。

10

3DES加密芯片逻辑综合实现

link library:链接库

其也为.db格式,包括代码中实例化的任何单元及综合中用的负载模型或操作模型等,用于解析输入描述。它提供设计网表中可引用的cell,DC不利用link library的cell做综合,它主要用在综合的转换阶段用以生成GTECH 中间文件,这里使用的是smic18_tt.db。

symbol library:符号库

其为.sdb格式,用于生成图形界面中的电路图。解析时DC 首先,寻找内存,然后寻找1ink 1ibrary指定的库文件。接着,DC寻找所有的search path中指定的路径,这里用的是sc.sdb。

Setup文件中进行相关的库和路径设置。在启动时,DC将搜索三个.synopsys_dc.setup文件,从这个文件中软件读取初始化信息。尽管它们名字相同,但他们分别在Synopsys的根目录、用户目录、启动DC的当前目录。DC按以上顺序依次读取setup文件,最后一个读取的setup文件将覆盖前面读取的setup文件。一般将设计相关的setup文件放于启动DC的当前目录。

准备文件详见附录1配置的 .synopsys_dc.setup。 读入设计:

1)remove_design -all

读入设计之前最好先清除DC内存中的设计。 2)read_file -format verilog

{/home/fzu/sha_core/tags/arelease/rtl/sha256.v}

读入前端设计出的源代码,用此方式读入时可能会不马上显示出顶层文件,但读入完毕后后应可以马上转换到设计的顶层模块。或者用命令直接再读入顶层模块名。

3)current_design

读入过程中完成语言编译,若语法错误或含有不可综合描述,则给出提示。 4)Link 链接link:

解析当前的设计,把设计中的例化单元与link库和DC内存中的设计建立关联,检查当前设计的连接和层次,包括丢失端口和输入端开路情况,递归层次或多次实例化情况。

5)check_design

link之后最好执行一下check_design。 6)uniquify

唯一化,当设计中有某个子模块被多次调用时就需要进行实例唯一化,就是将同一个子模块的多个实例生成为多个不同的子设计的过程。DC在逻辑综合时可能使用不同电路形式实现同一个子模块的不同实例,从而使这些实例在DC看来是不同的设计。在本次设计所给的源代码中可以不使用这一条命令,但是建议无论何种编译都采用unquify命令唯一化设计以保证不必要的意外。

11

福州大学至诚学院本科生毕业设计(论文)

详见附录2的3DES.con文件。

3.2.3 设计约束

约束一般包含了一个设计必须满足的条件,通常在对设计加约束时需要反复的操作。约束包括对时序、操作条件的约束。

通过在优化前设置好优化目标(也称为限制条件)来引导DC最好的执行一个设计,它包括很多特征参数,如面积、时序、功耗等。DC在优化的过程中检查限制参数,并试图把设计综合到工艺库的同时满足限制参数。工艺库包含重要的面积、时序和功耗的规范要求,DC根据这些限制条件去建立相应的复杂的模型并详细计算。为了得到精确的结果,定义越符合实际情况的限制条件越好。

设置时序约束:

1)create_clock [get_ports clk_i] -name clk_i -period 30.0 -waveform {0 15} 为时钟clk创建一个名字为clk_i的端口,时钟周期为30ns,上升沿为0ns,下降沿为15ns。 使用create_clock定义时钟,DC认为它们是同步的。版图前的时钟属性是估计值,版图后的一些时钟属性可以根据版图信息由EDA工具自行计算,且更加准确。 2)set_dont_touch_network {clk_i}

set_dont_touch_network命令告诉DC即使寄存器的负载非常大也不要对时钟网使用驱动和缓冲,留待版图设计时进行时钟树插入。

3)set_clock_latency 0.7 [get_clocks clk_i]

从时钟树到具体寄存器的时钟输入端会产生一定的延迟,设定这个值为0.7ns。 4)set_clock_uncertainty 0.5 [get_clocks clk_i]

在同步设计中因为总由一个源时钟产生时钟,通过时钟树到达具体寄存器的时钟输入端,时钟信号经过时钟树的分支到各个寄存器不可避免会产生相位偏移(skew),这种偏移叫做uncertainty,明确了这个值则在时钟的uncertainty时间区间内,时钟是有可能到达的。

5)set_clock_transition 0.3 [get_clocks clk_i]

transition 描述寄存器时钟引脚处信号的上升和下降时间,在寄存器内部从时钟端到输出端总有一个延迟,我们用此命令来指定这个延迟,以便于DC 进行优化时进行选择。设置clock_transition不仅用于静态时序分析,还用于计算driven cell的delay,将结果写入SDF文件中。

6)set_input_delay-max 2 -clock clk_i [all_inputs]

set_input_delay定义信号相对于时钟的到达时间,指一个信号在时钟沿之后多少时间到达。这条命令作用后将考虑外部逻辑用了多少时间,DC 在计算时将会考虑到内部逻辑还剩多少时间。

7)set_output_delay-max 2 -clock clk_i [all_outputs]

12

3DES加密芯片逻辑综合实现

set_output_delay定义从输出端口数据不可用开始距后一个时钟沿的时间,即时钟周期减去cell从上一个时钟沿开始的工作时间。用该命令对信号进行over-constrain,从而获得最大建立时间,但可能导致面积和功耗的增加。

设置面积约束: 1)set_max_area 0

可以使DC进行最大程度的面积优化,但不影响时序性能,因为时序约束优先,只是综合时间较长,在实际中为了可好的综合,设置为0表示尽量面积往小的形成。

设置环境属性:

set auto_wire_load_selection false 自动配置线载模型关闭。

1)set_wire_load_model -name 8000 配置线载模型。

2)set_operating_condition -max cb13fs120_tsmc_max

设置数据技术库,使得综合后的文件里包含的都是技术库中的负载模型,每种模型符合技术库提供的尺寸数据。

约束文件详见附录2的3DES.con文件。

3.2.4 设计优化

编译就是将GETCH 逻辑网络映射为技术库的门单元,使设计满足用户的约束。在本设计中所用到的优化命令如下:

1)change_name -rules verilog -hierarchy

改变命名规则,使输出网表符合verilog的语法规则。 2)remove_attribute [get_designs -hier {*}] dont_touch 在唯一化网表前,从设计的所有子模块移除dont_touch属性。 3)compile -scan

进行编译完成逻辑综合和可测性综合,以便于接下来的可测性设计。 4)check_timing

检查约束是否完整,如果存在没有约束的路径会发出warning。设置完约束后要验证是否存在没有被约束的路径,要得到最优的优化结果需要有完整和精确的约束。

优化文件详见附录2的3DES.con文件。

3.2.5 综合报告分析以及结果输出

在这里主要是对综合后的模块进行查错验证,出现不符合要求的及时做出相应的对策进行修正.当时序余量满足要求时即说明综合成功,对完成的内容进行保存输出。

13

福州大学至诚学院本科生毕业设计(论文)

综合结果分析

1)report_constraint -all_violators

列出所有违反约束的情况,每种约束只显示最大的violation。本次设计中,理论上不会有任何违反约束情况,只有在设置约束面积时,由于要理想情况故只有面积的违反。面积报告详见附录3。

2)report_timing

路径时序报告命令,这里主要显示以下包含四部分内容: 1.路径信息。 2.路径延时。 3.时序要求和全路径。 4.缺省情况只报告最大时序。 下面做详细介绍

数据到达时间(data_arriral_time,AT):就是数据到达下一级寄存器时相对于上一个时钟来说用了多少时间。它的计算方式是时钟从时钟源发起作为参照经过一定的延迟到达寄存器的时钟端,此时作为数据发送的参照,经过组合逻辑的若干延迟到达下一级寄存器的输入端,整个过程的总延迟时间即为数据到达时间。

数据需求时间(data_required_time,RT):就是理论上数据在这个时间到达寄存器恰好可以正常工作的时间值

时间裕度(slack):就是数据到达时间在满足数据需求时间后宽裕下来的量值。简称时序余量slack=RT-AT。时序余量只需满足正值就说明综合成功。

综合结果输出

write -hier -f ddc -out mapped/3DES.ddc

ddc文件表示的是将在综合过程中的所有内容进行保存,以便做DFT设计时可以直接调用,不用重复综合。

2)write -format verilog -hierarchy -output /home/fzu/sha_core/mapped/3DES.sv

PT软件做时序静态分析时的约束文件。

3write-formatverilog-hierarchy-output/home/fzu/sha_core/mapped/3DES.v

.v文件就是将已经compile -scan后的源代码以设计库中的寄存器为原型生成的新的代码,其后需要formality软件对其与源代码进行比较以说明综合后的代码是正确的与原设计功能相同,形式表达不同。

4)write_sdc -version 1.6 /home/fzu/sha_core/mapped/3DES.sdc

.sdc文件:支持第三方工具的设计约束文件,设计约束中的参数被展开,在后面做布局布线时将会被使用到。

综合分析结果输出命令详见附录2的3DES.con文件

14

3DES加密芯片逻辑综合实现

第4章 Formality软件验证

Formality软件是为了进行高效的验证所生产出的与DC配套的软件,在这一小节主要是为了对RTL门级网表与综合后的网表进行验证,对RTL门级网表与插入扫描链之后的网表进行验证以及综合后的网表与插入扫描链之后网表的验证。

Formality软件与DC软件相似,配置的库文件使用相同,启动文件setup类似。下面具体介绍Formality验证步骤,以RTL门级网表与综合后网表比较验证举例。

Formality验证要进行7大步骤,而实际操作中只需要执行6步即可: 1)Guidance:引导要进行文件验证的位置。 2)Reference:

1.Read Design File:读入RTL门级网表。

2.Read DB Library:读入相对应的库文件sha256.v。 3.Set Top Design:设置顶层模块位置。

3)Implementation:

1.Read Design File:读入综合后的网表。

2.Read DB Library:读入相对应的库文件sha256.v。 3.Set Top Design:设置顶层模块位置。

4)Setup:这一步有两条命令:

1.set_constant -type port r:/WORK/3DES/SE 0 2.set_constant -type port i:/WORK/3DES/SE 0

这两条命令的意义在于是为了保证在跑程序时,两者都不处于测试情况下,即设置了SE端为零。

5)Match:两者Match后得出结果详见附录5。 6)Verify:Verify结果详见附录5.

15

福州大学至诚学院本科生毕业设计(论文)

结论

在完成毕业设计期间主要学习和了解了3DES加密算法的大概原理,掌握了逻辑综合的基本流程,通过此次的毕业设计,不仅让我巩固了以前学过的知识,更加将理论与实际联系起来,对整个的设计流程有了一个深刻的认识,将对我以后的学习、工作产生极大的帮助。

假如知识是空气,那么学习知识就是人的呼吸系统,你无法停止呼吸,若停止了呼吸不仅吸不到新鲜的空气,还会让停留在体内的空气变质,甚至失去生命!因此我们在生活、学习、工作中都要不停地学习新的东西,同时不能忘记旧的东西,这样才能让生命充满生机与希望!

通过毕业设计,让我明白认认真真做一件事情是多么的有意义,不仅学到知识,更重要的是得到了别人的认可。同时能发现自身的缺点,进而改进!相信这是我人生道路的一大奠基石!

16

3DES加密芯片逻辑综合实现

参考文献

[1] 沈绪榜.RISC及后编译技术. 第1版.北京:清华大学出版社,1994年.53-91.

[2] CHOU R M,SALUJA K K,AGRAWL V D. Power constraint scheduling of tests. IEEE Conf on VLSI

Design.Calcutta,India,1994.271-274.

[3] 夏宇闻. Verilog 数字系统设计教程.北京:航空航天大学出版社,2003: 1-3.

[4] 牛凤举,刘元成,朱明程. 基于IP复用的数字IC设计技术. 北京:电子工业出版社, 2003: 160-166. [5] CORNO F,REBAUDENGO M,REORDA M S,et al.Low power BIST via non-linear hybrid cellular

automata.IEEE VLSI Test Symp[C].Montreal,Canada,2000.29-34.

[6] GIRARD P,GUILLER L,LANDRAULT,C,et al. A Test vector inhibiting for low energy BIST

design[A].IEEE VLSI Test Symp.Dana Point,CA,USA,1999.407-412.

[7] GIRARD P,GUILLER L,LANDRAULT,C,et al. Low power BIST design by hypergraph partitioning:

methodology and architectures.IEEE Int Test Conf.Atlantic City,N J,USA,2000.652-661. [8] CORNO E,PRINETTO P,REBAUDENGO M, et al.A test pattern generation methodology for low power

consumption[A].IEEE VLSI Test Symp.Monterey,C A USA,2003.453-457.

[9] GIRARD P,LANDRAULT,C,PRAVOSSSOUDOVITCH S et al.Reducing power consumption during test

application by test vector ordering.IEEE Int Symp on Circuits and Systems.Monterey,C A USA,1998.296-299.

[10]SANKARALINGAM R, ORUGANTIRR,TOUBA N A. Static compaction techniques to control scan vector power dissipation.IEEE VLSI Test Symp.Montreal, Canada,2000.35-40.

[11]WHETSEL .L. Adapting scan architecture for low power operation.IEEE Int Test Conf.Atlantic City,N J USA,2000.863-872.

[12]LEE K J, AUNG T C, CHEN J J. Peak-power reduction for multiple-scan circuits during test application.Asian Test Symp.Taipei,Taiwan, 2000.453-458.

[13]Design-for-Test Scan and ATPG Student Workbook,Mentor GraPhiesCorporation,2006. [14]杨鹏,邱静,刘冠军.基于扩展关联模型的测试性分析技术研究.系统工程程与电子技术,2008.30(4).

[15]束礼宝,宋克柱,王砚方.伪随机数发生器的FPGA实现与研究.电路与系统学报,pp.121-124,Vol.8,No.3,June,2003.

[16]王厚军.可测性设计技术的回顾与发展综述.中国科技论文在线,2008,14(1):9-15. [17]胡政.边界扫描测试理论与方法研究:[博士学位论文].长沙:国防科技大学,1998.

[18]Girard P, Guiller L, Landrault C, et al. A modified clock scheme for low power BIST test pattern generator. CA USA:VLSI Test Symposium Marina DelRey,2001:306-311.

[19]章其波.基于DES理论的数模混合电路可测试性研究:[硕士学位论文].合肥:合肥工业大学, 2003. [20]李正光,雷加.数字IC可测性设计及其EDA流程.电子工程师,2004,30(4):21-26.

17

福州大学至诚学院本科生毕业设计(论文)

谢辞

首先一定要感谢我的导师陈传东老师,陈老师渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远。不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明白了许多待人接物与为人处世的道理。本论文从选题到完成,每一步都是在导师的指导下完成的,倾注了导师大量的心血。在此,谨向导师表示崇高的敬意和衷心的感谢!在此再次深深的感谢我们亲爱的陈传东导师。

最后一定要感谢养育我的父母,二十多年的恩情与默默支持让我无以为报。没有他们,就没有我的今天,所以在此衷心感谢我深爱的父母。

由于本人学识有限,论文中难免有不足和错误之处,敬请各位老师给予批评指正!

18

3DES加密芯片逻辑综合实现

附录1:.synopsys_dc.setup

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Library Setup

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

set search_path \set target_library \set link_library \set symbol_library \

############ Do NOT edit below this line ############ #####################################################

echo \

echo \ $search_path\echo \ $link_library\echo \ $target_library\echo \ $symbol_library\

define_design_lib DEFAULT -path ./analyzed

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # History

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

history keep 200

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Aliases

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

19

福州大学至诚学院本科生毕业设计(论文)

alias h history

alias rc \alias rt report_timing alias ra report_area

alias page_on {set sh_enable_page_mode true} alias page_off {set sh_enable_page_mode false} alias fr \

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Alib for compile_ultra

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

# set alib_library_analysis_path [get_unix_variable HOME] set alib_library_analysis_path ..

echo \

20

3DES加密芯片逻辑综合实现

附录2:3DES.con

remove_design -all read_file -format verilog {/home/fzu/sha_core/ref//3DES.v} link

check_design uniquify

create_clock [get_ports clk_i] -period 30.0 -waveform [list 0 15] -name clk_i set_dont_touch_network {clk_i} set_clock_latency 0.7 [get_clocks clk_i] set_clock_latency -max 0.3 [get_clocks clk_i] set_clock_uncertainty 0.5 [get_clocks clk_i] set_clock_transition 0.3 [get_clocks clk_i]

set_max_fanout 20 [get_designs]

set_input_delay -max 2 -clock clk_i [all_inputs] set_output_delay -max 2 -clock clk_i [all_outputs]

set auto_wire_load_selection false set_wire_load_model -name 8000

set_operating_condition -max cb13fs120_tsmc_max

set_max_area 0

compile -scan report_timing report_area check_timing

report_constraint -all_violators

change_name -rules verilog -hierarchy

remove_attribute [get_designs -hier {*}] dont_touch

21

福州大学至诚学院本科生毕业设计(论文)

write -hier -f ddc -out /home/fzu/sha_core/mapped/3DES.ddc

write -format verilog -hierarchy -output /home/fzu/sha_core/mapped/3DES.sv

write -format verilog -hierarchy -output /home/fzu/sha_core/mapped/3DES.v

write_sdc -version 1.6 /home/fzu/sha_core/mapped/3DES.sdc

write_sdf -version 2.1 /home/fzu/sha_core/mapped/3DES.sdf

22

3DES加密芯片逻辑综合实现

附录3:面积报告

23

福州大学至诚学院本科生毕业设计(论文)

附录4:时序报告

24

3DES加密芯片逻辑综合实现

附录5:Match,Verify结果

25

本文来源:https://www.bwwdw.com/article/x81p.html

Top