Skip to main content

Работа с IP-XACT на примере Kactus2 в CentOS7

Сборка и установка

Устанавливаем зависимости:

Скачиваем и собираем:

 

Долго не мог понять в чём же дело, прописал все переменные:

Однако по-прежнему не собиралось с тем же анамнезом, дело оказалось в том, что configure — простой баш-скрипт и там надо (для CentOS7) прописать вместо QTBIN_PATH=»» →  QTBIN_PATH=»/usr/lib64/qt5/bin/» (последний слэш обязателен!). Теперь собираем еще раз:

Запускаем из CLI:

либо из меню Applications → Programming:  

 

Использование

Основное использование Kactus2 мной — это набивка такой вот регистровой карты в xml:

CAN FD bus IP-core CSR-map description

 

Ниже некоторые рецепты и гайдлайны по заполнению регистровой карты согласно IEEE1685:

Для заполнения регистров полезно использовать следующие поля:

  • Name — имя регистра
  • Description — описание регистра
  • Size — размерность регистра
  • Offset — фактический адрес регистра в адресном пространстве СФ-блока
  • Access — способ доступа к регистру
  • Volatile — модифицируемость регистра со стороны СФ-блока (смысл схож с квалификатором volatile в эмбеддед-Си)

Note:   даже если у регистра всего одно поле — оно должно быть заведено как поле

Для заполнения полей регистров полезно использовать следующие ключи:

  • Name — имя поля
  • Description — описание поля
  • Width — размер поля
  • Offset — значение младшего разряда поля по отношению к регистру (LSB поля)
  • ! Access — способ доступа к полю: чтение/запись/чтение+запись (RW по умолчанию)
  • ! Volatile — модифицируемость поля со стороны СФ-блока: да/нет (нет по умолчанию); смысл этого флага: может ли модифицироваться со стороны СФ-блока значение поля между двумя произвольными чтениями?
  • ! Reset Value — значение по сбросу
  • ! Modified Write Value (если применим) — указываем для поля, если запись 0/1 сбрасывает/устанавливает/переключает_на_противоположное биты поля, либо если любая запись приводит к сбросу/установке битов поля (всего 8 вариантов)
  • ! Read Action (если применим) — указываем для поля, если операция чтения сбрасывает либо устанавливает биты поля

! — выделенное надо очень аккуратно и тщательно переносить из программной модели, в будущем это упростит и автогенерацию RTL и верификацию (по факту для полей описаны готовые ассершены).

В следующих частях опишу какой инструментарий я применяю для получения различных описаний из подготовленного таким способом xml согласно стандарта «IEEE-1685: Standard for IP-XACT, Standard Structure for Packaging, Integrating and Re-Using IP Within Tool-Flows».

Ссылки

 

PS: если заметка помогла Вам, поделитесь ей с друзьями или коллегами: