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

Subversion Repositories bluespec-h264

[/] [bluespec-h264/] [trunk/] [release/] [mkMemED_regfile.bsv] - Blame information for rev 84

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

Line No. Rev Author Line
1 84 jamey.hick
//**********************************************************************
2
// Memory for Entropy Decoder
3
//----------------------------------------------------------------------
4
//
5
//
6
//
7
 
8
package mkMemED;
9
 
10
import H264Types::*;
11
import IMemED::*;
12
import RegFile::*;
13
import GetPut::*;
14
import ClientServer::*;
15
import FIFO::*;
16
 
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
   RegFile#(Bit#(index_size),Bit#(data_size)) rfile <- mkRegFileFull();
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
      rfile.upd(addrt,datat);
36
      reqQ.deq();
37
   endrule
38
 
39
   rule reading ( reqQ.first() matches tagged LoadReq .addrt );
40
      respQ.enq( LoadResp rfile.sub(addrt) );
41
      reqQ.deq();
42
   endrule
43
 
44
   interface Server mem_server;
45
      interface Put request  = fifoToPut(reqQ);
46
      interface Get response = fifoToGet(respQ);
47
   endinterface
48
 
49
 
50
endmodule
51
 
52
endpackage

powered by: WebSVN 2.1.0

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