X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fadd%2Fdual_add_experiment.py;h=7ec479f5affe95dfb5b4e6bd650b9dec248246ed;hb=6bff1a997f3846872cf489c24b5c01426c4dc97c;hp=a70c93356bdf946b426a6acb8a6ddba1e001c69f;hpb=c9caca5583aa11c10adf0902c0546e4c25b7d681;p=ieee754fpu.git diff --git a/src/add/dual_add_experiment.py b/src/add/dual_add_experiment.py index a70c9335..7ec479f5 100644 --- a/src/add/dual_add_experiment.py +++ b/src/add/dual_add_experiment.py @@ -36,6 +36,7 @@ class ALU: self.b = FPOp(width) self.c = FPOp(width) self.z = FPOp(width) + self.int_stb = Signal() self.add1 = FPADD(width) self.add2 = FPADD(width) @@ -51,9 +52,11 @@ class ALU: # join add2 a to c: add2.in_a = c m.d.comb += self.add2.in_a.chain_from(self.c) # join add2 b to add1 z: add2.in_b = add1.out_z - m.d.comb += self.add2.in_b.chain_from(self.add1.out_z) + m.d.comb += self.add2.in_b.chain_inv(self.add1.out_z) # join output from add2 to z: z = add2.out_z m.d.comb += self.z.chain_from(self.add2.out_z) + # get at add1's stb signal + m.d.comb += self.int_stb.eq(self.add1.out_z.stb) #with m.If(self.op): # m.d.comb += self.o.eq(self.sub.o) #with m.Else():