⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ekeylogic.cpp

📁 VHDL to System C translator
💻 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 + -