private void AddTemplate(string moduleName, List <WirePath> wires, FIRRTLNode[] nodeOrder, FIRIO[] ioOrder)
        {
            RouteTemplate template = new RouteTemplate(wires, nodeOrder, ioOrder);

            lock (Templates)
            {
                Templates.Add(moduleName, template);
            }

            lock (Converters)
            {
                if (Converters.TryGetValue(moduleName, out var convs))
                {
                    foreach (var conv in convs)
                    {
                        conv.TemplateUpdated(template);
                    }
                }
            }
        }
 public void TemplateUpdated(RouteTemplate template)
 {
     Ctrl.PlaceWires(Convert(template));
 }