[Cryptech-Commits] [user/ft/alpha_to_kicad] 04/15: more labels

git at cryptech.is git at cryptech.is
Wed May 9 15:07:51 UTC 2018


This is an automated email from the git hooks/post-receive script.

fredrik at thulin.net pushed a commit to branch master
in repository user/ft/alpha_to_kicad.

commit b5e42680c672b437d59cfad0667993604d75df9a
Author: Fredrik Thulin <fredrik at thulin.net>
AuthorDate: Tue May 8 13:30:00 2018 +0200

    more labels
---
 fix-labels.py | 565 ++++++++++++++++++++++++++++++----------------------------
 1 file changed, 291 insertions(+), 274 deletions(-)

diff --git a/fix-labels.py b/fix-labels.py
index 22faabb..9c3b645 100755
--- a/fix-labels.py
+++ b/fix-labels.py
@@ -14,9 +14,9 @@ import pcbnew
 
 labels = {
     'rev02_01.sch': {
-        '15V_LDO_ENABLE': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9000, 'y': 3100, 'ori': 0},],
-        'FPGA_ENTROPY_DISABLE': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5450, 'y': 3550, 'ori': 0},],
-        'VCC_5V0': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 11800, 'y': 6600, 'ori': 0},],
+        #'15V_LDO_ENABLE': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9000, 'y': 3100, 'ori': 0},],
+        'FPGA_ENTROPY_DISABLE': [{'t': 'GLabel', 'dir': 'Input', 'x': 5450, 'y': 3550, 'ori': 0},],
+        'VCC_5V0': [{'t': 'GLabel', 'dir': 'Output', 'x': 11800, 'y': 6600, 'ori': 2, 'new_x': 12300},],
     },
     'rev02_02.sch': {
         'AMPLIFIED': [#{'t': 'GLabel', 'dir': 'UnSpc', 'x': 10300, 'y': 5000, 'ori': 0},
@@ -63,82 +63,82 @@ labels = {
         'AVR_GPIO_ARM_1': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 6400, 'y': 4300, 'ori': 2, 'new_x': 7050},],
         'AVR_GPIO_ARM_2': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 2250, 'y': 7300, 'ori': 0},],
         'AVR_GPIO_ARM_3': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 2250, 'y': 7200, 'ori': 0},],
-        'FMC_A0': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 3400, 'ori': 0},],
-        'FMC_A1': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 3500, 'ori': 0},],
-        'FMC_A10': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 4400, 'ori': 0},],
-        'FMC_A11': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 4500, 'ori': 0},],
-        'FMC_A12': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 4600, 'ori': 0},],
-        'FMC_A13': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 4700, 'ori': 0},],
-        'FMC_A14': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 4800, 'ori': 0},],
-        'FMC_A15': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 4900, 'ori': 0},],
-        'FMC_A16': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 5000, 'ori': 0},],
-        'FMC_A17': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 5100, 'ori': 0},],
-        'FMC_A18': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 5200, 'ori': 0},],
-        'FMC_A19': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 5300, 'ori': 0},],
-        'FMC_A2': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 3600, 'ori': 0},],
-        'FMC_A20': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 5400, 'ori': 0},],
-        'FMC_A21': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 5500, 'ori': 0},],
-        'FMC_A22': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 5600, 'ori': 0},],
-        'FMC_A23': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 5700, 'ori': 0},],
-        'FMC_A24': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 5800, 'ori': 0},],
-        'FMC_A25': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 5900, 'ori': 0},],
-        'FMC_A3': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 3700, 'ori': 0},],
-        'FMC_A4': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 3800, 'ori': 0},],
-        'FMC_A5': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 3900, 'ori': 0},],
-        'FMC_A6': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 4000, 'ori': 0},],
-        'FMC_A7': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 4100, 'ori': 0},],
-        'FMC_A8': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 4200, 'ori': 0},],
-        'FMC_A9': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 4300, 'ori': 0},],
+        'FMC_A0': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 3400, 'ori': 2, 'rel_x': 0},],
+        'FMC_A1': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 3500, 'ori': 2, 'rel_x': 0},],
+        'FMC_A10': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 4400, 'ori': 2, 'rel_x': 0},],
+        'FMC_A11': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 4500, 'ori': 2, 'rel_x': 0},],
+        'FMC_A12': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 4600, 'ori': 2, 'rel_x': 0},],
+        'FMC_A13': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 4700, 'ori': 2, 'rel_x': 0},],
+        'FMC_A14': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 4800, 'ori': 2, 'rel_x': 0},],
+        'FMC_A15': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 4900, 'ori': 2, 'rel_x': 0},],
+        'FMC_A16': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 5000, 'ori': 2, 'rel_x': 0},],
+        'FMC_A17': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 5100, 'ori': 2, 'rel_x': 0},],
+        'FMC_A18': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 5200, 'ori': 2, 'rel_x': 0},],
+        'FMC_A19': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 5300, 'ori': 2, 'rel_x': 0},],
+        'FMC_A2': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 3600, 'ori': 2, 'rel_x': 0},],
+        'FMC_A20': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 5400, 'ori': 2, 'rel_x': 0},],
+        'FMC_A21': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 5500, 'ori': 2, 'rel_x': 0},],
+        'FMC_A22': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 5600, 'ori': 2, 'rel_x': 0},],
+        'FMC_A23': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 5700, 'ori': 2, 'rel_x': 0},],
+        'FMC_A24': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 5800, 'ori': 2, 'rel_x': 0},],
+        'FMC_A25': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 5900, 'ori': 2, 'rel_x': 0},],
+        'FMC_A3': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 3700, 'ori': 2, 'rel_x': 0},],
+        'FMC_A4': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 3800, 'ori': 2, 'rel_x': 0},],
+        'FMC_A5': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 3900, 'ori': 2, 'rel_x': 0},],
+        'FMC_A6': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 4000, 'ori': 2, 'rel_x': 0},],
+        'FMC_A7': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 4100, 'ori': 2, 'rel_x': 0},],
+        'FMC_A8': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 4200, 'ori': 2, 'rel_x': 0},],
+        'FMC_A9': [{'t': 'GLabel', 'dir': 'Output', 'x': 10160, 'y': 4300, 'ori': 2, 'rel_x': 0},],
         'FMC_CLK': [{'t': 'GLabel', 'dir': 'Output', 'x': 9990, 'y': 7100, 'ori': 0},],
