private AppProject() { cells = new List <OriginCell>(); nodes = new List <TNode>(); gndTbs = new List <TNode>(); gndNet = new GndTestNet(); vccNet = new VCCTestNet(); normalNets = new NormalTestNet(); lgicNets = new LogicTestNet(); loopNets = new LoopNet(); equals = new Dictionary <string, ISet <TNode> >(); shorts = new List <ShortBranch>(); }
/// <summary> /// 分解初步理出来的逻辑网络 /// </summary> public void SplitLogicBranches(LoopNet lnet) { var logicnets = new List <LogicNet>(); nets.ForEach(p => logicnets.Add((LogicNet)p)); foreach (var net in logicnets) { nets.Remove(net); var childnets = (net as LogicNet).Split(MaxNetNum); foreach (var child in childnets) { bool norCondict = child.Branches.All(p => !p.BranchContradict()); if (norCondict) { nets.Add(child); /*分析逻辑导通条件*/ child.GetConductCondition(); lnet.Nets.ForEach(p => p.Branches.ForEach(q => q.hasBlock = false)); } } } }