From 9097b74905fc24fddfceb2d23a5a229bbbbb6af7 Mon Sep 17 00:00:00 2001 From: Nick Downing Date: Mon, 21 Jul 2025 12:15:18 +1000 Subject: [PATCH] In /scripts/*.py rename LATCH to TG_LATCH (transmission-gate latch), input_nets to a_nets, output_net to y_net (more consistent with TG_LATCH pin names scheme) --- scripts/blocks.py | 50 ++++++++++++++++++++++----------------------- scripts/circuits.py | 26 +++++++++++------------ scripts/gates.py | 4 ++-- 3 files changed, 40 insertions(+), 40 deletions(-) diff --git a/scripts/blocks.py b/scripts/blocks.py index dfdf093..168a50f 100755 --- a/scripts/blocks.py +++ b/scripts/blocks.py @@ -7,7 +7,7 @@ import sys SYMBOL_TYPE_FET = 0 SYMBOL_TYPE_GATE = 1 SYMBOL_TYPE_XOR = 2 -SYMBOL_TYPE_LATCH = 3 +SYMBOL_TYPE_TG_LATCH = 3 N_SYMBOL_TYPES = 4 dump_nets = False @@ -72,7 +72,7 @@ with open(symbols_txt) as fin: ) elif symbol_type == SYMBOL_TYPE_GATE: assert len(fields) == 4 - output_net = fields[2] + y_net = fields[2] n_products = int(fields[3]) expr = [] @@ -81,28 +81,28 @@ with open(symbols_txt) as fin: assert len(line) expr.append(line.split()) - if output_net not in nets: - nets[output_net] = set() # blocks (of symbols) that the net visits - nets[output_net].add(block) + if y_net not in nets: + nets[y_net] = set() # blocks (of symbols) that the net visits + nets[y_net].add(block) for product in expr: for net in product: if net not in nets: nets[net] = set() # blocks (of symbols) that the net visits nets[net].add(block) - symbols.append((symbol_type, block, (output_net, expr))) + symbols.append((symbol_type, block, (y_net, expr))) elif symbol_type == SYMBOL_TYPE_XOR: assert len(fields) >= 3 - output_net = fields[2] - input_nets = fields[3:] + y_net = fields[2] + a_nets = fields[3:] - for net in [output_net] + input_nets: + for net in [y_net] + a_nets: if net not in nets: nets[net] = set() # blocks (of symbols) that the net visits nets[net].add(block) - symbols.append((symbol_type, block, (output_net, input_nets))) - elif symbol_type == SYMBOL_TYPE_LATCH: + symbols.append((symbol_type, block, (y_net, a_nets))) + elif symbol_type == SYMBOL_TYPE_TG_LATCH: assert len(fields) == 7 d_net, le_net, len_net, q_net, qn_net = fields[2:] @@ -185,9 +185,9 @@ for block, block_symbols in sorted(blocks.items()): net_node = make_net_node(diff_net) fout.write(f' "{node:s}" -> "{net_node:s}" [arrowhead=none]\n') elif symbol_type == SYMBOL_TYPE_GATE: - _, _, (output_net, expr) = symbols[i] + _, _, (y_net, expr) = symbols[i] - node = f'gate:{output_net:s}' + node = f'gate:{y_net:s}' if len(expr) == 1: label = ( 'FALSE' @@ -200,8 +200,8 @@ for block, block_symbols in sorted(blocks.items()): f' "{node:s}" [shape="invhouse", label="{label:s}"]\n' ) - for input_net in expr[0]: - net_node = make_net_node(input_net) + for a_net in expr[0]: + net_node = make_net_node(a_net) fout.write(f' "{net_node:s}" -> "{node:s}"\n') else: label = 'TRUE' if len(expr) == 0 else 'NOR' @@ -220,28 +220,28 @@ for block, block_symbols in sorted(blocks.items()): f' "{inner_node:s}" [shape="invhouse", label="{label:s}"]\n' ) - for input_net in expr[j]: - net_node = make_net_node(input_net) + for a_net in expr[j]: + net_node = make_net_node(a_net) fout.write(f' "{net_node:s}" -> "{inner_node:s}"\n') fout.write(f' "{inner_node:s}" -> "{node:s}"\n') - net_node = make_net_node(output_net) + net_node = make_net_node(y_net) fout.write(f' "{node:s}" -> "{net_node:s}"\n') elif symbol_type == SYMBOL_TYPE_XOR: - _, _, (output_net, input_nets) = symbols[i] + _, _, (y_net, a_nets) = symbols[i] - node = f'xor:{output_net:s}' + node = f'xor:{y_net:s}' fout.write(f' "{node:s}" [shape="invhouse", label="XOR"]\n') - for input_net in input_nets: - net_node = make_net_node(input_net) + for a_net in a_nets: + net_node = make_net_node(a_net) fout.write(f' "{net_node:s}" -> "{node:s}"\n') - net_node = make_net_node(output_net) + net_node = make_net_node(y_net) fout.write(f' "{node:s}" -> "{net_node:s}"\n') - elif symbol_type == SYMBOL_TYPE_LATCH: + elif symbol_type == SYMBOL_TYPE_TG_LATCH: _, _, (d_net, le_net, len_net, q_net, qn_net) = symbols[i] node = f'latch:{q_net:s}' - fout.write(f' "{node:s}" [shape="invhouse", label="LATCH"]\n') + fout.write(f' "{node:s}" [shape="invhouse", label="TG_LATCH"]\n') net_node = make_net_node(d_net) fout.write(f' "{net_node:s}" -> "{node:s}" [label="D"]\n') diff --git a/scripts/circuits.py b/scripts/circuits.py index 1ce083f..aaf31c3 100755 --- a/scripts/circuits.py +++ b/scripts/circuits.py @@ -7,7 +7,7 @@ import sys SYMBOL_TYPE_FET = 0 SYMBOL_TYPE_GATE = 1 SYMBOL_TYPE_XOR = 2 -SYMBOL_TYPE_LATCH = 3 +SYMBOL_TYPE_TG_LATCH = 3 N_SYMBOL_TYPES = 4 CIRCUITS = [ @@ -25,7 +25,7 @@ CIRCUITS = [ ], [False, False, True, False], ), - # latch with d, le, /le, q, /q as follows: + # transmission-gate latch with d, le, /le, q, /q as follows: # fb = le ? d : q, /q = NOT fb, q = NOT /q # virtual nets are 0 = d, 1 = le, 2 = /le, 3 = fb, 4 = /q, 5 = q ( @@ -36,7 +36,7 @@ CIRCUITS = [ (SYMBOL_TYPE_GATE, (5, [[4]])), ], [ - (SYMBOL_TYPE_LATCH, (0, 1, 2, 5, 4)), + (SYMBOL_TYPE_TG_LATCH, (0, 1, 2, 5, 4)), ], [False, False, False, True, False, False] ), @@ -96,7 +96,7 @@ with open(symbols_txt) as fin: ) elif symbol_type == SYMBOL_TYPE_GATE: assert len(fields) == 4 - output_net = fields[2] + y_net = fields[2] n_products = int(fields[3]) expr = [] @@ -105,9 +105,9 @@ with open(symbols_txt) as fin: assert len(line) expr.append(line.split()) - if output_net not in nets: - nets[output_net] = set() # symbols that the net visits - nets[output_net].add(len(symbols)) + if y_net not in nets: + nets[y_net] = set() # symbols that the net visits + nets[y_net].add(len(symbols)) for product in expr: for net in product: if net not in nets: @@ -118,7 +118,7 @@ with open(symbols_txt) as fin: [ symbol_type, # can be overwritten with -1 to delete the symbol block, - (output_net, expr) + (y_net, expr) ] ) else: @@ -305,13 +305,13 @@ for i in range(len(symbols)): for i in range(len(diff_nets)): print(' ' + diff_nets[i], ' '.join([str(j) for j in r_matrix[i]])) elif symbol_type == SYMBOL_TYPE_GATE: - [_, block, (output_net, expr)] = symbols[i] - print(symbol_type, block, output_net, len(expr)) + [_, block, (y_net, expr)] = symbols[i] + print(symbol_type, block, y_net, len(expr)) for i in expr: print(' ' + ' '.join(i)) elif symbol_type == SYMBOL_TYPE_XOR: - [_, block, (output_net, input_nets)] = symbols[i] - print(symbol_type, block, output_net, ' '.join(input_nets)) - elif symbol_type == SYMBOL_TYPE_LATCH: + [_, block, (y_net, a_nets)] = symbols[i] + print(symbol_type, block, y_net, ' '.join(a_nets)) + elif symbol_type == SYMBOL_TYPE_TG_LATCH: [_, block, (d_net, le_net, len_net, q_net, qn_net)] = symbols[i] print(symbol_type, block, d_net, le_net, len_net, q_net, qn_net) diff --git a/scripts/gates.py b/scripts/gates.py index 1b34460..50771dc 100755 --- a/scripts/gates.py +++ b/scripts/gates.py @@ -156,7 +156,7 @@ for i in range(len(symbols)): for i in range(len(diff_nets)): print(' ' + diff_nets[i], ' '.join([str(j) for j in r_matrix[i]])) elif symbol_type == SYMBOL_TYPE_GATE: - [_, block, (output_net, expr)] = symbols[i] - print(symbol_type, block, output_net, len(expr)) + [_, block, (y_net, expr)] = symbols[i] + print(symbol_type, block, y_net, len(expr)) for i in expr: print(' ' + ' '.join(i)) -- 2.34.1