-        'FMC_D0': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 3400, 'ori': 0},],
-        'FMC_D1': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 3500, 'ori': 0},],
-        'FMC_D10': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 4400, 'ori': 0},],
-        'FMC_D11': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 4500, 'ori': 0},],
-        'FMC_D12': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 4600, 'ori': 0},],
-        'FMC_D13': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 4700, 'ori': 0},],
-        'FMC_D14': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 4800, 'ori': 0},],
-        'FMC_D15': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 4900, 'ori': 0},],
-        'FMC_D16': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 5000, 'ori': 0},],
-        'FMC_D17': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 5100, 'ori': 0},],
-        'FMC_D18': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 5200, 'ori': 0},],
-        'FMC_D19': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 5300, 'ori': 0},],
-        'FMC_D2': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 3600, 'ori': 0},],
-        'FMC_D20': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 5400, 'ori': 0},],
-        'FMC_D21': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 5500, 'ori': 0},],
-        'FMC_D22': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 5600, 'ori': 0},],
-        'FMC_D23': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 5700, 'ori': 0},],
-        'FMC_D24': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 5800, 'ori': 0},],
-        'FMC_D25': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 5900, 'ori': 0},],
-        'FMC_D26': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 6000, 'ori': 0},],
-        'FMC_D27': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 6100, 'ori': 0},],
-        'FMC_D28': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 6200, 'ori': 0},],
-        'FMC_D29': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 6300, 'ori': 0},],
-        'FMC_D3': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 3700, 'ori': 0},],
-        'FMC_D30': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 6400, 'ori': 0},],
-        'FMC_D31': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 6500, 'ori': 0},],
-        'FMC_D4': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 3800, 'ori': 0},],
-        'FMC_D5': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 3900, 'ori': 0},],
-        'FMC_D6': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 4000, 'ori': 0},],
-        'FMC_D7': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 4100, 'ori': 0},],
-        'FMC_D8': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 4200, 'ori': 0},],
-        'FMC_D9': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 4300, 'ori': 0},],
-        'FMC_NBL0': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9990, 'y': 6200, 'ori': 0},],
-        'FMC_NBL1': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9990, 'y': 6300, 'ori': 0},],
-        'FMC_NBL2': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9990, 'y': 6400, 'ori': 0},],
-        'FMC_NBL3': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9990, 'y': 6500, 'ori': 0},],
-        'FMC_NE1': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9990, 'y': 7500, 'ori': 0},],
+        'FMC_D0': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 3400, 'ori': 2, 'rel_x': -50},],
+        'FMC_D1': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 3500, 'ori': 2, 'rel_x': -50},],
+        'FMC_D10': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 4400, 'ori': 2, 'rel_x': -50},],
+        'FMC_D11': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 4500, 'ori': 2, 'rel_x': -50},],
+        'FMC_D12': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 4600, 'ori': 2, 'rel_x': -50},],
+        'FMC_D13': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 4700, 'ori': 2, 'rel_x': -50},],
+        'FMC_D14': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 4800, 'ori': 2, 'rel_x': -50},],
+        'FMC_D15': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 4900, 'ori': 2, 'rel_x': -50},],
+        'FMC_D16': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 5000, 'ori': 2, 'rel_x': -50},],
+        'FMC_D17': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 5100, 'ori': 2, 'rel_x': -50},],
+        'FMC_D18': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 5200, 'ori': 2, 'rel_x': -50},],
+        'FMC_D19': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 5300, 'ori': 2, 'rel_x': -50},],
+        'FMC_D2': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 3600, 'ori': 2, 'rel_x': -50},],
+        'FMC_D20': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 5400, 'ori': 2, 'rel_x': -50},],
+        'FMC_D21': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 5500, 'ori': 2, 'rel_x': -50},],
+        'FMC_D22': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 5600, 'ori': 2, 'rel_x': -50},],
+        'FMC_D23': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 5700, 'ori': 2, 'rel_x': -50},],
+        'FMC_D24': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 5800, 'ori': 2, 'rel_x': -50},],
+        'FMC_D25': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 5900, 'ori': 2, 'rel_x': -50},],
+        'FMC_D26': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 6000, 'ori': 2, 'rel_x': -50},],
+        'FMC_D27': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 6100, 'ori': 2, 'rel_x': -50},],
+        'FMC_D28': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 6200, 'ori': 2, 'rel_x': -50},],
+        'FMC_D29': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 6300, 'ori': 2, 'rel_x': -50},],
+        'FMC_D3': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 3700, 'ori': 2, 'rel_x': -50},],
+        'FMC_D30': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 6400, 'ori': 2, 'rel_x': -50},],
+        'FMC_D31': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 6500, 'ori': 2, 'rel_x': -50},],
+        'FMC_D4': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 3800, 'ori': 2, 'rel_x': -50},],
+        'FMC_D5': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 3900, 'ori': 2, 'rel_x': -50},],
+        'FMC_D6': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 4000, 'ori': 2, 'rel_x': -50},],
+        'FMC_D7': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 4100, 'ori': 2, 'rel_x': -50},],
+        'FMC_D8': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 4200, 'ori': 2, 'rel_x': -50},],
+        'FMC_D9': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 13120, 'y': 4300, 'ori': 2, 'rel_x': -50},],
+        'FMC_NBL0': [{'t': 'GLabel', 'dir': 'Output', 'x': 9990, 'y': 6200, 'ori': 0},],
+        'FMC_NBL1': [{'t': 'GLabel', 'dir': 'Output', 'x': 9990, 'y': 6300, 'ori': 0},],
+        'FMC_NBL2': [{'t': 'GLabel', 'dir': 'Output', 'x': 9990, 'y': 6400, 'ori': 0},],
+        'FMC_NBL3': [{'t': 'GLabel', 'dir': 'Output', 'x': 9990, 'y': 6500, 'ori': 0},],
+        'FMC_NE1': [{'t': 'GLabel', 'dir': 'Output', 'x': 9990, 'y': 7500, 'ori': 0},],
         'FMC_NL': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9990, 'y': 6800, 'ori': 0},],
-        'FMC_NOE': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9990, 'y': 7200, 'ori': 0},],
+        'FMC_NOE': [{'t': 'GLabel', 'dir': 'Output', 'x': 9990, 'y': 7200, 'ori': 0},],
         'FMC_NWAIT': [{'t': 'GLabel', 'dir': 'Output', 'x': 9990, 'y': 7400, 'ori': 0},],
-        'FMC_NWE': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9990, 'y': 7300, 'ori': 0},],
-        'FMC_SDCKE0': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 13110, 'y': 7400, 'ori': 2, 'new_x': 13490},],
-        'FMC_SDCKE1': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 13110, 'y': 7500, 'ori': 2, 'new_x': 13490},],
-        'FMC_SDCLK': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 13120, 'y': 6800, 'ori': 2, 'new_x': 13490},],
-        'FMC_SDNCAS': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 13110, 'y': 7700, 'ori': 2, 'new_x': 13490},],
-        'FMC_SDNE0': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 13120, 'y': 7100, 'ori': 2, 'new_x': 13490},],
-        'FMC_SDNE1': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 13120, 'y': 7200, 'ori': 2, 'new_x': 13490},],
-        'FMC_SDNRAS': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 13110, 'y': 7800, 'ori': 2, 'new_x': 13490},],
-        'FMC_SDNWE': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 13120, 'y': 6900, 'ori': 2, 'new_x': 13490},],
+        'FMC_NWE': [{'t': 'GLabel', 'dir': 'Output', 'x': 9990, 'y': 7300, 'ori': 0},],
+        'FMC_SDCKE0': [{'t': 'GLabel', 'dir': 'Output', 'x': 13110, 'y': 7400, 'ori': 2, 'new_x': 13490},],
+        'FMC_SDCKE1': [{'t': 'GLabel', 'dir': 'Output', 'x': 13110, 'y': 7500, 'ori': 2, 'new_x': 13490},],
+        'FMC_SDCLK': [{'t': 'GLabel', 'dir': 'Output', 'x': 13120, 'y': 6800, 'ori': 2, 'new_x': 13490},],
+        'FMC_SDNCAS': [{'t': 'GLabel', 'dir': 'Output', 'x': 13110, 'y': 7700, 'ori': 2, 'new_x': 13490},],
+        'FMC_SDNE0': [{'t': 'GLabel', 'dir': 'Output', 'x': 13120, 'y': 7100, 'ori': 2, 'new_x': 13490},],
+        'FMC_SDNE1': [{'t': 'GLabel', 'dir': 'Output', 'x': 13120, 'y': 7200, 'ori': 2, 'new_x': 13490},],
+        'FMC_SDNRAS': [{'t': 'GLabel', 'dir': 'Output', 'x': 13110, 'y': 7800, 'ori': 2, 'new_x': 13490},],
+        'FMC_SDNWE': [{'t': 'GLabel', 'dir': 'Output', 'x': 13120, 'y': 6900, 'ori': 2, 'new_x': 13490},],
         'FPGA_CFG_CTRL_ARM_ENA': [{'t': 'GLabel', 'dir': 'Output', 'x': 6400, 'y': 2700, 'ori': 2, 'new_x': 7000},],
         'FPGA_CFG_CTRL_FPGA_DIS': [{'t': 'GLabel', 'dir': 'Output', 'x': 6400, 'y': 5100, 'ori': 2, 'new_x': 7000},],
         'FPGA_DONE': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6400, 'y': 7000, 'ori': 2, 'new_x': 7000},],
