📄 ekeylogic.cpp
字号:
#include "ekeylogic.h"
void ekeylogic::process_line95() {
if (resetn.read() == 0) {
keyreg_s.write((sc_biguint<128>)("0b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"));
} else
if (clk.posedge()) {
if (ld.read() == 1) {
keyreg_s.write((sc_biguint<128>)(keyinp_s.read() ));
}
}
}
void ekeylogic::process_line110() {
if (resetn.read() == 0) {
rk3reg_s.write((sc_uint<32>)("0b00000000000000000000000000000000"));
} else
if (clk.posedge()) {
if (ld_rk3.read() == 1) {
switch (sel_rk3.read()) {
case 3 :
rk3reg_s.write((rk3reg_s.read()(31,8 ),fsbout.read()) );
break;
case 2 :
rk3reg_s.write(((rk3reg_s.read()(31,16 ),fsbout.read()),rk3reg_s.read()(7,0 )) );
break;
case 1 :
rk3reg_s.write(((rk3reg_s.read()(31,24 ),fsbout.read()),rk3reg_s.read()(15,0 )) );
break;
default : rk3reg_s.write((fsbout.read(),rk3reg_s.read()(23,0 )) );
break;
} } else {
rk3reg_s.write((sc_uint<32>)(rk3reg_s.read() ));
}
}
}
void ekeylogic::process_line159() {
switch (sel_rk3.read()) {
case 0 :
fsb_addr.write((sc_uint<8>)(keyreg_s.read()(119,112 ) ));
break;
case 1 :
fsb_addr.write((sc_uint<8>)(keyreg_s.read()(111,104 ) ));
break;
case 2 :
fsb_addr.write((sc_uint<8>)(keyreg_s.read()(103,96 ) ));
break;
default : fsb_addr.write((sc_uint<8>)(keyreg_s.read()(127,120 ) ));
break;
}
}
void ekeylogic::process_line172() {
switch (round_eaddr.read()) {
case 1 :
rcon_s.write((sc_uint<32>)("0x01000000" ));
break;
case 2 :
rcon_s.write((sc_uint<32>)("0x02000000" ));
break;
case 3 :
rcon_s.write((sc_uint<32>)("0x04000000" ));
break;
case 4 :
rcon_s.write((sc_uint<32>)("0x08000000" ));
break;
case 5 :
rcon_s.write((sc_uint<32>)("0x10000000" ));
break;
case 6 :
rcon_s.write((sc_uint<32>)("0x20000000" ));
break;
case 7 :
rcon_s.write((sc_uint<32>)("0x40000000" ));
break;
case 8 :
rcon_s.write((sc_uint<32>)("0x80000000" ));
break;
case 9 :
rcon_s.write((sc_uint<32>)("0x1B000000" ));
break;
default : rcon_s.write((sc_uint<32>)("0x36000000" ));
break;
}
}
void ekeylogic::comb_assignments() {
key_s.write((((key.read()(31,0 ),key.read()(63,32 )),key.read()(95,64 )),key.read()(127,96 )) );
keyinp_s.write((key_inp_mux.read() == 1) ? ((((rk7_s.read(),rk6_s.read()),rk5_s.read()),rk4_s.read())) : key_s.read() );
round_ekey.write((((keyinp_s.read()(31,0 ),keyinp_s.read()(63,32 )),keyinp_s.read()(95,64 )),keyinp_s.read()(127,96 )) );
rkx_s.write((sc_uint<32>)(keyreg_s.read()(31,0 ) ^ rcon_s.read() ));
rk4_s.write((sc_uint<32>)(rk3reg_s.read() ^ rkx_s.read() ));
rk5_s.write((sc_uint<32>)(keyreg_s.read()(63,32 ) ^ rk4_s.read() ));
rk6_s.write((sc_uint<32>)(keyreg_s.read()(95,64 ) ^ rk5_s.read() ));
rk7_s.write((sc_uint<32>)(keyreg_s.read()(127,96 ) ^ rk6_s.read() ));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -