aes_fsm.h

来自「VHDL to System C translator」· C头文件 代码 · 共 54 行

H
54
字号
#ifndef AES_FSM_H
#define AES_FSM_H

#include <systemc.h>


SC_MODULE(aes_fsm) {

    sc_in<bool >  clk;
    sc_in<bool >  key_done;
    sc_in<bool >  ld_data;
    sc_in<bool >  resetn;
    sc_out<bool > busy;
    sc_out<bool > clr_temp;
    sc_out<bool > data_valid;
    sc_out<sc_uint<4> > key_addr;
    sc_out<bool > key_addr_mux;
    sc_out<bool > ld;
    sc_out<bool > ld_din;
    sc_out<sc_uint<4> > sel;
    sc_out<bool > sel_dmux;
    sc_out<bool > sel_ft_fs;
    sc_out<bool > sel_imux;


    enum state_type {s0  ,s1 ,ldkey ,sx ,s2 ,xorrk ,s4 ,s3 ,s5 ,s6 ,dvalid ,s8};
    sc_signal<state_type > current_state;
    sc_signal<state_type > next_state;
    sc_signal<sc_uint<4> > key_addr_cld;
    sc_signal<bool > key_addr_mux_cld;
    sc_signal<sc_uint<4> > sel_cld;
    sc_signal<bool > sel_ft_fs_cld;
    void clocked_proc();
    void nextstate_proc();
    void output_proc();
    void comb_assignments();

    aes_fsm(sc_module_name _n) : sc_module(_n) {
        SC_METHOD(clocked_proc);
        sensitive << clk  << resetn;
        SC_METHOD(nextstate_proc);
        sensitive << current_state  << key_addr_cld << key_done << ld_data << sel_cld;
        SC_METHOD(output_proc);
        sensitive << current_state ;
        SC_METHOD(comb_assignments);
        sensitive << key_addr_cld << key_addr_mux_cld << sel_cld << sel_ft_fs_cld;
    }

    ~aes_fsm() {}
    SC_HAS_PROCESS(aes_fsm);

};
#endif

⌨️ 快捷键说明

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