Существует достаточное количество опенсорсных парсеров/лексических анализаторов Verilog/SystemVerilog и мне всегда не до конца были понятны юзкейсы их использования: ведь намного проще и гибче управлять генерацией HDL кода, чем потом пытаться его анализировать или изменять имеющуюся кодовую базу.
И вот наконец мне встретился кейс для применения анализатора HDL на практике: выявление изменений портов модуля между текущей и предыдущей версиями HDL.
Это можно было бы решить малой кровью и полуручными операциями с использованием grep|cut|sort|sed
если бы не особый синтаксис описания портов в стиле:
inout a1, a2, a3, a4, a5;
input [7:0] bcc, bcd, bcf;
..
который башу уже не по зубам.
Подробнее про кейс: разработчик аналогового/миксед-сигнал блока может выгрузить автоматически генерируемый HDL на 100500 портов, часть из которых изменилась (в т.ч. может измениться тип порта) и задача обнаружить эти изменения и проапдейтить инстанциирование модуля в топ-левел блоке и при появлении непонятных портов (или нелогичных типов портов) задать необходимые вопросы разработчику.
Т.е. утилита такого формата здорово бы уменьшила влияние человеческого фактора и сократила расходуемые на это инженеро-часы:
verilog-ports-diff verilog-a.v verilog-b.v
❓Не попадалось ли кому-либо чего-то готового на эту тему?
(
@vlsihub
>>Click here to continue<<