@@ -167,120 +167,120 @@ labels = {
         'RTC_SDA': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2250, 'y': 6100, 'ori': 0},],
     },
     'rev02_06.sch': {
-        'FMC_A0': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2810, 'y': 2600, 'ori': 0},
-                   {'t': 'GLabel', 'dir': 'UnSpc', 'x': 9800, 'y': 2700, 'ori': 0},],
-        'FMC_A1': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2810, 'y': 2700, 'ori': 0},
-                   {'t': 'GLabel', 'dir': 'UnSpc', 'x': 9800, 'y': 2800, 'ori': 0},],
-        'FMC_A10': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2810, 'y': 3600, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 9800, 'y': 3700, 'ori': 0},],
-        'FMC_A11': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2810, 'y': 3700, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 9800, 'y': 3800, 'ori': 0},],
-        'FMC_A12': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2810, 'y': 3800, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 9800, 'y': 3900, 'ori': 0},],
-        'FMC_A14': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2800, 'y': 4100, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 9800, 'y': 4200, 'ori': 0},],
-        'FMC_A15': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2800, 'y': 4200, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 9800, 'y': 4300, 'ori': 0},],
-        'FMC_A2': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2810, 'y': 2800, 'ori': 0},
-                   {'t': 'GLabel', 'dir': 'UnSpc', 'x': 9800, 'y': 2900, 'ori': 0},],
-        'FMC_A3': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2810, 'y': 2900, 'ori': 0},
-                   {'t': 'GLabel', 'dir': 'UnSpc', 'x': 9800, 'y': 3000, 'ori': 0},],
-        'FMC_A4': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2810, 'y': 3000, 'ori': 0},
-                   {'t': 'GLabel', 'dir': 'UnSpc', 'x': 9800, 'y': 3100, 'ori': 0},],
-        'FMC_A5': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2810, 'y': 3100, 'ori': 0},
-                   {'t': 'GLabel', 'dir': 'UnSpc', 'x': 9800, 'y': 3200, 'ori': 0},],
-        'FMC_A6': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2810, 'y': 3200, 'ori': 0},
-                   {'t': 'GLabel', 'dir': 'UnSpc', 'x': 9800, 'y': 3300, 'ori': 0},],
-        'FMC_A7': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2810, 'y': 3300, 'ori': 0},
-                   {'t': 'GLabel', 'dir': 'UnSpc', 'x': 9800, 'y': 3400, 'ori': 0},],
-        'FMC_A8': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2810, 'y': 3400, 'ori': 0},
-                   {'t': 'GLabel', 'dir': 'UnSpc', 'x': 9800, 'y': 3500, 'ori': 0},],
-        'FMC_A9': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2810, 'y': 3500, 'ori': 0},
-                   {'t': 'GLabel', 'dir': 'UnSpc', 'x': 9800, 'y': 3600, 'ori': 0},],
-        'FMC_D0': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 2600, 'ori': 0},
-                   {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 2700, 'ori': 0},],
-        'FMC_D1': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 2700, 'ori': 0},
-                   {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 2800, 'ori': 0},],
-        'FMC_D10': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 3600, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 3700, 'ori': 0},],
-        'FMC_D11': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 3700, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 3800, 'ori': 0},],
-        'FMC_D12': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 3800, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 3900, 'ori': 0},],
-        'FMC_D13': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 3900, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 4000, 'ori': 0},],
-        'FMC_D14': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 4000, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 4100, 'ori': 0},],
-        'FMC_D15': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 4100, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 4200, 'ori': 0},],
-        'FMC_D16': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 4200, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 4300, 'ori': 0},],
-        'FMC_D17': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 4300, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 4400, 'ori': 0},],
-        'FMC_D18': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 4400, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 4500, 'ori': 0},],
-        'FMC_D19': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 4500, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 4600, 'ori': 0},],
-        'FMC_D2': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 2800, 'ori': 0},
-                   {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 2900, 'ori': 0},],
-        'FMC_D20': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 4600, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 4700, 'ori': 0},],
-        'FMC_D21': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 4700, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 4800, 'ori': 0},],
-        'FMC_D22': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 4800, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 4900, 'ori': 0},],
-        'FMC_D23': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 4900, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 5000, 'ori': 0},],
-        'FMC_D24': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 5000, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 5100, 'ori': 0},],
-        'FMC_D25': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 5100, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 5200, 'ori': 0},],
-        'FMC_D26': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 5200, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 5300, 'ori': 0},],
-        'FMC_D27': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 5300, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 5400, 'ori': 0},],
-        'FMC_D28': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 5400, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 5500, 'ori': 0},],
-        'FMC_D29': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 5500, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 5600, 'ori': 0},],
-        'FMC_D3': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 2900, 'ori': 0},
-                   {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 3000, 'ori': 0},],
-        'FMC_D30': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 5600, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 5700, 'ori': 0},],
-        'FMC_D31': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 5700, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 5800, 'ori': 0},],
-        'FMC_D4': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 3000, 'ori': 0},
-                   {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 3100, 'ori': 0},],
-        'FMC_D5': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 3100, 'ori': 0},
-                   {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 3200, 'ori': 0},],
-        'FMC_D6': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 3200, 'ori': 0},
-                   {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 3300, 'ori': 0},],
-        'FMC_D7': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 3300, 'ori': 0},
-                   {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 3400, 'ori': 0},],
-        'FMC_D8': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 3400, 'ori': 0},
-                   {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 3500, 'ori': 0},],
-        'FMC_D9': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5970, 'y': 3500, 'ori': 0},
-                   {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12970, 'y': 3600, 'ori': 0},],
-        'FMC_NBL0': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5960, 'y': 5900, 'ori': 0},
-                     {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12980, 'y': 6000, 'ori': 0},],
-        'FMC_NBL1': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5960, 'y': 6000, 'ori': 0},
-                     {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12980, 'y': 6100, 'ori': 0},],
-        'FMC_NBL2': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5960, 'y': 6100, 'ori': 0},
-                     {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12980, 'y': 6200, 'ori': 0},],
-        'FMC_NBL3': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5960, 'y': 6200, 'ori': 0},
-                     {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12980, 'y': 6300, 'ori': 0},],
-        'FMC_SDCKE0': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2700, 'y': 5500, 'ori': 0},],
-        'FMC_SDCKE1': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9700, 'y': 5600, 'ori': 0},],
-        'FMC_SDCLK': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2700, 'y': 5000, 'ori': 0},
-                      {'t': 'GLabel', 'dir': 'UnSpc', 'x': 9700, 'y': 5100, 'ori': 0},],
-        'FMC_SDNCAS': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2700, 'y': 4400, 'ori': 0},
-                       {'t': 'GLabel', 'dir': 'UnSpc', 'x': 9700, 'y': 4500, 'ori': 0},],
-        'FMC_SDNE0': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2700, 'y': 6000, 'ori': 0},],
-        'FMC_SDNE1': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9700, 'y': 6100, 'ori': 0},],
-        'FMC_SDNRAS': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2700, 'y': 4500, 'ori': 0},
-                       {'t': 'GLabel', 'dir': 'UnSpc', 'x': 9700, 'y': 4600, 'ori': 0},],
-        'FMC_SDNWE': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2700, 'y': 6500, 'ori': 0},
-                      {'t': 'GLabel', 'dir': 'UnSpc', 'x': 9700, 'y': 6600, 'ori': 0},],
+        'FMC_A0': [{'t': 'GLabel', 'dir': 'Input', 'x': 2810, 'y': 2600, 'ori': 2, 'rel_x': 50},
+                   {'t': 'GLabel', 'dir': 'Input', 'x': 9800, 'y': 2700, 'ori': 2, 'rel_x': 50},],
+        'FMC_A1': [{'t': 'GLabel', 'dir': 'Input', 'x': 2810, 'y': 2700, 'ori': 2, 'rel_x': 50},
+                   {'t': 'GLabel', 'dir': 'Input', 'x': 9800, 'y': 2800, 'ori': 2, 'rel_x': 50},],
+        'FMC_A10': [{'t': 'GLabel', 'dir': 'Input', 'x': 2810, 'y': 3600, 'ori': 2, 'rel_x': 50},
+                    {'t': 'GLabel', 'dir': 'Input', 'x': 9800, 'y': 3700, 'ori': 2, 'rel_x': 50},],
+        'FMC_A11': [{'t': 'GLabel', 'dir': 'Input', 'x': 2810, 'y': 3700, 'ori': 2, 'rel_x': 50},
+                    {'t': 'GLabel', 'dir': 'Input', 'x': 9800, 'y': 3800, 'ori': 2, 'rel_x': 50},],
+        'FMC_A12': [{'t': 'GLabel', 'dir': 'Input', 'x': 2810, 'y': 3800, 'ori': 2, 'rel_x': 50},
+                    {'t': 'GLabel', 'dir': 'Input', 'x': 9800, 'y': 3900, 'ori': 2, 'rel_x': 50},],
+        'FMC_A14': [{'t': 'GLabel', 'dir': 'Input', 'x': 2800, 'y': 4100, 'ori': 2, 'rel_x': 50},
+                    {'t': 'GLabel', 'dir': 'Input', 'x': 9800, 'y': 4200, 'ori': 2, 'rel_x': 50},],
+        'FMC_A15': [{'t': 'GLabel', 'dir': 'Input', 'x': 2800, 'y': 4200, 'ori': 2, 'rel_x': 50},
+                    {'t': 'GLabel', 'dir': 'Input', 'x': 9800, 'y': 4300, 'ori': 2, 'rel_x': 50},],
+        'FMC_A2': [{'t': 'GLabel', 'dir': 'Input', 'x': 2810, 'y': 2800, 'ori': 2, 'rel_x': 50},
+                   {'t': 'GLabel', 'dir': 'Input', 'x': 9800, 'y': 2900, 'ori': 2, 'rel_x': 50},],
+        'FMC_A3': [{'t': 'GLabel', 'dir': 'Input', 'x': 2810, 'y': 2900, 'ori': 2, 'rel_x': 50},
+                   {'t': 'GLabel', 'dir': 'Input', 'x': 9800, 'y': 3000, 'ori': 2, 'rel_x': 50},],
+        'FMC_A4': [{'t': 'GLabel', 'dir': 'Input', 'x': 2810, 'y': 3000, 'ori': 2, 'rel_x': 50},
+                   {'t': 'GLabel', 'dir': 'Input', 'x': 9800, 'y': 3100, 'ori': 2, 'rel_x': 50},],
+        'FMC_A5': [{'t': 'GLabel', 'dir': 'Input', 'x': 2810, 'y': 3100, 'ori': 2, 'rel_x': 50},
+                   {'t': 'GLabel', 'dir': 'Input', 'x': 9800, 'y': 3200, 'ori': 2, 'rel_x': 50},],
+        'FMC_A6': [{'t': 'GLabel', 'dir': 'Input', 'x': 2810, 'y': 3200, 'ori': 2, 'rel_x': 50},
+                   {'t': 'GLabel', 'dir': 'Input', 'x': 9800, 'y': 3300, 'ori': 2, 'rel_x': 50},],
+        'FMC_A7': [{'t': 'GLabel', 'dir': 'Input', 'x': 2810, 'y': 3300, 'ori': 2, 'rel_x': 50},
+                   {'t': 'GLabel', 'dir': 'Input', 'x': 9800, 'y': 3400, 'ori': 2, 'rel_x': 50},],
+        'FMC_A8': [{'t': 'GLabel', 'dir': 'Input', 'x': 2810, 'y': 3400, 'ori': 2, 'rel_x': 50},
+                   {'t': 'GLabel', 'dir': 'Input', 'x': 9800, 'y': 3500, 'ori': 2, 'rel_x': 50},],
+        'FMC_A9': [{'t': 'GLabel', 'dir': 'Input', 'x': 2810, 'y': 3500, 'ori': 2, 'rel_x': 50},
+                   {'t': 'GLabel', 'dir': 'Input', 'x': 9800, 'y': 3600, 'ori': 2, 'rel_x': 50},],
+        'FMC_D0': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 2600, 'ori': 2, 'rel_x': -150},
+                   {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 2700, 'ori': 2, 'rel_x': -150},],
+        'FMC_D1': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 2700, 'ori': 2, 'rel_x': -150},
+                   {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 2800, 'ori': 2, 'rel_x': -150},],
+        'FMC_D10': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 3600, 'ori': 2, 'rel_x': -150},
+                    {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 3700, 'ori': 2, 'rel_x': -150},],
+        'FMC_D11': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 3700, 'ori': 2, 'rel_x': -150},
+                    {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 3800, 'ori': 2, 'rel_x': -150},],
+        'FMC_D12': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 3800, 'ori': 2, 'rel_x': -150},
+                    {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 3900, 'ori': 2, 'rel_x': -150},],
+        'FMC_D13': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 3900, 'ori': 2, 'rel_x': -150},
+                    {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 4000, 'ori': 2, 'rel_x': -150},],
+        'FMC_D14': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 4000, 'ori': 2, 'rel_x': -150},
+                    {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 4100, 'ori': 2, 'rel_x': -150},],
+        'FMC_D15': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 4100, 'ori': 2, 'rel_x': -150},
+                    {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 4200, 'ori': 2, 'rel_x': -150},],
+        'FMC_D16': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 4200, 'ori': 2, 'rel_x': -150},
+                    {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 4300, 'ori': 2, 'rel_x': -150},],
+        'FMC_D17': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 4300, 'ori': 2, 'rel_x': -150},
+                    {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 4400, 'ori': 2, 'rel_x': -150},],
+        'FMC_D18': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 4400, 'ori': 2, 'rel_x': -150},
+                    {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 4500, 'ori': 2, 'rel_x': -150},],
+        'FMC_D19': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 4500, 'ori': 2, 'rel_x': -150},
+                    {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 4600, 'ori': 2, 'rel_x': -150},],
+        'FMC_D2': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 2800, 'ori': 2, 'rel_x': -150},
+                   {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 2900, 'ori': 2, 'rel_x': -150},],
+        'FMC_D20': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 4600, 'ori': 2, 'rel_x': -150},
+                    {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 4700, 'ori': 2, 'rel_x': -150},],
+        'FMC_D21': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 4700, 'ori': 2, 'rel_x': -150},
+                    {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 4800, 'ori': 2, 'rel_x': -150},],
+        'FMC_D22': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 4800, 'ori': 2, 'rel_x': -150},
+                    {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 4900, 'ori': 2, 'rel_x': -150},],
+        'FMC_D23': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 4900, 'ori': 2, 'rel_x': -150},
+                    {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 5000, 'ori': 2, 'rel_x': -150},],
+        'FMC_D24': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 5000, 'ori': 2, 'rel_x': -150},
+                    {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 5100, 'ori': 2, 'rel_x': -150},],
+        'FMC_D25': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 5100, 'ori': 2, 'rel_x': -150},
+                    {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 5200, 'ori': 2, 'rel_x': -150},],
+        'FMC_D26': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 5200, 'ori': 2, 'rel_x': -150},
+                    {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 5300, 'ori': 2, 'rel_x': -150},],
+        'FMC_D27': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 5300, 'ori': 2, 'rel_x': -150},
+                    {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 5400, 'ori': 2, 'rel_x': -150},],
+        'FMC_D28': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 5400, 'ori': 2, 'rel_x': -150},
+                    {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 5500, 'ori': 2, 'rel_x': -150},],
+        'FMC_D29': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 5500, 'ori': 2, 'rel_x': -150},
+                    {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 5600, 'ori': 2, 'rel_x': -150},],
+        'FMC_D3': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 2900, 'ori': 2, 'rel_x': -150},
+                   {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 3000, 'ori': 2, 'rel_x': -150},],
+        'FMC_D30': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 5600, 'ori': 2, 'rel_x': -150},
+                    {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 5700, 'ori': 2, 'rel_x': -150},],
+        'FMC_D31': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 5700, 'ori': 2, 'rel_x': -150},
+                    {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 5800, 'ori': 2, 'rel_x': -150},],
+        'FMC_D4': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 3000, 'ori': 2, 'rel_x': -150},
+                   {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 3100, 'ori': 2, 'rel_x': -150},],
+        'FMC_D5': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 3100, 'ori': 2, 'rel_x': -150},
+                   {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 3200, 'ori': 2, 'rel_x': -150},],
+        'FMC_D6': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 3200, 'ori': 2, 'rel_x': -150},
+                   {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 3300, 'ori': 2, 'rel_x': -150},],
+        'FMC_D7': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 3300, 'ori': 2, 'rel_x': -150},
+                   {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 3400, 'ori': 2, 'rel_x': -150},],
+        'FMC_D8': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 3400, 'ori': 2, 'rel_x': -150},
+                   {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 3500, 'ori': 2, 'rel_x': -150},],
+        'FMC_D9': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 5970, 'y': 3500, 'ori': 2, 'rel_x': -150},
+                   {'t': 'GLabel', 'dir': 'BiDi', 'x': 12970, 'y': 3600, 'ori': 2, 'rel_x': -150},],
+        'FMC_NBL0': [{'t': 'GLabel', 'dir': 'Input', 'x': 5960, 'y': 5900, 'ori': 2, 'new_x': 6300},
+                     {'t': 'GLabel', 'dir': 'Input', 'x': 12980, 'y': 6000, 'ori': 2, 'new_x': 13300},],
+        'FMC_NBL1': [{'t': 'GLabel', 'dir': 'Input', 'x': 5960, 'y': 6000, 'ori': 2, 'new_x': 6300},
+                     {'t': 'GLabel', 'dir': 'Input', 'x': 12980, 'y': 6100, 'ori': 2, 'new_x': 13300},],
+        'FMC_NBL2': [{'t': 'GLabel', 'dir': 'Input', 'x': 5960, 'y': 6100, 'ori': 2, 'new_x': 6300},
+                     {'t': 'GLabel', 'dir': 'Input', 'x': 12980, 'y': 6200, 'ori': 2, 'new_x': 13300},],
+        'FMC_NBL3': [{'t': 'GLabel', 'dir': 'Input', 'x': 5960, 'y': 6200, 'ori': 2, 'new_x': 6300},
+                     {'t': 'GLabel', 'dir': 'Input', 'x': 12980, 'y': 6300, 'ori': 2, 'new_x': 13300},],
+        'FMC_SDCKE0': [{'t': 'GLabel', 'dir': 'Input', 'x': 2700, 'y': 5500, 'ori': 0},],
+        'FMC_SDCKE1': [{'t': 'GLabel', 'dir': 'Input', 'x': 9700, 'y': 5600, 'ori': 0},],
+        'FMC_SDCLK': [{'t': 'GLabel', 'dir': 'Input', 'x': 2700, 'y': 5000, 'ori': 0},
+                      {'t': 'GLabel', 'dir': 'Input', 'x': 9700, 'y': 5100, 'ori': 0},],
+        'FMC_SDNCAS': [{'t': 'GLabel', 'dir': 'Input', 'x': 2700, 'y': 4400, 'ori': 0},
+                       {'t': 'GLabel', 'dir': 'Input', 'x': 9700, 'y': 4500, 'ori': 0},],
+        'FMC_SDNE0': [{'t': 'GLabel', 'dir': 'Input', 'x': 2700, 'y': 6000, 'ori': 0},],
+        'FMC_SDNE1': [{'t': 'GLabel', 'dir': 'Input', 'x': 9700, 'y': 6100, 'ori': 0},],
+        'FMC_SDNRAS': [{'t': 'GLabel', 'dir': 'Input', 'x': 2700, 'y': 4500, 'ori': 0},
+                       {'t': 'GLabel', 'dir': 'Input', 'x': 9700, 'y': 4600, 'ori': 0},],
+        'FMC_SDNWE': [{'t': 'GLabel', 'dir': 'Input', 'x': 2700, 'y': 6500, 'ori': 0},
+                      {'t': 'GLabel', 'dir': 'Input', 'x': 9700, 'y': 6600, 'ori': 0},],
     },
     'rev02_07.sch': {
         'KSM_PROM_CS_N': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6270, 'y': 5500, 'ori': 0},],
@@ -294,66 +294,66 @@ labels = {
         'RTC_SDA': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9500, 'y': 5700, 'ori': 0},],
     },
     'rev02_09.sch': {
-        'D1_N': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2050, 'y': 3500, 'ori': 0, 'dim': 60},],
-        'D1_P': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2050, 'y': 3400, 'ori': 0, 'dim': 60},],
-        'DIFFPAIR': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2300, 'y': 3600, 'ori': 0, 'dim': 70},
-                     {'t': 'GLabel', 'dir': 'UnSpc', 'x': 2270, 'y': 3400, 'ori': 0, 'dim': 70},
-                     {'t': 'GLabel', 'dir': 'UnSpc', 'x': 3660, 'y': 3600, 'ori': 0, 'dim': 70},
-                     {'t': 'GLabel', 'dir': 'UnSpc', 'x': 3660, 'y': 3400, 'ori': 0, 'dim': 70},],
-        'FT_CTS': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9700, 'y': 3700, 'ori': 0},],
-        'FT_DTR': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9700, 'y': 3800, 'ori': 0},],
-        'FT_REF': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6930, 'y': 4500, 'ori': 0},],
-        'FT_RESET': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6970, 'y': 4300, 'ori': 0},],
-        'FT_RTS': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9700, 'y': 3600, 'ori': 0},],
-        'FT_RXD': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 11200, 'y': 3500, 'ori': 0},],
-        'FT_RXD1': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9800, 'y': 3500, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12400, 'y': 6200, 'ori': 0},],
-        'FT_TXD': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 11200, 'y': 3400, 'ori': 0},],
-        'FT_TXD1': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9800, 'y': 3400, 'ori': 0},
-                    {'t': 'GLabel', 'dir': 'UnSpc', 'x': 13200, 'y': 6200, 'ori': 0},],
-        'FT_VCC3V3': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6000, 'y': 3600, 'ori': 0},],
-        'FT_VCCA': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6200, 'y': 3800, 'ori': 0},],
-        'FT_VCCORE': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6000, 'y': 3700, 'ori': 0},],
-        'FT_VPHY': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 7550, 'y': 2800, 'ori': 0},],
-        'FT_VPLL': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 7550, 'y': 2600, 'ori': 0},],
-        'FT_VREGIN': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6000, 'y': 3400, 'ori': 0},],
-        'USB_N': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 4050, 'y': 3600, 'ori': 0},
-                  {'t': 'GLabel', 'dir': 'UnSpc', 'x': 7090, 'y': 4000, 'ori': 0},
-                  {'t': 'GLabel', 'dir': 'UnSpc', 'x': 13200, 'y': 6100, 'ori': 0},],
-        'USB_P': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 4050, 'y': 3400, 'ori': 0},
-                  {'t': 'GLabel', 'dir': 'UnSpc', 'x': 7090, 'y': 4100, 'ori': 0},
-                  {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12400, 'y': 6100, 'ori': 0},],
+        #'D1_N': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2050, 'y': 3500, 'ori': 0, 'dim': 60},],
+        #'D1_P': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2050, 'y': 3400, 'ori': 0, 'dim': 60},],
+        'DIFFPAIR': [{'t': 'Delete', 'dir': 'UnSpc', 'x': 2300, 'y': 3600, 'ori': 0, 'dim': 70},
+                     {'t': 'Delete', 'dir': 'UnSpc', 'x': 2270, 'y': 3400, 'ori': 0, 'dim': 70},
+                     {'t': 'Delete', 'dir': 'UnSpc', 'x': 3660, 'y': 3600, 'ori': 0, 'dim': 70},
+                     {'t': 'Delete', 'dir': 'UnSpc', 'x': 3660, 'y': 3400, 'ori': 0, 'dim': 70},],
+        'FT_CTS': [{'t': 'GLabel', 'dir': 'Input', 'x': 9700, 'y': 3700, 'ori': 2},],
+        'FT_DTR': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9700, 'y': 3800, 'ori': 2},],
+        #'FT_REF': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6930, 'y': 4500, 'ori': 0},],
+        #'FT_RESET': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6970, 'y': 4300, 'ori': 0},],
+        'FT_RTS': [{'t': 'GLabel', 'dir': 'Output', 'x': 9700, 'y': 3600, 'ori': 2},],
+        'FT_RXD': [{'t': 'GLabel', 'dir': 'Input', 'x': 11200, 'y': 3500, 'ori': 2},],
+        #'FT_RXD1': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9800, 'y': 3500, 'ori': 0},
+        #            {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12400, 'y': 6200, 'ori': 0},],
+        'FT_TXD': [{'t': 'GLabel', 'dir': 'Output', 'x': 11200, 'y': 3400, 'ori': 2},],
+        'FT_TXD1': [#{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9800, 'y': 3400, 'ori': 0},
+                    {'t': 'Label', 'x': 13200, 'y': 6200, 'ori': 0, 'new_x': 13400},],
+        #'FT_VCC3V3': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6000, 'y': 3600, 'ori': 0},],
+        #'FT_VCCA': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6200, 'y': 3800, 'ori': 0},],
+        #'FT_VCCORE': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6000, 'y': 3700, 'ori': 0},],
+        #'FT_VPHY': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 7550, 'y': 2800, 'ori': 0},],
+        #'FT_VPLL': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 7550, 'y': 2600, 'ori': 0},],
+        #'FT_VREGIN': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6000, 'y': 3400, 'ori': 0},],
+        'USB_N': [#{'t': 'GLabel', 'dir': 'UnSpc', 'x': 4050, 'y': 3600, 'ori': 0},
+                  #{'t': 'GLabel', 'dir': 'UnSpc', 'x': 7090, 'y': 4000, 'ori': 0},
+                  {'t': 'Label', 'x': 13200, 'y': 6100, 'ori': 0, 'new_x': 13400},],
+        #'USB_P': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 4050, 'y': 3400, 'ori': 0},
+        #          {'t': 'GLabel', 'dir': 'UnSpc', 'x': 7090, 'y': 4100, 'ori': 0},
+        #          {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12400, 'y': 6100, 'ori': 0},],
     },
     'rev02_10.sch': {
-        'DIFFPAIR': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2400, 'y': 3700, 'ori': 0, 'dim': 70},
-                     {'t': 'GLabel', 'dir': 'UnSpc', 'x': 2370, 'y': 3500, 'ori': 0, 'dim': 70},
-                     {'t': 'GLabel', 'dir': 'UnSpc', 'x': 3760, 'y': 3500, 'ori': 0, 'dim': 70},
-                     {'t': 'GLabel', 'dir': 'UnSpc', 'x': 3760, 'y': 3700, 'ori': 0, 'dim': 70},],
-        'DM_N': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2100, 'y': 3600, 'ori': 0, 'dim': 60},],
-        'DM_P': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2100, 'y': 3500, 'ori': 0, 'dim': 60},],
-        'FT_MGMT_CTS': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9800, 'y': 3800, 'ori': 0},],
-        'FT_MGMT_DTR': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9800, 'y': 3900, 'ori': 0},],
-        'FT_MGMT_RTS': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9800, 'y': 3700, 'ori': 0},],
-        'FT_MGMT_RXD': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 11300, 'y': 3600, 'ori': 0},],
-        'FT_MGMT_RXD1': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9900, 'y': 3600, 'ori': 0},
-                         {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12050, 'y': 6300, 'ori': 0},],
-        'FT_MGMT_TXD': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 11300, 'y': 3500, 'ori': 0},],
-        'FT_MGMT_TXD1': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9900, 'y': 3500, 'ori': 0},
-                         {'t': 'GLabel', 'dir': 'UnSpc', 'x': 13300, 'y': 6300, 'ori': 0},],
-        'FT_MGMT_VCC3V3': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6100, 'y': 3700, 'ori': 0},],
-        'FT_MGMT_VPHY': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 7650, 'y': 2900, 'ori': 0},],
-        'FT_MGMT_VPLL': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 7650, 'y': 2700, 'ori': 0},],
-        'FT_MGMT_VREGIN': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6100, 'y': 3500, 'ori': 0},],
-        'FT_REF1': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 7150, 'y': 4600, 'ori': 0},],
-        'FT_RESET1': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 7040, 'y': 4400, 'ori': 0},],
-        'FT_VCCA1': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6670, 'y': 3900, 'ori': 0},],
-        'FT_VCCORE1': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6100, 'y': 3800, 'ori': 0},],
-        'USB_MGMT_N': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 4150, 'y': 3700, 'ori': 0},
-                       {'t': 'GLabel', 'dir': 'UnSpc', 'x': 6980, 'y': 4100, 'ori': 0},
-                       {'t': 'GLabel', 'dir': 'UnSpc', 'x': 13300, 'y': 6200, 'ori': 0},],
-        'USB_MGMT_P': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 4150, 'y': 3500, 'ori': 0},
-                       {'t': 'GLabel', 'dir': 'UnSpc', 'x': 6980, 'y': 4200, 'ori': 0},
-                       {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12050, 'y': 6200, 'ori': 0},],
+        'DIFFPAIR': [{'t': 'Delete', 'dir': 'UnSpc', 'x': 2400, 'y': 3700, 'ori': 0, 'dim': 70},
+                     {'t': 'Delete', 'dir': 'UnSpc', 'x': 2370, 'y': 3500, 'ori': 0, 'dim': 70},
+                     {'t': 'Delete', 'dir': 'UnSpc', 'x': 3760, 'y': 3500, 'ori': 0, 'dim': 70},
+                     {'t': 'Delete', 'dir': 'UnSpc', 'x': 3760, 'y': 3700, 'ori': 0, 'dim': 70},],
+        #'DM_N': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2100, 'y': 3600, 'ori': 0, 'dim': 60},],
+        #'DM_P': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2100, 'y': 3500, 'ori': 0, 'dim': 60},],
+        'FT_MGMT_CTS': [{'t': 'GLabel', 'dir': 'Input', 'x': 9800, 'y': 3800, 'ori': 2},],
+        'FT_MGMT_DTR': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9800, 'y': 3900, 'ori': 2},],
+        'FT_MGMT_RTS': [{'t': 'GLabel', 'dir': 'Output', 'x': 9800, 'y': 3700, 'ori': 2},],
+        'FT_MGMT_RXD': [{'t': 'GLabel', 'dir': 'Input', 'x': 11300, 'y': 3600, 'ori': 2},],
+        #'FT_MGMT_RXD1': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9900, 'y': 3600, 'ori': 0},
+        #                 {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12050, 'y': 6300, 'ori': 0},],
+        'FT_MGMT_TXD': [{'t': 'GLabel', 'dir': 'Output', 'x': 11300, 'y': 3500, 'ori': 2},],
+        'FT_MGMT_TXD1': [#{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9900, 'y': 3500, 'ori': 0},
+                         {'t': 'Label', 'x': 13300, 'y': 6300, 'ori': 0, 'new_x': 13500},],
+        #'FT_MGMT_VCC3V3': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6100, 'y': 3700, 'ori': 0},],
+        #'FT_MGMT_VPHY': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 7650, 'y': 2900, 'ori': 0},],
+        #'FT_MGMT_VPLL': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 7650, 'y': 2700, 'ori': 0},],
+        #'FT_MGMT_VREGIN': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6100, 'y': 3500, 'ori': 0},],
+        #'FT_REF1': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 7150, 'y': 4600, 'ori': 0},],
+        #'FT_RESET1': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 7040, 'y': 4400, 'ori': 0},],
+        #'FT_VCCA1': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6670, 'y': 3900, 'ori': 0},],
+        #'FT_VCCORE1': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6100, 'y': 3800, 'ori': 0},],
+        'USB_MGMT_N': [#{'t': 'GLabel', 'dir': 'UnSpc', 'x': 4150, 'y': 3700, 'ori': 0},
+                       #{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6980, 'y': 4100, 'ori': 0},
+                       {'t': 'Label', 'x': 13300, 'y': 6200, 'ori': 0, 'new_x': 13500},],
+        #'USB_MGMT_P': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 4150, 'y': 3500, 'ori': 0},
+        #               {'t': 'GLabel', 'dir': 'UnSpc', 'x': 6980, 'y': 4200, 'ori': 0},
+        #               {'t': 'GLabel', 'dir': 'UnSpc', 'x': 12050, 'y': 6200, 'ori': 0},],
     },
     'rev02_11.sch': {
         'AVR_GPIO_0': [{'t': 'Label', 'dir': 'UnSpc', 'x': 13500, 'y': 6600, 'ori': 2},],
@@ -392,9 +392,9 @@ labels = {
         #              {'t': 'GLabel', 'dir': 'UnSpc', 'x': 3170, 'y': 4800, 'ori': 0},],
         #'AVR_RESET': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 9600, 'y': 5700, 'ori': 0},],
         'MKM_AVR_CS_N': [{'t': 'GLabel', 'dir': 'Output', 'x': 3070, 'y': 4900, 'ori': 0},],
-        #'MKM_AVR_MISO': [{'t': 'GLabel', 'dir': 'Input', 'x': 8440, 'y': 5100, 'ori': 0},],
-        #'MKM_AVR_MOSI': [{'t': 'GLabel', 'dir': 'Output', 'x': 8440, 'y': 5000, 'ori': 0},],
-        #'MKM_AVR_SCK': [{'t': 'GLabel', 'dir': 'Output', 'x': 8440, 'y': 5300, 'ori': 0},],
+        'MKM_AVR_MISO': [{'t': 'GLabel', 'dir': 'Input', 'x': 8440, 'y': 5100, 'ori': 2},],
+        'MKM_AVR_MOSI': [{'t': 'GLabel', 'dir': 'Output', 'x': 8440, 'y': 5000, 'ori': 2},],
+        'MKM_AVR_SCK': [{'t': 'GLabel', 'dir': 'Output', 'x': 8440, 'y': 5300, 'ori': 2},],
         'MKM_CONTROL_AVR_ENA': [{'t': 'GLabel', 'dir': 'Output', 'x': 3070, 'y': 5000, 'ori': 0},],
         'MKM_CONTROL_FPGA_DIS': [{'t': 'GLabel', 'dir': 'Output', 'x': 3070, 'y': 5100, 'ori': 0},],
     },
@@ -479,10 +479,10 @@ labels = {
         'FMC_A12': [{'t': 'GLabel', 'dir': 'Input', 'x': 7200, 'y': 7100, 'ori': 2, 'new_x': 7900},],
         'FMC_A13': [{'t': 'GLabel', 'dir': 'Input', 'x': 2220, 'y': 5600, 'ori': 2, 'new_x': 2950},],
         'FMC_A14': [{'t': 'GLabel', 'dir': 'Input', 'x': 7200, 'y': 6900, 'ori': 2, 'new_x': 7900},],
-        'FMC_A15': [{'t': 'GLabel', 'dir': 'Input', 'x': 2220, 'y': 9600, 'ori': 2, 'new_x': 2950},],
+        'FMC_A15': [{'t': 'GLabel', 'dir': 'Input', 'x': 2220, 'y': 9600, 'ori': 2, 'new_x': 2970},],
         'FMC_A16': [{'t': 'GLabel', 'dir': 'Input', 'x': 7200, 'y': 7000, 'ori': 2, 'new_x': 7900},],
-        'FMC_A17': [{'t': 'GLabel', 'dir': 'Input', 'x': 2220, 'y': 9500, 'ori': 2, 'new_x': 2950},],
-        'FMC_A18': [{'t': 'GLabel', 'dir': 'Input', 'x': 2220, 'y': 9800, 'ori': 2, 'new_x': 2950},],
+        'FMC_A17': [{'t': 'GLabel', 'dir': 'Input', 'x': 2220, 'y': 9500, 'ori': 2, 'new_x': 2970},],
+        'FMC_A18': [{'t': 'GLabel', 'dir': 'Input', 'x': 2220, 'y': 9800, 'ori': 2, 'new_x': 2970},],
         'FMC_A2': [{'t': 'GLabel', 'dir': 'Input', 'x': 7200, 'y': 5700, 'ori': 2, 'new_x': 7900},],
         'FMC_A3': [{'t': 'GLabel', 'dir': 'Input', 'x': 7200, 'y': 5600, 'ori': 2, 'new_x': 7900},],
         'FMC_A4': [{'t': 'GLabel', 'dir': 'Input', 'x': 7200, 'y': 5900, 'ori': 2, 'new_x': 7900},],
@@ -492,8 +492,8 @@ labels = {
         'FMC_A8': [{'t': 'GLabel', 'dir': 'Input', 'x': 7200, 'y': 6300, 'ori': 2, 'new_x': 7900},],
         'FMC_A9': [{'t': 'GLabel', 'dir': 'Input', 'x': 7200, 'y': 6400, 'ori': 2, 'new_x': 7900},],
         'FMC_CLK': [{'t': 'GLabel', 'dir': 'Output', 'x': 7200, 'y': 7800, 'ori': 2, 'new_x': 7890},],
-        'FMC_D0': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 2220, 'y': 9100, 'ori': 2, 'new_x': 2950},],
-        'FMC_D1': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 2220, 'y': 9200, 'ori': 2, 'new_x': 2950},],
+        'FMC_D0': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 2220, 'y': 9100, 'ori': 2, 'new_x': 2970},],
+        'FMC_D1': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 2220, 'y': 9200, 'ori': 2, 'new_x': 2970},],
         'FMC_D13': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 2220, 'y': 6500, 'ori': 2, 'new_x': 2950},],
         'FMC_D14': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 2220, 'y': 6600, 'ori': 2, 'new_x': 2950},],
         'FMC_D15': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 2220, 'y': 6800, 'ori': 2, 'new_x': 2950},],
