реклама на сайте
подробности

 
 
> Парсер языка Verilog
Fitc
сообщение May 28 2015, 11:06
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 80
Регистрация: 21-10-11
Пользователь №: 67 894



Добрый день,
Кто-нибудь встречал парсер языка verilog (в частности verilog-netlist)?
Желательно open-source на Си/Си++
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
krux
сообщение May 29 2015, 18:53
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



то, что после синтеза, обычно называют gate-level netlist.
часто используют verilog-perl
но посмотрите до кучи
https://github.com/cliffordwolf/yosys


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
Fitc
сообщение May 29 2015, 21:00
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 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 стандарт есть.
Go to the top of the page
 
+Quote Post
Shivers
сообщение May 31 2015, 07:49
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
Fitc
сообщение May 31 2015, 13:45
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 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=126074

ruby жеж тоже интерпретируемый язык?
К тому же нет желания изучать для себя новые языки.
Пока Verilator более интересен тем, что написан на С++ и что поддерживает systemverilog, т.е. есть куда расти в случае чего.
Go to the top of the page
 
+Quote Post
Shivers
сообщение May 31 2015, 20:10
Сообщение #6


Знающий
****

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



Цитата(Fitc @ May 31 2015, 16:45) *
Пока Verilator более интересен тем, что написан на С++ и что поддерживает systemverilog, т.е. есть куда расти в случае чего.

Ваш интерес стандартом показывает, что с нетлистом вы толком не работали. Тогда зачем это все, какова цель? Что хотитет получить в итоге?

Гейт-нетлист, это исключительно иерархический верилог, содержащий обявление проводов и подключение ими модулей. Есть конструкции ассайн (в т.ч. на 1 и 0). И все, больше ничего нет, поскольку нижний уровень - несинтезируемые модели элементов, т.е. библиотека. Даже инверсий нет. Еще раз - почитайте описание классов Verilog-perl, сразу станет ясно, с чем имеют дело при парсинге нетлиста. Отдельный стандарт вы не найдете, имхо
Go to the top of the page
 
+Quote Post
Fitc
сообщение Jun 1 2015, 17:50
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
Shivers
сообщение Jun 1 2015, 18:34
Сообщение #8


Знающий
****

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



Работа с нетлистом подразумевает разработку для ASIC. А для асика используются в 99% (для РФ) синтезатор DC или RC, либо экстракция из IC или Энкаунтера. А они не выписывают никаких атрибутов, хоть и имеют собственные (настраиваемые) шаблонные правила для выписки названий селлов в нетлисте. Установки в 1 и 0 выписываются ассайнами, либо отдельным Tie селлами -и так и так, надо все уметь делать.

Про Альтеру сразу забудьте, там совсем другая жизнь. И библиотека в общем случае не нужна. Просто потому, что она в формате Liberty, и в формате верилога для моделирования (таблицы), которые упаришься парсить. Так что плагин-библиотеку для парсера Вам придется писать самому - под каждую конкретную библиотеку, с которой будете работать. Так проще всего. Если очень горит пощупать руками - гугл, либо добейте 50 постов и поищите на местном фтп (нужен доступ в 'свои'). Чтонибудь да найдете.
Лично я делал в виде плагина - для каждой либы создал подключаемый файл с таблицей из названия селлов, и их функции.

И все же интересно - у Вас конкретная задача, или просто любопытство?
Под большую часть задач уже что то написано, так или иначе. Верилог парсят уже 20 лет как :-)



Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 07:08
Рейтинг@Mail.ru


Страница сгенерированна за 0.01478 секунд с 7
ELECTRONIX ©2004-2016