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

 
 
> Создание собственного IP core, век живи век учись
a123-flex
сообщение Jan 22 2009, 13:37
Сообщение #1


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

Группа: Свой
Сообщений: 1 687
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 884



Привет докам и all !

Большой проект готовится завершиться уже близок сладостный момент сдачи кучи глюков заказчику... Чтобы никто ни о чем не догадался сдавать будем как IP core.

И вот незадача - непонятно как его делать...
Гугл при слове IP core начинает со страшной силой барыжить и в конфе ниче конкретного тоже не нашел.

В папке проекта после синтеза, рядом с головным файлом laja.v появляется файлик laja.edn

Как понимаю, laja.edn и есть корка, но смущает способ использования всего ентого продукта. В файле laja.v у меня лежит код.... а хочется чтоб был просто интерфейс файл и edn, как у ксила например.

Куда смотреть почитать на ету тему плз !

Среда Aldec Active HDL, Synplify, Xil.


--------------------
Если хочешь узнать, что ждет тебя на дороге впереди, спроси у тех, кто возвращается по ней.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dm.pogrebnoy
сообщение Jan 28 2009, 23:04
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 747
Регистрация: 11-04-07
Пользователь №: 26 933



Здесь думаю легче всего обойтись тем, что отдать заказчику нетлист (*.ngc или *.edn) и в сопровождение к нему создать *.vho файл, в котором по стандарту Xilinx содержится описание компонента и код для вставки в текст проекта (посмотрите, у любой корки от Xilinx Core Generator есть такой). Саму корку предложить подцеплять как black box. Ну это если заказчик согласится.

Можно сделать чуть покрасивее: создать package, в нем component. В архитектуре этого компонента добавить описание своей корки, и вставить как instance, соединив все порты с портами компонента в package. Потом можно будет ссылаться на этот package и на компонент в нем. Но все-равно, например Active-HDL, будет ругаться на то, что не нашел entity для instance (вашей корки). Думаю ISE Project Navigator тоже этому будет не рад. Удобство в том, что не нужно создавать сомнительный *.vho, а работать напрямую, хоть и с кривым, компонентом.

Проблема устраняется, если вам еще требуется и симуляция работы корки без исходных кодов. В этом случае читаем что написано ниже.

Если все делать по-человечески, то тогда нужно библиотеки городить, по типу того как это сделано в Core Generator (есть такая у Xilinx модная библиотека XilinxCoreLib). И уж после этого создавать wrapper, что бы было удобно пользоваться коркой. Но не вижу в этом смысла для единичного случая.


--------------------
Go to the top of the page
 
+Quote Post
des00
сообщение Jan 29 2009, 03:54
Сообщение #3


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(dm.pogrebnoy @ Jan 28 2009, 17:04) *
Проблема устраняется, если вам еще требуется и симуляция работы корки без исходных кодов. В этом случае читаем что написано ниже.

Если все делать по-человечески, то тогда нужно библиотеки городить, по типу того как это сделано в Core Generator (есть такая у Xilinx модная библиотека XilinxCoreLib). И уж после этого создавать wrapper, что бы было удобно пользоваться коркой. Но не вижу в этом смысла для единичного случая.


А ничего что сорцы XilinxCoreLib открытые ? И их можно посмотреть, подправить, заново скомпилировать в библиотеку? smile.gif

Если уж заводить речь об IP Core, то нужно начинать сначала. Что надо ?
Отдать конкретному заказчику гарантировано рабочий код, что бы он его просто вставил и у него все сразу заработало? Продавать данное IP ? и т.д.

Вообще по хорошему если заниматься IP то нужно делать 2 кода : для синтеза и для cycle accurate моделирования. На худой конец пропустите код через обфускатор. Будет моделироваться, синтезироваться, но в попытке разобраться там сам черт ногу сломит что к чему %))


--------------------
Go to the top of the page
 
+Quote Post
a123-flex
сообщение Jan 29 2009, 12:06
Сообщение #4


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

Группа: Свой
Сообщений: 1 687
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 884



Цитата(des00 @ Jan 29 2009, 06:54) *
А ничего что сорцы XilinxCoreLib открытые ? И их можно посмотреть, подправить, заново скомпилировать в библиотеку? smile.gif

