sys_clk renamed to sys_pllclk, iopads load from copy of auto-generated
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 9 Jun 2021 19:29:25 +0000 (19:29 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 9 Jun 2021 19:29:25 +0000 (19:29 +0000)
pinouts in json format

experiments9/doDesign.py
experiments9/tsmc_c018/coriolis2/settings.py
experiments9/tsmc_c018/doDesign.py

index 01866e573eafdb0570067e00eb982c9299f5a71e..33db8500d984c3d6cf968d3946f29d5be594682c 100644 (file)
@@ -28,7 +28,7 @@ def scriptMain (**kw):
     coreSize = 65000 
     cwd = os.path.split( os.path.abspath(__file__) )[0]
     ioSpecs = IoSpecs()
-    ioSpecs.loadFromPinmux( '{}/ls180/litex_pinpads.json'.format(cwd) )
+    ioSpecs.loadFromPinmux( '%s/ls180/litex_pinpads.json' % cwd )
     try:
         #helpers.setTraceLevel( 550 )
         cell, editor = plugins.kwParseMain( **kw )
index 3672a3262bd8b54ce95b48e78acbd9b96cd2671e..e06b66bed9522045285d6086c18753e23d124212 100644 (file)
@@ -131,7 +131,7 @@ with overlay.CfgCache(priority=Cfg.Parameter.Priority.UserFile) as cfg:
     cfg.etesian.spaceMargin      = 0.10
     cfg.katana.eventsLimit       = 4000000
     env = af.getEnvironment()
-    env.setCLOCK( '^sys_clk$|^ck|^jtag_tck$' )
+    env.setCLOCK( '^sys_pllclk$|^ck|^jtag_tck$' )
 
 #with overlay.UpdateSession():
 #    createSramBlackbox()
index 30206b63647c64b170ac2ba3a7996231585a1f66..a48b14ffaf3043c875da45a50020df0e122902ce 100644 (file)
@@ -137,11 +137,20 @@ def scriptMain (**kw):
     coreSizeY  = u(56*90.0)
     chipBorder = u(2*214.0 + 8*13.0)
     ioSpecs    = IoSpecs()
-   #pinmuxFile = './non_generated/litex_pinpads.json'
-   #pinmuxFile = './coriolis2/ls180/litex_pinpads.json'
-   #ioSpecs.loadFromPinmux( pinmuxFile )
 
-   # I/O pads, East side.
+    # this should work fine, tested on nsxlib
+    cwd = os.path.split(os.path.abspath(__file__))[0]
+    pinmuxFile = '%s/non_generated/litex_pinpads.json' % cwd
+    # actual contents auto-generated and listed at:
+    # http://libre-soc.org/180nm_Oct2020/ls180/
+    ioSpecs.loadFromPinmux( pinmuxFile )
+
+    # XXX ioPadsSpec created but not used.  saves time, saves errors. see
+    # wiki page for contents: http://libre-soc.org/180nm_Oct2020/ls180/
+    # if *not* using the auto-generated ioSpecs, ioPadsSpec should, really,
+    # be made exactly the same. which is more work.
+
+    # I/O pads, East side.
     ioPadsSpec  = []
     ioPadsSpec += doIoPowerCap( IoPin.EAST|IoPin.A_BEGIN )
     ioPadsSpec += [ (IoPin.EAST, None, 'sdram_cas_n'   , 'sdram_cas_n'   , 'sdram_cas_n' )
@@ -204,8 +213,11 @@ def scriptMain (**kw):
                                     .format('ls180') ))
             sys.exit(1)
         if editor: editor.setCell( cell )
-       #ls180Conf = ChipConf( cell, ioPads=ioSpecs.ioPadsSpec )
-        ls180Conf = ChipConf( cell, ioPads=ioPadsSpec )
+        # use auto-generated (but from non_generated) io pads specs
+        # works fine with soclayout nsxlib, should work perfectly fine
+        # here, too
+        ls180Conf = ChipConf( cell, ioPads=ioSpecs.ioPadsSpec )
+        #ls180Conf = ChipConf( cell, ioPads=ioPadsSpec )
         ls180Conf.cfg.etesian.bloat = 'Flexlib'
         ls180Conf.cfg.etesian.uniformDensity = True
         ls180Conf.cfg.etesian.aspectRatio = 1.0