private static void Main(string[] args)
{
//string file = args.Length == 0 ? "test" : args[0];
string file = args.Length == 0 ? "lut_00FE" : args[0];
_mainNet = new Mnet();
_mainNet.ReadMnetFile(file + @".MNET");
var portsRep = new List<Cpoint>();
List<Node> luts = _mainNet.GetLuts();
var lutsMnet = new List<Mnet>();
var bl = new Blib();
bl.Load("MNETLib.BinLib");
//"MNETLib.BinLib"
foreach (Node node in luts)
{
var lnet = new Mnet();
node.HaveCout = СheckCout(node, _mainNet.Wires);
lnet.ReadMnetFileBl(@"lut_" + node.GetLutKey() + ".MNET", bl);
if (!node.HaveCout)
{
lutsMnet.Add(lnet);
}
else
{
var lnetC = new Mnet();
lnetC.ReadMnetFileBl(@"lutc_" + node.GetLutKey().Substring(2, 2) + ".MNET", bl);
Mnet combined = MnetComb(lnet, lnetC);
lutsMnet.Add(combined);
}
}
RenameLutNodes(lutsMnet);
RemoveLutFromMainNet(_mainNet, luts);
ReplacePortsByCpoints(portsRep, lutsMnet, luts);
RpeplaceWireToCpoints(portsRep);
CombineAllWiresAndNodes(lutsMnet);
//remove unused Wire
_mainNet.Wires.Remove(_mainNet.Wires.FirstOrDefault(t => t.DistPort == "dataa"));
_mainNet.Wires.Remove(_mainNet.Wires.FirstOrDefault(t => t.DistPort == "datab"));
_mainNet.Wires.Remove(_mainNet.Wires.FirstOrDefault(t => t.DistPort == "datac"));
_mainNet.Wires.Remove(_mainNet.Wires.FirstOrDefault(t => t.DistPort == "datad"));
string exportStr = _mainNet.GetSting();
File.WriteAllText(file + @"_D.MNET", exportStr);
}