nturley / netlistsvg

draws an SVG schematic from a JSON netlist

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Wires overlap for simple drawing.

joseluisquiroga opened this issue · comments

The wires for first and last ports overlap as if they were a single wire for the json code generated.

The json code was generated with the following command:
yosys -p "read_verilog recu.v; prep -top unary_nand -flatten; aigmap; write_json recu.json"

For the file recu.v containging the following code:

Verilog
module unary_nand
#(parameter WIDTH = 32)
(input [WIDTH-1:0] in_and,
output            out_and);

generate
 if(WIDTH == 1) begin
   assign out_and = in_and;
 end
 else if(WIDTH == 2) begin
   assign out_and = in_and[0] & in_and[1];
 end
 else begin
   unary_nand #(.WIDTH (WIDTH/2))
     unary_nand_low
       (.in_and  (in_and[WIDTH/2-1:0]),
        .out_and (out_and_low));

   unary_nand #(.WIDTH (WIDTH - WIDTH/2))
     unary_nand_high
       (.in_and  (in_and[WIDTH-1:WIDTH/2]),
        .out_and (out_and_high));

   assign out_and = out_and_low & out_and_high;
 end
endgenerate
endmodule

The json code is:

Json file
{
  "creator": "Yosys 0.9+932 (git sha1 613334d9, gcc 7.4.0-1ubuntu1~18.04.1 -fPIC -Os)",
  "modules": {
    "unary_nand": {
      "attributes": {
        "dynports": 1,
        "top": 1,
        "src": "recu.v:4"
      },
      "ports": {
        "in_and": {
          "direction": "input",
          "bits": [ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33 ]
        },
        "out_and": {
          "direction": "output",
          "bits": [ 34 ]
        }
      },
      "cells": {
        "$auto$aigmap.cc:123:execute$10": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 35 ],
            "B": [ 36 ],
            "Y": [ 37 ]
          }
        },
        "$auto$aigmap.cc:123:execute$12": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 38 ],
            "B": [ 39 ],
            "Y": [ 36 ]
          }
        },
        "$auto$aigmap.cc:123:execute$14": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 40 ],
            "B": [ 41 ],
            "Y": [ 39 ]
          }
        },
        "$auto$aigmap.cc:123:execute$16": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 32 ],
            "B": [ 33 ],
            "Y": [ 41 ]
          }
        },
        "$auto$aigmap.cc:123:execute$18": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 30 ],
            "B": [ 31 ],
            "Y": [ 40 ]
          }
        },
        "$auto$aigmap.cc:123:execute$20": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 42 ],
            "B": [ 43 ],
            "Y": [ 38 ]
          }
        },
        "$auto$aigmap.cc:123:execute$22": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 28 ],
            "B": [ 29 ],
            "Y": [ 43 ]
          }
        },
        "$auto$aigmap.cc:123:execute$24": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 26 ],
            "B": [ 27 ],
            "Y": [ 42 ]
          }
        },
        "$auto$aigmap.cc:123:execute$26": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 44 ],
            "B": [ 45 ],
            "Y": [ 35 ]
          }
        },
        "$auto$aigmap.cc:123:execute$28": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 46 ],
            "B": [ 47 ],
            "Y": [ 45 ]
          }
        },
        "$auto$aigmap.cc:123:execute$30": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 24 ],
            "B": [ 25 ],
            "Y": [ 47 ]
          }
        },
        "$auto$aigmap.cc:123:execute$32": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 22 ],
            "B": [ 23 ],
            "Y": [ 46 ]
          }
        },
        "$auto$aigmap.cc:123:execute$34": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 48 ],
            "B": [ 49 ],
            "Y": [ 44 ]
          }
        },
        "$auto$aigmap.cc:123:execute$36": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 20 ],
            "B": [ 21 ],
            "Y": [ 49 ]
          }
        },
        "$auto$aigmap.cc:123:execute$38": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 18 ],
            "B": [ 19 ],
            "Y": [ 48 ]
          }
        },
        "$auto$aigmap.cc:123:execute$40": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 50 ],
            "B": [ 51 ],
            "Y": [ 52 ]
          }
        },
        "$auto$aigmap.cc:123:execute$42": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 53 ],
            "B": [ 54 ],
            "Y": [ 51 ]
          }
        },
        "$auto$aigmap.cc:123:execute$44": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 55 ],
            "B": [ 56 ],
            "Y": [ 54 ]
          }
        },
        "$auto$aigmap.cc:123:execute$46": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 16 ],
            "B": [ 17 ],
            "Y": [ 56 ]
          }
        },
        "$auto$aigmap.cc:123:execute$48": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 14 ],
            "B": [ 15 ],
            "Y": [ 55 ]
          }
        },
        "$auto$aigmap.cc:123:execute$50": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 57 ],
            "B": [ 58 ],
            "Y": [ 53 ]
          }
        },
        "$auto$aigmap.cc:123:execute$52": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 12 ],
            "B": [ 13 ],
            "Y": [ 58 ]
          }
        },
        "$auto$aigmap.cc:123:execute$54": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 10 ],
            "B": [ 11 ],
            "Y": [ 57 ]
          }
        },
        "$auto$aigmap.cc:123:execute$56": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 59 ],
            "B": [ 60 ],
            "Y": [ 50 ]
          }
        },
        "$auto$aigmap.cc:123:execute$58": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 61 ],
            "B": [ 62 ],
            "Y": [ 60 ]
          }
        },
        "$auto$aigmap.cc:123:execute$60": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 8 ],
            "B": [ 9 ],
            "Y": [ 62 ]
          }
        },
        "$auto$aigmap.cc:123:execute$62": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 6 ],
            "B": [ 7 ],
            "Y": [ 61 ]
          }
        },
        "$auto$aigmap.cc:123:execute$64": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 63 ],
            "B": [ 64 ],
            "Y": [ 59 ]
          }
        },
        "$auto$aigmap.cc:123:execute$66": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 4 ],
            "B": [ 5 ],
            "Y": [ 64 ]
          }
        },
        "$auto$aigmap.cc:123:execute$68": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 2 ],
            "B": [ 3 ],
            "Y": [ 63 ]
          }
        },
        "$auto$aigmap.cc:123:execute$8": {
          "hide_name": 1,
          "type": "$_AND_",
          "parameters": {
          },
          "attributes": {
          },
          "port_directions": {
            "A": "input",
            "B": "input",
            "Y": "output"
          },
          "connections": {
            "A": [ 52 ],
            "B": [ 37 ],
            "Y": [ 34 ]
          }
        }
      },
      "netnames": {
        "$auto$aigmap.cc:122:execute$11": {
          "hide_name": 1,
          "bits": [ 36 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$13": {
          "hide_name": 1,
          "bits": [ 39 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$15": {
          "hide_name": 1,
          "bits": [ 41 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$17": {
          "hide_name": 1,
          "bits": [ 40 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$19": {
          "hide_name": 1,
          "bits": [ 38 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$21": {
          "hide_name": 1,
          "bits": [ 43 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$23": {
          "hide_name": 1,
          "bits": [ 42 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$25": {
          "hide_name": 1,
          "bits": [ 35 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$27": {
          "hide_name": 1,
          "bits": [ 45 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$29": {
          "hide_name": 1,
          "bits": [ 47 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$31": {
          "hide_name": 1,
          "bits": [ 46 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$33": {
          "hide_name": 1,
          "bits": [ 44 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$35": {
          "hide_name": 1,
          "bits": [ 49 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$37": {
          "hide_name": 1,
          "bits": [ 48 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$39": {
          "hide_name": 1,
          "bits": [ 52 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$41": {
          "hide_name": 1,
          "bits": [ 51 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$43": {
          "hide_name": 1,
          "bits": [ 54 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$45": {
          "hide_name": 1,
          "bits": [ 56 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$47": {
          "hide_name": 1,
          "bits": [ 55 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$49": {
          "hide_name": 1,
          "bits": [ 53 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$51": {
          "hide_name": 1,
          "bits": [ 58 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$53": {
          "hide_name": 1,
          "bits": [ 57 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$55": {
          "hide_name": 1,
          "bits": [ 50 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$57": {
          "hide_name": 1,
          "bits": [ 60 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$59": {
          "hide_name": 1,
          "bits": [ 62 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$61": {
          "hide_name": 1,
          "bits": [ 61 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$63": {
          "hide_name": 1,
          "bits": [ 59 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$65": {
          "hide_name": 1,
          "bits": [ 64 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$67": {
          "hide_name": 1,
          "bits": [ 63 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$7": {
          "hide_name": 1,
          "bits": [ 34 ],
          "attributes": {
          }
        },
        "$auto$aigmap.cc:122:execute$9": {
          "hide_name": 1,
          "bits": [ 37 ],
          "attributes": {
          }
        },
        "in_and": {
          "hide_name": 0,
          "bits": [ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33 ],
          "attributes": {
            "src": "recu.v:6"
          }
        },
        "out_and": {
          "hide_name": 0,
          "bits": [ 34 ],
          "attributes": {
            "src": "recu.v:7"
          }
        },
        "out_and_high": {
          "hide_name": 0,
          "bits": [ 37 ],
          "attributes": {
            "src": "recu.v:25"
          }
        },
        "out_and_low": {
          "hide_name": 0,
          "bits": [ 52 ],
          "attributes": {
            "src": "recu.v:20"
          }
        },
        "unary_nand_high.in_and": {
          "hide_name": 0,
          "bits": [ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33 ],
          "attributes": {
            "src": "recu.v:22|recu.v:6"
          }
        },
        "unary_nand_high.out_and": {
          "hide_name": 0,
          "bits": [ 37 ],
          "attributes": {
            "src": "recu.v:22|recu.v:7"
          }
        },
        "unary_nand_high.out_and_high": {
          "hide_name": 0,
          "bits": [ 36 ],
          "attributes": {
            "src": "recu.v:22|recu.v:25"
          }
        },
        "unary_nand_high.out_and_low": {
          "hide_name": 0,
          "bits": [ 35 ],
          "attributes": {
            "src": "recu.v:22|recu.v:20"
          }
        },
        "unary_nand_high.unary_nand_high.in_and": {
          "hide_name": 0,
          "bits": [ 26, 27, 28, 29, 30, 31, 32, 33 ],
          "attributes": {
            "src": "recu.v:22|recu.v:6"
          }
        },
        "unary_nand_high.unary_nand_high.out_and": {
          "hide_name": 0,
          "bits": [ 36 ],
          "attributes": {
            "src": "recu.v:22|recu.v:7"
          }
        },
        "unary_nand_high.unary_nand_high.out_and_high": {
          "hide_name": 0,
          "bits": [ 39 ],
          "attributes": {
            "src": "recu.v:22|recu.v:25"
          }
        },
        "unary_nand_high.unary_nand_high.out_and_low": {
          "hide_name": 0,
          "bits": [ 38 ],
          "attributes": {
            "src": "recu.v:22|recu.v:20"
          }
        },
        "unary_nand_high.unary_nand_high.unary_nand_high.in_and": {
          "hide_name": 0,
          "bits": [ 30, 31, 32, 33 ],
          "attributes": {
            "src": "recu.v:22|recu.v:6"
          }
        },
        "unary_nand_high.unary_nand_high.unary_nand_high.out_and": {
          "hide_name": 0,
          "bits": [ 39 ],
          "attributes": {
            "src": "recu.v:22|recu.v:7"
          }
        },
        "unary_nand_high.unary_nand_high.unary_nand_high.out_and_high": {
          "hide_name": 0,
          "bits": [ 41 ],
          "attributes": {
            "src": "recu.v:22|recu.v:25"
          }
        },
        "unary_nand_high.unary_nand_high.unary_nand_high.out_and_low": {
          "hide_name": 0,
          "bits": [ 40 ],
          "attributes": {
            "src": "recu.v:22|recu.v:20"
          }
        },
        "unary_nand_high.unary_nand_high.unary_nand_high.unary_nand_high.in_and": {
          "hide_name": 0,
          "bits": [ 32, 33 ],
          "attributes": {
            "src": "recu.v:22|recu.v:6"
          }
        },
        "unary_nand_high.unary_nand_high.unary_nand_high.unary_nand_high.out_and": {
          "hide_name": 0,
          "bits": [ 41 ],
          "attributes": {
            "src": "recu.v:22|recu.v:7"
          }
        },
        "unary_nand_high.unary_nand_high.unary_nand_high.unary_nand_low.in_and": {
          "hide_name": 0,
          "bits": [ 30, 31 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:6"
          }
        },
        "unary_nand_high.unary_nand_high.unary_nand_high.unary_nand_low.out_and": {
          "hide_name": 0,
          "bits": [ 40 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:7"
          }
        },
        "unary_nand_high.unary_nand_high.unary_nand_low.in_and": {
          "hide_name": 0,
          "bits": [ 26, 27, 28, 29 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:6"
          }
        },
        "unary_nand_high.unary_nand_high.unary_nand_low.out_and": {
          "hide_name": 0,
          "bits": [ 38 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:7"
          }
        },
        "unary_nand_high.unary_nand_high.unary_nand_low.out_and_high": {
          "hide_name": 0,
          "bits": [ 43 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:25"
          }
        },
        "unary_nand_high.unary_nand_high.unary_nand_low.out_and_low": {
          "hide_name": 0,
          "bits": [ 42 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:20"
          }
        },
        "unary_nand_high.unary_nand_high.unary_nand_low.unary_nand_high.in_and": {
          "hide_name": 0,
          "bits": [ 28, 29 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:6"
          }
        },
        "unary_nand_high.unary_nand_high.unary_nand_low.unary_nand_high.out_and": {
          "hide_name": 0,
          "bits": [ 43 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:7"
          }
        },
        "unary_nand_high.unary_nand_high.unary_nand_low.unary_nand_low.in_and": {
          "hide_name": 0,
          "bits": [ 26, 27 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:6"
          }
        },
        "unary_nand_high.unary_nand_high.unary_nand_low.unary_nand_low.out_and": {
          "hide_name": 0,
          "bits": [ 42 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:7"
          }
        },
        "unary_nand_high.unary_nand_low.in_and": {
          "hide_name": 0,
          "bits": [ 18, 19, 20, 21, 22, 23, 24, 25 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:6"
          }
        },
        "unary_nand_high.unary_nand_low.out_and": {
          "hide_name": 0,
          "bits": [ 35 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:7"
          }
        },
        "unary_nand_high.unary_nand_low.out_and_high": {
          "hide_name": 0,
          "bits": [ 45 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:25"
          }
        },
        "unary_nand_high.unary_nand_low.out_and_low": {
          "hide_name": 0,
          "bits": [ 44 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:20"
          }
        },
        "unary_nand_high.unary_nand_low.unary_nand_high.in_and": {
          "hide_name": 0,
          "bits": [ 22, 23, 24, 25 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:6"
          }
        },
        "unary_nand_high.unary_nand_low.unary_nand_high.out_and": {
          "hide_name": 0,
          "bits": [ 45 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:7"
          }
        },
        "unary_nand_high.unary_nand_low.unary_nand_high.out_and_high": {
          "hide_name": 0,
          "bits": [ 47 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:25"
          }
        },
        "unary_nand_high.unary_nand_low.unary_nand_high.out_and_low": {
          "hide_name": 0,
          "bits": [ 46 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:20"
          }
        },
        "unary_nand_high.unary_nand_low.unary_nand_high.unary_nand_high.in_and": {
          "hide_name": 0,
          "bits": [ 24, 25 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:6"
          }
        },
        "unary_nand_high.unary_nand_low.unary_nand_high.unary_nand_high.out_and": {
          "hide_name": 0,
          "bits": [ 47 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:7"
          }
        },
        "unary_nand_high.unary_nand_low.unary_nand_high.unary_nand_low.in_and": {
          "hide_name": 0,
          "bits": [ 22, 23 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:6"
          }
        },
        "unary_nand_high.unary_nand_low.unary_nand_high.unary_nand_low.out_and": {
          "hide_name": 0,
          "bits": [ 46 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:7"
          }
        },
        "unary_nand_high.unary_nand_low.unary_nand_low.in_and": {
          "hide_name": 0,
          "bits": [ 18, 19, 20, 21 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:6"
          }
        },
        "unary_nand_high.unary_nand_low.unary_nand_low.out_and": {
          "hide_name": 0,
          "bits": [ 44 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:7"
          }
        },
        "unary_nand_high.unary_nand_low.unary_nand_low.out_and_high": {
          "hide_name": 0,
          "bits": [ 49 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:25"
          }
        },
        "unary_nand_high.unary_nand_low.unary_nand_low.out_and_low": {
          "hide_name": 0,
          "bits": [ 48 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:20"
          }
        },
        "unary_nand_high.unary_nand_low.unary_nand_low.unary_nand_high.in_and": {
          "hide_name": 0,
          "bits": [ 20, 21 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:6"
          }
        },
        "unary_nand_high.unary_nand_low.unary_nand_low.unary_nand_high.out_and": {
          "hide_name": 0,
          "bits": [ 49 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:7"
          }
        },
        "unary_nand_high.unary_nand_low.unary_nand_low.unary_nand_low.in_and": {
          "hide_name": 0,
          "bits": [ 18, 19 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:6"
          }
        },
        "unary_nand_high.unary_nand_low.unary_nand_low.unary_nand_low.out_and": {
          "hide_name": 0,
          "bits": [ 48 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:7"
          }
        },
        "unary_nand_low.in_and": {
          "hide_name": 0,
          "bits": [ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 ],
          "attributes": {
            "src": "recu.v:17|recu.v:6"
          }
        },
        "unary_nand_low.out_and": {
          "hide_name": 0,
          "bits": [ 52 ],
          "attributes": {
            "src": "recu.v:17|recu.v:7"
          }
        },
        "unary_nand_low.out_and_high": {
          "hide_name": 0,
          "bits": [ 51 ],
          "attributes": {
            "src": "recu.v:17|recu.v:25"
          }
        },
        "unary_nand_low.out_and_low": {
          "hide_name": 0,
          "bits": [ 50 ],
          "attributes": {
            "src": "recu.v:17|recu.v:20"
          }
        },
        "unary_nand_low.unary_nand_high.in_and": {
          "hide_name": 0,
          "bits": [ 10, 11, 12, 13, 14, 15, 16, 17 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:6"
          }
        },
        "unary_nand_low.unary_nand_high.out_and": {
          "hide_name": 0,
          "bits": [ 51 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:7"
          }
        },
        "unary_nand_low.unary_nand_high.out_and_high": {
          "hide_name": 0,
          "bits": [ 54 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:25"
          }
        },
        "unary_nand_low.unary_nand_high.out_and_low": {
          "hide_name": 0,
          "bits": [ 53 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:20"
          }
        },
        "unary_nand_low.unary_nand_high.unary_nand_high.in_and": {
          "hide_name": 0,
          "bits": [ 14, 15, 16, 17 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:6"
          }
        },
        "unary_nand_low.unary_nand_high.unary_nand_high.out_and": {
          "hide_name": 0,
          "bits": [ 54 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:7"
          }
        },
        "unary_nand_low.unary_nand_high.unary_nand_high.out_and_high": {
          "hide_name": 0,
          "bits": [ 56 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:25"
          }
        },
        "unary_nand_low.unary_nand_high.unary_nand_high.out_and_low": {
          "hide_name": 0,
          "bits": [ 55 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:20"
          }
        },
        "unary_nand_low.unary_nand_high.unary_nand_high.unary_nand_high.in_and": {
          "hide_name": 0,
          "bits": [ 16, 17 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:6"
          }
        },
        "unary_nand_low.unary_nand_high.unary_nand_high.unary_nand_high.out_and": {
          "hide_name": 0,
          "bits": [ 56 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:7"
          }
        },
        "unary_nand_low.unary_nand_high.unary_nand_high.unary_nand_low.in_and": {
          "hide_name": 0,
          "bits": [ 14, 15 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:6"
          }
        },
        "unary_nand_low.unary_nand_high.unary_nand_high.unary_nand_low.out_and": {
          "hide_name": 0,
          "bits": [ 55 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:7"
          }
        },
        "unary_nand_low.unary_nand_high.unary_nand_low.in_and": {
          "hide_name": 0,
          "bits": [ 10, 11, 12, 13 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:6"
          }
        },
        "unary_nand_low.unary_nand_high.unary_nand_low.out_and": {
          "hide_name": 0,
          "bits": [ 53 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:7"
          }
        },
        "unary_nand_low.unary_nand_high.unary_nand_low.out_and_high": {
          "hide_name": 0,
          "bits": [ 58 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:25"
          }
        },
        "unary_nand_low.unary_nand_high.unary_nand_low.out_and_low": {
          "hide_name": 0,
          "bits": [ 57 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:20"
          }
        },
        "unary_nand_low.unary_nand_high.unary_nand_low.unary_nand_high.in_and": {
          "hide_name": 0,
          "bits": [ 12, 13 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:6"
          }
        },
        "unary_nand_low.unary_nand_high.unary_nand_low.unary_nand_high.out_and": {
          "hide_name": 0,
          "bits": [ 58 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:7"
          }
        },
        "unary_nand_low.unary_nand_high.unary_nand_low.unary_nand_low.in_and": {
          "hide_name": 0,
          "bits": [ 10, 11 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:6"
          }
        },
        "unary_nand_low.unary_nand_high.unary_nand_low.unary_nand_low.out_and": {
          "hide_name": 0,
          "bits": [ 57 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:7"
          }
        },
        "unary_nand_low.unary_nand_low.in_and": {
          "hide_name": 0,
          "bits": [ 2, 3, 4, 5, 6, 7, 8, 9 ],
          "attributes": {
            "src": "recu.v:17|recu.v:6"
          }
        },
        "unary_nand_low.unary_nand_low.out_and": {
          "hide_name": 0,
          "bits": [ 50 ],
          "attributes": {
            "src": "recu.v:17|recu.v:7"
          }
        },
        "unary_nand_low.unary_nand_low.out_and_high": {
          "hide_name": 0,
          "bits": [ 60 ],
          "attributes": {
            "src": "recu.v:17|recu.v:25"
          }
        },
        "unary_nand_low.unary_nand_low.out_and_low": {
          "hide_name": 0,
          "bits": [ 59 ],
          "attributes": {
            "src": "recu.v:17|recu.v:20"
          }
        },
        "unary_nand_low.unary_nand_low.unary_nand_high.in_and": {
          "hide_name": 0,
          "bits": [ 6, 7, 8, 9 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:6"
          }
        },
        "unary_nand_low.unary_nand_low.unary_nand_high.out_and": {
          "hide_name": 0,
          "bits": [ 60 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:7"
          }
        },
        "unary_nand_low.unary_nand_low.unary_nand_high.out_and_high": {
          "hide_name": 0,
          "bits": [ 62 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:25"
          }
        },
        "unary_nand_low.unary_nand_low.unary_nand_high.out_and_low": {
          "hide_name": 0,
          "bits": [ 61 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:20"
          }
        },
        "unary_nand_low.unary_nand_low.unary_nand_high.unary_nand_high.in_and": {
          "hide_name": 0,
          "bits": [ 8, 9 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:6"
          }
        },
        "unary_nand_low.unary_nand_low.unary_nand_high.unary_nand_high.out_and": {
          "hide_name": 0,
          "bits": [ 62 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:7"
          }
        },
        "unary_nand_low.unary_nand_low.unary_nand_high.unary_nand_low.in_and": {
          "hide_name": 0,
          "bits": [ 6, 7 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:6"
          }
        },
        "unary_nand_low.unary_nand_low.unary_nand_high.unary_nand_low.out_and": {
          "hide_name": 0,
          "bits": [ 61 ],
          "attributes": {
            "src": "recu.v:22|recu.v:17|recu.v:7"
          }
        },
        "unary_nand_low.unary_nand_low.unary_nand_low.in_and": {
          "hide_name": 0,
          "bits": [ 2, 3, 4, 5 ],
          "attributes": {
            "src": "recu.v:17|recu.v:6"
          }
        },
        "unary_nand_low.unary_nand_low.unary_nand_low.out_and": {
          "hide_name": 0,
          "bits": [ 59 ],
          "attributes": {
            "src": "recu.v:17|recu.v:7"
          }
        },
        "unary_nand_low.unary_nand_low.unary_nand_low.out_and_high": {
          "hide_name": 0,
          "bits": [ 64 ],
          "attributes": {
            "src": "recu.v:17|recu.v:25"
          }
        },
        "unary_nand_low.unary_nand_low.unary_nand_low.out_and_low": {
          "hide_name": 0,
          "bits": [ 63 ],
          "attributes": {
            "src": "recu.v:17|recu.v:20"
          }
        },
        "unary_nand_low.unary_nand_low.unary_nand_low.unary_nand_high.in_and": {
          "hide_name": 0,
          "bits": [ 4, 5 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:6"
          }
        },
        "unary_nand_low.unary_nand_low.unary_nand_low.unary_nand_high.out_and": {
          "hide_name": 0,
          "bits": [ 64 ],
          "attributes": {
            "src": "recu.v:17|recu.v:22|recu.v:7"
          }
        },
        "unary_nand_low.unary_nand_low.unary_nand_low.unary_nand_low.in_and": {
          "hide_name": 0,
          "bits": [ 2, 3 ],
          "attributes": {
            "src": "recu.v:17|recu.v:6"
          }
        },
        "unary_nand_low.unary_nand_low.unary_nand_low.unary_nand_low.out_and": {
          "hide_name": 0,
          "bits": [ 63 ],
          "attributes": {
            "src": "recu.v:17|recu.v:7"
          }
        }
      }
    }
  }
}

Could you put your code in a:
<details><summary>whatever.json</summary>long code here</details>

I think this is closer to what you were wanting (even if I can't see what you originally had), though there are still a few overlapping wires around the edges of the split block. This is with a newer version of ELKjs.
test(3)

duplicate #105