Add io chip select

This commit is contained in:
Byron Lathi
2022-03-05 23:15:50 -06:00
parent 0ad18720bb
commit 16b50dcca7
2 changed files with 11 additions and 4 deletions

View File

@@ -1,10 +1,12 @@
module addr_decode( module addr_decode(
input logic [15:0] addr, input logic [15:0] addr,
output logic ram_cs, output logic ram_cs,
output logic rom_cs output logic rom_cs,
output logic io_cs
); );
assign rom_cs = addr[15]; assign rom_cs = addr[15];
assign ram_cs = ~addr[15]; assign ram_cs = ~addr[15] && addr < 16'h7ff0;
assign io_cs = addr >= 16'h7ff0 && addr < 16'h8000;
endmodule endmodule

View File

@@ -7,7 +7,7 @@ timeprecision 1ns;
logic [15:0] addr; logic [15:0] addr;
logic ram_cs; logic ram_cs;
logic rom_cs; logic rom_cs;
logic io_cs;
addr_decode dut(.*); addr_decode dut(.*);
@@ -16,11 +16,16 @@ initial begin : TEST_VECTORS
for (int i = 0; i < 2**16; i++) begin for (int i = 0; i < 2**16; i++) begin
addr <= i; addr <= i;
#1 #1
if (i < 2**15) begin if (i < 16'h7ff0) begin
assert(ram_cs == '1) assert(ram_cs == '1)
else else
$error("Bad CS! addr=%4x should have ram_cs!", addr); $error("Bad CS! addr=%4x should have ram_cs!", addr);
end end
if (i >= 16'h7ff0 && i < 16'h8000) begin
assert(io_cs == '1)
else
$error("Bad CS! addr=%4x should have io_cs!", addr);
end
if (i >= 2**15) begin if (i >= 2**15) begin
assert(rom_cs == '1) assert(rom_cs == '1)
else else