Convert normalise_name to new function signature throughout.
diff --git a/fuzzers/ECP5/001-plc2_routing/fuzzer.py b/fuzzers/ECP5/001-plc2_routing/fuzzer.py
index 14ebcaf..fde5c4a 100644
--- a/fuzzers/ECP5/001-plc2_routing/fuzzer.py
+++ b/fuzzers/ECP5/001-plc2_routing/fuzzer.py
@@ -16,7 +16,7 @@
     def nn_filter(net, netnames):
         """ Match nets that are: in the tile according to Tcl, global nets, or span-1 nets that are accidentally
         left out by Tcl"""
-        return net in netnames or nets.is_global(net) or span1_re.match(net)
+        return net in netnames or nets.ecp5.is_global(net) or span1_re.match(net)
 
     interconnect.fuzz_interconnect(config=cfg, location=(19, 33),
                                    netname_predicate=nn_filter,
diff --git a/fuzzers/ECP5/030-cib_routing/fuzzer.py b/fuzzers/ECP5/030-cib_routing/fuzzer.py
index 3679b98..1feb23d 100644
--- a/fuzzers/ECP5/030-cib_routing/fuzzer.py
+++ b/fuzzers/ECP5/030-cib_routing/fuzzer.py
@@ -16,7 +16,7 @@
     def nn_filter(net, netnames):
         """ Match nets that are: in the tile according to Tcl, global nets, or span-1 nets that are accidentally
         left out by Tcl"""
-        return ((net in netnames or span1_re.match(net)) and nets.is_cib(net)) or nets.is_global(net)
+        return ((net in netnames or span1_re.match(net)) and nets.is_cib(net)) or nets.ecp5.is_global(net)
 
     def fc_filter(arc, netnames):
         """ Ignore connections between two general routing nets. These are edge buffers which vary based on location
diff --git a/fuzzers/ECP5/031-cib_lr_routing/fuzzer.py b/fuzzers/ECP5/031-cib_lr_routing/fuzzer.py
index cb84abc..7802ff1 100644
--- a/fuzzers/ECP5/031-cib_lr_routing/fuzzer.py
+++ b/fuzzers/ECP5/031-cib_lr_routing/fuzzer.py
@@ -16,7 +16,7 @@
     def nn_filter(net, netnames):
         """ Match nets that are: in the tile according to Tcl, global nets, or span-1 nets that are accidentally
         left out by Tcl"""
-        return ((net in netnames or span1_re.match(net)) and nets.is_cib(net)) or nets.is_global(net)
+        return ((net in netnames or span1_re.match(net)) and nets.is_cib(net)) or nets.ecp5.is_global(net)
 
     def fc_filter(arc, netnames):
         """ Ignore connections between two general routing nets. These are edge buffers which vary based on location
diff --git a/tools/connectivity.py b/tools/connectivity.py
index 04b53b7..2cd306e 100755
--- a/tools/connectivity.py
+++ b/tools/connectivity.py
@@ -66,7 +66,7 @@
             if net.startswith("G_"):
                 tnet = net
             else:
-                tnet = nets.normalise_name(chip_size, tname, net, bias)
+                tnet = nets.normalise_name(chip_size, tname, net, c.info.family)
             tdb = pytrellis.get_tile_bitdata(pytrellis.TileLocator(c.info.family, c.info.name, tinf.type))
             for sink in tdb.get_sinks():
                 mux = tdb.get_mux_data_for_sink(sink)
diff --git a/tools/demobuilder/route.py b/tools/demobuilder/route.py
index 36975f5..c6012e3 100755
--- a/tools/demobuilder/route.py
+++ b/tools/demobuilder/route.py
@@ -50,7 +50,7 @@
                     if wire.startswith("G_"):
                         twire = wire
                     else:
-                        twire = nets.normalise_name(self.chip_size, tname, wire, self.bias)
+                        twire = nets.normalise_name(self.chip_size, tname, wire, self.chip.info.family)
 
                     tdb = pytrellis.get_tile_bitdata(
                         pytrellis.TileLocator(self.chip.info.family, self.chip.info.name, tinf.type))
@@ -74,8 +74,8 @@
         else:
             self.net_to_wire[net] = {dest_wire}
         if configurable and not exists:
-            src_wirename = nets.normalise_name(self.chip_size, tile, uphill_wire, self.bias)
-            sink_wirename = nets.normalise_name(self.chip_size, tile, dest_wire, self.bias)
+            src_wirename = nets.normalise_name(self.chip_size, tile, uphill_wire, self.chip.info.family)
+            sink_wirename = nets.normalise_name(self.chip_size, tile, dest_wire, self.chip.info.family)
             config[tile].add_arc(sink_wirename, src_wirename)
 
     # Bind a net to a wire (used for port connections)
diff --git a/util/fuzz/interconnect.py b/util/fuzz/interconnect.py
index 5774f78..0d23ee4 100644
--- a/util/fuzz/interconnect.py
+++ b/util/fuzz/interconnect.py
@@ -28,8 +28,7 @@
                       func_cib=False,
                       fc_prefix="",
                       nonlocal_prefix="",
-                      netdir_override=dict(),
-                      bias=0):
+                      netdir_override=dict()):
     """
     The fully-automatic interconnect fuzzer function. This performs the fuzzing and updates the database with the
     results. It is expected that PyTrellis has already been initialised with the database prior to this function being
@@ -54,8 +53,6 @@
     only consulted if ispTcl returns "---" for the direction of a given net. This dictionary overrides
     func_cib=False for the nets in question.
     :param nonlocal_prefix: add a prefix to non-global and non-neighbour wires for device-specific fuzzers
-    :param bias: Apply offset correction for n-based column numbering, n > 0. Used used by Lattice
-    on certain families.
     """
     netdata = isptcl.get_wires_at_position(config.ncd_prf, location)
     netnames = [x[0] for x in netdata]
@@ -75,7 +72,7 @@
     if func_cib and not netname_filter_union:
         netnames = list(filter(lambda x: netname_predicate(x, netnames), netnames))
     fuzz_interconnect_with_netnames(config, netnames, netname_predicate, arc_predicate, fc_predicate, func_cib,
-                                    netname_filter_union, False, fc_prefix, nonlocal_prefix, netdir_override, bias)
+                                    netname_filter_union, False, fc_prefix, nonlocal_prefix, netdir_override)
 
 
 def fuzz_interconnect_with_netnames(
@@ -89,8 +86,7 @@
         full_mux_style=False,
         fc_prefix="",
         nonlocal_prefix="",
-        netdir_override=dict(),
-        bias=0):
+        netdir_override=dict()):
     """
     Fuzz interconnect given a list of netnames to analyse. Arcs associated these netnames will be found using the Tcl
     API and bits identified as described above.
@@ -110,8 +106,6 @@
     specified as "-->" in ispTcl), or drive other nets (`"driver"`, specified as "<--" in ispTcl). The dictionary is
     only consulted if ispTcl returns "---" for the direction of a given net. This dictionary overrides
     bidir=False for the nets in question.
-    :param bias: Apply offset correction for n-based column numbering, n > 0. Used used by Lattice
-    on certain families.
     """
     net_arcs = isptcl.get_arcs_on_wires(config.ncd_prf, netnames, not bidir, netdir_override)
     baseline_bitf = config.build_design(config.ncl, {}, "base_")
@@ -121,7 +115,7 @@
     max_col = baseline_chip.get_max_col()
 
     def normalise_arc_in_tile(tile, arc):
-        return tuple(nets.normalise_name((max_row, max_col), tile, x, bias) for x in arc)
+        return tuple(nets.normalise_name((max_row, max_col), tile, x, config.family) for x in arc)
 
     def add_nonlocal_prefix(wire):
         if wire.startswith("G_"):