Программа для создания блок-схемы Verilog

Я хочу создать программу для анализа Verilog и отображения блок-схемы. Может ли кто-нибудь помочь мне в отношении того, какие алгоритмы мне нужно изучить? Я нашел хороший синтаксический анализатор Verilog, но теперь мне нужно найти связь между каждым блоком и разместить их соответствующим образом. Его не нужно сильно оптимизировать.

ОБНОВИТЬ:

сейчас я использую ironPython для рисования блок-схемы в Visio.

  1. Создайте список блоков с их входами и выходами
  2. Создайте график, который сопоставляет все выходы блока с соответствующими входами. Это в основном имеет все связи между блоками.
  3. Найдите для них место на схеме Visio.
  4. Нарисуйте их в Visio
  5. Подключите их в Visio.

person user591124    schedule 30.07.2013    source источник
comment
Можете ли вы использовать vivado от xilinx, он уже делает это за вас.   -  person alex_milhouse    schedule 31.07.2013
comment
Нет, я должен создать диаграмму visio. Который затем легче изменить для будущего использования.   -  person user591124    schedule 31.07.2013


Ответы (3)


Yosys — это инструмент синтеза Verilog с открытым исходным кодом. Его также можно использовать для анализа проектов и создания схем (с помощью GraphViz). Смотрите скриншоты на странице:

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

(Раскрытие информации о конфликте интересов: я являюсь автором Yosys.)

person CliffordVienna    schedule 31.07.2013

Вы также можете попробовать использовать синтез Altera, EASE, HDL Designer, Synplify HDL Analyst, nSchema или Xilinx PlanAhead.

person Veridian    schedule 30.07.2013
comment
а теперь vivado от xilinx - person alex_milhouse; 31.07.2013

Если вам просто нужен просмотр блоков и их взаимосвязей, вы можете попробовать Graphviz. Пример можно найти в другом потоке StackOverflow. Вы можете просто проанализировать дизайн HDL и построить их отношение, а затем записать в текстовый формат с синтаксисом Graphviz. Затем вызовите программу для создания

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

person jclin    schedule 31.07.2013