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

📄 cache_bram.h

📁 改进的基于6个mips核的NOC网络
💻 H
字号:
/* *  TU Eindhoven *  Eindhoven, The Netherlands * *  Name            :   cache_bram.h * *  Author          :   A.S.Slusarczyk@tue.nl * *  Date            :    * *  Function        :   Cache storage in Xilinx BlockRAM *   *	Note: for correct operation, read-before-write functionality is required,  *  i.e. when writing, the _previous_ value of the written cell is output to DO *  this is achieved by setting synthesis attribute on RAMB16_S36_S36 (WRITE_MODE=READ_FIRST) * */#ifndef CACHEMEM_H_INCLUDED#define CACHEMEM_H_INCLUDED#include <systemc.h>#include "cache_dim.h"#include "xlxram.h"SC_MODULE(CACHE_BRAM_WRAP){  sc_in<bool> clk;  sc_in< sc_bv<32> > din;  sc_in< bool > valid_in;  sc_in< sc_bv<TAG_BITS> > tagi;  sc_in< sc_bv<INDEX_BITS> > index;  sc_in< sc_bv<OFFSET_BITS> > offset;  sc_in< bool > we;  sc_in< bool > en;      sc_out< sc_bv<32> > dout;  sc_out< sc_bv<TAG_BITS> > tago;  sc_out< bool > valid;  sc_in<sc_int<32> > DOA0, DOB0, DOA1, DOB1;  sc_in<sc_int<4> > DOPA0, DOPB0, DOPA1, DOPB1;  sc_out<sc_uint<9> > ADDRA0, ADDRB0, ADDRA1, ADDRB1;  sc_out<sc_int<32> > DIA0, DIB0, DIA1, DIB1;  sc_out<sc_int<4> > DIPA0, DIPB0, DIPA1, DIPB1;  sc_out<bool> ENA0, ENB0, ENA1, ENB1;  sc_out<bool> CLKA0, CLKB0, CLKA1, CLKB1;  sc_out<bool> WEA0, WEB0, WEA1, WEB1;  sc_out<bool> SSRA0, SSRB0, SSRA1, SSRB1;  sc_signal< sc_uint<2> > word;    void reg();  void in();  void out();    SC_CTOR(CACHE_BRAM_WRAP)	{	  SC_METHOD(in);	  sensitive << clk << din << valid_in << tagi << index << offset << we << en;	  SC_METHOD(out);	  sensitive << word << DOA0 << DOPA0 << DOB0 << DOPB0 << DOA1 << DOPA1 << DOB1 << DOPB1;	  SC_METHOD(reg);	  sensitive_pos << clk; 	}};SC_MODULE(CACHE_MEMORY){	  sc_in<bool> clk;  sc_in< sc_bv<32> > din;  sc_in< bool > valid_in;  sc_in< sc_bv<TAG_BITS> > tagi;  sc_in< sc_bv<INDEX_BITS> > index;  sc_in< sc_bv<OFFSET_BITS> > offset;  sc_in< bool > we;  sc_in< bool > en;      sc_out< sc_bv<32> > dout;  sc_out< sc_bv<TAG_BITS> > tago;  sc_out< bool > valid;      CACHE_BRAM_WRAP *wrap;  RAMB16_S36_S36 *bram0, *bram1;  sc_signal<sc_int<32> > DOA0, DOB0, DOA1, DOB1;  sc_signal<sc_int<4> > DOPA0, DOPB0, DOPA1, DOPB1;  sc_signal<sc_uint<9> > ADDRA0, ADDRB0, ADDRA1, ADDRB1;  sc_signal<sc_int<32> > DIA0, DIB0, DIA1, DIB1;  sc_signal<sc_int<4> > DIPA0, DIPB0, DIPA1, DIPB1;  sc_signal<bool> ENA0, ENB0, ENA1, ENB1;  sc_signal<bool> CLKA0, CLKB0, CLKA1, CLKB1;  sc_signal<bool> WEA0, WEB0, WEA1, WEB1;  sc_signal<bool> SSRA0, SSRB0, SSRA1, SSRB1;    SC_CTOR(CACHE_MEMORY)	{	  wrap = new CACHE_BRAM_WRAP("wrap");	  bram0 = new RAMB16_S36_S36("bram0");	  bram1 = new RAMB16_S36_S36("bram1");	  	  wrap->clk(clk);	  wrap->din(din);	  wrap->valid_in(valid_in);	  wrap->tagi(tagi);	  wrap->index(index);	  wrap->offset(offset);	  wrap->we(we);	  wrap->en(en);	  wrap->dout(dout);	  wrap->tago(tago);	  wrap->valid(valid);	  	  wrap->DOA0(DOA0); wrap->DOB0(DOB0); wrap->DOA1(DOA1); wrap->DOB1(DOB1);	  wrap->DOPA0(DOPA0); wrap->DOPB0(DOPB0); wrap->DOPA1(DOPA1); wrap->DOPB1(DOPB1);	  wrap->ADDRA0(ADDRA0); wrap->ADDRB0(ADDRB0); wrap->ADDRA1(ADDRA1); wrap->ADDRB1(ADDRB1);	  wrap->DIA0(DIA0); wrap->DIB0(DIB0); wrap->DIA1(DIA1); wrap->DIB1(DIB1);	  wrap->DIPA0(DIPA0); wrap->DIPB0(DIPB0); wrap->DIPA1(DIPA1); wrap->DIPB1(DIPB1);	  wrap->ENA0(ENA0); wrap->ENB0(ENB0); wrap->ENA1(ENA1); wrap->ENB1(ENB1);	  wrap->CLKA0(CLKA0); wrap->CLKB0(CLKB0); wrap->CLKA1(CLKA1); wrap->CLKB1(CLKB1);	  wrap->WEA0(WEA0); wrap->WEB0(WEB0); wrap->WEA1(WEA1); wrap->WEB1(WEB1);	  wrap->SSRA0(SSRA0); wrap->SSRB0(SSRB0); wrap->SSRA1(SSRA1); wrap->SSRB1(SSRB1);	  bram0->DOA(DOA0); bram0->DOB(DOB0); bram1->DOA(DOA1); bram1->DOB(DOB1);	  bram0->DOPA(DOPA0); bram0->DOPB(DOPB0); bram1->DOPA(DOPA1); bram1->DOPB(DOPB1);	  bram0->ADDRA(ADDRA0); bram0->ADDRB(ADDRB0); bram1->ADDRA(ADDRA1); bram1->ADDRB(ADDRB1);	  bram0->DIA(DIA0); bram0->DIB(DIB0); bram1->DIA(DIA1); bram1->DIB(DIB1);	  bram0->DIPA(DIPA0); bram0->DIPB(DIPB0); bram1->DIPA(DIPA1); bram1->DIPB(DIPB1);	  bram0->ENA(ENA0); bram0->ENB(ENB0); bram1->ENA(ENA1); bram1->ENB(ENB1);	  bram0->CLKA(CLKA0); bram0->CLKB(CLKB0); bram1->CLKA(CLKA1); bram1->CLKB(CLKB1);	  bram0->WEA(WEA0); bram0->WEB(WEB0); bram1->WEA(WEA1); bram1->WEB(WEB1);	  bram0->SSRA(SSRA0); bram0->SSRB(SSRB0); bram1->SSRA(SSRA1); bram1->SSRB(SSRB1);	  	}    };#endif

⌨️ 快捷键说明

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