mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 19:52:31 +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
 |