Если уж заводить речь об IP Core, то нужно начинать сначала. Что надо ?
Отдать конкретному заказчику гарантировано рабочий код, что бы он его просто вставил и у него все сразу заработало? Продавать данное IP ? и т.д.

Вообще по хорошему если заниматься IP то нужно делать 2 кода : для синтеза и для cycle accurate моделирования. На худой конец пропустите код через обфускатор. Будет моделироваться, синтезироваться, но в попытке разобраться там сам черт ногу сломит что к чему %))



О блин наконец то знающие пришли... слушайте, я на самом деле давно изобрел обфускатор, но не думал, что его ктото продает.. Может на ftp есть что нибудь такое ?

Моя задача отдать ядро конкретному заказчику в виде недоступном для пересборки, чтоб все сразу работало...

Кстати насчет XilinxCoreLib вопрос. Может кто нибудь покажет мне исходник FIFO ?). Да и вообще, насколько я понимаю исходники становятся доступны, после примения генератора лицензии, за который в штатах посадят лет на 25...

А путь с библиотеками я так понимаю ето просто создание либы с компонентом для моделирующей среды и синтезатора, так ?


--------------------
Если хочешь узнать, что ждет тебя на дороге впереди, спроси у тех, кто возвращается по ней.
Go to the top of the page
 
+Quote Post
des00
сообщение Jan 29 2009, 17:24
Сообщение #5


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(a123-flex @ Jan 29 2009, 06:06) *
я на самом деле давно изобрел обфускатор, но не думал, что его ктото продает.. Может на ftp есть что нибудь такое ?


не совсем понял причем здесь обфускатор, вы же про IP спрашивали %) Если вы действительно сделали обфускатор то не могли бы рассказать в кратце на чем вы его написали и его параметры. Мне просто интересно.

Цитата
Моя задача отдать ядро конкретному заказчику в виде недоступном для пересборки, чтоб все сразу работало...


тогда в вашем случае я бы сделал так:
1. сделал декларации модулей для ХДЛ(что бы заказчик мог им быстро воспользоваться)
2. накидал бы простой тестбенч, в котором показал бы как это IP использовать
3. собрал ядро под конкретный чип. отдал бы нетлист.
4. узнал бы какой симулятор использует заказчик и отдал бы ему скомпилированную библиотеку с вашим модулем.

Конечно если заказчик не будет симулировать ваше IP в своей системе, то пункты 2/4 лишние.

Цитата
Кстати насчет XilinxCoreLib вопрос. Может кто нибудь покажет мне исходник FIFO ?). Да и вообще, насколько я понимаю исходники становятся доступны, после примения генератора лицензии, за который в штатах посадят лет на 25...


могу ошибаться но ИМХО вы путаете библиотеки для моделирования с библиотеками базовых примитивов. Поведенческие cycle-accurative модели всех примитивов и корок доступны в исходниках. Например у той же альтеры altera_mf.v

Код
// START_MODULE_NAME------------------------------------------------------------
//
// Module Name     : ALTSYNCRAM
//
// Description     : Synchronous ram model for Stratix series family
//
// Limitation      :
//
// END_MODULE_NAME--------------------------------------------------------------


и фирма не делает из этих моделей секрета. и собрать их можно под любой симулятор. Вы можете даже сами пачить либы (у тех же хилых, была ошибка в либах от исе 10.1 вроде, правиться по месту). А вот поведенческие модели ее закрытых IP корок, несмотря на то что идут в сорцах, пропущены через обфускатор %(

Цитата
А путь с библиотеками я так понимаю ето просто создание либы с компонентом для моделирующей среды и синтезатора, так ?


Вот этот вопрос не понял %)

ЗЫ. Кстати "исходники альтеровских FIFO" из коре генератора, я вытаскивал, после этого как то перестал использовать выходы usedw для комбинационной логики %))



Цитата(ClockworkOrange @ Jan 29 2009, 08:29) *
а что верилог-нетлист уже стало немодным для моделирования использовать?!


да без проблем, но давайте оценим скорость моделирования в первом и втором случаях? Подозреваю что она будет отличаться на порядки. У хороших разработчиков IP идет 2 модели, часто модель для моделирования идет на хдл и систем си %) Другое дело что у недобросовестных разработчиков они иногда отличаются и возникают интересные эффекты.

а моделировать vqm файлы в альтере я так и не научился, буду рад если расскажите как в моделсиме запустить vqm модели с верилоговскими, а не вхдл либами, что бы они работали. %(


--------------------
Go to the top of the page
 
+Quote Post
a123-flex
сообщение Feb 1 2009, 13:26
Сообщение #6


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

Группа: Свой
Сообщений: 1 687
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 884



[quote name='des00' date='Jan 29 2009, 20:24' post='537978']
не совсем понял причем здесь обфускатор, вы же про IP спрашивали %) Если вы действительно сделали обфускатор то не могли бы рассказать в кратце на чем вы его написали и его параметры. Мне просто интересно.

Да саму идею обфускатора придумал собсно. реализации как таковой не было, мне показалось что ето не очень серьезно. Я видел как люди расковыривали исходники на 100 кбайт бинарника 8 разрядного процессора для микроконтроллера, безо всяких стрингов, да и сам имею некоторый опыт разборки, поетому показалось что идея не заслуживает внимания. А оказывается етим зарабатывают.


тогда в вашем случае я бы сделал так:
1. сделал декларации модулей для ХДЛ(что бы заказчик мог им быстро воспользоваться)
2. накидал бы простой тестбенч, в котором показал бы как это IP использовать
3. собрал ядро под конкретный чип. отдал бы нетлист.
4. узнал бы какой симулятор использует заказчик и отдал бы ему скомпилированную библиотеку с вашим модулем.

Конечно если заказчик не будет симулировать ваше IP в своей системе, то пункты 2/4 лишние.

THANKS

могу ошибаться но ИМХО вы путаете библиотеки для моделирования с библиотеками базовых примитивов. Поведенческие cycle-accurative модели всех примитивов и корок доступны в исходниках. Например у той же альтеры altera_mf.v

Путаю однозначно.. Поведенческие модели неинтересно, есно я говорил про про примитивы.


--------------------
Если хочешь узнать, что ждет тебя на дороге впереди, спроси у тех, кто возвращается по ней.
Go to the top of the page
 
+Quote Post
des00
сообщение Feb 2 2009, 10:12
Сообщение #7


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(a123-flex @ Feb 1 2009, 07:26) *
Да саму идею обфускатора придумал собсно. реализации как таковой не было, мне показалось что ето не очень серьезно. Я видел как люди расковыривали исходники на 100 кбайт бинарника 8 разрядного процессора для микроконтроллера, безо всяких стрингов, да и сам имею некоторый опыт разборки, поетому показалось что идея не заслуживает внимания. А оказывается етим зарабатывают.


давно вынашиваю идею собственного обфускатора для верилога, но ничего лучше чем забить в PLY/YACC полную семантику языка, если делать без упрощений, на ум не приходит.

Но вообще планирую полную замену всех идентификаторов(имена модулей, порты, параметры, сигналы, метки и т.д.) на 64х символьные идентификаторы вида p01101010.....01010. Так изменяется все, кроме портов топ-модуля, удаляются все не нужные разделители, комментарии, модули собираются в один файл. Думаю что для проектов от 2-3 тысяч строк, без представления о функциях устройства, даже на слабо никто не возьмется "дизассемблировать" %))))


--------------------
Go to the top of the page
 
+Quote Post
v_mirgorodsky
сообщение Feb 2 2009, 12:07
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804



Цитата(des00 @ Feb 2 2009, 12:12) *
давно вынашиваю идею собственного обфускатора для верилога, но ничего лучше чем забить в PLY/YACC полную семантику языка, если делать без упрощений, на ум не приходит.

Но вообще планирую полную замену всех идентификаторов(имена модулей, порты, параметры, сигналы, метки и т.д.) на 64х символьные идентификаторы вида p01101010.....01010. Так изменяется все, кроме портов топ-модуля, удаляются все не нужные разделители, комментарии, модули собираются в один файл. Думаю что для проектов от 2-3 тысяч строк, без представления о функциях устройства, даже на слабо никто не возьмется "дизассемблировать" %))))

Хороший подход, но сложный sad.gif Как-то отлаживал грамматику собственного скриптового языка на YACC - отладил, но было очень долго и кошмарно ловить некоторые ошибки на стыке связки парсер - лексический анализатор. А вообще-то, в инете существуют стандартные уже написанные грамматические файлы определений под YACC для распространенных языков программирования. Встречал C/C++, Basic, Pascal. Думаю, что и Verilog в их числе. Может таким образом будет проще.


--------------------
WBR,
V. Mirgorodsky
Go to the top of the page
 
+Quote Post
des00
сообщение Feb 3 2009, 04:06
Сообщение #9


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(v_mirgorodsky @ Feb 2 2009, 06:07) *
Хороший подход, но сложный sad.gif Как-то отлаживал грамматику собственного скриптового языка на YACC - отладил, но было очень долго и кошмарно ловить некоторые ошибки на стыке связки парсер - лексический анализатор. А вообще-то, в инете существуют стандартные уже написанные грамматические файлы определений под YACC для распространенных языков программирования. Встречал C/C++, Basic, Pascal. Думаю, что и Verilog в их числе. Может таким образом будет проще.


понимаю что сложный, но вот сколько не ломал голову как учесть все тонкости языка, по другому как то не получается sad.gif можно упростить, если наложить ограничения на код.

Хотя пара идей появилась.

Насчет готовых парсеров, я в сети открытые парсеры для верилога не встречал. По правде говоря для С/С++/Паскаля я их сильно и не искал. Т.к. немного изучив питон все делаю на нем smile.gif
для питона парсеров верилога я не находил, есть хороший проект pycparser можно сделать на основе этой библиотеки.

Но вы правы нужно сильнее покопаться, по любому кто-то делал нечто подобное %)


Цитата(анатолий @ Feb 2 2009, 07:40) *
Тут всё переставлено с ног на голову.
IP core - это не для того, чтоб всё было зашифровано - а совсем наоборот-
чтоб всё было понятно.
Тем более, если за разработку платил заказчик.
Так что, будьте любезны, со всеми комментариями,
с интернациональным стилем и даже с поясняющими
картинками функциональной схемы на уровне RTL.


Класс, объясните это пожалуйста фирмам Altera/Xilinx/и т.д. которые ух негодяии скрывают сорцы и секреты своих корок. А за то что они не дают "даже с поясняющими
картинками функциональной схемы на уровне RTL" вообще надо расстрелять %)

А если серьезно, то все зависит от того как был составлен договор на IP и что является предметом договора. Тема уже обсуждалась, пользуйтесь поиском.


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

Сообщений в этой теме
- a123-flex   Создание собственного IP core   Jan 22 2009, 13:37
- - ClockworkOrange   процедура ничем не отличается от использования сто...   Jan 22 2009, 14:46
|- - a123-flex   Цитата(ClockworkOrange @ Jan 22 2009, 17...   Jan 23 2009, 07:51
|- - Kompot   Цитата(a123-flex @ Jan 23 2009, 11:5...   Jan 23 2009, 15:04
|- - a123-flex   Цитата(Kompot @ Jan 23 2009, 18:04) А Вы ...   Jan 26 2009, 08:47
|||- - a123-flex   Цитата(des00 @ Feb 3 2009, 07:06) понимаю...   Feb 3 2009, 11:44
|||- - анатолий   Цитата(des00 @ Feb 3 2009, 06:06) Класс, ...   Feb 3 2009, 12:15
|||- - atlantic   Цитата(анатолий @ Feb 3 2009, 15:15) Насч...   Feb 6 2009, 07:35
|||- - glock17   ЦитатаНасчет Altera/Xilinx/и т.д - эти корки там д...   Feb 10 2009, 01:20
||- - a123-flex   Цитата(des00 @ Jan 29 2009, 20:24) тогда ...   Feb 10 2009, 16:01
|- - ClockworkOrange   Цитата(des00 @ Jan 29 2009, 06:54) Вообще...   Jan 29 2009, 14:29
- - dm.pogrebnoy   Цитата(des00 @ Jan 29 2009, 06:54) А ниче...   Jan 29 2009, 20:23
- - анатолий   Тут всё переставлено с ног на голову. IP core - эт...   Feb 2 2009, 13:40
|- - a123-flex   Цитата(анатолий @ Feb 2 2009, 16:40) Тут ...   Feb 2 2009, 16:12
- - vetal   Цитатав секретах - или прячут свои недоделки, или ...   Feb 3 2009, 12:20


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 19:21
Рейтинг@Mail.ru


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