copied over from other project
[debian/gnuradio] / usrp2 / fpga / eth / header_ram.v
1
2 module header_ram
3   #(parameter REGNUM=0,
4     parameter WIDTH=32)
5     (input clk,
6      input set_stb,
7      input [7:0] set_addr,
8      input [31:0] set_data,
9      
10      input [3:0] addr,
11      output [31:0] q 
12      );
13    
14    reg [WIDTH-1:0] mini_ram[0:15];
15    wire            write_to_ram = (set_stb & (set_addr[7:4]==REGNUM[7:4]));
16    wire [3:0]      ram_addr = write_to_ram ? set_addr[3:0] : addr;
17                    
18    always @(posedge clk)
19      if(write_to_ram)
20        mini_ram[ram_addr] <= set_data;
21
22    assign          q = mini_ram[ram_addr];
23
24 endmodule // header_ram