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

📄 benif.h

📁 改进的基于6个mips核的NOC网络
💻 H
字号:
#include <systemc.h>#include "mmips.h"SC_MODULE(BENIF_WRAPPER){  sc_in< bool > IFCLK;  sc_in< bool > WRITE_STROBE;  sc_in< bool > READ_STROBE;  sc_in< bool > DMA_ENABLE;  sc_in< bool > DMA_DIRECTION;  sc_in< bool > DMA_RDY;  sc_in< bool > DMA_DATA_AVAILABLE;  sc_in< bool > RST;  sc_in< bool > SYNC_RESET;  sc_in< bool > DMA_RESET;  sc_in< sc_uint<31> > ADDRESS;  sc_inout_rv< 32 > DATA;  sc_inout_rv< 32 > DMA_DATA;  sc_in< sc_uint<32> > COUNT;  sc_in< sc_uint<4> > DMA_SEL;  sc_out< bool > DMA_WEN;  sc_out< bool > DMA_REN;  sc_out< bool > INT;  sc_out< sc_bv<4> > LEDS;  sc_out<sc_uint<32> > memADDR;  sc_out<sc_int<32> > memDI;  sc_out<bool> memEN;  sc_out<bool> memCLK;  sc_out<bool> memRST;  sc_in<sc_int<32> > ramDO,romDO;  sc_out<bool> ramWE,romWE;  sc_in<sc_bv<32> > pc;  sc_out<bool> enable;  sc_out<bool> reset;  sc_signal< sc_uint<32> > addr;  sc_signal< sc_uint<32> > memsel;  sc_signal< sc_uint<25> > cnt;    sc_signal< sc_uint<32> > control;    void logic();  void count();  void register_write();  void register_read();  void memory_input();    SC_CTOR(BENIF_WRAPPER)  {    SC_METHOD(logic);    sensitive << IFCLK << WRITE_STROBE << READ_STROBE << DMA_ENABLE               << DMA_DIRECTION << DMA_RDY << DMA_DATA_AVAILABLE              << RST << SYNC_RESET << DMA_RESET              << ADDRESS << DATA              << DMA_DATA << COUNT << DMA_SEL              << control << addr << memsel << cnt;    SC_METHOD(memory_input);    sensitive << IFCLK << DATA << addr << memsel << ADDRESS << WRITE_STROBE << control;    SC_METHOD(count);    sensitive_pos << IFCLK << RST;        SC_METHOD(register_write);    sensitive_pos << IFCLK << RST;        SC_METHOD(register_read);    sensitive << READ_STROBE << ADDRESS << addr << memsel;	sensitive << pc;	sensitive << ramDO << romDO;  }};SC_MODULE(BENIF){  mMIPS *mmips;  BENIF_WRAPPER *wrapper;    sc_in<bool>   MIPSCLK;    sc_in< bool > IFCLK;  sc_in< bool > WRITE_STROBE;  sc_in< bool > READ_STROBE;  sc_in< bool > DMA_ENABLE;  sc_in< bool > DMA_DIRECTION;  sc_in< bool > DMA_RDY;  sc_in< bool > DMA_DATA_AVAILABLE;  sc_in< bool > RST;  sc_in< bool > SYNC_RESET;  sc_in< bool > DMA_RESET;  sc_in< sc_uint<31> > ADDRESS;  sc_inout_rv< 32 > DATA;  sc_inout_rv< 32 > DMA_DATA;  sc_in< sc_uint<32> > COUNT;  sc_in< sc_uint<4> > DMA_SEL;  sc_out< bool > DMA_WEN;  sc_out< bool > DMA_REN;  sc_out< bool > INT;  sc_out< sc_bv<4> > LEDS;  sc_signal<sc_uint<32> > memADDR;  sc_signal<sc_int<32> > memDI;  sc_signal<bool> memEN;  sc_signal<bool> memCLK;  sc_signal<bool> memRST;  sc_signal<sc_int<32> > ramDO,romDO;  sc_signal<bool> ramWE,romWE;  sc_signal<sc_bv<32> > pc;  sc_signal<bool> enable;  sc_signal<bool> reset;    // unused device interface  sc_signal< sc_bv<DWORD> > dev_dout;  sc_signal< sc_bv<DWORD> > dev_din;  sc_signal< bool > dev_r, dev_w;  sc_signal< bool > dev_rdyr, dev_rdyw;  sc_signal< bool > dev_wdata, dev_waddr;  sc_signal<bool> dev_send_eop;  sc_signal<bool> dev_rcv_eop;  SC_CTOR(BENIF)  {    mmips = new mMIPS("mMIPS");    wrapper = new BENIF_WRAPPER("wrapper");    wrapper->reset(reset);    wrapper->enable(enable);    wrapper->IFCLK(IFCLK);    wrapper->WRITE_STROBE(WRITE_STROBE);    wrapper->READ_STROBE(READ_STROBE);    wrapper->DMA_ENABLE(DMA_ENABLE);    wrapper->DMA_DIRECTION(DMA_DIRECTION);    wrapper->DMA_RDY(DMA_RDY);    wrapper->DMA_DATA_AVAILABLE(DMA_DATA_AVAILABLE);    wrapper->RST(RST);    wrapper->SYNC_RESET(SYNC_RESET);    wrapper->DMA_RESET(DMA_RESET);    wrapper->ADDRESS(ADDRESS);    wrapper->DATA(DATA);    wrapper->DMA_DATA(DMA_DATA);    wrapper->COUNT(COUNT);    wrapper->DMA_SEL(DMA_SEL);    wrapper->DMA_WEN(DMA_WEN);    wrapper->DMA_REN(DMA_REN);    wrapper->INT(INT);    wrapper->LEDS(LEDS);    wrapper->memADDR(memADDR);    wrapper->memDI(memDI);    wrapper->memEN(memEN);    wrapper->memCLK(memCLK);    wrapper->memRST(memRST);    wrapper->ramDO(ramDO);    wrapper->ramWE(ramWE);    wrapper->romDO(romDO);    wrapper->romWE(romWE);	mmips->clock(MIPSCLK); mmips->reset(reset); mmips->enable(enable);    mmips->ramADDR(memADDR); mmips->romADDR(memADDR);    mmips->ramDI(memDI); mmips->romDI(memDI);    mmips->ramEN(memEN); mmips->romEN(memEN);    mmips->ramCLK(memCLK); mmips->romCLK(memCLK);    mmips->ramRST(memRST); mmips->romRST(memRST);    mmips->ramDO(ramDO);    mmips->ramWE(ramWE);    mmips->romDO(romDO);    mmips->romWE(romWE);    mmips->bus_pc(pc); wrapper->pc(pc);    	mmips->dev_dout(dev_dout);	mmips->dev_din(dev_din);	mmips->dev_r(dev_r);	mmips->dev_w(dev_w);	mmips->dev_rdyr(dev_rdyr);	mmips->dev_rdyw(dev_rdyw);	mmips->dev_wdata(dev_wdata);	mmips->dev_waddr(dev_waddr);	mmips->dev_send_eop(dev_send_eop);	mmips->dev_rcv_eop(dev_rcv_eop);  }};

⌨️ 快捷键说明

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