예제 #1
0
        public void AddModCtrl(string moduleName, ModuleLayout modCtrl, FIRRTLNode[] modNodes, FIRRTLNode[] modNodesIncludeMod, FIRIO[] modIO)
        {
            lock (FIRNodeToModCtrl)
            {
                ModControllers.Add(modCtrl);
                foreach (var node in modNodes)
                {
                    FIRNodeToModCtrl.Add(node, modCtrl);
                }
            }

            PlacementTemplates.SubscribeToTemplate(moduleName, modCtrl, modNodes);
            RouteTemplates.SubscribeToTemplate(moduleName, modCtrl, modNodesIncludeMod, modIO);
        }
예제 #2
0
 public void SetCircuitSize(Point size, ModuleLayout rootModCtrl)
 {
     CircuitSize = size;
     RootModCtrl = rootModCtrl;
     OnCircuitSizeChanged?.Invoke(CircuitSize);
 }
예제 #3
0
 internal bool TryGetRouteTemplate(string moduleName, ModuleLayout modLayout, out List <WirePath> wires)
 {
     return(RouteTemplates.TryGetTemplate(moduleName, modLayout, out wires));
 }
예제 #4
0
 internal bool TryGetPlaceTemplate(string moduleName, ModuleLayout modLayout, out PlacementInfo placement)
 {
     return(PlacementTemplates.TryGetTemplate(moduleName, modLayout, out placement));
 }