mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 13:29:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			22 lines
		
	
	
	
		
			540 B
		
	
	
	
		
			Verilog
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
	
		
			540 B
		
	
	
	
		
			Verilog
		
	
	
	
	
	
module top (clk, write_enable, read_enable, write_data, addr, read_data);
 | 
						|
parameter DATA_WIDTH = 8;
 | 
						|
parameter ADDR_WIDTH = 8;
 | 
						|
parameter SKIP_RDEN = 1;
 | 
						|
 | 
						|
input clk;
 | 
						|
input write_enable, read_enable;
 | 
						|
input [DATA_WIDTH - 1 : 0] write_data;
 | 
						|
input [ADDR_WIDTH - 1 : 0] addr; 
 | 
						|
output [DATA_WIDTH - 1 : 0] read_data;
 | 
						|
 | 
						|
(* ram_style = "huge" *)
 | 
						|
reg [DATA_WIDTH - 1 : 0] mem [2**ADDR_WIDTH - 1 : 0];
 | 
						|
 | 
						|
always @(posedge clk) begin
 | 
						|
	if (write_enable)
 | 
						|
		mem[addr] <= write_data;
 | 
						|
	else if (SKIP_RDEN || read_enable)
 | 
						|
		read_data <= mem[addr];
 | 
						|
end
 | 
						|
 | 
						|
endmodule
 |