资源描述:
《实验4 aes ip核的控制模块的设计与仿真以及系统集成与仿真new》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、预做实验报告4:AESIP核的控制模块的设计与仿真以及系统集成与仿真一、实验目的学会AESIP核的控制模块的设计方法以及系统集成方法。二、实验内容1、利用VerilogHDL设计AESIP核的控制模块。2、利用Modelsim仿真软件对所设计AESIP核的控制模块进行功能仿真。3、对AESIP核进行系统集成与功能仿真。三、实验环境PC机1台、Modelsim仿真软件1套。四、实验步骤1、控制模块的电路结构设计图1AES控制模块电路结构图AES控制模块的外部信号如下表所示:表1AES控制模块的外部信号说明信号名称信
2、号宽度传输方向信号含义clk1位输入时钟信号rst1位输入复位信号,1有效。load1位输入数据装载使能信号,用于控制输入明/密文、密钥、S盒配置数据等,1有效。address8位输入寄存器或RAM地址,用于表示明文/密文/密钥寄存器、S盒RAM单元。18keyexp1位输入密钥扩展使能信号,1有效。staenc1位输入开始加密使能信号,1有效。stadec1位输入开始解密使能信号,1有效。keyexprdy1位输出密钥扩展完成标识信号,1有效。encdecrdy1位输出加/解密运算完成标识信号,1有效。keys
3、el1位输出轮密钥选择信号,keysel=0选择密钥寄存器中的种子密钥,否则,选择经过密钥扩展变换的轮密钥。rndkren1位输出轮密钥寄存器写使能信号,1有效。wrrndkrf1位输出轮密钥寄存器堆写使能信号,1有效。rconen1位输出轮常数寄存器写使能信号,1有效。当有效时将下一个轮常数写入轮常数寄存器。wrsben1位输出向S盒写入配置数据的使能信号,1有效。mixsel1位输出选择是否进行逆列混合变换,在进行第1-9轮解密变换时为1,其余时间为0。reginsel1位输出结果寄存器输入数据选择信号。wr
4、regen1位输出结果寄存器写使能信号,1有效。wrpckreg1位输出明文/密文/密钥寄存器的写使能信号,1有效。keyadsel2位输出密钥加操作输入数据选择信号,2’b00选择外部输入数据,2’b01选择列混合变换的结果,2’b10选择第10轮加密变换所需的S盒输出,2’b11选择第10轮解密变换所需的S盒输出。krfaddr4位输出轮密钥寄存器堆地址,表示11个轮密钥寄存器的地址。wrsbaddr7位输出S盒配置数据的地址。图2AES加密状态机状态转移图182、建立控制模块的Verilog模型module
5、aescontrol(clk,rst,load,address,keyexp,staenc,stadec,keyexprdy,encdecrdy,keysel,rndkren,wrrndkrf,krfaddr,rconen,wrsben,wrsbaddr,keyadsel,mixsel,reginsel,wrregen,wrpckreg);outputkeyexprdy,encdecrdy,keysel,rndkren,wrrndkrf,rconen;outputwrsben,mixsel,reginsel,wr
6、regen,wrpckreg;output[1:0]keyadsel;output[3:0]krfaddr,wrsbaddr;inputclk,rst,load,keyexp,staenc,stadec;input[4:0]address;wire[3:0]wrkrfaddr,rdkrfaddre,rdkrfaddrd,encstate,decstate;wire[1:0]keyadsele,keyadseld;wiremixsele,reginsele,wrregene,encrdy,mixseld,regin
7、seld,wrregend,decrdy;assignkrfaddr=(encstate!=4'd0)?rdkrfaddre:((decstate!=4'd0)?rdkrfaddrd:wrkrfaddr);assignkeyadsel=(encstate!=4'd0)?keyadsele:keyadseld;assignmixsel=(encstate!=4'd0)?mixsele:mixseld;assignreginsel=(encstate!=4'd0)?reginsele:reginseld;assign
8、wrregen=(encstate!=4'd0)?wrregene:wrregend;assignencdecrdy=encrdy&decrdy;keyexpfsmkeyexpfsm(clk,rst,keyexp,keysel,rndkren,wrrndkrf,wrkrfaddr,rconen,keyexprdy);encryfsmencryfsm(clk,rst,sta