From 2ed47e3d643c17965c5a7f20b647420ccb6c2ee0 Mon Sep 17 00:00:00 2001 From: nino-porcino Date: Wed, 5 Jan 2022 18:23:14 +0100 Subject: [PATCH] make ram module variable in size --- apple-one.qsf | 2 +- rtl/{ram.v => ram.sv} | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) rename rtl/{ram.v => ram.sv} (86%) diff --git a/apple-one.qsf b/apple-one.qsf index 3b42b13..387b61e 100644 --- a/apple-one.qsf +++ b/apple-one.qsf @@ -154,6 +154,7 @@ set_global_assignment -name PRE_FLOW_SCRIPT_FILE "quartus_sh:rtl/build_id.tcl" # end ENTITY(apple1_mist) # ----------------------- +set_global_assignment -name SYSTEMVERILOG_FILE rtl/ram.sv set_global_assignment -name SYSTEMVERILOG_FILE rtl/downloader.sv set_global_assignment -name VERILOG_FILE rtl/display.v set_global_assignment -name VERILOG_FILE rtl/sdram.v @@ -175,7 +176,6 @@ set_global_assignment -name VERILOG_FILE rtl/arlet_6502/ALU.v set_global_assignment -name VERILOG_FILE rtl/arlet_6502/arlet_6502.v set_global_assignment -name VERILOG_FILE rtl/apple1.v set_global_assignment -name VERILOG_FILE rtl/clock.v -set_global_assignment -name VERILOG_FILE rtl/ram.v set_global_assignment -name VERILOG_FILE rtl/rom_basic.v set_global_assignment -name VERILOG_FILE rtl/rom_wozmon.v set_global_assignment -name VERILOG_FILE rtl/vram.v diff --git a/rtl/ram.v b/rtl/ram.sv similarity index 86% rename from rtl/ram.v rename to rtl/ram.sv index 3ee2375..1dbe789 100644 --- a/rtl/ram.v +++ b/rtl/ram.sv @@ -22,24 +22,26 @@ // Date.......: 26-1-2018 // + module ram ( - input clk, // clock signal - input ena, + input clk, // clock signal input [15:0] address, // address bus input w_en, // active high write enable strobe input [7:0] din, // 8-bit data bus (input) output reg [7:0] dout // 8-bit data bus (output) ); - reg [7:0] ram_data[0:49151]; + parameter SIZE = 49152; + + reg [7:0] ram_data[0:SIZE-1]; //initial // $readmemh("roms/ram.hex", ram_data, 0, 8191); - + always @(posedge clk) - begin - dout <= ram_data[address]; - if (w_en) ram_data[address] <= din; + begin + dout <= ram_data[address]; + if (w_en) ram_data[address] <= din; end endmodule