dependency matrix (Reg to FU)
[ieee754fpu.git] / src / scoreboard / reg_select.py
1 from nmigen import Elaboratable, Module, Signal
2
3
4 class Reg_Rsv(Elaboratable):
5 """ these are allocated per-Register (vertically),
6 and are each of length fu_count
7 """
8 def __init__(self, fu_count):
9 self.fu_count = fu_count
10 self.dest_rsel_i = Signal(fu_count, reset_less=True)
11 self.src1_rsel_i = Signal(fu_count, reset_less=True)
12 self.src2_rsel_i = Signal(fu_count, reset_less=True)
13 self.dest_rsel_o = Signal(reset_less=True)
14 self.src1_rsel_o = Signal(reset_less=True)
15 self.src2_rsel_o = Signal(reset_less=True)
16
17 def elaborate(self, platform):
18 m = Module()
19 m.d.comb += self.dest_rsel_o.eq(self.dest_rsel_i.bool())
20 m.d.comb += self.src1_rsel_o.eq(self.src1_rsel_i.bool())
21 m.d.comb += self.src2_rsel_o.eq(self.src2_rsel_i.bool())
22 return m
23