OpenCores
URL https://opencores.org/ocsvn/bluespec-h264/bluespec-h264/trunk

Subversion Repositories bluespec-h264

[/] [bluespec-h264/] [trunk/] [src_fpga/] [mkMemED.bsv] - Blame information for rev 3

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 jamey.hick
//**********************************************************************
2
// Memory for Entropy Decoder
3
//----------------------------------------------------------------------
4
//
5
//
6
//
7
 
8
package mkMemED;
9
 
10
import H264Types::*;
11
import IMemED::*;
12
import GetPut::*;
13
import ClientServer::*;
14
import FIFO::*;
15
import BRAM::*;
16
import BlueBRAM::*;
17
 
18
//----------------------------------------------------------------------
19
// Main module
20
//----------------------------------------------------------------------
21
 
22
module mkMemED(IMemED#(index_size,data_size))
23
   provisos (Bits#(MemReq#(index_size,data_size),mReqLen),
24
             Bits#(MemResp#(data_size),mRespLen));
25
 
26
  //-----------------------------------------------------------
27
  // State
28
 
29
   BlueBRAM#(Bit#(index_size),Bit#(data_size)) bramfile <- mkBlueBRAM_Full();
30
 
31
   FIFO#(MemReq#(index_size,data_size)) reqQ  <- mkFIFO();
32
   FIFO#(MemResp#(data_size))  respQ <- mkFIFO();
33
 
34
   rule storing ( reqQ.first() matches tagged StoreReq { addr:.addrt,data:.datat} );
35
      bramfile.write(addrt,datat);
36
      reqQ.deq();
37
   endrule
38
 
39
   rule reading ( reqQ.first() matches tagged LoadReq .addrt );
40
      bramfile.read_req(addrt);
41
      reqQ.deq();
42
   endrule
43
 
44
   rule readresp ( True );
45
      let temp <- bramfile.read_resp;
46
      respQ.enq( LoadResp temp );
47
   endrule
48
 
49
   interface Server mem_server;
50
      interface Put request  = fifoToPut(reqQ);
51
      interface Get response = fifoToGet(respQ);
52
   endinterface
53
 
54
 
55
endmodule
56
 
57
endpackage

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.