2023-01-04 02:26:45 +00:00
|
|
|
module memory(
|
|
|
|
input clk,
|
2023-02-17 03:25:05 +00:00
|
|
|
input rst,
|
2023-01-04 02:26:45 +00:00
|
|
|
input load,
|
2023-02-17 03:25:05 +00:00
|
|
|
input[7:0] bus,
|
|
|
|
output[7:0] out
|
2023-01-04 02:26:45 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
initial begin
|
|
|
|
$readmemh("program.bin", ram);
|
|
|
|
end
|
|
|
|
|
2023-02-17 03:25:05 +00:00
|
|
|
reg[3:0] mar;
|
2023-01-04 02:26:45 +00:00
|
|
|
reg[7:0] ram[0:15];
|
|
|
|
|
2023-02-17 03:25:05 +00:00
|
|
|
always @(posedge clk, posedge rst) begin
|
|
|
|
if (rst) begin
|
|
|
|
mar <= 4'b0;
|
|
|
|
end else if (load) begin
|
2023-01-04 02:26:45 +00:00
|
|
|
mar <= bus[3:0];
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2023-02-17 03:25:05 +00:00
|
|
|
assign out = ram[mar];
|
2023-01-04 02:26:45 +00:00
|
|
|
|
|
|
|
endmodule
|
|
|
|
|