Перейти к содержанию
    

Автоматизированная чистка кода Verilog/VHDL?

Здравствуйте.

Заказчик начал выдвигать разные требования к исходным кодам Verilog/VHDL - например, убрать неиспользуемые сигналы (переменные), раскрыть `define и тп.

Вручную этим заниматься, конечно же, совершенно не улыбается - кроме больших временных затрат, еще и появляется большая вероятность чего-нибудь сломать.

 

Кто-нибудь пробовал автоматизированно делать такие штуки? Есть ли готовые инструменты, пусть платные.

Основной критерий - после такой "чистки" проект должен компилироваться и работать нормально.

 

Всем спасибо за любую помощь.

P.S. Если кто-то что-то хочет предложить свое - пишите в личку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так поищите в результатах синтеза. Там как раз появляются исходники для раскладки со всеми раскрытыми скобками :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 minutes ago, MegaVolt said:

Так поищите в результатах синтеза. Там как раз появляются исходники для раскладки со всеми раскрытыми скобками :)

Поясните пожалуйста,

1) Какой синтезатор Вы имеет в виду? У меня Quartus Pro 18.

2) Где смотреть?

 

P.S. Добавлю, что "вычищенный код" должен хоть сколько-нибудь прилично выглядеть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

берите пробную версию Sigasi и импортируйте туда свой проект. автоматическое выравнивание кода и подсветит с варнингами все не используемые сигналы, не корректные присваивания векторов разных разрядностей и т.д.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 минут назад, Koluchiy сказал:

Поясните пожалуйста,

1) Какой синтезатор Вы имеет в виду? У меня Quartus Pro 18.

2) Где смотреть?

 

P.S. Добавлю, что "вычищенный код" должен хоть сколько-нибудь прилично выглядеть.

К сожалению не знаю где это хранися в Альтере. В Xilinx всё это добро лежит в папке проекта. И запуск разкладки плодит там кучу файлов. Запустите поиск по ключевым именам и посмотрите что за файлы сгенерены автоматом. Проверьте их на читабельность :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, MegaVolt said:

К сожалению не знаю где это хранися в Альтере. В Xilinx всё это добро лежит в папке проекта. И запуск разкладки плодит там кучу файлов. Запустите поиск по ключевым именам и посмотрите что за файлы сгенерены автоматом. Проверьте их на читабельность :)

Xilinx - это ISE или Vivado? И какая версия. Чего-то в своей Виваде не вижу ничего подобного. Может, надо галку какую поставить?

1 hour ago, quato_a said:

берите пробную версию Sigasi и импортируйте туда свой проект. автоматическое выравнивание кода и подсветит с варнингами все не используемые сигналы, не корректные присваивания векторов разных разрядностей и т.д.

А там можно сделать, чтобы она сама это все исправляла? Или только ручками.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

46 minutes ago, Koluchiy said:

А там можно сделать, чтобы она сама это все исправляла? Или только ручками.

IMHO  не думаю что  вы найдете  инструмент с такой функциональностью.  Тем более чтобы и форматирование соблюдал.  Особенно для раскрытие макросов так как обычно раскрытие идет "в одну  строку". 
Да и странное требование раскрытия макросов - это же убивает читаемость  сорцов. Но как говорится хозяин-барин.
 

Кстати в Modelsim/Questasim  есть ключ (-E ...,  -Epretty ...) позволяющий вывести дамп  компилируемого файла  с раскрытыми макросами.  Но все одно без ручной работы не обойтись 

 

Удачи! Rob. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 минут назад, Koluchiy сказал:

Xilinx - это ISE или Vivado? И какая версия. Чего-то в своей Виваде не вижу ничего подобного. Может, надо галку какую поставить?

EDK создаёт вот такой файлик ИМЯ_ПРОЕКТА\hdl\system.vhd

В нём ссылается на кучу файликов  с окончанием в виде ИМЯ_БЛОКА_wrapper.vhd

Выше похоже посоветовали примерно то же самое для вашей среды.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, RobFPGA said:

Приветствую!

IMHO  не думаю что  вы найдете  инструмент с такой функциональностью.  Тем более чтобы и форматирование соблюдал.  Особенно для раскрытие макросов так как обычно раскрытие идет "в одну  строку". 
Да и странное требование раскрытия макросов - это же убивает читаемость  сорцов. Но как говорится хозяин-барин.
 

Кстати в Modelsim/Questasim  есть ключ (-E ...,  -Epretty ...) позволяющий вывести дамп  компилируемого файла  с раскрытыми макросами.  Но все одно без ручной работы не обойтись 

 

Удачи! Rob. 

Я предполагаю, что восстановить форматирование можно, это не такая сложная задача. Скорее, нужно в ходе этого процесса не убить идентификаторы и не перековать always'ы на луты и триггеры. Т.е. чтобы это не был нетлист.

Про раскрыть definы имелось в виду - когда в зависимости от наличия дефайна активируется тот или иной участок кода (отладочные блоки и тп).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, Koluchiy said:

А там можно сделать, чтобы она сама это все исправляла? Или только ручками.

Ручками

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

3 hours ago, Koluchiy said:

Я предполагаю, что восстановить форматирование можно, это не такая сложная задача. Скорее, нужно в ходе этого процесса не убить идентификаторы и не перековать always'ы на луты и триггеры. Т.е. чтобы это не был нетлист.

Про раскрыть definы имелось в виду - когда в зависимости от наличия дефайна активируется тот или иной участок кода (отладочные блоки и тп).

Автоматическое нормальное  форматирование это та еще  задача - а особенно после раскрытия макросов. Хорошо  если  все макросы это  простенькое  (типа`define DBG_ON  (1)...  if (`DBG_ON ) begin ... ) .
А у меня например есть макросы и по 200 строк текста да еще и вложенные. :shok:   В общем случае такие автоматом сложно будет красиво причесать. 

Ну и если еще макросы раскрывать надо  выборочно, только те что контролируют блоки кода так это дополнительная головная боль. И IMHO все одно результат придется глазками проверять. 

Так  что думаю  самый  доступны инструмент для этого  будет обучаемая нейронная сеть ...  в виде джуна RTL-щика  :biggrin:   Пара-тройка сеансов обучения с "подкреплением" обеспечат вам нужный результат.  

 

Удачи! Rob.   

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 hours ago, Koluchiy said:

Заказчик начал выдвигать разные требования к исходным кодам Verilog/VHDL

Хорошо, что ваш заказчик не заставил вас купить линтер и пощипать код на предмет соответствия RMM, DO-254, STARK, CDC, RDC и что_там_ещё_есть.
Кстати, мы сами на пороге покупки оного инструмента. Сам нашёл и настоял ))) Держите кулаки и stay tuned )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 часов назад, MaratZuev сказал:

Кстати, мы сами на пороге покупки оного инструмента.

Какого, если не секрет? И каков порядок цен на такое?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не секрет насчёт названия: Alint (Pro). А вот цена .. впрочем, если я скажу, что несколько десятков тысяч евро, то вряд ли кого-то удивлю или что-либо нарушу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

06.08.2021 в 14:36, Koluchiy сказал:

Поясните пожалуйста,

1) Какой синтезатор Вы имеет в виду? У меня Quartus Pro 18.

2) Где смотреть?

 

P.S. Добавлю, что "вычищенный код" должен хоть сколько-нибудь прилично выглядеть.

Синтезатор пишет, например.

Warning (10036): Verilog HDL or VHDL warning at tst_kort.vhd(65): object "rst" assigned a value but never read

 

Но вряд ли это особо сильно поможет для формирования красивого кода. Нужно руками. 
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...