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>();
 }
Exemple #2
0
        /// <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));
                    }
                }
            }
        }