dfi: split phase description
authorFlorent Kermarrec <florent@enjoy-digital.fr>
Wed, 10 Jul 2013 14:42:41 +0000 (16:42 +0200)
committerSebastien Bourdeauducq <sebastien@milkymist.org>
Wed, 10 Jul 2013 17:56:47 +0000 (19:56 +0200)
migen/bus/dfi.py

index 42425b1b455711b86a0b66b2e3d8cdd40ee6cd73..2a7dbd480ea1502710f06bf1a233be3960848d67 100644 (file)
@@ -1,7 +1,7 @@
 from migen.fhdl.std import *
 from migen.genlib.record import *
 
-def phase_description(a, ba, d):
+def phase_cmd_description(a, ba):
        return [
                ("address",                     a,              DIR_M_TO_S),    
                ("bank",                        ba,             DIR_M_TO_S),
@@ -9,17 +9,29 @@ def phase_description(a, ba, d):
                ("cke",                         1,              DIR_M_TO_S),
                ("cs_n",                        1,              DIR_M_TO_S),
                ("ras_n",                       1,              DIR_M_TO_S),
-               ("we_n",                        1,              DIR_M_TO_S),
-               
+               ("we_n",                        1,              DIR_M_TO_S)
+       ]
+
+def phase_wrdata_description(d):
+       return [
                ("wrdata",                      d,              DIR_M_TO_S),
                ("wrdata_en",           1,              DIR_M_TO_S),
                ("wrdata_mask",         d//8,   DIR_M_TO_S),
-               
+       ]
+
+def phase_rddata_description(d):
+       return [
                ("rddata_en",           1,              DIR_M_TO_S),
                ("rddata",                      d,              DIR_S_TO_M),
                ("rddata_valid",        1,              DIR_S_TO_M)
        ]
 
+def phase_description(a, ba, d):
+       r = phase_cmd_description(a, ba)
+       r += phase_wrdata_description(d)
+       r += phase_rddata_description(d)
+       return r
+
 class Interface(Record):
        def __init__(self, a, ba, d, nphases=1):
                layout = [("p"+str(i), phase_description(a, ba, d)) for i in range(nphases)]