diff options
Diffstat (limited to 'eth/header_ram.v')
-rw-r--r-- | eth/header_ram.v | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/eth/header_ram.v b/eth/header_ram.v new file mode 100644 index 000000000..699f16a4f --- /dev/null +++ b/eth/header_ram.v @@ -0,0 +1,24 @@ + +module header_ram + #(parameter REGNUM=0, + parameter WIDTH=32) + (input clk, + input set_stb, + input [7:0] set_addr, + input [31:0] set_data, + + input [3:0] addr, + output [31:0] q + ); + + reg [WIDTH-1:0] mini_ram[0:15]; + wire write_to_ram = (set_stb & (set_addr[7:4]==REGNUM[7:4])); + wire [3:0] ram_addr = write_to_ram ? set_addr[3:0] : addr; + + always @(posedge clk) + if(write_to_ram) + mini_ram[ram_addr] <= set_data; + + assign q = mini_ram[ram_addr]; + +endmodule // header_ram |