From 4a7844404e8e1440652e5ac914d20e0489bdc0c4 Mon Sep 17 00:00:00 2001 From: Anton Blanchard Date: Thu, 14 Jan 2021 10:33:24 +1100 Subject: [PATCH] Forgot to add DFFRAM --- caravel_bram/DFFRAM.v | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 caravel_bram/DFFRAM.v diff --git a/caravel_bram/DFFRAM.v b/caravel_bram/DFFRAM.v new file mode 100644 index 0000000..7603647 --- /dev/null +++ b/caravel_bram/DFFRAM.v @@ -0,0 +1,36 @@ +module DFFRAM #( parameter COLS=1, filename="") +( + CLK, + WE, + EN, + Di, + Do, + A +); + localparam A_WIDTH = 8+$clog2(COLS); + + input wire CLK; + input wire [3:0] WE; + input wire EN; + input wire [31:0] Di; + output reg [31:0] Do; + input wire [(A_WIDTH - 1): 0] A; + + reg [31:0] RAM[(256*COLS)-1 : 0]; + + always @(posedge CLK) + if(EN) begin + Do <= RAM[A]; + if(WE[0]) RAM[A][ 7: 0] <= Di[7:0]; + if(WE[1]) RAM[A][15:8] <= Di[15:8]; + if(WE[2]) RAM[A][23:16] <= Di[23:16]; + if(WE[3]) RAM[A][31:24] <= Di[31:24]; + end + else + Do <= 32'b0; + +initial begin + $readmemh(filename, RAM); +end + +endmodule