From bb5f2c8d8c6e1bd74fea8c5e55659e050e69bd5b Mon Sep 17 00:00:00 2001 From: Graham Edgecombe Date: Wed, 6 Dec 2017 22:10:30 +0000 Subject: [PATCH] Fix ram_sel/leds_sel decoding Wildcards can only be used in casez statements - not in if statements. --- top.sv | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/top.sv b/top.sv index a6abb97..fb0e94f 100644 --- a/top.sv +++ b/top.sv @@ -80,7 +80,17 @@ module top ( logic [31:0] mem_read_value = ram_read_value | leds_read_value; logic [31:0] mem_write_value; - logic ram_sel = mem_address[31:0] == 32'b00000000_00000000_????????_????????; + always_comb begin + ram_sel = 0; + leds_sel = 0; + + casez (mem_address) + 32'b00000000_00000000_????????_????????: ram_sel = 1; + 32'b00000000_00000001_00000000_000000??: leds_sel = 1; + endcase + end + + logic ram_sel; logic [31:0] ram_read_value; ram ram ( @@ -98,7 +108,7 @@ module top ( .read_value_out(ram_read_value) ); - logic leds_sel = mem_address[31:0] == 32'b00000000_00000001_00000000_000000??; + logic leds_sel; logic [31:0] leds_read_value = {24'b0, leds_sel ? leds : 8'b0}; always_ff @(posedge pll_clk) begin