add operand down pipeline chain
[ieee754fpu.git] / src / ieee754 / fpcommon / postcalc.py
1 # IEEE Floating Point Adder (Single Precision)
2 # Copyright (C) Jonathan P Dawson 2013
3 # 2013-12-12
4
5 from nmigen import Signal
6 from ieee754.fpcommon.fpbase import Overflow, FPNumBaseRecord
7 from ieee754.fpcommon.getop import FPBaseData
8
9 class FPAddStage1Data(FPBaseData):
10
11 def __init__(self, width, id_wid, op_wid=None):
12 FPBaseData.__init__(self, 0, width, id_wid, op_wid)
13 self.z = FPNumBaseRecord(width, False)
14 self.out_do_z = Signal(reset_less=True)
15 self.oz = Signal(width, reset_less=True)
16 self.of = Overflow()
17
18 def __iter__(self):
19 yield from self.z
20 yield self.out_do_z
21 yield self.oz
22 yield from self.of
23 yield from FPBaseData.__iter__(self)
24
25 def eq(self, i):
26 ret = [self.z.eq(i.z), self.out_do_z.eq(i.out_do_z), self.oz.eq(i.oz),
27 self.of.eq(i.of),] + FPBaseData.eq(self, i)
28
29 return ret