lm32: fix watchpoints
authorMichael Walle <michael@walle.cc>
Thu, 29 Nov 2012 23:19:44 +0000 (00:19 +0100)
committerSebastien Bourdeauducq <sebastien@milkymist.org>
Fri, 30 Nov 2012 14:22:40 +0000 (15:22 +0100)
The wp_match_n vector is off by one. Which results in undefined states, at
least in simulation.

Signed-off-by: Michael Walle <michael@walle.cc>
verilog/lm32/lm32_debug.v

index e7f73cb16e225c75a41d017752e4c78aebc98d5e..5a22a2e0c4496ca56ec51c7316daa006d031d444 100644 (file)
@@ -167,7 +167,7 @@ wire [0:breakpoints-1]bp_match_n;               // Indicates if a h/w instructio
 
 reg [`LM32_WPC_C_RNG] wpc_c[0:watchpoints-1];   // Watchpoint enable
 reg [`LM32_WORD_RNG] wp[0:watchpoints-1];       // Watchpoint address
-wire [0:watchpoints]wp_match_n;               // Indicates if a h/w data watchpoint matched
+wire [0:watchpoints-1]wp_match_n;               // Indicates if a h/w data watchpoint matched
 
 wire debug_csr_write_enable;                    // Debug CSR write enable (from either a wcsr instruction of external debugger)
 wire [`LM32_WORD_RNG] debug_csr_write_data;     // Data to write to debug CSR