clean up names, also note that readable is true if no writes are pending
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 22 May 2019 13:05:44 +0000 (14:05 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 22 May 2019 13:05:44 +0000 (14:05 +0100)
and writable is true if no reads are pending

src/experiment/score6600.py
src/scoreboard/fu_fu_matrix.py
src/scoreboard/fu_picker_vec.py

index e3a56b7e2162a127fd11de86e8d400cb994a2a8c..38d61c34b93b3fd2a50301025235ce82fea940e3 100644 (file)
@@ -382,7 +382,7 @@ def scoreboard_sim(dut, alusim):
 
     yield dut.int_store_i.eq(0)
 
-    for i in range(100):
+    for i in range(500):
 
         # set random values in the registers
         for i in range(1, dut.n_regs):
@@ -392,7 +392,7 @@ def scoreboard_sim(dut, alusim):
         # create some instructions (some random, some regression tests)
         instrs = []
         if True:
-            for i in range(10):
+            for i in range(20):
                 src1 = randint(1, dut.n_regs-1)
                 src2 = randint(1, dut.n_regs-1)
                 while True:
index d40f70fa8e3e15d2e1a9b671105016d87917cea2..d8eaa8588c42eb8712d463109da2e9ce12c418c8 100644 (file)
@@ -61,8 +61,8 @@ class FUFUDepMatrix(Elaboratable):
             writable.append(fu.writable_o)
 
         # ... and output them from this module (horizontal, width=REGs)
-        m.d.comb += self.readable_o.eq(Cat(*writable))
-        m.d.comb += self.writable_o.eq(Cat(*readable))
+        m.d.comb += self.readable_o.eq(Cat(*readable))
+        m.d.comb += self.writable_o.eq(Cat(*writable))
 
         # ---
         # connect FU Pending
index 7fe5d5a066c2accdde9844777d1712a53aa5de71..d38bbfaebd504cdc475ad03ba9e68e3c2450c92a 100644 (file)
@@ -15,7 +15,12 @@ class FU_Pick_Vec(Elaboratable):
 
     def elaborate(self, platform):
         m = Module()
-        m.d.comb += self.readable_o.eq(~self.rd_pend_i.bool())
-        m.d.comb += self.writable_o.eq(~self.wr_pend_i.bool())
+
+        # Readable if there are no writes pending
+        m.d.comb += self.readable_o.eq(~self.wr_pend_i.bool())
+
+        # Writable if there are no reads pending
+        m.d.comb += self.writable_o.eq(~self.rd_pend_i.bool())
+
         return m