Я пытаюсь сформировать анализатор подключения сигнала в файле модуля. Он может читать (один или несколько) файлов Verilog и выполнять следующие действия:
- Понимать модуль и находить различные источники и места назначения внутри этого модуля. Другой источник и назначение сигнала внутри файла Verilog (из очень хорошей статьи Jianguo SONG и др.) -
- Combo block
- Flop block
- condition blocks
- blocking statement (ass--ign statement/ wi--re declaration )
- non-blocking .
- instantiation of another file.
- Создание хеш / словаря, подобного данным-структура с каждым сигналом (рег или провод в файле) в качестве ключей первого уровня.
- Затем создайте ключи источника и назначения для каждого из этих сигналов в качестве портов модуля или одного из внутренних источников / назначений, как упомянуто выше.
- Конечно, вектор сигнала может иметь несколько допустимых источников (учитываячасть вектора исходит от источника досягаемости) и нескольких мест назначения. Его можно поддерживать соответствующим образом.
Теперь вопрос -
Я искал подходящую работу-прекурсор, с которой мы можем начать это. Я прошел через BisonParser и попытался понять грамматику ANTLR и т. Д. Есть несколько предыдущих работ, которые упомянуты ниже
и несколько других.
Это хорошие пакеты, которые извлекают много информации о файлах и иногда генерируют отчет о подключении между файлами. Хотя я все еще копаюсь, я пока что не видел внутри файловой части.
Если кто-то знает более подходящую предыдущую работу, не могли бы вы указать на нее. Мы хотим начать нашу работу сэту базу, или нам придется начинать самостоятельно (вероятно, с одной из вышеперечисленных работ.)
Любая помощь приветствуется.
Спасибо.