用三个拨码开关分别控制UART串口传输的接收使能、发送使能和加/解密控制;用两个按
键分别作为接收和发送的清零;用两个LED分别作为UART串口传输第一帧数据的开始和所
有数据接收完毕的指示;LED数码管用来指示接收和发送帧数。
本章小结
本章先介绍了DES加密系统的整体设计方案,由三大模块组成:DES加密核心,UART 通信接口和BLOCKRAM存储模块。然后具体阐述了各个模块的原理,设计及实现过程。 最后介绍了整体设计结果。本章是本论文的重点。
第四章 性能分析与功能验证
4.1性能分析
由于采用UART作为通信接口,其低速率的瓶颈使得我们无法对整个系统的DES加密吞吐量进行有效的测试,因此这里通过[SE的仿真结果来对实现结果作一分析。 4.1.1 DES加密核心的性能分析:
完成DES加密核心模块的设计后,利用ModelSim对DES核心模块进行Post-Translate Simulate,得到仿真报告相关内容如下:
Selected Device:2s100epq208-6
Number of Slices: 557 out of 1200 46% Number of Slice Flip Flops: 582 out of 2400 24% Number of 4 input LUTs: 862 out of 2400 35% Number of GCLKs: 1 out of 4 25% Speed Grade:-6
Minimum period: 13.052ns (Maximum Frequency:76. 617MHz) Minimum input arrival time before clock: 13.230ns Maximum output required time after clock: 15.127ns Maximum combinational path delay: No path found
根据仿真结果,本设计的加密处理速度达到(64*76. 617*3 )/(16*3+3) =288.44Mbps, 将近300Mbps,完全满足普通lOM/100M网络的速率要求。考虑到实际布局布线之后的性能折扣,DES加密核心的数据吞吐量也应可在百M数量级。
4.1.2整体性能分析
整体综合仿真的报告如下:
Device utilization summary:
Selected Device: 2s100epq208-6
Number of Slices: 710 out of 1200 59% Number of Slice Flip Flops: 648 out of 2400 27% Number of 4 input LUTs: 1096 out of 2400 45% Number of bonded IOBs: 20 out of 146 13% Number of TBUFs: 24 out of 1200 2% Number of BRAMs: 8 out of 10 80%
Number of GCLKs: 1 out of 4 25% Timing Summary: Speed Grade:-6
Minimum period: 12.911ns (Maximum Frequency: 77.453MHz) Minimum input arrival time before clock: 21.516ns Maximum output required time after clock: 6.986ns
Maximum combinational path delay: No path found
整个系统可以达到的最高频率为77. 453MHz,因此,在实验板上的50MHz时钟频率下
能正常工作。
4. 2功能验证
4. 2. 1基于ModelSi.仿真的功能脸证
利用ModelSim工具对DES加密系统的Verilog代码进行Behavior & post Translate Simulate,得到的仿真波形初步验证DES加密、解密功能的正确性 [22] 。
下图是DES加密系统的ModelSim的仿真波形图:
图4-1
将上图中红色方框内的波形放大如下,可以看到三级流水线的效果,即d_data_rdy
为高的时候有连续的三个64位加密数据块输出,如下图中红色椭圆内所示。
图4-2
通过波形仿真图也可以初步检验DES加密模块的正确性。如上图中方色方框所示:
KEY: 00 00 00 00 00 00 00 00 PLAIN:80 00 00 00 00 00 00 00 OUTPUT:95 f8 a5 e5 dd 31 d9 00
与XILINX公司网站上设计参考中给出的数据一致。
另外,在H.卡茨安的《标准数据加密算法》一书中有详细的实例分析,此实例在本设计中
的验证同样正确,数据如下:
KEY:5b 5a 57 67 6a 56 67 6e (FEBRUARY) PLAIN:67 5a 69 67 5e 5a 6b 5a (RETRIEVE) OUTPUT:97 4a ff bf 86 02 2d if
4. 2. Z实际硬件脸证
在Xilinx的开发平台ISES. 2下用Verilog HDL完成设计,并进行了综合和仿真;成功下载到试验板EITS2003上的XC2S100中。
此时,可以通过各种串口调试工具对加密系统进行实际验证。采取了以下测试方案:
1、由PC通过串口向试验板发送文件和密钥,经过加密后的密文通过串口传回PC,与PC上的标准加密DES加密程序进行比对;
2、将由系统加密后的密文再次通过串口发送给该系统进行解密,与原文进行比对以达到验证的目的。各方法均验证了本设计的加/解密功能。
为了简单起见,在这里选取了与上述仿真testbench相同的测试数据来加以说明。值得说明的是,除此之外,还利用多组数据、文件进行了加解密测试,测试结果表明,整个DES加密系统的加/解密功能是可靠的。
下面是串口调试图:
图4-3
如上图,Key为5b 5a 57 67 6a 56 67 6e (FEBRUARY)
PLAIN: 67 5a 69 67 5e 5a 6b 5a (RETRIEVE) (00为预定的终止位)
Ciph OUTPUT: 97 4a ff bf 86 02 2d if,结果正确。
利用同一组Testbench对系统的解密功能进行测试,即将得出的密文连同原有密钥一同发回由系统进行解密:
图4-4