Partially fix the tristate IOs on DDR3 RAM
authorJean THOMAS <git0@pub.jeanthomas.me>
Tue, 16 Jun 2020 16:28:11 +0000 (18:28 +0200)
committerJean THOMAS <git0@pub.jeanthomas.me>
Tue, 16 Jun 2020 16:28:11 +0000 (18:28 +0200)
gram/phy/ecp5ddrphy.py

index 7272b2d4a02afcc421165451953ce356da148ebb..87fb6d7b5a438054ad9f03556c28c801e0d94026 100644 (file)
@@ -376,7 +376,13 @@ class ECP5DDRPHY(Peripheral, Elaboratable):
                                 dqs_pattern.postamble),
                          o_Q=dqs_oe_n
                          ),
-                Tristate(pads.dqs_p[i], dqs, ~dqs_oe_n, dqs_i)
+                #Tristate(pads.dqs_p[i], dqs, ~dqs_oe_n, dqs_i)
+            ]
+            m.d.comb += [
+                #TODO: fix the tristate situation below and remove the Tristate instance above
+                #self.pads.dqs.oe[i].eq(~dqs_oe_n),
+                self.pads.dqs.o[i].eq(dqs),
+                self.pads.dqs.i[i].eq(dqs_i),
             ]
 
             for j in range(8*i, 8*(i+1)):
@@ -469,7 +475,13 @@ class ECP5DDRPHY(Peripheral, Elaboratable):
                                     dqs_pattern.postamble),
                              o_Q=dq_oe_n,
                              ),
-                    Tristate(pads.dq[j], dq_o, ~dq_oe_n, dq_i)
+                    #Tristate(pads.dq[j], dq_o, ~dq_oe_n, dq_i)
+                ]
+                m.d.comb += [
+                    #TODO: fix the tristate situation below and remove the Tristate instance above
+                    #self.pads.dq.oe[j].eq(~dq_oe_n),
+                    self.pads.dq.o[j].eq(dq_o),
+                    self.pads.dq.i[j].eq(dq_i),
                 ]
 
         # Read Control Path ------------------------------------------------------------------------