public void CreateControlpath(FlowMatrix flowSpec, string procName) { flowSpec.ReplaceDontCares(); var sens = flowSpec.FlowSources.Select(sr => sr.Desc) .Concat(Enumerable.Repeat((ISignalOrPortDescriptor)_stateSignal.Descriptor, 1)) .Distinct(); var fudTempl = new FUDriveTemplate(this, flowSpec); var fudFunc = fudTempl.GetAlgorithm(); _binder.CreateProcess(SystemSharp.Components.Process.EProcessKind.Triggered, fudFunc, sens.ToArray()); _host.Descriptor.GetDocumentation().Documents.Add(new Document(procName + "_FSM_report.txt", flowSpec.GetMUXReport())); }
public void CreateControlpath(FlowMatrix flowSpec, string procName) { var sens = flowSpec.FlowSources.Select(sr => sr.Desc) .Concat(Enumerable.Repeat((ISignalOrPortDescriptor)_stateSignal.Descriptor, 1)) .Distinct(); var tscTempl = new TristateConcTemplate(this, flowSpec); var tscFunc = tscTempl.GetAlgorithm(); _binder.CreateProcess(SystemSharp.Components.Process.EProcessKind.Triggered, tscFunc, sens.ToArray()); var fudTempl = new FUDriveTemplate(this, flowSpec, tscTempl.NonTristateTargets); var fudFunc = fudTempl.GetAlgorithm(); _binder.CreateProcess(SystemSharp.Components.Process.EProcessKind.Triggered, fudFunc, sens.ToArray()); }