@@ -515,10 +515,10 @@ labels = {
         'FMC_D5': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 7200, 'y': 7300, 'ori': 2, 'new_x': 7900},],
         'FMC_D6': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 7200, 'y': 7600, 'ori': 2, 'new_x': 7900},],
         'FMC_D7': [{'t': 'GLabel', 'dir': 'BiDi', 'x': 7200, 'y': 7700, 'ori': 2, 'new_x': 7900},],
-        'FMC_NE1': [{'t': 'GLabel', 'dir': 'Output', 'x': 2220, 'y': 8400, 'ori': 2, 'new_x': 2950},],
-        'FMC_NOE': [{'t': 'GLabel', 'dir': 'Output', 'x': 7200, 'y': 8700, 'ori': 2, 'new_x': 7900},],
-        'FMC_NWAIT': [{'t': 'GLabel', 'dir': 'Output', 'x': 2220, 'y': 8700, 'ori': 2, 'new_x': 2950},],
-        'FMC_NWE': [{'t': 'GLabel', 'dir': 'Output', 'x': 2220, 'y': 8800, 'ori': 2, 'new_x': 2950},],
+        'FMC_NE1': [{'t': 'GLabel', 'dir': 'Input', 'x': 2220, 'y': 8400, 'ori': 2, 'new_x': 2950},],
+        'FMC_NOE': [{'t': 'GLabel', 'dir': 'Input', 'x': 7200, 'y': 8700, 'ori': 2, 'new_x': 7910},],
+        'FMC_NWAIT': [{'t': 'GLabel', 'dir': 'Output', 'x': 2220, 'y': 8700, 'ori': 2, 'new_x': 2960},],
+        'FMC_NWE': [{'t': 'GLabel', 'dir': 'Input', 'x': 2220, 'y': 8800, 'ori': 2, 'new_x': 2960},],
         'FPGA_GPIO_LED_0': [{'t': 'GLabel', 'dir': 'Output', 'x': 2220, 'y': 6300, 'ori': 2, 'new_x': 2950},],
         'FPGA_GPIO_LED_1': [{'t': 'GLabel', 'dir': 'Output', 'x': 2230, 'y': 5300, 'ori': 2, 'new_x': 2950},],
         'MKM_FPGA_CS_N': [{'t': 'GLabel', 'dir': 'Output', 'x': 2230, 'y': 5900, 'ori': 2, 'new_x': 2950},],
