Shivers 0 13 февраля, 2015 Опубликовано 13 февраля, 2015 · Жалоба Привет! Не нашел, куда лучше приткнуть тему, но думаю что здесь я скорее получу ответ. Есть задача - сильно менять нетлист. Прежде всего, его нужно зачитать, представить как набор объектов, а затем править: удалять/добавлять порты, элементы, цепи и ассайны, делать переподключения. Все это хочется делать на Си. Если кто с подобным работал, есть такая библиотека Verilog-Perl. Вот, хочется ровно то же самое, но лучше. Perl устраивает, но производительности не хватает - нужен компилятор, а не интерпретатор. Т.е. что я ищу: Библиотека должна содержать функции чтения и записи нетлиста, создания базы объектов, и должна предоставлять простые функции: соединять/удалять/создавать и т.д. И все это под линукс. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 13 февраля, 2015 Опубликовано 13 февраля, 2015 · Жалоба Была еще библиотека nldb - на яве, которую можно использовать из C/C++. Это, вроде, более высокая степень компилированности, чем perl. Но я не знаю, померла, или нет... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FatRobot 0 13 февраля, 2015 Опубликовано 13 февраля, 2015 · Жалоба Вы могли бы уточнить, почему вас не устраивают средства, предоставляемые синтезаторами. Например, весь описанный вами функционал есть в DC и в RC. Средствами встроенного TCL всё прекрасно читается, меняется и записывается. Плюс: не будет сомнений в валидности инструментария. Кстати, если не секрет, как для такого сильно модифицированного нетлиста сделать функциональную верификацию? Есть задача - сильно менять нетлист. Прежде всего, его нужно зачитать, представить как набор объектов, а затем править: удалять/добавлять порты, элементы, цепи и ассайны, делать переподключения. Все это хочется делать на Си. Если кто с подобным работал, есть такая библиотека Verilog-Perl. Вот, хочется ровно то же самое, но лучше. Perl устраивает, но производительности не хватает - нужен компилятор, а не интерпретатор. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shivers 0 13 февраля, 2015 Опубликовано 13 февраля, 2015 · Жалоба Была еще библиотека nldb - на яве, которую можно использовать из C/C++. Это, вроде, более высокая степень компилированности, чем perl. Но я не знаю, померла, или нет... Спасибо! Яву пока использовать не хочется, надеюсь найти чистые Си-шные либы. Вы могли бы уточнить, почему вас не устраивают средства, предоставляемые синтезаторами. Например, весь описанный вами функционал есть в DC и в RC. Средствами встроенного TCL всё прекрасно читается, меняется и записывается. Плюс: не будет сомнений в валидности инструментария. Жутко тормозной интерпретатор. По моему опыту, интерпретатор perl обрабатывает нетлист в 20 раз быстрее, чем DC справляется с теми же алгоритмами на TCL. Хотя, работать с командами DC (конкретно - с коллекциями) намного удобнее. imho Про RC ничего не знаю, но думаю что то же самое. Из интерпретаторов вряд ли что нибудь сравнится с perl. Быстрее - только под компилятор писать. Да и с защитой авторских прав, компилятор лучше. Код на перле я пока не знаю как защитить (впрочем, особо этот вопрос пока не изучал, надеюсь переписать все на Си). Кстати, если не секрет, как для такого сильно модифицированного нетлиста сделать функциональную верификацию? Только моделирование, ничего другого я не знаю. И еще DFT для проверки на фабе/плате. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 13 февраля, 2015 Опубликовано 13 февраля, 2015 · Жалоба Из интерпретаторов вряд ли что нибудь сравнится с perl. Возможно, ruby будет быстрее, вместе с вериложным gem Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shivers 0 13 февраля, 2015 Опубликовано 13 февраля, 2015 · Жалоба Возможно, ruby будет быстрее, вместе с вериложным gem Спасибо! Про такое я вообще не слышал. На Verilog-Perl больше всего не хватает команд вроде all_fanin/all_fanout, да и вообще там нет связей между объектами. Т.е. есть объекты - селл, пин, ассайн, нет. Пин связан с селлом, нет с пином. Но вот в обратную эти связи не работают, и получить что то вроде all_connected для цепи нельзя, надо создавать собственные массивы из связей. Переподключение пина выливается в его полное удаление, а затем создание нового. В общем, Verilog-Perl далек от идеала. Почитаю про ruby-gem, что умеет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 13 февраля, 2015 Опубликовано 13 февраля, 2015 · Жалоба Спасибо! Не за что. Я сам про это только слышал, но не видел, и на что оно способно, не знаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Doka 4 27 октября, 2017 Опубликовано 27 октября, 2017 · Жалоба вот наткнулся случайно: 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, ставшие стандартом де-факто для таких вещей - можно подсмотреть как там написано и сделать по образцу Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
baumanets 12 28 октября, 2017 Опубликовано 28 октября, 2017 · Жалоба Для аналоговых парсеров нетлистов типа spice, spectre, eldo движок у меня есть. Если нужно написать какую-либо программу на C - обращайтесь. Если нужен бесплатный вариант - в PDK Микрона был файл calibre2spectre, написанный на перле моим коллегой для post layout simulation. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться