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

📄 aes_ecb_top.h

📁 VHDL to System C translator
💻 H
字号:
#ifndef AES_ECB_TOP_H
#define AES_ECB_TOP_H

#include <systemc.h>


#include "aes_encdec.h"
#include "aes_keygen.h"
#include "aes_lut.h"
SC_MODULE(aes_ecb_top) {

    sc_in<bool >  clk;
    sc_in<sc_biguint<128> >  din;
    sc_in<bool >  enc_dec;
    sc_in<bool >  ld_data;
    sc_in<bool >  ld_key;
    sc_in<bool >  resetn;
    sc_out<bool > busy;
    sc_out<bool > data_valid;
    sc_out<sc_biguint<128> > dout;
    sc_out<bool > key_valid;


    sc_signal<sc_uint<2> > lutsel10;
    sc_signal<bool > busy_data;
    sc_signal<bool > busy_key;
    sc_signal<bool > dkey_done;
    sc_signal<sc_biguint<128> > dkey_out;
    sc_signal<bool > ekey_done;
    sc_signal<sc_biguint<128> > ekey_out;
    sc_signal<sc_uint<8> > fsb_addr;
    sc_signal<sc_uint<8> > fsbout;
    sc_signal<sc_uint<8> > ftfs_addr;
    sc_signal<sc_uint<2> > ftsel;
    sc_signal<sc_uint<4> > key_addr;
    sc_signal<bool > key_addr_mux;
    sc_signal<sc_uint<8> > kt_addr;
    sc_signal<sc_uint<2> > ktsel;
    sc_signal<sc_uint<8> > lut_addr;
    sc_signal<sc_uint<32> > lut_out;
    sc_signal<sc_uint<6> > lut_sel;
    sc_signal<sc_uint<2> > sel_addr;
    sc_signal<bool > sel_ft_fs;
    void process_line120();
    void i4combo_proc();
    void comb_assignments();

    aes_encdec i1;
    aes_keygen i0;
    aes_lut i2;

    aes_ecb_top(sc_module_name _n) : sc_module(_n),i1("i1"),i0("i0"),i2("i2") {
        i1.clk(clk);
        i1.din(din);
        i1.dkey_out(dkey_out);
        i1.ekey_out(ekey_out);
        i1.enc_dec(enc_dec);
        i1.ftfs_out(lut_out);
        i1.key_done(dkey_done);
        i1.ld_data(ld_data);
        i1.resetn(resetn);
        i1.busy(busy_data);
        i1.data_valid(data_valid);
        i1.dout(dout);
        i1.ftfs_addr(ftfs_addr);
        i1.ftsel(ftsel);
        i1.key_addr(key_addr);
        i1.key_addr_mux(key_addr_mux);
        i1.sel_ft_fs(sel_ft_fs);
        i0.clk(clk);
        i0.dkey_addr(key_addr);
        i0.dkey_addr_mux(key_addr_mux);
        i0.ekey_addr(key_addr);
        i0.ekey_addr_mux(key_addr_mux);
        i0.fsbout(fsbout);
        i0.key(din);
        i0.ktout(lut_out);
        i0.ld_key(ld_key);
        i0.resetn(resetn);
        i0.busy(busy_key);
        i0.dkey_done(dkey_done);
        i0.dkey_out(dkey_out);
        i0.ekey_done(ekey_done);
        i0.ekey_out(ekey_out);
        i0.fsb_addr(fsb_addr);
        i0.kt_addr(kt_addr);
        i0.ktsel(ktsel);
        i2.lut_addr(lut_addr);
        i2.lut_sel(lut_sel);
        i2.lut_out(lut_out);

        SC_METHOD(process_line120);
        sensitive << sel_addr  << ktsel << ftsel;
        SC_METHOD(i4combo_proc);
        sensitive << fsb_addr  << kt_addr << ftfs_addr << sel_addr;
        SC_METHOD(comb_assignments);
        sensitive << dkey_done << ekey_done << sel_addr << enc_dec << sel_ft_fs << lutsel10 << busy_key << busy_data << lut_out;
    }

    ~aes_ecb_top() {}
    SC_HAS_PROCESS(aes_ecb_top);

};
#endif

⌨️ 快捷键说明

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