private void ButtonTranslateClick(object sender, EventArgs e) { //try //{ var quartusText = richTextBoxQuartusScheme.Text; //var kovchegText = QuartusToKovchegTranslator.Translator.Translate(quartusText); var quartusNetlist = File.ReadAllText(textBoxInputFilePath.Text); richTextBoxLog.Text += "Файл считан успешно" + Environment.NewLine; var analyzer = new NetlistAnalyzer(); var quartusScheme = analyzer.Analyze(quartusNetlist); richTextBoxLog.Text += "Анализ завершён успешно" + Environment.NewLine; var transformer = new NetlistTransformer(); var kovchegScheme = transformer.Transform(quartusScheme); richTextBoxLog.Text += "Преобразование завершено успешно" + Environment.NewLine; var generator = new NetlistGenerator(); var kovchegNetlist = generator.GenerateNetlist(kovchegScheme); richTextBoxLog.Text += "Генерация завершена успешно" + Environment.NewLine; richTextBoxKovchegScheme.Text = kovchegNetlist; tabControlView.SelectedTab = tabPageKovcheg; File.WriteAllText(textBoxOutputFilePath.Text, kovchegNetlist); richTextBoxLog.Text += "Запись в файл завершена успешно" + Environment.NewLine; //} //catch (Exception exception) //{ // richTextBoxLog.Text += GetFullExceptionTrace(exception) + Environment.NewLine + Environment.NewLine; // tabControlView.SelectedTab = tabPageLog; //} richTextBoxLog.Text += string.Join(Environment.NewLine, $"Объектное представление схемы из Quartus:", JsonConvert.SerializeObject(quartusScheme, Formatting.Indented), Environment.NewLine, $"Объектное представление схемы для Ковчег:", JsonConvert.SerializeObject(kovchegScheme, Formatting.Indented)); listBoxQuartusInstances.Items.Clear(); listBoxQuartusNets.Items.Clear(); listBoxKovchegInstances.Items.Clear(); listBoxKovchegNets.Items.Clear(); listBoxQuartusInstances.Items.AddRange(quartusScheme.Instances.Select(i => $"{i.ModuleIdentifier} {i.Identifier}").ToArray()); listBoxQuartusNets.Items.AddRange(quartusScheme.Nets.Select(i => $"{i.NetType} {i.Identifier} {i.ConnectedNet}").ToArray()); listBoxKovchegInstances.Items.AddRange(kovchegScheme.Instances.Select(i => $"{i.ModuleIdentifier} {i.Identifier}").ToArray()); listBoxKovchegNets.Items.AddRange(kovchegScheme.Nets.Select(i => $"{i.NetType} {i.Identifier} {i.ConnectedNet}").ToArray()); }
static void Main(string[] args) { WriteUsage(); while (true) { var line = Console.ReadLine(); var parts = line.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries); if (parts.Length != 3 || parts[0] != "convert") { WriteUsage(); continue; } if (!File.Exists(parts[1])) { Console.WriteLine("Input file not exists"); continue; } if (!IsCorrectPath(parts[2])) { Console.WriteLine("Invalid output path"); continue; } var quartusNetlist = File.ReadAllText(parts[1]); var analyzer = new NetlistAnalyzer(); var quartusScheme = analyzer.Analyze(quartusNetlist); var transformer = new NetlistTransformer(); var kovchegScheme = transformer.Transform(quartusScheme); var generator = new NetlistGenerator(); var kovchegNetlist = generator.GenerateNetlist(kovchegScheme); File.WriteAllText(parts[2], kovchegNetlist); Console.WriteLine("Success!"); } }