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

 
 
 
Reply to this topicStart new topic
> Обработка нетлиста на Си, Ищутся библиотеки Cи под линукс
Shivers
сообщение Feb 13 2015, 05:34
Сообщение #1


Знающий
****

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



Привет! Не нашел, куда лучше приткнуть тему, но думаю что здесь я скорее получу ответ.

Есть задача - сильно менять нетлист. Прежде всего, его нужно зачитать, представить как набор объектов, а затем править: удалять/добавлять порты, элементы, цепи и ассайны, делать переподключения. Все это хочется делать на Си. Если кто с подобным работал, есть такая библиотека Verilog-Perl. Вот, хочется ровно то же самое, но лучше. Perl устраивает, но производительности не хватает - нужен компилятор, а не интерпретатор.

Т.е. что я ищу: Библиотека должна содержать функции чтения и записи нетлиста, создания базы объектов, и должна предоставлять простые функции: соединять/удалять/создавать и т.д. И все это под линукс.
Go to the top of the page
 
+Quote Post
SM
сообщение Feb 13 2015, 05:59
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Была еще библиотека nldb - на яве, которую можно использовать из C/C++. Это, вроде, более высокая степень компилированности, чем perl. Но я не знаю, померла, или нет...
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Feb 13 2015, 13:42
Сообщение #3


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



Вы могли бы уточнить, почему вас не устраивают средства, предоставляемые синтезаторами. Например, весь описанный вами функционал есть в DC и в RC. Средствами встроенного TCL всё прекрасно читается, меняется и записывается. Плюс: не будет сомнений в валидности инструментария.

Кстати, если не секрет, как для такого сильно модифицированного нетлиста сделать функциональную верификацию?

Цитата(Shivers @ Feb 13 2015, 06:34) *
Есть задача - сильно менять нетлист. Прежде всего, его нужно зачитать, представить как набор объектов, а затем править: удалять/добавлять порты, элементы, цепи и ассайны, делать переподключения. Все это хочется делать на Си. Если кто с подобным работал, есть такая библиотека Verilog-Perl. Вот, хочется ровно то же самое, но лучше. Perl устраивает, но производительности не хватает - нужен компилятор, а не интерпретатор.
Go to the top of the page
 
+Quote Post
Shivers
сообщение Feb 13 2015, 14:20
Сообщение #4


Знающий
****

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



Цитата(SM @ Feb 13 2015, 09:59) *
Была еще библиотека nldb - на яве, которую можно использовать из C/C++. Это, вроде, более высокая степень компилированности, чем perl. Но я не знаю, померла, или нет...

Спасибо! Яву пока использовать не хочется, надеюсь найти чистые Си-шные либы.

Цитата(Fat Robot @ Feb 13 2015, 17:42) *
Вы могли бы уточнить, почему вас не устраивают средства, предоставляемые синтезаторами. Например, весь описанный вами функционал есть в DC и в RC. Средствами встроенного TCL всё прекрасно читается, меняется и записывается. Плюс: не будет сомнений в валидности инструментария.

Жутко тормозной интерпретатор. По моему опыту, интерпретатор perl обрабатывает нетлист в 20 раз быстрее, чем DC справляется с теми же алгоритмами на TCL. Хотя, работать с командами DC (конкретно - с коллекциями) намного удобнее. imho
Про RC ничего не знаю, но думаю что то же самое.
Из интерпретаторов вряд ли что нибудь сравнится с perl. Быстрее - только под компилятор писать. Да и с защитой авторских прав, компилятор лучше. Код на перле я пока не знаю как защитить (впрочем, особо этот вопрос пока не изучал, надеюсь переписать все на Си).

Цитата(Fat Robot @ Feb 13 2015, 17:42) *
Кстати, если не секрет, как для такого сильно модифицированного нетлиста сделать функциональную верификацию?

Только моделирование, ничего другого я не знаю. И еще DFT для проверки на фабе/плате.
Go to the top of the page
 
+Quote Post
SM
сообщение Feb 13 2015, 14:26
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Shivers @ Feb 13 2015, 17:20) *
Из интерпретаторов вряд ли что нибудь сравнится с perl.

Возможно, ruby будет быстрее, вместе с вериложным gem
Go to the top of the page
 
+Quote Post
Shivers
сообщение Feb 13 2015, 14:33
Сообщение #6


Знающий
****

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



Цитата(SM @ Feb 13 2015, 18:26) *
Возможно, ruby будет быстрее, вместе с вериложным gem

Спасибо! Про такое я вообще не слышал.

На Verilog-Perl больше всего не хватает команд вроде all_fanin/all_fanout, да и вообще там нет связей между объектами. Т.е. есть объекты - селл, пин, ассайн, нет. Пин связан с селлом, нет с пином. Но вот в обратную эти связи не работают, и получить что то вроде all_connected для цепи нельзя, надо создавать собственные массивы из связей. Переподключение пина выливается в его полное удаление, а затем создание нового. В общем, Verilog-Perl далек от идеала. Почитаю про ruby-gem, что умеет.
Go to the top of the page
 
+Quote Post
SM
сообщение Feb 13 2015, 15:08
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Shivers @ Feb 13 2015, 17:33) *
Спасибо!

Не за что. Я сам про это только слышал, но не видел, и на что оно способно, не знаю.
Go to the top of the page
 
+Quote Post
Doka
сообщение Oct 27 2017, 16:57
Сообщение #8


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



вот наткнулся случайно:
https://github.com/verilog-to-routing/vtr-v.../master/ODIN_II
Tool for converting a subset of the Verilog Hardware Description Language (HDL) into a BLIF netlist.

хорош тем, что там для парзенья используются bison и flex, ставшие стандартом де-факто для таких вещей - можно подсмотреть как там написано и сделать по образцу


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post
baumanets
сообщение Oct 28 2017, 09:32
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 398
Регистрация: 30-12-09
Из: Москва, Зеленоград
Пользователь №: 54 579



Для аналоговых парсеров нетлистов типа spice, spectre, eldo движок у меня есть.
Если нужно написать какую-либо программу на C - обращайтесь.

Если нужен бесплатный вариант - в PDK Микрона был файл calibre2spectre, написанный на перле моим коллегой
для post layout simulation.


--------------------
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th April 2024 - 20:05
Рейтинг@Mail.ru


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