|
Парсер языка Verilog |
|
|
|
 |
Ответов
|
May 29 2015, 18:53
|
Профессионал
    
Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596

|
то, что после синтеза, обычно называют gate-level netlist. часто используют verilog-perl но посмотрите до кучи https://github.com/cliffordwolf/yosys
--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
|
|
|
|
|
May 29 2015, 21:00
|
Частый гость
 
Группа: Свой
Сообщений: 80
Регистрация: 21-10-11
Пользователь №: 67 894

|
Цитата(krux @ May 29 2015, 21:53)  то, что после синтеза, обычно называют gate-level netlist. часто используют verilog-perl но посмотрите до кучи https://github.com/cliffordwolf/yosysЯ кстати слышал про yosys (используется в edaplayground.com), правда не знаю проще ли будет из него вытащить парсер, чем из verilator. Есть ли в каких-нибудь стандартах описание gate-level netlist на яызке verilog? Что примечательно, на edif стандарт есть.
|
|
|
|
|
May 31 2015, 07:49
|

Знающий
   
Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950

|
Цитата(Fitc @ May 30 2015, 00:00)  Есть ли в каких-нибудь стандартах описание gate-level netlist на яызке verilog? Что примечательно, на edif стандарт есть. А вы видели своими глазами гейт-нетлист? Трудно придумать что то проще. Но формально, это верилог, поэтому и описывается стандартом верилог. Если хотите сделать что то свое, я бы посоветовал почитать описание классов verilog-perl. Там очень доходчиво все обясняется - что есть и для чего использутся. Учитывая популярность (люди реально это используют) verilog-perl, если сможете повторить все их классы - точно не прогадаете. Я тоже заинтересован в Сишных библиотеках для нетлист-парсера, но ничего дельного найти не смог. p.s. более того, я уже поднимал этот вопрос на форуме. Помнится, SM присоветовал обратить внимание на ruby-gem. Нашел эту тему: http://electronix.ru/forum/index.php?showtopic=126074
|
|
|
|
|
May 31 2015, 13:45
|
Частый гость
 
Группа: Свой
Сообщений: 80
Регистрация: 21-10-11
Пользователь №: 67 894

|
Цитата(Shivers @ May 31 2015, 10:49)  А вы видели своими глазами гейт-нетлист? Трудно придумать что то проще. Но формально, это верилог, поэтому и описывается стандартом верилог. видел, но хотел бы знать формальные требования. хотелось бы видеть что-то типа стандарта IEEE Std 1364.1™-2002, где прописано синтезируемое подмножество verilog. Иначе получается, что хочу, то пишу в netlist. Цитата(Shivers @ May 31 2015, 10:49)  Если хотите сделать что то свое, я бы посоветовал почитать описание классов verilog-perl. Там очень доходчиво все обясняется - что есть и для чего использутся. Учитывая популярность (люди реально это используют) verilog-perl, если сможете повторить все их классы - точно не прогадаете. Я тоже заинтересован в Сишных библиотеках для нетлист-парсера, но ничего дельного найти не смог. p.s. более того, я уже поднимал этот вопрос на форуме. Помнится, SM присоветовал обратить внимание на ruby-gem. Нашел эту тему: http://electronix.ru/forum/index.php?showtopic=126074ruby жеж тоже интерпретируемый язык? К тому же нет желания изучать для себя новые языки. Пока Verilator более интересен тем, что написан на С++ и что поддерживает systemverilog, т.е. есть куда расти в случае чего.
|
|
|
|
|
May 31 2015, 20:10
|

Знающий
   
Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950

|
Цитата(Fitc @ May 31 2015, 16:45)  Пока Verilator более интересен тем, что написан на С++ и что поддерживает systemverilog, т.е. есть куда расти в случае чего. Ваш интерес стандартом показывает, что с нетлистом вы толком не работали. Тогда зачем это все, какова цель? Что хотитет получить в итоге? Гейт-нетлист, это исключительно иерархический верилог, содержащий обявление проводов и подключение ими модулей. Есть конструкции ассайн (в т.ч. на 1 и 0). И все, больше ничего нет, поскольку нижний уровень - несинтезируемые модели элементов, т.е. библиотека. Даже инверсий нет. Еще раз - почитайте описание классов Verilog-perl, сразу станет ясно, с чем имеют дело при парсинге нетлиста. Отдельный стандарт вы не найдете, имхо
|
|
|
|
|
Jun 1 2015, 17:50
|
Частый гость
 
Группа: Свой
Сообщений: 80
Регистрация: 21-10-11
Пользователь №: 67 894

