コード例 #1
0
        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()));
        }
コード例 #2
0
        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());
        }
コード例 #3
0
 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());
 }
コード例 #4
0
 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()));
 }