@@ -527,12 +527,12 @@ labels = {
         'MKM_FPGA_SCK': [{'t': 'GLabel', 'dir': 'Output', 'x': 2230, 'y': 6400, 'ori': 2, 'new_x': 2950},],
     },
     'rev02_18.sch': {
-        'FPGA_VCCAUX_1V8': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6100, 'y': 4800, 'ori': 0},],
-        'POK_VCCAUX': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 4000, 'y': 6200, 'ori': 3},],
-        'POK_VCCO': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 4000, 'y': 9700, 'ori': 0},],
-        'PWR_ENA_VCCAUX': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 1900, 'y': 4740, 'ori': 1},],
-        'PWR_ENA_VCCO': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 1400, 'y': 7500, 'ori': 0},],
-        'VCCO_3V3': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 6100, 'y': 8000, 'ori': 0},],
+        'FPGA_VCCAUX_1V8': [{'t': 'GLabel', 'dir': 'Output', 'x': 6100, 'y': 4800, 'ori': 2, 'new_x': 7000},],
+        'POK_VCCAUX': [{'t': 'GLabel', 'dir': 'Output', 'x': 4000, 'y': 6200, 'ori': 2, 'new_y': 6500},],
+        'POK_VCCO': [{'t': 'GLabel', 'dir': 'Output', 'x': 4000, 'y': 9700, 'ori': 2},],
+        'PWR_ENA_VCCAUX': [{'t': 'GLabel', 'dir': 'Input', 'x': 1900, 'y': 4740, 'ori': 0, 'new_y': 4150},],
+        'PWR_ENA_VCCO': [{'t': 'GLabel', 'dir': 'Input', 'x': 1400, 'y': 7500, 'ori': 0},],
+        'VCCO_3V3': [{'t': 'GLabel', 'dir': 'Output', 'x': 6100, 'y': 8000, 'ori': 2, 'new_x': 7000},],
     },
     'rev02_19.sch': {
         'AVR_GPIO_FPGA_0': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2100, 'y': 8100, 'ori': 2, 'new_x': 3100},],
@@ -611,9 +611,9 @@ labels = {
         'FPGA_GPIO_LED_3': [{'t': 'GLabel', 'dir': 'Output', 'x': 2470, 'y': 6600, 'ori': 2, 'new_x': 3600},],
     },
     'rev02_24.sch': {
-        'FPGA_VCCINT_1V0': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 8300, 'y': 6400, 'ori': 0},],
-        'POK_VCCINT': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 5350, 'y': 9100, 'ori': 0},],
-        'PWR_ENA_VCCINT': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 2700, 'y': 5900, 'ori': 0},],
+        'FPGA_VCCINT_1V0': [{'t': 'GLabel', 'dir': 'Output', 'x': 8300, 'y': 6400, 'ori': 2},],
+        'POK_VCCINT': [{'t': 'GLabel', 'dir': 'Output', 'x': 5350, 'y': 9100, 'ori': 2, 'new_x': 5600},],
+        'PWR_ENA_VCCINT': [{'t': 'GLabel', 'dir': 'Input', 'x': 2700, 'y': 5900, 'ori': 0},],
     },
     'rev02_25.sch': {
         'POK_VCCAUX': [{'t': 'GLabel', 'dir': 'UnSpc', 'x': 1540, 'y': 8700, 'ori': 0},],
@@ -634,15 +634,23 @@ def update_text_line(text, prev, entrys):
     orient = int(orient)
     dim = int(dim)
 
-    for this in entrys:
-        if this['x'] != x or this['y'] != y:
-            sys.stderr.write("Label: {} Wrong X {!r} or Y {!r}: {!r}\n".format(text, x, y, this))
-            continue
+    matching_entrys = [this for this in entrys if this['x'] == x and this['y'] == y]
+    if not matching_entrys:
+        sys.stderr.write("Label: {} No label matching X {!r} and Y {!r}: {!r}\n".format(text, x, y, entrys))
+        return prev
+
+    for this in matching_entrys:
         new = copy(this)
         if 'dim' not in new:
             new['dim'] = 48
         if 'new_x' in new:
             new['x'] = new.pop('new_x')
+        if 'new_y' in new:
+            new['y'] = new.pop('new_y')
+        if 'rel_x' in new:
+            new['x'] += new.pop('rel_x')
+        if 'rel_y' in new:
+            new['y'] += new.pop('rel_y')
         if this['t'] == 'GLabel':
             return 'Text GLabel {x:} {y:} {ori:} {dim:} {shape:} ~ 0'.format(
                 x = new['x'],
@@ -658,8 +666,11 @@ def update_text_line(text, prev, entrys):
                 ori = new['ori'],
                 dim = new['dim'],
             )
+        if this['t'] == 'Delete':
+            return None
     return prev
 
+
 def fix_labels(fn_in, fn_out, file_labels):
     in_ = open(fn_in)
     out = open(fn_out, 'w')
@@ -675,6 +686,10 @@ def fix_labels(fn_in, fn_out, file_labels):
             if re.match('^[A-Z0-9_]+$', text):
                 if text in file_labels:
                     new = update_text_line(text, prev, file_labels[text])
+                    if new is None:
+                        print("Label: {!r} Deleting : {!r}".format(text, prev))
+                        prev = None
+                        continue
                     if new != prev:
                         print("Label: {!r} OLD {!r},  NEW : {!r}".format(text, prev, new))
                         out.write(new + '\n')
@@ -682,7 +697,8 @@ def fix_labels(fn_in, fn_out, file_labels):
                         print("Label: {!r} UNCHANGED : {}".format(text, prev))
                         out.write(prev + '\n')
                 else:
-                    print("Unknown label: {!r} (not in {})".format(text, file_labels.keys()))
+                    #print("Unknown label: {!r} (not in {})".format(text, file_labels.keys()))
+                    print("Unknown label: {!r}".format(text))
                     out.write(prev + '\n')
             prev = None
         elif line.startswith('Text Label '):
@@ -691,6 +707,7 @@ def fix_labels(fn_in, fn_out, file_labels):
         out.write(line)
     return True
 
+
 def main(schemas, labels):
     for this in schemas:
         fn = os.path.basename(this)



More information about the Commits mailing list