|
Цитата(Shivers @ May 31 2015, 23:10)  Ваш интерес стандартом показывает, что с нетлистом вы толком не работали. Тогда зачем это все, какова цель? Что хотитет получить в итоге?
Гейт-нетлист, это исключительно иерархический верилог, содержащий обявление проводов и подключение ими модулей. Есть конструкции ассайн (в т.ч. на 1 и 0). И все, больше ничего нет, поскольку нижний уровень - несинтезируемые модели элементов, т.е. библиотека. Даже инверсий нет. Еще раз - почитайте описание классов Verilog-perl, сразу станет ясно, с чем имеют дело при парсинге нетлиста. Отдельный стандарт вы не найдете, имхо с нетлистом, действительно особо не работал. Хотя и был небольшой опыт разбора verilog, используя индусскую библиотеку на java (фиговая). Вот Вы говорите, что нет инверсий, есть провода и подключение ими модулей - это мне понятно, так как всё отображается на экземпляры селлов. А почему установка в 1 и 0 делается ассайнами, а не селлами? Ещё некоторые синтез-щие компиляторы вставляют перед селлами атрибуты, например, yosys вставляет имя исходного файла и номер строки в этом файле, которому соответствует селл. Т.е. парсер возможно должен уметь обрабатывать атрибуты. А вы не собирали базу селлов производителей? В каком формате они обычно хранятся? Взять например, altera - у них есть библиотека симуляции селлов на верилог и других HDL. Извлекать оттуда описание селлов неудобно, а откуда еще можно выдрать эти описания я не нашел.
Сообщение отредактировал Fitc - Jun 1 2015, 17:51
|
|
|
|
|
Jun 1 2015, 18:34
|

Знающий
   
Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950

|
Работа с нетлистом подразумевает разработку для ASIC. А для асика используются в 99% (для РФ) синтезатор DC или RC, либо экстракция из IC или Энкаунтера. А они не выписывают никаких атрибутов, хоть и имеют собственные (настраиваемые) шаблонные правила для выписки названий селлов в нетлисте. Установки в 1 и 0 выписываются ассайнами, либо отдельным Tie селлами -и так и так, надо все уметь делать.
Про Альтеру сразу забудьте, там совсем другая жизнь. И библиотека в общем случае не нужна. Просто потому, что она в формате Liberty, и в формате верилога для моделирования (таблицы), которые упаришься парсить. Так что плагин-библиотеку для парсера Вам придется писать самому - под каждую конкретную библиотеку, с которой будете работать. Так проще всего. Если очень горит пощупать руками - гугл, либо добейте 50 постов и поищите на местном фтп (нужен доступ в 'свои'). Чтонибудь да найдете. Лично я делал в виде плагина - для каждой либы создал подключаемый файл с таблицей из названия селлов, и их функции.
И все же интересно - у Вас конкретная задача, или просто любопытство? Под большую часть задач уже что то написано, так или иначе. Верилог парсят уже 20 лет как :-)
|
|
|
|
Сообщений в этой теме
Fitc Парсер языка Verilog May 28 2015, 11:06 dvladim Посмотрите открытые проекты.
Например Icarus Veril... May 29 2015, 15:58 Fitc Цитата(dvladim @ May 29 2015, 18:58) Посм... May 29 2015, 18:02 krux распарсить верилог - относительно несложно.
вопрос... May 29 2015, 18:12 Fitc Цитата(krux @ May 29 2015, 21:12) распарс... May 29 2015, 18:23 krux т.е. вам нужно неким образом обрабатывать синтезир... May 29 2015, 18:26 Fitc Цитата(krux @ May 29 2015, 21:26) т.е. ва... May 29 2015, 18:43      krux Цитата(Fitc @ Jun 1 2015, 20:50) А почему... Jun 1 2015, 18:21       krux Цитата(Shivers @ Jun 1 2015, 21:34) Работ... Jun 1 2015, 18:42 Golikov A. Дико любопытно, а зачем это все надо? Не слишком л... Jun 1 2015, 18:15 dvladim 2 TC У альтеры есть университетская программа (QUI... Jun 2 2015, 17:32 Fitc Тем временем прошло 2 года с того момента, как я з... Jan 8 2017, 12:39 AVR Цитата(Fitc @ Jan 8 2017, 15:39) права пр... Jan 8 2017, 17:20  Fitc Цитата(AVR @ Jan 8 2017, 20:20) В Воронеж... Jan 8 2017, 20:12   AVR Цитата(Fitc @ Jan 8 2017, 23:12) многие С... Jan 9 2017, 06:18   Ergond Цитата(Fitc @ Jan 9 2017, 03:12) Потому ч... May 17 2018, 13:22    Marat Zuev Цитата(Ergond @ May 17 2018, 14:22) Как м... May 17 2018, 15:40     Ergond Цитата(Marat Zuev @ May 17 2018, 22:40) В... May 17 2018, 16:28    Nieve Как вариант сделать синтез в ISE / Quartus. САПР с... May 17 2018, 15:44   AVR Цитата(Fitc @ Jan 8 2017, 23:12) а возмож... May 18 2018, 13:01    Marat Zuev Цитата(AVR @ May 18 2018, 13:01) О каком ... May 18 2018, 13:09 Flood Достаточно редкая задача, написание такого парсера... Jan 8 2017, 12:59 Fitc Цитата(Flood @ Jan 8 2017, 15:59) Достато... Jan 8 2017, 13:41 Shivers Спасибо за отзыв, очень любопытно!
По собстве... Jan 8 2017, 21:14 Fitc Цитата(Shivers @ Jan 9 2017, 00:14) Спаси... Jan 9 2017, 20:42 Flip-fl0p ЦитатаОставить в Veriloge не вариант, т.к. я пишу ... May 17 2018, 17:04 andrew_b Цитата(Flip-fl0p @ May 17 2018, 20:0... May 17 2018, 17:46
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|