Beispiel #1
0
        public void IsPassThroughBuffer_BothBufferInputAndOutputConnectedToModulePort_ReturnsTrue()
        {
            var buffer = new InstanceBuilder("some netlist", "some host").New("b1", "inst1")
                         .Add("a", "w1").Add("b", "w2").Build();
            var module = new Module("some netlist", "some host");

            module.Ports.Add(new Port("w1"));
            module.Ports.Add(new Port("w2"));

            var result = _target.IsPassThroughBuffer(module, buffer, "a", "b");

            Assert.That(result, Is.True);
        }
Beispiel #2
0
        private void RemoveBuffers(Module module, string bufferName, string inputPort, string outputPort)
        {
            var bufferIdsToBuffersMap = _instanceRepository.GetByHostModule(module.Netlist, module.Name)
                                        .Where(i => i.ModuleName == bufferName)
                                        .ToDictionary(i => i.Id, i => i);

            foreach (var bufferId in bufferIdsToBuffersMap.Keys.ToList())
            {
                var buffer = bufferIdsToBuffersMap[bufferId];
                if (_bufferWiringVerifier.IsPassThroughBuffer(module, buffer, inputPort, outputPort))
                {
                    continue;
                }

                _instanceRepository.Remove(buffer);

                var buffersToUpdate = ReplaceWires(module, inputPort, outputPort, buffer);
                foreach (var bufferToUpdate in buffersToUpdate)
                {
                    bufferIdsToBuffersMap[bufferToUpdate.Id] = bufferToUpdate;
                }
            }
        }