|  | module serv_rf_ram | 
|  | #(parameter width=0, | 
|  | parameter csr_regs=4, | 
|  | parameter depth=32*(32+csr_regs)/width) | 
|  | (input wire i_clk, | 
|  | input wire [$clog2(depth)-1:0] i_waddr, | 
|  | input wire [width-1:0] 	   i_wdata, | 
|  | input wire 			   i_wen, | 
|  | input wire [$clog2(depth)-1:0] i_raddr, | 
|  | output reg [width-1:0] 	   o_rdata); | 
|  |  | 
|  | reg [width-1:0] 		   memory [0:depth-1]; | 
|  |  | 
|  | always @(posedge i_clk) begin | 
|  | if (i_wen) | 
|  | memory[i_waddr] <= i_wdata; | 
|  | o_rdata <= memory[i_raddr]; | 
|  | end | 
|  |  | 
|  | `ifdef SERV_CLEAR_RAM | 
|  | integer i; | 
|  | initial | 
|  | for (i=0;i<depth;i=i+1) | 
|  | memory[i] = {width{1'd0}}; | 
|  | `endif | 
|  | endmodule |