sort out JSON function missing and get mapping working
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sun, 14 Nov 2021 19:19:26 +0000 (19:19 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sun, 14 Nov 2021 19:19:26 +0000 (19:19 +0000)
src/pinmux_generator.py
src/spec/ifaceprint.py

index 0cf35b5d540bf7429037786b8d2aed148b635d45..febc722132d1b19734993f85a373373e220b84c4 100644 (file)
@@ -98,17 +98,21 @@ if __name__ == '__main__':
                     specgen(of, output_dir, pinout,
                             bankspec, ps.muxwidths, pin_spec, fixedpins,
                             ps.fastbus)
-                pm, chip = module.pinparse(ps, pinspec)
-                litexmap = ps.pywrite(pyf, pm)
-                jchip = json.dumps(chip)
-                with open("%s/litex_pinpads.json" % pinspec, "w") as f:
-                    f.write(jchip)
-                # TODO: fix create_sv to allow different packages (and die images)                
-                # Test with different package size, once working 'create_sv' will be improved                
-                if pinspec == "ngi_router":
-                    temp_create_sv("%s/%s.svg" % (pinspec, pinspec), chip)                
-                else:
-                    create_sv("%s/%s.svg" % (pinspec, pinspec), chip)
+                if hasattr(module, "pinparse"):
+                    pm, chip = module.pinparse(ps, pinspec)
+                    litexmap = ps.pywrite(pyf, pm)
+                    jchip = json.dumps(chip)
+                    with open("%s/litex_pinpads.json" % pinspec, "w") as f:
+                        f.write(jchip)
+                    # octavius: please keep line-lengths to below 80 chars
+                    # TODO: fix create_sv to allow different packages
+                    # (and die images)
+                    # Test with different package size, once working
+                    # 'create_sv' will be improved
+                    if pinspec == "ngi_router":
+                        temp_create_sv("%s/%s.svg" % (pinspec, pinspec), chip)
+                    else:
+                        create_sv("%s/%s.svg" % (pinspec, pinspec), chip)
     else:
         if output_type == 'bsv':
             from bsv.pinmux_generator import pinmuxgen as gentypes
index 87e89d5faff50fe9e5631efb8b3dc8da96fa3c6d..51f622a8aaf24c9ad1d40cf9ebf5d3ee78a7e761 100644 (file)
@@ -882,8 +882,10 @@ def display_fns(of, bankspec, pins, function_names):
     for fname in fnidx:
         fnbase = find_fn(fname, fn_names)
         #fblower = fnbase.lower()
-        assert fnbase in function_names, "fn %s not in descriptions %s" % \
-            (fname, str(function_names.keys()))
+        if fnbase not in function_names:
+            print ("fn %s not in descriptions %s" % \
+                (fname, str(function_names.keys())))
+            continue
         #print "name", fname, fnbase
         if fnbase != current_fn:
             if current_fn is not None: