




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
预做实验报告4:AES IP核的控制模块的设计与仿真以及系统集成与仿真一、实验目的学会AES IP核的控制模块的设计方法以及系统集成方法。二、实验内容1、利用Verilog HDL设计AES IP核的控制模块。2、利用Modelsim仿真软件对所设计AES IP核的控制模块进行功能仿真。3、对AES IP核进行系统集成与功能仿真。三、实验环境PC机1台、Modelsim仿真软件1套。四、实验步骤1、控制模块的电路结构设计图1 AES控制模块电路结构图AES控制模块的外部信号如下表所示:表1 AES控制模块的外部信号说明信号名称信号宽度传输方向信号含义clk1位输入时钟信号rst1位输入复位信号,1有效。load1位输入数据装载使能信号,用于控制输入明/密文、密钥、S盒配置数据等,1有效。address8位输入寄存器或RAM地址,用于表示明文/密文/密钥寄存器、S盒RAM单元。keyexp1位输入密钥扩展使能信号,1有效。staenc1位输入开始加密使能信号,1有效。stadec1位输入开始解密使能信号,1有效。keyexprdy1位输出密钥扩展完成标识信号,1有效。encdecrdy1位输出加/解密运算完成标识信号,1有效。keysel1位输出轮密钥选择信号,keysel=0选择密钥寄存器中的种子密钥,否则,选择经过密钥扩展变换的轮密钥。rndkren1位输出轮密钥寄存器写使能信号,1有效。wrrndkrf1位输出轮密钥寄存器堆写使能信号,1有效。rconen1位输出轮常数寄存器写使能信号,1有效。当有效时将下一个轮常数写入轮常数寄存器。wrsben1位输出向S盒写入配置数据的使能信号,1有效。mixsel1位输出选择是否进行逆列混合变换,在进行第1-9轮解密变换时为1,其余时间为0。reginsel1位输出结果寄存器输入数据选择信号。wrregen1位输出结果寄存器写使能信号,1有效。wrpckreg1位输出明文/密文/密钥寄存器的写使能信号,1有效。keyadsel2位输出密钥加操作输入数据选择信号,2b00选择外部输入数据,2b 01选择列混合变换的结果,2b10选择第10轮加密变换所需的S盒输出,2b11选择第10轮解密变换所需的S盒输出。krfaddr4位输出轮密钥寄存器堆地址,表示11个轮密钥寄存器的地址。wrsbaddr7位输出S盒配置数据的地址。图2 AES加密状态机状态转移图2、建立控制模块的Verilog模型module aescontrol(clk,rst,load,address,keyexp,staenc,stadec,keyexprdy,encdecrdy,keysel,rndkren,wrrndkrf,krfaddr,rconen,wrsben,wrsbaddr,keyadsel,mixsel,reginsel,wrregen,wrpckreg);output keyexprdy,encdecrdy,keysel,rndkren,wrrndkrf,rconen;output wrsben,mixsel,reginsel,wrregen,wrpckreg;output 1:0 keyadsel;output 3:0 krfaddr,wrsbaddr;input clk,rst,load,keyexp,staenc,stadec;input4:0 address;wire 3:0 wrkrfaddr,rdkrfaddre,rdkrfaddrd,encstate,decstate;wire 1:0 keyadsele,keyadseld;wire mixsele,reginsele,wrregene,encrdy,mixseld,reginseld,wrregend,decrdy;assign krfaddr=(encstate != 4d0)? rdkrfaddre:(decstate != 4d0)?rdkrfaddrd:wrkrfaddr);assign keyadsel=(encstate != 4d0)? keyadsele:keyadseld;assign mixsel=(encstate != 4d0)? mixsele:mixseld;assign reginsel=(encstate != 4d0)? reginsele:reginseld;assign wrregen=(encstate != 4d0)? wrregene:wrregend;assign encdecrdy=encrdy & decrdy;keyexpfsm keyexpfsm(clk,rst,keyexp,keysel,rndkren,wrrndkrf,wrkrfaddr,rconen,keyexprdy);encryfsm encryfsm(clk,rst,staenc,keyadsele,mixsele,reginsele,wrregene,rdkrfaddre,encrdy,encstate);decryfsm decryfsm(clk,rst,stadec,keyadseld,mixseld,reginseld,wrregend,rdkrfaddrd,decrdy,decstate);assign wrsben=load & address4;assign wrsbaddr=address3:0;assign wrpckreg=load & address4 & address3 & address2 & address1 & address0;endmodule3、设计控制模块的测试文件timescale 1ns / 1nsmodule aescontrol_tb;wire keyexprdy,encdecrdy,keysel,rndkren,wrrndkrf,rconen;wire wrsben,mixsel,reginsel,wrregen,wrpckreg;wire 1:0 keyadsel;wire 3:0 krfaddr,wrsbaddr;reg clk,rst,load,keyexp,staenc,stadec;reg 4:0 address;aescontrol aescontrol(clk,rst,load,address,keyexp,staenc,stadec,keyexprdy,encdecrdy,keysel,rndkren,wrrndkrf,krfaddr,rconen,wrsben,wrsbaddr,keyadsel,mixsel,reginsel,wrregen,wrpckreg);/clock generation initial clk = 1;always #50 clk = clk;initial begin #20 rst=1; load=0; address=5d0; keyexp=0; staenc=0; stadec=0; #200 rst=0; load=1; address=5d0; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d1; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d2; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d3; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d4; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d5; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d6; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d7; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d8; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d9; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d10; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d11; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d12; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d13; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d14; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d15; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d16; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d17; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d18; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d19; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d20; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d21; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d22; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d23; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d24; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d25; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d26; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d27; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d28; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d29; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d30; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=1; address=5d31; keyexp=0; staenc=0; stadec=0; #100 rst=0; load=0; address=5d0; keyexp=1; staenc=0; stadec=0; #100 rst=0; load=0; address=5d1; keyexp=0; staenc=0; stadec=0; #1200 rst=0; load=0; address=5d2; keyexp=0; staenc=1; stadec=0; #100 rst=0; load=0; address=5d3; keyexp=0; staenc=0; stadec=0; #1200 rst=0; load=0; address=5d16; keyexp=0; staenc=0; stadec=1; #100 rst=0; load=0; address=5d17; keyexp=0; staenc=0; stadec=0; #1200 $finish; endendmodule4、将控制模块的设计文件和测试文件输入Modelsim仿真工具,并进行编译和功能仿真。5、观测制模块的仿真波形图,分析结果是否正确。若有错误,则修改设计文件或测试文件,重新编译和仿真。6、对AES IP核进行系统集成module aes(clk,rst,load,address,keyexpen,staenc,stadec,din,keyexprdy,encdecrdy,dout);output 127:0 dout;output keyexprdy,encdecrdy;input clk,rst,load,keyexpen,staenc,stadec;input 4:0 address;input 127:0 din;wire wrpckreg,keysel,rndkren,wrrndkrf,rconen,wrsben,mixsel,reginsel,wrregen;wire 127:0 pckregout,roundkey;wire 3:0 krfaddr,wrsbaddr;wire 1:0 keyadsel;reg_128 pckreg(clk,wrpckreg,din,pckregout);aescontrol control(clk,rst,load,address,keyexpen,staenc,stadec,keyexprdy,encdecrdy,keysel,rndkren,wrrndkrf,krfaddr,rconen,wrsben,wrsbaddr,keyadsel,mixsel,reginsel,wrregen,wrpckreg);keyexp keyexp(clk,rst,keysel,rndkren,wrrndkrf,krfaddr,rconen,pckregout,roundkey);crydap crydap(clk,wrsben,wrsbaddr,din,keyadsel,mixsel,reginsel,wrregen,pckregout,roundkey,dout);endmodule7、设计AES IP核的测试文件timescale 1ns / 1nsmodule aes_tb;wire 127:0 dout;wire keyexprdy,encdecrdy;reg clk,rst,load,keyexpen,staenc,stadec;reg 4:0 address;reg 127:0 din;aes aes(clk,rst,load,address,keyexpen,staenc,stadec,din,keyexprdy,encdecrdy,dout);/clock generation initial clk = 1;always #50 clk = clk;initial begin #20 rst=1; /reset. #200 rst=0; /load key. load=1; address=5d16; din=128h2b7e1516_28aed2a6_abf71588_09cf4f3c; keyexpen=0; staenc=0; stadec=0; #100 rst=0; load=0; address=5d0; keyexpen=1; /key expansion. staenc=0; stadec=0; #100 rst=0; load=0; address=5d0; keyexpen=0; staenc=0; stadec=0; #1000 rst=0; /encryption sbox configuration. load=1; address=5d0; din=128h637c777bf26b6fc53001672bfed7ab76; keyexpen=0; staenc=0; stadec=0; #100 address=5d1; din=128hca82c97dfa5947f0add4a2af9ca472c0;#100 address=5d2; din=128hb7fd9326363ff7cc34a5e5f171d83115;#100 address=5d3; din=128h04c723c31896059a071280e2eb27b275;#100 address=5d4; din=128h09832c1a1b6e5aa0523bd6b329e32f84;#100 address=5d5; din=128h53d100ed20fcb15b6acbbe394a4c58cf;#100 address=5d6; din=128hd0efaafb434d338545f9027f503c9fa8;#100 address=5d7; din=128h51a3408f929d38f5bcb6da2110fff3d2;#100 address=5d8; din=128hcd0c13ec5f974417c4a77e3d645d1973;#100 address=5d9; din=128h60814fdc222a908846eeb814de5e0bdb;#100 address=5d10; din=128he0323a0a4906245cc2d3ac629195e479;#100 address=5d11; din=128he7c8376d8dd54ea96c56f4ea657aae08;#100 address=5d12; din=128hba78252e1ca6b4c6e8dd741f4bbd8b8a;#100 address=5d13; din=128h703eb5664803f60e613557b986c11d9e;#100 address=5d14; din=128he1f8981169d98e949b1e87e9ce5528df;#100 address=5d15; din=128h8ca1890dbfe6426841992d0fb054bb16;#100 load=1; address=5d16; din=128h3243f6a8_885a308d_313198a2_e0370734; / load plain text. #100 load=0; staenc=1; / start encryption. #100 staenc=0; #1200 load=1; /decryption sbox configuration. address=5d0; din=128h52096ad53036a538bf40a39e81f3d7fb; #100 address=5d1; din=128h7ce339829b2fff87348e4344c4dee9cb;#100 address=5d2; din=128h547b9432a6c2233dee4c950b42fac34e;#100 address=5d3; din=128h082ea16628d924b2765ba2496d8bd125;#100 address=5d4; din=128h72f8f66486689816d4a45ccc5d65b692;#100 address=5d5; din=128h6c7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年冰雪运动主题公园项目投资收益分析及可行性研究报告
- 合同范文:导游合作协议书
- 拟行路难(其四)鲍照教学设计-2025-2026学年高中语文统编版 语文选择性必修下册-统编版
- 8.3.2 选择健康的生活方式 说课稿-2023-2024学年人教版生物八年级下册
- 第一单元第2课《智慧教育真便利》 说课稿 2024-2025学年西交大版(2024)初中信息科技七年级下册
- 2025年公路客运中心建设与运营行业投资趋势与盈利模式研究报告
- (2025年标准)花甲加盟协议书
- 2025年售电公司行业需求分析及创新策略研究报告
- 2025年印刷机械行业投资趋势与盈利模式研究报告
- 2025年PVP行业当前发展现状及增长策略研究报告
- 2024-2025学年广东省深圳实验学校初中部九年级上学期开学考英语试题及答案
- 邮政快递员技能大赛理论考试题库(含答案)
- 《电动航空器电推进系统技术规范》
- 结肠造瘘还纳术手术配合
- 2024年山东省建筑施工企业主要负责人A类考试题库及答案(典型题)
- 特种设备目录新旧对照表
- 2024年初一英语阅读理解专项练习及答案
- 陪诊师与公司签订协议书范文
- 喀什德力克油田科技有限公司30万立方米-日油田伴生放空天然气回收利用项目
- PICC穿刺点感染个案护理课件
- 《动眼神经解剖》课件
评论
0/150
提交评论