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

📄 aes_logic.cpp

📁 VHDL to System C translator
💻 CPP
字号:
#include "aes_logic.h"


void aes_logic::process_line96() {
  if (resetn.read() == 0) {
  inputreg_s.write((sc_biguint<128>)("0b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"));
  } else 
if (clk.posedge()) {
  if (ld_din.read() == 1) {
  inputreg_s.write((sc_biguint<128>)(imux_s.read() ));
   
}   
}
}
void aes_logic::process_line113() {
  if (resetn.read() == 0) {
  temp_s.write((sc_uint<32>)("0b00000000000000000000000000000000"));
  } else 
if (clk.posedge()) {
  if (clr_temp.read() == 1) {
  temp_s.write((sc_uint<32>)("0b00000000000000000000000000000000"));
  } else 
if (sel.read()(1,0 ) == (sc_uint<2>)"0b00") {
  temp_s.write((sc_uint<32>)(ftfs_out.read() ));
  } else {
 temp_s.write((sc_uint<32>)(xorout_s.read() ));

 
}   
}
}
void aes_logic::process_line133() {
  if (resetn.read() == 0) {
  resultreg_s.write((sc_biguint<128>)("0b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"));
  } else 
if (clk.posedge()) {
  if (ld.read() == 1) {
  
switch (sel.read()(3,2 )) {
case 3 :
 resultreg_s.write((resultreg_s.read()(127,32 ),xorout_s.read()) );
 break;
  case 2 :
 resultreg_s.write(((resultreg_s.read()(127,64 ),xorout_s.read()),resultreg_s.read()(31,0 )) );
 break;
 case 1 :
 resultreg_s.write(((resultreg_s.read()(127,96 ),xorout_s.read()),resultreg_s.read()(63,0 )) );
 break;
 default : resultreg_s.write((xorout_s.read(),resultreg_s.read()(95,0 )) );
 break;

}   
}   
}
}
void aes_logic::process_line153() {
  
switch (sel.read()) {
case 0 :
 sel_dec_s.write((sc_uint<4>)("0b0000" ));
 break;
  case 1 :
 sel_dec_s.write((sc_uint<4>)("0b1001" ));
 break;
 case 2 :
 sel_dec_s.write((sc_uint<4>)("0b0010" ));
 break;
 case 3 :
 sel_dec_s.write((sc_uint<4>)("0b1011" ));
 break;
 case 4 :
 sel_dec_s.write((sc_uint<4>)("0b0100" ));
 break;
 case 5 :
 sel_dec_s.write((sc_uint<4>)("0b1101" ));
 break;
 case 6 :
 sel_dec_s.write((sc_uint<4>)("0b0110" ));
 break;
 case 7 :
 sel_dec_s.write((sc_uint<4>)("0b1111" ));
 break;
 case 8 :
 sel_dec_s.write((sc_uint<4>)("0b1000" ));
 break;
 case 9 :
 sel_dec_s.write((sc_uint<4>)("0b0001" ));
 break;
 case 10 :
 sel_dec_s.write((sc_uint<4>)("0b1010" ));
 break;
 case 11 :
 sel_dec_s.write((sc_uint<4>)("0b0011" ));
 break;
 case 12 :
 sel_dec_s.write((sc_uint<4>)("0b1100" ));
 break;
 case 13 :
 sel_dec_s.write((sc_uint<4>)("0b0101" ));
 break;
 case 14 :
 sel_dec_s.write((sc_uint<4>)("0b1110" ));
 break;
 default : sel_dec_s.write((sc_uint<4>)("0b0111" ));
 break;

}
}
void aes_logic::process_line178() {
  
switch (sel_s.read()) {
case 0 :
 ftfs_addr.write((sc_uint<8>)(inputreg_s.read()(127,120 ) ));
 break;
  case 1 :
 ftfs_addr.write((sc_uint<8>)(inputreg_s.read()(87,80 ) ));
 break;
 case 2 :
 ftfs_addr.write((sc_uint<8>)(inputreg_s.read()(47,40 ) ));
 break;
 case 3 :
 ftfs_addr.write((sc_uint<8>)(inputreg_s.read()(7,0 ) ));
 break;
 case 4 :
 ftfs_addr.write((sc_uint<8>)(inputreg_s.read()(95,88 ) ));
 break;
 case 5 :
 ftfs_addr.write((sc_uint<8>)(inputreg_s.read()(55,48 ) ));
 break;
 case 6 :
 ftfs_addr.write((sc_uint<8>)(inputreg_s.read()(15,8 ) ));
 break;
 case 7 :
 ftfs_addr.write((sc_uint<8>)(inputreg_s.read()(103,96 ) ));
 break;
 case 8 :
 ftfs_addr.write((sc_uint<8>)(inputreg_s.read()(63,56 ) ));
 break;
 case 9 :
 ftfs_addr.write((sc_uint<8>)(inputreg_s.read()(23,16 ) ));
 break;
 case 10 :
 ftfs_addr.write((sc_uint<8>)(inputreg_s.read()(111,104 ) ));
 break;
 case 11 :
 ftfs_addr.write((sc_uint<8>)(inputreg_s.read()(71,64 ) ));
 break;
 case 12 :
 ftfs_addr.write((sc_uint<8>)(inputreg_s.read()(31,24 ) ));
 break;
 case 13 :
 ftfs_addr.write((sc_uint<8>)(inputreg_s.read()(119,112 ) ));
 break;
 case 14 :
 ftfs_addr.write((sc_uint<8>)(inputreg_s.read()(79,72 ) ));
 break;
 default : ftfs_addr.write((sc_uint<8>)(inputreg_s.read()(39,32 ) ));
 break;

}
}
void aes_logic::comb_assignments() {

din_s.write((sc_biguint<128>)(din.read() ));
ftsel.write((sc_uint<2>)(sel.read()(1,0 ) ));
dmux_s.write((sel_dmux.read() == 0) ? din_s.read()  : resultreg_s.read() );
xorkey_s.write((enc_dec.read() == 0) ? (ekey_out.read() ^ dmux_s.read())  : (dkey_out.read() ^ dmux_s.read()) );
imux_s.write((sel_imux.read() == 0) ? xorkey_s.read()  : resultreg_s.read() );
dout.write((sc_biguint<128>)(inputreg_s.read() ));
xorout_s.write((sc_uint<32>)(ftfs_out.read() ^ temp_s.read() ));
sel_s.write((enc_dec.read() == 0) ? sel.read()  : sel_dec_s.read() );

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -