📄 brom4k.cpp
字号:
/* * TU Eindhoven * Eindhoven, The Netherlands * * Name : brom4k.cpp * * Author : A.S.Slusarczyk@tue.nl * * Date : * * Function : Xilinx-Block-RAM-based ROM * * */ #include "brom4k.h"void ROM4KCONV::clock(){ CLK.write(memclk.read());}void ROM4KCONV::in(){ // discard two least significant bits of the address sc_bv<9> a_10_2 = addr.read().range(10,2); sc_uint<9> addr9 = a_10_2; ADDR.write(addr9); DI.write(0); DIP.write(0); EN.write(en.read()[0]==1); WE.write(0); SSR.write(0); }void ROM4KCONV::out(){ sc_bv<DWORD> data; data = DO.read(); dout.write(data); memwait.write(false);}////////////////////////////////////////////////////////////////////////////////////////////////////void DBGBROM4KCONV::in(){ bool clk = CLK.read(); mCLK.write(clk); // discard two least significant bits of the address sc_uint<9> addr = ADDR.read().range(10,2); mADDR.write(addr); sc_int<32> dwr = DI.read(); mDI.write(dwr); mDIP.write( 0 ); bool en = EN.read(), we = WE.read(); mEN.write(en); mWE.write(we); mSSR.write(0);}void DBGBROM4KCONV::out(){ sc_int<32> data; data = mDO.read(); DO.write( data );}////////////////////////////////////////////////////////////////////////////////////////////////////#ifndef VERILOGvoid ROM4K::mem_init(const char *filename){ vector<sc_int<32>* > v; v.push_back(bram->memory); init_memory(&v,ROMSIZE,filename);}void ROM4K::mem_dump(const char *filename){ vector<sc_int<32>* > v; v.push_back(bram->memory); dump_memory(&v,ROMSIZE,filename);}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -