//----------------------------------------------------- // Design Name : dpram_2048x8 // File Name : dpram_2048x8.v // Function : Dual port RAM 2048 x 8bit // Coder : Xifan Tang //----------------------------------------------------- module dpram_2048x8 ( input clk, input wen, input ren, input[0:10] waddr, input[0:10] raddr, input[0:7] data_in, output[0:7] data_out ); dpram_2048x8_core memory_0 ( .wclk (clk), .wen (wen), .waddr (waddr), .data_in (data_in), .rclk (clk), .ren (ren), .raddr (raddr), .data_out (data_out) ); endmodule //----------------------------------------------------- // Design Name : dpram_2048x8_core // File Name : dpram_2048x8.v // Function : Core module of dual port RAM 2048 addresses x 8 bit // Coder : Xifan tang //----------------------------------------------------- module dpram_2048x8_core ( input wclk, input wen, input[0:10] waddr, input[0:7] data_in, input rclk, input ren, input[0:10] raddr, output[0:7] data_out ); reg[0:7] ram[0:2047]; reg[0:7] internal; assign data_out = internal; always @(posedge wclk) begin if(wen) begin ram[waddr] <= data_in; end end always @(posedge rclk) begin if(ren) begin internal <= ram[raddr]; end end endmodule