📄 cache_fetch.h
字号:
/* * TU Eindhoven * Eindhoven, The Netherlands * * Name : cache_fetch.h * * Author : A.S.Slusarczyk@tue.nl * * Date : * * Function : Cache fetch/store unit * * */#ifndef CACHE_FETCH_H_INCLUDED#define CACHE_FETCH_H_INCLUDED#include <systemc.h>SC_MODULE(CACHE_FETCH){ sc_in<bool> clk; sc_in< sc_bv<32> > din; sc_in< sc_bv<32> > addr; sc_in< bool > fetch, storew, storeb; sc_out< sc_bv<32> > dout; sc_out< bool > busy; sc_out< sc_bv<32> > mem_addr, mem_din; sc_in< sc_bv<32> > mem_dout; sc_out< bool > mem_ww, mem_wb, mem_r; sc_in< bool > mem_rdy; enum state { IDLE, WAIT_MEM, NEXT_WORD, LAST_WORD }; sc_signal< unsigned > current_state, next_state; sc_signal< sc_bv<2> > storing, n_storing; sc_signal< sc_uint<2> > word; sc_signal< bool > word_inc, word_clr; // own data, addr needed, because memory writing can be performed // while cache is read sc_signal< sc_bv<32> > din_reg, addr_reg; sc_out< sc_uint<2> > word_out; sc_out< bool > word_rdy; void update_state(); void logic(); void word_latch(); void store_latch(); SC_CTOR(CACHE_FETCH){ SC_METHOD(update_state); sensitive_pos << clk; SC_METHOD(logic); sensitive << current_state << storing << word << din << din_reg << addr << addr_reg << fetch << storew << storeb << mem_dout << mem_rdy; SC_METHOD(word_latch); sensitive_pos << clk; SC_METHOD(store_latch); sensitive_pos << clk; }};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -