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

📄 dkeylogic.cpp

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


void dkeylogic::process_line74() {
  if (resetn.read() == 0) {
  skeyreg_s.write((sc_biguint<128>)("0b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"));
  } else 
if (clk.posedge()) {
  if (ldd.read() == 1) {
  
switch (sel_sk.read()(3,2 )) {
case 0 :
 skeyreg_s.write((outmux_s.read(),skeyreg_s.read()(95,0 )) );
 break;
  case 1 :
 skeyreg_s.write(((skeyreg_s.read()(127,96 ),outmux_s.read()),skeyreg_s.read()(63,0 )) );
 break;
 case 2 :
 skeyreg_s.write(((skeyreg_s.read()(127,64 ),outmux_s.read()),skeyreg_s.read()(31,0 )) );
 break;
 default : skeyreg_s.write((skeyreg_s.read()(127,32 ),outmux_s.read()) );
 break;

}   
}   
}
}
void dkeylogic::process_line105() {
  if (resetn.read() == 0) {
  temp_s.write((sc_uint<32>)("0b00000000000000000000000000000000"));
  } else 
if (clk.posedge()) {
  if (wr_dmem.read() == 1) {
  temp_s.write((sc_uint<32>)("0b00000000000000000000000000000000"));
  } else 
if (sel_sk.read()(1,0 ) == (sc_uint<2>)"0b00") {
  temp_s.write((sc_uint<32>)(ktout.read() ));
  } else {
 temp_s.write((sc_uint<32>)(outmux_s.read() ));

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

}
}
void dkeylogic::comb_assignments() {

round_dkey_s.write((dkey_mux.read() == 1) ? ekey_out.read()  : skeyreg_s.read() );
round_dkey.write((sc_biguint<128>)(round_dkey_s.read() ));
outmux_s.write((sc_uint<32>)(ktout.read() ^ temp_s.read() ));
ktsel.write((sc_uint<2>)(sel_sk.read()(1,0 ) ));

}

⌨️ 快捷键说明

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