基于Verilog的AES加密算法的实现毕业论文 联系客服

发布时间 : 星期二 文章基于Verilog的AES加密算法的实现毕业论文更新完毕开始阅读8096294ba66e58fafab069dc5022aaea998f4192

东南大学本科生毕业设计(论文)

析,如果不能进行综合,则必须重新修改电路的RTL设计,直到满足可综合的条件为止。另外,在综合前,我们应当针对设计的电路选用合适的综合库。综合库一般是指综合中要配置的基本单元库。在综合过程中,综合器就是把用来描的语言一一映射到所选用的目标库中去。所以生成的网表中就会存在器件延迟,因此生成的网表的功能可能就会和Rl,L描述的功能有一定差异。用可综合的RTL级语言描述的模块经仿真验证后就要进行综合,综合是指把用语言形式描述的模块转化为具体的电路形式。在综合时还要注意约束条件的设置,也就是把芯片设计的实际工作条件强加给综合器,使综合出来的电路能够满足芯片实际运行所要求的条件。它一般包括以下的常用参数;时钟歪斜和延迟、芯片的输入数据到达时间和输出数据的外部延迟时间等,一般都是针对芯片的10端口设置的。约束条件在综合过程中具有极其关键的作用,它关系到将来芯片在实际中能不能使用。因此约束条件的设置,在综合过程中要引起高度的重视。关于是否有必要进行综合后门级仿真的问题,在业内也有不同的看法。如果所设计芯片规模不是很大,而且进行FPGA验证很方便的情况下,一般不需要做门级仿真,而通过FPGA厂家的布局布线工具进行布局布线后直接进行后仿真,本课题采用后一种方法。本课题使用的综合工具是SynPlify,它是一般FPGA器件的综合工具,在综合时,先将可综合风格RTL语言描述用现场可编程逻辑库综合出电路网表,再将综合后的电路网表经FPGA厂商提供的软件进行布局布线,使互连线上的延迟时间反标到电路网表中。

3.2.3 Xilinx Virtex-5系列FPGA

本设计使用的硬件芯片是Xilinx公司的Virtex-5系列FPGA,下面我对它作简要介绍。

Virtex-5 器件是用户可编程的门阵列,具有针对高密度和高性能系统设计优化的各种可配置元件和嵌入式核。它基于1.0V、65nm全铜工艺,Virtex-5 器件的内部架构和功能如下:

a)

I/O 块提供连接封装引脚和内部可配置逻辑的接口。可配置 I/O 块 (IOB) 支持大多数

流行的前沿 I/O 标准。可将IOB 连接到非常灵活的 ChipSync 逻辑,以增强源同步接口连接。源同步优化,包括逐比特去歪斜 (对于输入和输出信号)、数据串行器 / 解串器、时钟分频器以

及专用 I/O 和本地时钟资源。

b) 可配置逻辑块 (CLB) 是 Xilinx FPGA 的基本逻辑元件, 提供组合和同步逻辑以及分布式存储器和 SRL32 移位 寄存器功能。Virtex-5 CLB 以真 6 输入查找表技术为基 础,可提供比前几代可编程逻辑更优异的功能和性能。

c)

Block RAM 块提供灵活的 36Kb 真双端口 RAM,这种 RAM 可级联为更大的存储器

块。另外,Virtex-5 Block RAM 包含的可选可编程 FIFO 逻辑可提高器件利用率。 还可将每个 Virtex-5 Block RAM 配置为两个独立的 18 Kb 真双端口 RAM 模块,以便为需要较小 RAM 模块的设计提供存储器粒度。

d) 可级联嵌入式 DSP48E Slice,具有 25x18 补数乘法器 和 48 位加法器 / 减法器 / 累加器,可提供大规模并行 DSP 算法支持。另外,每个 DSP48E Slice 都可用于执行按位逻辑功能。

e)

时钟管理模块 (CMT) 为 FPGA 提供最灵活、最高性能 的时钟控制。每个 CMT 包含

两个数字时钟管理器 (DCM) 模块 (自校准、全数字)和一个 PLL/PMCD 模 块 (自校准、模

21

东南大学本科生毕业设计(论文)

拟),用于时钟分配延迟补偿、时钟乘 法 / 除法运算、粗 / 细粒度时钟相移和输入时钟抖动滤波。

f)

集成 PCI Express 端点模块,提供 1 倍、2 倍、4 倍或 8 倍 PCI Express 端点功能。

当与 RocketIO 收发器配 合使用时,可以用最少的 FPGA 逻辑实现一个完整的PCI Express 端

点。

g) 10/100/1000 Mb/s 以太网媒体访问控制模块提供以太网功能。 RocketIO GTP 收发器,运行速度可达 3.2 Gb/s。每个GTP 收发器都支持全双工时钟与数据恢复。

h) 通用布线矩阵 (GRM) 在各内部组件之间提供一个布线开关 阵列。每个可编程元件均与一个开关矩阵绑定,以实现对通 用布线矩阵的多重连接。总体可编程互连是层级式结构,可 支持高速设计。在 Virtex-5 器件中,优化的布线连接能够 以最少的中间连线支持 CLB 互连。减少中间连线极大地提 高了后期布局布线 (PAR) 设计性能。 包括布线资源在内的所有可编程元件均由静态存储器元件中 的存储值控制。这些值在配置过程中加载到 FPGA 中,可重加载到 FPGA 中,可重 新加载以便更改可编程元件的功能。

3.3 设计方法

在电子设计中,其设计方法可分为自顶向下和自底向上两种。

Top一down设计,即自顶向下的设计。这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计,在功能级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述,然后用综合工具将设计转化为具体门电路网表。自顶向下的设计方法是从一个抽象的高层次上形成一个设计思想,然后从整体要求出发,实现系统实际内容的细化。从电子工程的角度来看,意味着先在功能级定义一个系统,再进行逻辑划分,实现分层后的低层次逻辑。实现后必须进行逻辑功能验证,才能进行版图设计,最后验证设计的具体电路与最初的系统功能描述是否吻合。由于设计的主要仿真和调试过程是在高层次上完成的,这不仅有利于早期发现结构设计上的错误,避免设计工作的浪费,而且也减少了逻辑功能仿真的工作量,提高了设计的一次成功率。Top一down设计须经过“设计一验证一修改设计一再验证”的过程,不断反复,直到得到的结果能够完全实现所要求的逻辑功能,并且在速度、功耗、价格和可靠性方面实现较为合理的平衡为止。

Bottom一Pu设计,即自底向上的设计,这是一种传统的设计思路。这种设计方式一般是设计者选择标准的集成电路,或者将各种基本单元,如各种门电路以及像加法器、计数器等模块做成基本单元库,逐级向上组合。这种方法效率低,容易出错,对整个系统缺乏规划。

目前,Top一down设计更为人们所接受,也为更多的DEA工具所支持,这是由于这种设计思想更符合人们思维的习惯,也容易使设计者对复杂的系统进行合理的划分与不断的优化。

利用EDA工具和硬件描述语言(HDL),根据产品的特定要求设计性能价格比高的片上系统,是目前国际上广泛使用的方法。与传统的设计方法不同,在设计开始阶段并不一定需要具体的单片微控制器(MCU)和开发系统(仿真器)以及带有外围电路的线路板来进行调试,所需要的只是由集成电路制造厂家提供的用HDL描述的MCU核和各种外围器件的HDL模块。设计人员在EDA工具

22

东南大学本科生毕业设计(论文)

提供的虚拟环境下,不但可以编写和调试汇编程序,也可以用HDL设计、仿真和调试具有自己特色的快速算法电路和接口,并通过综合和布线工具自动转换为电路结构,与制造厂家的单元库、库宏及硬核对应起来,通过仿真验证后,即可投片制成专用的片上系统(SOC)集成电路。自顶向下的设计方法是面向系统的设计技术,是各方面知识的综合。其关键技术在于系统的仿真、综合和测试。设计者必须站在系统的高度看待一个设计,同时还要在电路设计,对EDA工具工作原理的了解,对微电子有关知识的掌握等方面下一番功夫,才能进行自顶向下设计。自顶向下的设计方法有以下优点:能够处理复杂设计;增加设计的可重用性,节省设计时间;提高设计质量。

我在设计中基本上采用自顶向下的方法,通过该方法对系统进行划分和分解的基础上,在局部单元的实现中,也采用了自底向上的方法以便更有利于设计的实现.

3.4 本章小节

本章介绍了本设计的开发环境,从硬件描述语言开始,简要讲述了VerilogHDL和VHDL的区别和共同点;此外,介绍了硬件和软件的使用情况,软件包括了model公司的产品Modelsim仿真工具和Synpilcity公司的产品Synplify综合工具,硬件采用了Xilinx公司的新品Virtex-5,并且介绍了它的很多区别于之前系列产品的新功能,另外还简要介绍了一般电子设计的方法。

23

东南大学本科生毕业设计(论文)

第四章 AES算法的FPGA设计

4.1 FPGA实现系统分析

FPGA实现的系统分析主要从软硬件实现办法的比较、系统的性能参数以及是实现系统所涉及的关键技术这几个方面来进行分析和考虑的。 4.1.1 软硬件实现方法比较

加密算法的实现手段分为软件实现和硬件实现。软件实现平台具有使用简单、经济,便于升级,灵活性与可移植性好等优点,缺点是效率不高,性能依赖于服务器,代码易读和易分析,有限的安全性,尤其是密钥管理中的存储成为重要缺陷。专用硬件的优点是速度快,安全性高,便于并行处理,缺点是设计周期长,成本高,调试修改不容易。安全性和速度是两个最重要指标,所以对AES的硬件实现是国内外研究的热点。

用硬件实现某种密码算法,首先要用硬件描述语言(如VHDL、VerilogHDL)进行系统设计和编码,然后采用专用集成电路(ASIC)方法或现场可编程逻辑门阵列FPGA方法来具体实现。采用专用集成电路方法比较耗时,同时费用也比较昂贵,而采用现场可编程逻辑门阵列方法,可由设计者自己对芯片内部单元进行配置,设计比较灵活,只需通过改变配置就可实现完全不同的两种功能。

密码算法的硬件实现性能指标一般可以分为数据处理性能特征、功能特征和设计开发过程三类。

在数据处理性能特征上,ASIC和FPGA十分相似,这两种方法都可以并行的处理数据,都支持流水线方法来提高同一时间内数据处理量,并且这两种方法的实现字长都是可变的,只是由于其设计工艺的不同,用FPGA实现的密码算法的速度比用ASCI实现的要慢。

就功能特征而言,这两种实现方法有较大差别。用ASIC实现,则功能一确定就不能更改,而用FPGA实现,只需重新配置就可以实现完全不同的功能。但正是这一点,与FPGA相比,用ASIC实现的密码算法抗干扰能力较强,由此对密钥的访问控制也较严。

从设计开发的工程来看,这两种方法系统设计和编程可以采用相同的硬件描述语言,只是在设计周期、设计所需工具的费用、测试及维护更新的费用上,ASIC方法要比FPGA方法昂贵。具体的性能指标如下表所示:

表4-1 ASIC实现和FPGA实现的性能参数比较

24