continuing experimentation
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Mon, 22 Jul 2019 13:28:21 +0000 (14:28 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Mon, 22 Jul 2019 13:28:21 +0000 (14:28 +0100)
src/ieee754/div_rem_sqrt_rsqrt/div_pipe.py
src/ieee754/fpcommon/test/fpmux.py
src/ieee754/fpdiv/pipeline.py

index a885ae048821ee2ef2f226ed5644c66ad0fb6657..899f4f5e1d4c590de92ba2024a183d12740a48cf 100644 (file)
@@ -117,10 +117,10 @@ class DivPipeBaseStage:
     """ Base Mix-in for DivPipe*Stage. """
 
     def _elaborate(self, m, platform):
+        m.d.comb += self.o.ctx.eq(self.i.ctx)
         m.d.comb += self.o.z.eq(self.i.z)
         m.d.comb += self.o.oz.eq(self.i.oz)
         m.d.comb += self.o.out_do_z.eq(self.i.out_do_z)
-        m.d.comb += self.o.ctx.eq(self.i.ctx)
 
 
 class DivPipeSetupStage(DivPipeBaseStage, DivPipeCoreSetupStage):
index 631f2fc2af5cde1e95de7d5a1890f9a113e4f3fd..92d18e979d6e3aa1d49a660d0d0f1ab11dab0af1 100644 (file)
@@ -168,8 +168,9 @@ def create_random(num_rows, width, single_op=False, n_vals=10):
                 op1 = randint(0, (1<<width)-1)
                 op2 = randint(0, (1<<width)-1)
 
-                op1 = 0x4000
                 op2 = 0x4000
+                op1 = 0x4300
+                #op2 = 0x3c00
                 vals.append((op1, op2,))
     return vals
 
index 1b3a0b336346e4266905295e8ef34e6be40f6fcf..c6d6ca10a76cd8d0e1aee11e469e1fbf3e49c563 100644 (file)
@@ -81,7 +81,7 @@ class FPDIVBasePipe(ControlBase):
         ControlBase.__init__(self)
 
         pipechain = []
-        max_n_comb_stages = 2  # TODO (depends on how many RS's we want)
+        max_n_comb_stages = 3  # TODO (depends on how many RS's we want)
         # to which the answer: "as few as possible"
         # is required.  too many ReservationStations
         # means "big problems".
@@ -138,6 +138,7 @@ class FPDIVBasePipe(ControlBase):
 def roundup(x, mod):
     return x if x % mod == 0 else x + mod - x % mod
 
+
 class FPDIVMuxInOut(ReservationStations):
     """ Reservation-Station version of FPDIV pipeline.
 
@@ -151,7 +152,7 @@ class FPDIVMuxInOut(ReservationStations):
                    then be used to change the behaviour of the pipeline.
     """
 
-    def __init__(self, width, num_rows, op_wid=0):
+    def __init__(self, width, num_rows, op_wid=1):
         self.id_wid = num_bits(width)
         self.pspec = PipelineSpec(width, self.id_wid, op_wid)
         # get the standard mantissa width, store in the pspec HOWEVER...