From: Luke Kenneth Casson Leighton Date: Wed, 19 Jun 2019 05:47:01 +0000 (+0100) Subject: sort out address match global nomatch signal X-Git-Tag: div_pipeline~1837 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=322f88d4f16f3d90443f0d821b8d6f97e96b98d5;p=soc.git sort out address match global nomatch signal --- diff --git a/src/experiment/score6600.py b/src/experiment/score6600.py index 8a4efae9..2d668578 100644 --- a/src/experiment/score6600.py +++ b/src/experiment/score6600.py @@ -1146,7 +1146,7 @@ def scoreboard_sim(dut, alusim): instrs = create_random_ops(dut, 15, True, 4) if True: # LD/ST test (with immediate) - instrs.append( (1, 2, 2, 0x30, 1, 1, (0, 0)) ) + instrs.append( (1, 2, 0, 0x20, 1, 1, (0, 0)) ) #instrs.append( (1, 2, 7, 0x10, 1, 1, (0, 0)) ) if False: diff --git a/src/scoreboard/addr_match.py b/src/scoreboard/addr_match.py index 6c4f6832..9d8e08e4 100644 --- a/src/scoreboard/addr_match.py +++ b/src/scoreboard/addr_match.py @@ -74,15 +74,15 @@ class PartialAddrMatch(Elaboratable): # is there a clash, yes/no matchgrp = [] for i in range(self.n_adr): - nomatch = [] + match = [] for j in range(self.n_adr): if i == j: - nomatch.append(Const(1)) # don't match against self! + match.append(Const(0)) # don't match against self! else: - nomatch.append(addrs_r[i] != addrs_r[j]) - matchgrp.append((~Cat(*nomatch)).bool()) # true if all matches fail - comb += self.addr_nomatch_o[i].eq(Cat(*nomatch) & l.q) - comb += self.addr_nomatch_o.eq((~Cat(*matchgrp)) & l.q) + match.append(addrs_r[i] == addrs_r[j]) + comb += self.addr_nomatch_a_o[i].eq(~Cat(*match) & l.q) + matchgrp.append(self.addr_nomatch_a_o[i] == l.q) + comb += self.addr_nomatch_o.eq(Cat(*matchgrp) & l.q) return m