move FUMemMatchMatrix to mdm module
[soc.git] / src / scoreboard / mdm.py
1 from nmigen.compat.sim import run_simulation
2 from nmigen.cli import verilog, rtlil
3 from nmigen import Module
4
5 from scoreboard.fu_reg_matrix import FURegDepMatrix
6 from scoreboard.addr_match import PartialAddrMatch
7
8 class FUMemMatchMatrix(FURegDepMatrix, PartialAddrMatch):
9 """ implement a FU-Regs overload with memory-address matching
10 """
11 def __init__(self, n_fu, addrbitwid):
12 PartialAddrMatch.__init__(self, n_fu, addrbitwid)
13 FURegDepMatrix.__init__(self, n_fu, n_fu, 1, self.addr_match_o)
14
15 def elaborate(self, platform):
16 m = Module()
17 PartialAddrMatch._elaborate(self, m, platform)
18 FURegDepMatrix._elaborate(self, m, platform)
19
20 return m
21
22