Exemple #1
0
 private IEnumerable<TAVerb> Do(ISignalSource<StdLogicVector> a, ISignalSource<StdLogicVector> b, 
     In<StdLogicVector> rs, ISignalSink<StdLogicVector> r)
 {
     if (_host.PipelineDepth == 0)
     {
         yield return Verb(ETVMode.Locked, 
             _host.A.Dual.Drive(a)
                 .Par(_host.B.Dual.Drive(b))
                 .Par(r.Comb.Connect(rs.AsSignalSource())));
     }
     else
     {
         yield return Verb(ETVMode.Locked, 
             _host.A.Dual.Drive(a)
                 .Par(_host.B.Dual.Drive(b)));
         for (int i = 1; i < _host.PipelineDepth; i++)
         {
             yield return Verb(ETVMode.Shared);
         }
         yield return Verb(ETVMode.Shared,
             r.Comb.Connect(rs.AsSignalSource()));
     }
 }