コード例 #1
0
        public void Replace(LibraryGateReplaceRequest replaceRequest)
        {
            _netlistDataBuilder.Build(replaceRequest.SourceNetlist);
            _netlistCloner.Clone(replaceRequest.SourceNetlist, replaceRequest.TargetNetlist);

            _libraryGateReplacer.Replace(replaceRequest.TargetNetlist, replaceRequest.GateToReplace, replaceRequest.NewGate, replaceRequest.PortsMapping);

            var content = _netlistFileContentDirector.Construct(replaceRequest.TargetNetlist);

            _fileWriter.Write(replaceRequest.TargetNetlist, "Replace Library Gate", content);
        }
コード例 #2
0
        public void Replace_LibraryGateWithoutMapping_ReplaceLibraryGate()
        {
            // oai22 inst056453  ( .b2(n37), .b1(i3), .a2(n36), .a1(i1), .zn(o) );
            const string moduleToReplace = "oai22";
            const string newModule       = "oai22new";

            _target.Replace(DummyNetlist, moduleToReplace, newModule, new PortsMapping());

            var result = _instanceRepository.GetByModuleName(DummyNetlist, moduleToReplace).ToList();

            Assert.That(result, Is.Empty);

            result = _instanceRepository.GetByModuleName(DummyNetlist, newModule).ToList();
            Assert.That(result, Has.Count.EqualTo(1));
            Assert.That(result[0].Net, Has.Exactly(1).Matches <PortWirePair>(pwp => pwp.Port == "b2" & pwp.Wire == "n37"));
            Assert.That(result[0].Net, Has.Exactly(1).Matches <PortWirePair>(pwp => pwp.Port == "b1" & pwp.Wire == "i3"));
            Assert.That(result[0].Net, Has.Exactly(1).Matches <PortWirePair>(pwp => pwp.Port == "a2" & pwp.Wire == "n36"));
            Assert.That(result[0].Net, Has.Exactly(1).Matches <PortWirePair>(pwp => pwp.Port == "a1" & pwp.Wire == "i1"));
            Assert.That(result[0].Net, Has.Exactly(1).Matches <PortWirePair>(pwp => pwp.Port == "zn" & pwp.Wire == "o"));
        }