Поиск и замена кода Verilog с помощью Perl

У меня есть несколько выражений в файле:

   e = a & b;
   f = e | c;
   d = ~f;

Мне нужно преобразовать эти выражения в составное выражение, подобное этому:

   d = ~ ((a & b) | c)

Как я могу сделать это в Perl. Существуют ли какие-либо модули CPAN, которые я могу использовать для этого? Или это можно сделать без использования модулей?

Я работаю над проектом парсера verilog.


person ravi kishore    schedule 31.03.2012    source источник
comment
вы хотите что-то вроде #define, я прав?   -  person gaussblurinc    schedule 31.03.2012
comment
Пробовали ли вы искать в CPAN?   -  person Qtax    schedule 31.03.2012
comment
да... Я не могу их использовать.. Если вы можете дать мне несколько ссылок, чтобы узнать, как использовать модули CPAN, это было бы для меня большим подспорьем... Спасибо...   -  person ravi kishore    schedule 31.03.2012


Ответы (1)


Для анализа вашего кода Verilog для создания список сигналов. Если у вас есть полный контроль над макетом вашего кода Verilog, вам не нужно использовать этот модуль. Однако имейте в виду, что синтаксический анализ Verilog не является тривиальным.

person toolic    schedule 31.03.2012
comment
Да, это непросто..... я разбираю комбинационные блоки, которые преобразуются в какое-то логическое выражение. Можете ли вы дать мне несколько ссылок, где я мог бы узнать, как использовать модули CPAN ....? Спасибо... - person ravi kishore; 31.03.2012
comment
Что вы подразумеваете под использованием? Если вы имеете в виду установку, это может быть столь же тривиально, как запуск команды cpan. perldoc cpan - person toolic; 31.03.2012
comment
Стоит отметить: должно быть что-то не так в том, как автор настроил метафайлы, облегчающие индексацию Verilog-Perl. cpan Verilog-Perl не находит. Однако вы можете использовать сопоставление с образцом, чтобы найти его: cpan /Verilog-Perl/. И, кажется, предпочитает среды * nix. - person DavidO; 02.04.2012