1

Тема: Создание шаблона IP блока.

Добрый день. Следующий вопрос - есть ли в среде инструмент, позволяющий создавать базовый каркас IP блока.
На примере Vivado это выглядит как wizard, создающий сразу файл FPGA с заданными входами-выходами(включая все выводы APB/AHB) и конечным автоматом на каждый периферийный адрес для работы с данным блоком, оставалось соответственно на каждый адрес только привязать чтение-запись данных. И к нему сразу создавался библиотечный .c файл, позволяющий на МК сразу работать с написанной периферией посредством функций.
Есть ли что-то подобное в Libero? Писать с нуля блок с поддержкой AHB каждый раз не очень приятная мысль.

2

Re: Создание шаблона IP блока.

Добрый день!
Тоже сейчас ковыряю этот вопрос. Есть вот такой документ. Если в кратце - создание компонента, который контачит с шиной APB микроконтроллера и привязка этого компонента к проекту. Есть пара примеров. Как это будет смотреться со стороны МК - не освещено.
Есть еще документ. Суть та же, только речь идет уже и о APB, и о AHB. Часть про APB, похоже, такая же, как и в предыдущем документе.
Документов по SoftConsole я не нашел, но, думаю, можно будет расковырять родные же библиотеки, которые идут с UART, I2C и пр.

3

Re: Создание шаблона IP блока.

Со стороны МК он подключается через блок FIC_0. Там же выбирается тип шины - AHBLite/APB3. И это видимо всё, что даёт среда, остальное на плечи разработчика ложится.
Спасибо за документы. Но они только подтверждают, что функционала для работы с AMBA среда не имеет. Что мягко говоря странно, без этого теряется весь смысл ПЛИС и МК на одном кристалле. Прихожу к мысли что проще их генерить через Xilinxовую Vivado. Попробуйте если есть возможность, это мне кажется проще чем каждый раз переделывать встроенные библиотеки и записывать на листочках адреса блоков:)
Как смогу заняться этим - отпишусь.

4

Re: Создание шаблона IP блока.

Честно говоря с Xilinx не знаком, ПЛИС вообще занимаюсь год как. Основной опыт - Altera. Там, в общем, такая же система, как и со SmartFusion - есть внутренние шины, которые называются Avalon-MM и Avalon-ST. Нужна адресуемая периферия - реализуйте Avalon-MM, нужен поток от ядра к ядру - реализуйте Avalon-ST. Реализуется так же, как и в Libero, пишется ядро, в нем закладываются регистры/проводники, соответствующие спецификации интерфейса, а потом, в специальном окошке, задается соответствие между вашими регистрами/проводниками и интерфейсом. Соблюдение времянок интерфейса так же задача разработчика.
PS. Может не все так плохо, на днях попробую достучаться со стороны контроллера до регистров самописной периферии, благо пример имеется, можно скачать заготовки. Кода в них не много, кажется, что все не так и сложно.

5

Re: Создание шаблона IP блока.

Ну что ж. Мне удалось посадить модуль на шину APB. Заодно разобрался с Identify Instrumentator и Identify Debugger, чтобы подсмотреть обмен по шине (эта парочка реализует схожий функционал с Signal Trap II в Altera). За основу взял пример, который можно скачать по этой ссылке, который называется "apb_with_wait".