public void AddTemplateParameters(string moduleName, PlacingBase placer, FIRRTLNode[] nodeOrder) { lock (TemplateGenerating) { //If template is already generating or generated then //no need to generate again if (!TemplateGenerating.Add(moduleName)) { return; } } WorkLimiter.AddWork(() => { var placeInfo = placer.PositionModuleComponents(); AddTemplate(moduleName, placeInfo, nodeOrder); }); }
public void AddTemplateParameters(string moduleName, SimpleRouter router, PlacementInfo placeInfo, FIRRTLNode[] nodeOrder, FIRIO[] ioOrder) { lock (TemplateGenerating) { //If template is already generating or generated then //no need to generate again if (!TemplateGenerating.Add(moduleName)) { return; } } WorkLimiter.AddWork(() => { var wires = router.PathLines(placeInfo); AddTemplate(moduleName, wires, nodeOrder, ioOrder); }); }