|
|
|
Обработка нетлиста на Си, Ищутся библиотеки Cи под линукс |
|
|
|
Feb 13 2015, 05:34
|
Знающий
Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950
|
Привет! Не нашел, куда лучше приткнуть тему, но думаю что здесь я скорее получу ответ.
Есть задача - сильно менять нетлист. Прежде всего, его нужно зачитать, представить как набор объектов, а затем править: удалять/добавлять порты, элементы, цепи и ассайны, делать переподключения. Все это хочется делать на Си. Если кто с подобным работал, есть такая библиотека Verilog-Perl. Вот, хочется ровно то же самое, но лучше. Perl устраивает, но производительности не хватает - нужен компилятор, а не интерпретатор.
Т.е. что я ищу: Библиотека должна содержать функции чтения и записи нетлиста, создания базы объектов, и должна предоставлять простые функции: соединять/удалять/создавать и т.д. И все это под линукс.
|
|
|
|
|
Feb 13 2015, 13:42
|
ʕʘ̅͜ʘ̅ʔ
Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691
|
Вы могли бы уточнить, почему вас не устраивают средства, предоставляемые синтезаторами. Например, весь описанный вами функционал есть в DC и в RC. Средствами встроенного TCL всё прекрасно читается, меняется и записывается. Плюс: не будет сомнений в валидности инструментария. Кстати, если не секрет, как для такого сильно модифицированного нетлиста сделать функциональную верификацию? Цитата(Shivers @ Feb 13 2015, 06:34) Есть задача - сильно менять нетлист. Прежде всего, его нужно зачитать, представить как набор объектов, а затем править: удалять/добавлять порты, элементы, цепи и ассайны, делать переподключения. Все это хочется делать на Си. Если кто с подобным работал, есть такая библиотека Verilog-Perl. Вот, хочется ровно то же самое, но лучше. Perl устраивает, но производительности не хватает - нужен компилятор, а не интерпретатор.
|
|
|
|
|
Feb 13 2015, 14:20
|
Знающий
Группа: Свой
Сообщений: 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 для проверки на фабе/плате.
|
|
|
|
|
Feb 13 2015, 14:33
|
Знающий
Группа: Свой
Сообщений: 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, что умеет.
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|