Логотип Microsemi

UG0837
Руководство пользователя
IGLOO2 и SmartFusion2 FPGA
Моделирование системных служб
Июнь 2018 г.

История изменений

История изменений описывает изменения, которые были реализованы в документе. Изменения перечислены по редакции, начиная с самой последней публикации.
1.1 Редакция 1.0
Версия 1.0 была опубликована в июне 2018 года. Это была первая публикация этого документа.

Моделирование системных сервисов IGLOO2 и SmartFusion2 FPGA

Блок системных служб семейства SmartFusion®2 FPGA содержит набор служб, отвечающих за различные задачи. К ним относятся службы сообщений моделирования, службы указателей данных и службы дескрипторов данных. Доступ к системным сервисам можно получить через Cortex-M3 в SmartFusion2 и из структуры FPGA через контроллер интерфейса структуры (FIC) как для SmartFusion2, так и для IGLOO®2. Эти методы доступа передаются системному контроллеру через COMM_BLK. COMM_BLK имеет интерфейс расширенной периферийной шины (APB) и действует как канал передачи сообщений для обмена данными с системным контроллером. Запросы системных служб отправляются на системный контроллер, а ответы системных служб отправляются в CoreSysService через COMM BLK. Адрес для COMM_BLK доступен внутри подсистемы микроконтроллера (MSS)/подсистемы высокопроизводительной памяти (HPMS). Подробную информацию см. в документе UG0450: SoC SmartFusion2 и системный контроллер IGLOO2 FPGA.
Руководство пользователя
На следующем рисунке показан поток данных системных служб.
Рисунок 1. Блок-схема данных системных службMicrosemi UG0837 IGLOO2 и SmartFusion2 Моделирование системных служб FPGA — блок-схема данныхДля моделирования системных служб как IGLOO2, так и SmartFusion2 вам необходимо отправить запросы на системное обслуживание и проверить ответы системных служб, чтобы убедиться в правильности моделирования. Этот шаг необходим для доступа к системному контроллеру, который предоставляет системные услуги. Способ записи и чтения из системного контроллера различается для устройств IGLOO2 и SmartFusion2. Для SmartFusion2 доступен Coretex-M3, и вы можете записывать и читать данные с системного контроллера с помощью команд функциональной модели шины (BFM). Для IGLOO2 Cortex-M3 недоступен, а системный контроллер недоступен с помощью команд BFM.
2.1 Типы доступных системных служб
Доступны три различных типа системных служб, и каждый тип службы имеет разные подтипы.
Службы сообщений моделирования
Службы указателей данных
Службы дескрипторов данных
В главе «Приложение – Типы системных служб» (см. стр. 19) данного руководства описаны различные типы системных служб. Дополнительную информацию о системных службах см. в документе UG0450: Руководство пользователя системного контроллера SmartFusion2 SoC и IGLOO2 FPGA.
2.2 Моделирование системного сервиса IGLOO2
Системные службы включают запись и чтение с системного контроллера. Чтобы записывать и читать системный контроллер в целях моделирования, вам необходимо выполнить следующие шаги.

  1. Создайте экземпляр программного IP-ядра CoreSysServices, доступного в каталоге SmartDesign.
  2. Напишите HDL-код для конечного автомата (FSM).

HDL FSM взаимодействует с CoreSysServices Core, который служит мастером структуры шины AHBLite. Ядро CoreSysServices инициирует запрос системного обслуживания к COMM BLK и получает ответы системного обслуживания от COMM BLK через FIC_0/1, контроллер интерфейса структуры, как показано на следующем рисунке.
Рисунок 2. Топология моделирования системных служб IGLOO2.Microsemi UG0837 IGLOO2 и SmartFusion2 Моделирование системных служб FPGA — блок-схема данных 12.3 Моделирование системного обслуживания SmartFusion2
Чтобы моделировать системные службы в устройствах SmartFusion2, вам необходимо выполнять запись и чтение с системного контроллера. Доступны два варианта доступа к системному контроллеру для целей моделирования.
Вариант 1. Напишите HDL-код для FSM для взаимодействия с программным IP-ядром CoreSysService, который служит мастером фабрики AHBLite, инициирует запрос системного обслуживания к COMM BLK и получает ответы системного обслуживания от COMM BLK через фабрику FIC_0/1. интерфейс, как показано на следующем рисунке.
Рис. 3. Топология моделирования системных служб SmartFusion2.Microsemi UG0837 IGLOO2 и SmartFusion2 Моделирование системных служб FPGA — блок-схема данных 2

Вариант 2 — Поскольку Cortex-M3 доступен для устройств SmartFusion2, вы можете использовать команды BFM для прямой записи и чтения из пространства памяти системного контроллера.
Использование команд BFM (вариант 2) избавляет от необходимости писать HDL-коды для FSM. В этом руководстве пользователя опция 2 используется для отображения моделирования системных служб в SmartFusion2. С помощью этой опции осуществляется доступ к пространству памяти системного контроллера для определения карты памяти COMM BLK и блока контроллера прерываний интерфейса структуры (FIIC) при написании команд BFM.
2.4 Пример моделированияampле
Руководство пользователя охватывает следующие модели моделирования.

  • Моделирование обслуживания серийного номера IGLOO2 (см. стр. 5)
  • Моделирование обслуживания серийного номера SmartFusion2 (см. стр. 8)
  • Моделирование службы обнуления IGLOO2 (см. стр. 13)
  • Моделирование сервиса обнуления SmartFusion2 (см. стр. 16)

Подобные методы моделирования можно применять и к другим системным сервисам. Полный список различных доступных системных служб см. в Приложении – Типы системных служб (см. стр. 19).

2.5 Моделирование обслуживания серийного номера IGLOO2
Чтобы подготовиться к моделированию службы серийных номеров IGLOO2, выполните следующие действия.

  1. Вызовите сборщика систем, чтобы создать блок HPMS.
  2. Установите флажок «Системные службы HPMS» на странице «Функции устройства». Это даст указание сборщику системы предоставить интерфейс шины HPMS_FIC_0 SYS_SERVICES_MASTER (BIF).
  3. Все остальные флажки оставьте снятыми.
  4. Примите значение по умолчанию на всех остальных страницах и нажмите «Готово», чтобы завершить блок сборки системы. В редакторе HDL Libero® SoC напишите HDL-код для FSM (File > Новый > ЛПВП). Включите в свой автомат следующие три состояния.
    Состояние INIT (исходное состояние)
    SERV_PHASE (состояние запроса на обслуживание)
    RSP_PHASE (состояние ответа службы).
    На следующем рисунке показаны три состояния FSM.
    Рисунок 4. Конечный автомат с тремя состояниями
  5. Microsemi UG0837 IGLOO2 и SmartFusion2 Моделирование системных служб FPGA — FSM с тремя состояниями 1В вашем HDL-коде для FSM используйте правильный код команды («01» Hex для обслуживания серийного номера), чтобы войти в состояние запроса на обслуживание из состояния INIT.
  6. Сохраните свой ЛПВП file. FSM появляется как компонент в иерархии проектирования.
  7. Откройте СмартДизайн. Перетащите блок конструктора системы верхнего уровня и блок FSM на холст SmartDesign. Из каталога перетащите ядро ​​программного IP CoreSysService на холст SmartDesign.
  8. Щелкните правой кнопкой мыши программное IP-ядро CoreSysService, чтобы открыть конфигуратор. Установите флажок «Служба серийного номера» (в разделе «Службы информации об устройствах и конструкции»).
    группа), чтобы включить службу серийного номера.
  9. Все остальные флажки оставьте снятыми. Нажмите ОК, чтобы выйти из конфигуратора.
    Рис. 5. Программный конфигуратор IP Core CoreSysServices.
    Microsemi UG0837 IGLOO2 и SmartFusion2 Моделирование системных служб FPGA — конфигуратор ядра
  10. Соедините BIF HPMS_FIC_0 SYS_SERVICES_MASTER блока компоновщика системы с BIF AHBL_MASTER блока CoreSysService.
  11. Подключите выход вашего блока HDL FSM к входу программного IP-ядра CoreSysService. Выполните все остальные соединения на холсте SmartDesign, как показано на следующем рисунке.
    Рис. 6. Canvas SmartDesign с блоками HDL, программным IP CoreSysServices и блоками HPMS.Microsemi UG0837 IGLOO2 и SmartFusion2 Моделирование системных служб FPGA — блоки HPMS
  12. На холсте SmartDesign щелкните правой кнопкой мыши > Создать компонент, чтобы создать проект верхнего уровня.
  13. В иерархии дизайна view, щелкните правой кнопкой мыши проект верхнего уровня и выберите «Создать Testbench > HDL».
  14. Используйте текстовый редактор для создания текста file с именем «status.txt».
  15. Включите команду системного обслуживания и 128-битный серийный номер. Дополнительную информацию см. в Таблице 1 (Значения команд/ответов системных служб) в Справочник CoreSysServices v3.1 для кодов команд (Hex), которые будут использоваться для различных системных служб. Для обслуживания серийного номера код команды — «01» Hex.

Формат status.txt file обслуживание серийного номера осуществляется следующим образом.
< 2 шестнадцатеричные цифры CMD><32 шестнадцатеричные цифры серийного номера>
Example: 01A1A2A3A4B1B2B3B4C1C2C3C4D1D2D3D4
Сохраните статус.txt. file в папке Simulation вашего проекта. Теперь конструкция готова к моделированию.
После начала выполнения службы в окне расшифровки ModelSim отображается сообщение с указанием местоположения назначения и серийного номера, как показано на следующем рисунке.
Рисунок 7 • Окно транскрипта моделирования ModelSimMicrosemi UG0837 IGLOO2 и SmartFusion2 Моделирование системных служб FPGA — окно расшифровкиСистемный контроллер выполняет запись AHB по адресу с серийным номером. По завершении обслуживания в RXFIFO COMM_BLK будет загружен ответ службы.
Примечание. Полный список кодов команд, которые будут использоваться для различных системных служб, см. в Таблице 1 (Значения команд/ответов системных служб) в справочнике CoreSysServices v3.1 или UG0450: SmartFusion2 SoC и Руководство пользователя системного контроллера IGLOO2 FPGA.
2.6 Моделирование обслуживания серийного номера SmartFusion2
В этом руководстве пользователя команды BFM (вариант 2) используются для доступа к системному контроллеру для системного обслуживания. Команды BFM используются, поскольку на устройстве имеется процессор Cortex-M3 для моделирования BFM. Команды BFM позволяют вам напрямую записывать и читать из COMM BLK, если вы знаете отображение памяти COMM_BLK.
Чтобы подготовить проект к моделированию службы серийных номеров SmartFusion2, выполните следующие действия.

  1. Перетащите MSS из каталога на холст дизайна вашего проекта.
  2. Отключите все периферийные устройства MSS, кроме MSS_CCC, контроллера сброса, управления прерываниями и FIC_0, FIC_1 и FIC_2.
  3. Настройте управление прерываниями для использования MSS для прерываний структуры.
  4. Подготовьте файл серийный номер.bfm. file в текстовом редакторе или в редакторе HDL Libero. Сохраните серийный номер.bfm. file в папке Simulation проекта. Serialnum.bfm должен содержать следующую информацию.
    • Отображение памяти на COMM BLK (CMBLK).
    • Сопоставление памяти с периферийным устройством управления прерываниями (FIIC).
    • Команда запроса обслуживания системы серийных номеров («01» Hex)
    • Адрес расположения серийного номера.
    Бывшийampфайл серийного номера.bfm file выглядит следующим образом.
    карта памяти FIIC 0x40006000; #Сопоставление памяти с управлением прерываниями
    карта памяти CMBLK 0x40016000; #Сопоставление памяти с COMM BLK
    карта памяти DESCRIPTOR_ADDR 0x20000000; #Расположение адреса для серийного номера
    #Код команды в шестнадцатеричном формате
    константа CMD 0x1 # Код команды для службы серийного номера
    #Регистры конфигурации FIIC
    константа FICC_INTERRUPT_ENABLE0 0x0
    #COMM_BLK Регистры конфигурации
    константа КОНТРОЛЬ 0x00
    постоянный СТАТУС 0x04
    константа INT_ENABLE 0x08
    константа ДАННЫЕ8 0x10
    константа ДАННЫЕ32 0x14
    константа FRAME_START8 0x18
    константа FRAME_START32 0x1C
    серийный номер процедуры;
    целочисленный х;
    напишите w FIIC FICC_INTERRUPT_ENABLE0 0x20000000 #Configure
    #FICC_INTERRUPT_ENABLE0 # Зарегистрируйтесь, чтобы включить COMBLK_INTR #
    #interrupt из блока COMM_BLK в структуру
    #Фаза запроса
    write w CMBLK CONTROL 0x10 # Настройка управления COMM BLK #Зарегистрируйтесь для
    включить передачу на интерфейсе COMM BLK
    write w CMBLK INT_ENABLE 0x1 # Настройка разрешения прерывания COMM BLK
    #Зарегистрируйтесь, чтобы включить прерывание для TXTOKAY (соответствующий бит в
    #Регистрация статуса)
    waitint 19 # дождитесь прерывания COMM BLK, здесь #BFM ждет
    #пока не будет подтвержден COMBLK_INTR
    readstore w CMBLK STATUS x # Чтение регистра состояния COMM BLK для #TXTOKAY
    # Прерывать
    установите хх и 0x1
    если х
    напишите w CMBLK FRAME_START8 CMD # Настроить COMM BLK FRAME_START8
    #Зарегистрируйтесь, чтобы запросить услугу серийного номера
    эндиф
    эндиф
    waitint 19 # дождитесь прерывания COMM BLK, здесь
    #BFM ожидает подтверждения COMBLK_INTR
    readstore w CMBLK STATUS x # Чтение регистра состояния COMM BLK для
    #TXTOKAY Прерывание
    установите хх и 0x1
    установите хх и 0x1
    если х
    write w CMBLK CONTROL 0x14 #Configure COMM BLK Control
    #Зарегистрируйтесь, чтобы включить передачу через интерфейс COMM BLK
    напишите w CMBLK DATA32 DESCRIPTOR_ADDR
    напишите w CMBLK INT_ENABLE 0x80
    напишите w CMBLK CONTROL 0x10
    эндиф
    подожди 20
    #Фаза реагирования
    ожидание 19
    readstore w СТАТУС CMBLK x
    установите хх и 0x80
    если х
    проверка чтения с CMBLK FRAME_START8 CMD
    напишите w CMBLK INT_ENABLE 0x2
    эндиф
    ожидание 19
    readstore w СТАТУС CMBLK x
    установите хх и 0x2
    если х
    проверка чтения с CMBLK DATA8 0x0
    напишите w CMBLK CONTROL 0x18
    эндиф
    ожидание 19
    проверка чтения с FIIC 0x8 0x20000000
    readstore w СТАТУС CMBLK x
    установите хх и 0x2
    если х
    проверка чтения с CMBLK DATA32 DESCRIPTOR_ADDR
    эндиф
    проверка чтения с DESCRIPTOR_ADDR 0x0 0xE1E2E3E4; #Readcheck для проверки серийного номера
    проверка чтения с DESCRIPTOR_ADDR 0x4 0xC1C2C3C4; #Readcheck для проверки серийного номера
    проверка чтения с DESCRIPTOR_ADDR 0x8 0xB1B2B3B4; #Readcheck для проверки серийного номера
    проверка чтения с DESCRIPTOR_ADDR 0xC 0xA1A2A3A4; #Readcheck для проверки серийного номера
    возвращаться
  5. Создайте статус. текст file в редакторе HDL Libero или любом текстовом редакторе. Включите сервисную команду системы серийных номеров («01» в шестнадцатеричном формате) и серийный номер в статус. текст file. См. руководство CoreSysServices v3.1 для использования правильного кода команды.
  6. Синтаксис этого file для службы серийного номера: <2 шестнадцатеричных цифр CMD>< 32 шестнадцатеричных цифр серийного номера> . Бывшийample: 01A1A2A3A4B1B2B3B4C1C2C3C4E1E2E3E4.
  7. Сохраните статус .txt file в папке Simulation проекта.
  8. Отредактируйте пользовательский .bfm (находится в папке Simulation), включив в него серийный номер. лучший друг file и вызовите процедуру серийного номера, как показано в следующем фрагменте кода.
    include «serialnum.bfm» #include серийный номер.bfm
    процедура user_main;
    распечатать «ИНФО: Симуляция начинается»;
    напечатайте «INFO:Код служебной команды в десятичном формате:%0d», CMD ;
    вызвать серийный номер; #вызов процедуры серийного номера
    распечатайте «INFO:Simulation Ends»;
    возвращаться
  9. В иерархии дизайна view, создайте тестовый стенд (щелкните правой кнопкой мыши, выберите «Проектирование верхнего уровня» > «Создать тестовый стенд» > HDL), и вы готовы запустить моделирование службы серийных номеров.

После начала выполнения услуги отображается сообщение с указанием местоположения назначения и серийного номера. Системный контроллер выполняет запись AHB по адресу с серийным номером. По завершении обслуживания в RXFIFO COMM_BLK будет загружен ответ службы. В окне расшифровки ModelSim отображаются полученный адрес и серийный номер, как показано на следующем рисунке.
Рис. 8. Моделирование службы серийного номера SmartFusion2 в окне расшифровки ModelSim.Microsemi UG0837 IGLOO2 и SmartFusion2 Моделирование системных служб FPGA — окно стенограммы 1

2.7 Моделирование службы обнуления IGLOO2
Чтобы подготовиться к моделированию службы обнуления IGLOO2, выполните следующие действия.

  1. Вызовите сборщик системы, чтобы создать блок HPMS. Установите флажок «Системные службы HPMS» в разделе «Функции устройства» SYS_SERVICES_MASTER BIF. Все остальные флажки оставьте снятыми. Примите значение по умолчанию на всех остальных страницах и щелкните страницу. Это дает указание сборщику системы предоставить HPMS_FIC_0 Finish для завершения настройки блока сборщика системы.
  2. В редакторе HDL Libero SoC напишите HDL-код для FSM. В свой HDL-код для FSM включите следующие три состояния.
    Состояние INIT (исходное состояние)
    SERV_PHASE (состояние запроса на обслуживание)
    RSP_PHASE (состояние ответа службы)
    На следующем рисунке показаны три состояния FSM.
    Рисунок 9. Конечный автомат с тремя состояниямиMicrosemi UG0837 IGLOO2 и SmartFusion2 Моделирование системных служб FPGA — FSM с тремя состояниями

     

  3. В вашем коде HDL используйте код команды «F0″(Hex) для входа в состояние запроса на обслуживание из состояния INIT.
  4. Сохраните свой ЛПВП file.
  5. Откройте SmartDesign, перетащите блок компоновщика системы верхнего уровня и блок HDL FSM на холст SmartDesign. Из каталога перетащите ядро ​​программного IP CoreSysService на холст SmartDesign.
  6. Щелкните правой кнопкой мыши программное IP-ядро CoreSysServices, чтобы открыть конфигуратор, и установите флажок «Служба обнуления» в группе «Службы безопасности данных». Все остальные флажки оставьте снятыми. Нажмите, чтобы ОК выйти.
    Рис. 10. Конфигуратор CoreSysServices.
    Microsemi UG0837 IGLOO2 и SmartFusion2 Моделирование системных служб FPGA — базовый конфигуратор 1
  7. Соедините BIF HPMS_FIC_0 SYS_SERVICES_MASTER блока компоновщика системы с BIF AHBL_MASTER блока CoreSysService.
  8. Подключите выход вашего блока HDL FSM к входу программного IP-ядра CoreSysService. Все остальные подключения выполните на холсте SmartDesign.
    Рисунок 11. Холст SmartDesign с блоками HDL, программным IP CoreSysServices и блоками HPMS.
    Microsemi UG0837 IGLOO2 и SmartFusion2 Моделирование системных служб FPGA — блоки HPMS 19. На холсте SmartDesign создайте проект верхнего уровня (щелкните правой кнопкой мыши > Создать компонент).
    10. В иерархии дизайна view, щелкните правой кнопкой мыши проект верхнего уровня и выберите «Создать Testbench» > «HDL». Теперь вы готовы запустить симуляцию.
    После начала выполнения службы отображается сообщение о том, что обнуление было завершено в момент x, как показано на следующем рисунке.
    Рис. 12. Окно стенограммы моделирования службы системы обнуления IGLOO2.
    Microsemi UG0837 IGLOO2 и SmartFusion2 Моделирование системных служб FPGA — окно стенограммы 3

Системный контроллер выполняет запись AHB по адресу с серийным номером. По завершении обслуживания в RXFIFO COMM_BLK будет загружен ответ службы. Следует отметить, что имитационная модель имитирует обнуление путем остановки моделирования, а не обнуления самого проекта.
Примечание. Полный список кодов команд, которые будут использоваться для различных системных служб, см. в Таблице 1 (Значения команд/ответов системных служб) в Справочник CoreSysServices v3.1:. или UG0450: Руководство пользователя SoC SmartFusion2 и системного контроллера IGLOO2 FPGA.

2.8 Моделирование сервиса обнуления SmartFusion2
В этом руководстве команды BFM (вариант 2) используются для доступа к системному контроллеру для системного обслуживания.
Команды BFM используются, поскольку на устройстве имеется процессор Cortex-M3 для моделирования BFM. Команды BFM позволяют вам напрямую записывать и читать из COMM BLK, если вы знаете отображение памяти COMM_BLK. Чтобы подготовить проект к моделированию службы обнуления SmartFusion2, выполните следующие шаги.

  1. Перетащите MSS из каталога на холст дизайна вашего проекта.
  2. Отключите все периферийные устройства MSS, кроме MSS_CCC, контроллера сброса, управления прерываниями и FIC_0, FIC_1 и FIC_2.
  3. Настройте управление прерываниями для использования MSS для прерываний структуры.
  4. Подготовьте файл Zeroizaton.bfm. file в текстовом редакторе или в редакторе HDL Libero. Ваше обнуление. БФМ должен включать в себя:
  • Отображение памяти в COMM BLK (CMBLK)
  • Сопоставление памяти с периферийным устройством управления прерываниями (FIIC)
  • Команда запроса на обслуживание обнуления (шестнадцатеричное значение «F0» для обнуления)

Бывшийampфайл серийного номера.bfm file показано на следующем рисунке.
Рис. 13. Zeroization.bfm для моделирования системных служб SmartFusion2 Zeroization.

Microsemi UG0837 IGLOO2 и SmartFusion2 Моделирование системных служб FPGA — окно стенограммы 4

5. Сохраните файл Zeroization.bfm. file в папке Simulation проекта. user.bfm
6. Отредактируйте файл (находится в папке Zeroization.bfm Simulation), включив в него следующий фрагмент кода.
включить «zeroization.bfm» #include Zeroization.bfm file процедура user_main;
распечатать «ИНФО: Симуляция начинается»;
напечатайте «INFO:Код служебной команды в десятичном формате:%0d», CMD ;
вызов обнуления; #возврат процедуры обнуления вызова
7. В Design Hierarchy создайте Testbench (щелкните правой кнопкой мыши верхний уровень > Создать Testbench > HDL), и вы готовы запустить моделирование обнуления SmartFusion2.
После начала выполнения службы отображается сообщение, указывающее, что устройство было обнулено в момент времени x. Следует отметить, что имитационная модель имитирует обнуление путем остановки моделирования, а не обнуления самого проекта. Окно расшифровки ModelSim на следующем рисунке показывает, что устройство обнулено.

Рис. 14. Журнал моделирования обслуживания системы обнуления SmartFusion2.

Microsemi UG0837 IGLOO2 и SmartFusion2 Моделирование системных служб FPGA — окно стенограммы 5

Приложение: Типы системных служб

В этой главе описываются различные типы системных служб.
3.1 Службы сообщений моделирования
В следующих разделах описываются различные типы служб сообщений моделирования.
3.1.1 Мигание*Заморозка
Моделирование перейдет в состояние Flash*Freeze, когда соответствующий запрос на обслуживание будет отправлен на COMM_BLK либо от FIC (в случае устройств IGLOO2), либо от Cortex-M3 (в устройствах SmartFusion2). Как только системный контроллер обнаружит службу, моделирование будет остановлено и отобразится сообщение, указывающее, что система вступила в режим Flash*Freeze (вместе с выбранной опцией). После возобновления моделирования RXFIFO COMM_BLK будет заполнен ответом службы, состоящим из команды службы и статуса. Следует отметить, что симуляция выхода Flash*Freeze не поддерживается.
3.1.2 Обнуление
Обнуление в настоящее время является единственной службой с высоким приоритетом среди системных служб, обрабатываемых COMM_BLK. Моделирование перейдет в состояние обнуления, как только COMM_BLK обнаружит правильный запрос на обслуживание. Выполнение других служб будет остановлено и отменено системным контроллером, вместо этого будет выполнена служба обнуления. Как только обнаруживается запрос на услугу обнуления, моделирование останавливается и отображается сообщение, указывающее, что система вступила в обнуление. Ручной перезапуск моделирования после обнуления недействителен.
3.2 Службы указателей данных
В следующих разделах описываются различные типы служб указателей данных.
3.2.1 Серийный номер
Служба серийных номеров запишет 128-битный серийный номер по адресу, указанному в рамках запроса на обслуживание. Этот 128-битный параметр можно установить с помощью поддержки моделирования системных служб. file (см. стр. 22) . Если параметр 128-битного серийного номера не определен в file, будет использоваться серийный номер по умолчанию 0. После начала выполнения услуги отображается сообщение с указанием местоположения назначения и серийного номера. Системный контроллер выполняет запись AHB по адресу с серийным номером. По завершении обслуживания в RXFIFO COMM_BLK будет загружен ответ службы.
3.2.2 Код пользователя
Служба пользовательского кода записывает 32-битный параметр пользовательского кода в адрес, указанный как часть запроса на услугу. Этот 32-битный параметр можно установить с помощью поддержки моделирования системных служб. file (см. стр. 22). Если 32-битный параметр не определен в file, используется значение по умолчанию 0. После начала выполнения службы отображается сообщение с указанием целевого местоположения и кода пользователя. Системный контроллер выполняет запись AHB по адресу с 32-битным параметром. По завершении обслуживания в RXFIFO COMM_BLK загружается ответ службы, который включает в себя команду службы и целевой адрес.
3.3 Службы дескрипторов данных
В следующих разделах описаны различные типы служб дескрипторов данных.

3.3.1 АЭС
Поддержка моделирования для этой службы касается только перемещения исходных данных из источника в место назначения без фактического выполнения какого-либо шифрования/дешифрования данных. Данные, которые необходимо зашифровать/расшифровать, а также структуру данных следует записать до отправки запроса на обслуживание. После начала выполнения службы отображается сообщение, указывающее на выполнение службы AES. Служба AES считывает как структуру данных, так и данные, подлежащие шифрованию/дешифрованию. Исходные данные копируются и записываются по адресу, указанному в структуре данных. После завершения службы команда, статус и адрес структуры данных помещаются в RXFIFO.
Примечание: Эта услуга предназначена только для 128-битных и 256-битных данных, а 128-битные и 256-битные данные имеют разную длину структуры данных.

3.3.2 ША 256
Поддержка моделирования для этой службы касается только перемещения данных без фактического хеширования данных. Функция SHA 256 предназначена для генерации 256-битного хеш-ключа на основе входных данных. Данные, которые необходимо хэшировать, и структура данных должны быть записаны по соответствующим адресам перед отправкой запроса на обслуживание в COMM_BLK. Длина в битах и ​​указатель, определенные в структуре данных SHA 256, должны правильно соответствовать длине и адресу данных, подлежащих хэшированию. После начала выполнения службы отображается сообщение, указывающее на выполнение службы SHA 256. Вместо выполнения фактической функции хеш-ключ по умолчанию будет записан в указатель назначения из структуры данных. Хэш-ключ по умолчанию — шестнадцатеричный «ABCD1234». Для настройки пользовательского ключа перейдите в раздел «Настройка параметров» (см. стр. 23). По завершении обслуживания в RXFIFO загружается ответ службы, состоящий из команды службы, статуса и указателя структуры данных SHA 256.
3.3.3 HMAC
Поддержка моделирования для этой службы касается только перемещения данных без фактического хеширования данных. Данные, которые необходимо хэшировать, и структура данных должны быть записаны по соответствующим адресам перед отправкой запроса на обслуживание в COMM_BLK. Службе HMAC требуется 32-байтовый ключ в дополнение к длине в байтах, указателю источника и указателю назначения. После начала выполнения службы отображается сообщение, указывающее на выполнение службы HMAC. Ключ считывается, и 256-битный ключ копируется из структуры данных в указатель назначения. После завершения службы в RXFIFO загружается ответ службы, состоящий из команды службы, состояния и указателя структуры данных HMAC.

3.3.4 Генерация DRBG
Генерация случайных битов осуществляется этим сервисом. Следует отметить, что имитационная модель не совсем соответствует той же методологии генерации случайных чисел, которая используется в кремнии. Структура данных должна быть правильно записана в предполагаемое место, прежде чем запрос на обслуживание будет отправлен в COMM_BLK. Структура данных, указатель назначения, длина и другие соответствующие данные считываются системным контроллером. Служба генерации DRBG генерирует псевдослучайный набор данных запрошенной длины (0–128). Системный контроллер записывает случайные данные в указатель назначения. Сообщение, указывающее выполнение службы генерации DRBG, отображается в моделировании. После завершения службы команда, статус и адрес структуры данных помещаются в RXFIFO. Если длина запрошенных данных не находится в диапазоне 0–128, в RXFIFO будет помещен код ошибки «4» (Max Generate). Если длина дополнительных данных выходит за пределы диапазона Request Too Big (0–128), в RXFIFO будет помещен код ошибки «5» (превышена максимальная длина дополнительных данных). Если длина запрошенных данных для генерации и длина дополнительных данных не находятся в заданном диапазоне (0–128), код ошибки «1» (катастрофическая ошибка) помещается в RXFIFO.

3.3.5 Сброс DRBG
Фактическая функция сброса выполняется путем удаления экземпляров DRBG и сброса DRBG. Как только запрос на обслуживание будет обнаружен, симуляция отображает сообщение о завершении услуги сброса DRBG. Ответ, включающий услугу и статус, помещается в RXFIFO.
3.3.6 Самотестирование DRBG
Поддержка моделирования для самотестирования DRBG фактически не выполняет функцию самотестирования. Как только запрос на обслуживание будет обнаружен, симуляция отобразит сообщение о выполнении услуги самотестирования DRBG. Ответ, включающий услугу и статус, будет отправлен в RXFIFO.
3.3.7 Создание экземпляра DRBG
Поддержка моделирования для службы создания экземпляров DRBG фактически не выполняет службу создания экземпляров. Структура данных должна быть правильно записана в предполагаемое место, прежде чем запрос на обслуживание будет отправлен в COMM_BLK. После обнаружения запроса на обслуживание будут считаны структура и строка персонализации, определенные в адресном пространстве MSS. При моделировании отобразится сообщение о том, что служба создания экземпляра DRBG начала выполнение. После завершения обслуживания ответ, который включает команду сервиса, статус и указатель на структуру данных, будет помещен в RXFIFO. Если длина данных (PERSONALIZATIONLENGTH) не находится в диапазоне 0–128, код ошибки «1» (катастрофическая ошибка) будет помещен в RXFIFO для статуса.
3.3.8 Неэкземплярный DRBG
Поддержка моделирования неэкземплярной службы DRBG фактически не выполняет неэкземплярную службу удаления ранее созданного экземпляра DRBG, как это делает кремний. Запрос на обслуживание должен включать как команду, так и дескриптор DRBG. Как только запрос на обслуживание будет обнаружен, дескриптор DRBG будет сохранен. При моделировании отобразится сообщение о том, что неэкземплярная служба DRBG инициализирована. После завершения обслуживания ответ, который включает команду обслуживания, статус и дескриптор DRBG, будет помещен в RXFIFO.
3.3.9 Повторное заполнение DRBG
Из-за симуляционного характера блока системных сервисов служба повторного заполнения DRBG при моделировании не выполняется автоматически после каждых 65535 сервисов генерации DRBG. Структура данных должна быть правильно записана в предполагаемое место, прежде чем запрос на обслуживание будет отправлен в COMM_BLK. После обнаружения запроса на обслуживание структура и дополнительный входной параметр в адресном пространстве MSS будут прочитаны. Будет отображено сообщение о том, что служба повторного заполнения DRBG начала выполняться. Структура данных должна быть правильно записана в предполагаемое место, прежде чем запрос на обслуживание будет отправлен в COMM_BLK. После завершения обслуживания ответ, который включает команду сервиса, статус и указатель на структуру данных, будет помещен в RXFIFO.
3.3.10 Дерево ключей
Фактическая функция не выполняется при моделировании службы KeyTree. Структура данных службы KeyTree состоит из 32-байтового ключа, 7-битных данных оптипа (старший бит игнорируется) и 16-байтового пути. Данные внутри структуры данных должны быть записаны по соответствующим адресам перед отправкой запроса на обслуживание в COMM_BLK. Как только служба начнет выполнение, отобразится сообщение, указывающее на выполнение службы KeyTree. Содержимое структуры данных будет прочитано, 32-байтовый ключ будет сохранен, а исходный ключ, расположенный внутри структуры данных, будет перезаписан. После этой записи AHB значение ключа в структуре данных не должно измениться, но будут выполняться транзакции AHB для записи. По завершении службы в RXFIFO загружается ответ службы, состоящий из команды службы, статуса и указателя структуры данных KeyTree.
3.3.11 Ответ на вызов
Фактическая функция, такая как аутентификация устройства, не выполняется при моделировании службы ответа на запрос. Структура данных для этой службы требует указатель на буфер для получения 32-байтового результата, 7-битного типа операции и 128-битного пути. Данные внутри структуры данных должны быть записаны по соответствующим адресам перед отправкой запроса на обслуживание в COMM_BLK. Как только служба начнет выполнение, отобразится сообщение, указывающее на выполнение службы ответа на запрос. Общий 256-битный ответ будет записан в указатель, предусмотренный в структуре данных. Ключ по умолчанию установлен в шестнадцатеричном формате «ABCD1234». Чтобы получить собственный ключ, проверьте настройку параметров (см. стр. 23). После завершения обслуживания в RXFIFO будет загружен ответ службы, состоящий из команды службы, статуса и указателя структуры данных ответа на запрос.
3.4 Другие услуги
В следующих разделах описаны различные другие системные службы.
3.4.1 Проверка дайджеста
Сама функция пересчета и сравнения дайджестов выбранных компонентов для сервиса проверки дайджеста в моделировании не выполняется. Этот запрос на обслуживание состоит из служебных команд и опций обслуживания (5-битный младший разряд). Как только служба начнет выполнение, будет отображено сообщение с подробным описанием выполнения службы проверки дайджеста, а также выбранные параметры из запроса. По завершении обслуживания в RXFIFO будет загружен ответ службы, состоящий из команды обслуживания и флагов прохождения/неудачи проверки дайджеста.
3.4.2 Нераспознанный ответ на команду
Когда в COMM_BLK отправляется нераспознанный запрос на обслуживание, COMM_BLK автоматически отвечает нераспознанным командным сообщением, помещенным в RXFIFO. Сообщение состоит из команды, отправленной в COMM_BLK, и нераспознанного статуса команды (252D). Также будет отображено сообщение на дисплее, указывающее, что был обнаружен нераспознанный запрос на обслуживание. COMM_BLK вернется в состояние ожидания, ожидая принятия следующего запроса на обслуживание.
3.4.3 Неподдерживаемые службы
Неподдерживаемые службы, для которых установлено значение COMM_BLK, при моделировании вызовут сообщение, указывающее, что запрос на обслуживание не поддерживается. COMM_BLK вернется в состояние ожидания, ожидая принятия следующего запроса на обслуживание. PINTERRUPT не будет установлен, что означает, что обслуживание завершено. Текущий список неподдерживаемых служб включает: IAP, ISP, сертификат устройства и службу DESIGNVER.
3.5 Поддержка моделирования системных служб File
Для поддержки моделирования системных служб текст file называемый «status.txt», можно использовать для передачи инструкций о требуемом поведении имитационной модели в имитационную модель. Этот file должен находиться в той же папке, из которой запускается симуляция. file может использоваться, среди прочего, для принудительного реагирования на определенные ошибки для поддерживаемых системных служб или даже для установки некоторых параметров, необходимых для моделирования (например,ample, серийный номер). Максимальное количество строк, поддерживаемое в «status.txt». file равен 256. Инструкции, которые появляются после строки с номером 256, не будут использоваться в моделировании.
3.5.1 Форсирование ответов об ошибках
Пользователь может вызвать определенную реакцию ошибки для конкретной службы во время тестирования, передав информацию в имитационную модель с помощью файла «status.txt». file, который должен быть помещен в папку, из которой запускается симуляция. Чтобы принудительно отправить ответ об ошибке определенной службе, команду и требуемый ответ следует ввести в одной строке в следующем формате:ample, для команды> ; дать команду имитационной модели сгенерировать ответ об ошибке доступа к памяти MSS для службы серийных номеров, команда выглядит следующим образом.
Сервис: Серийный номер: 01
Запрошено сообщение об ошибке: Ошибка доступа к памяти MSS: 7F
У вас должна быть строка 017F, введенная в «status.txt». file.
3.5.2 Настройка параметров
«status.txt» file также может использоваться для установки некоторых параметров, необходимых для моделирования. Как бывшийample, чтобы установить 32-битный параметр для пользовательского кода, формат строки должен быть в следующем порядке: <32-битный КОД ПОЛЬЗОВАТЕЛЯ>; где оба значения вводятся в шестнадцатеричном формате. Чтобы установить 128-битный параметр для серийного номера, формат строки должен быть в следующем порядке: <128-битный серийный номер [127:0]> ; где оба значения вводятся в шестнадцатеричном формате. Чтобы установить 256-битный параметр для ключа SHA 256; формат строки должен быть в следующем порядке: <256-битный ключ [255:0]>; где оба значения вводятся в шестнадцатеричном формате. Чтобы установить 256-битный параметр для ключа ответа на запрос, формат строки должен быть в следующем порядке: <256-битный ключ [255:0]>;
где оба значения вводятся в шестнадцатеричном формате.
3.5.3 Приоритет устройства
Системные службы и COMM_BLK используют систему с высоким приоритетом. В настоящее время единственной высокоприоритетной услугой является обнуление. Чтобы выполнить службу с высоким приоритетом, пока выполняется другая служба, текущая служба останавливается, и вместо нее будет выполняться служба с более высоким приоритетом. COMM_BLK отменит текущую услугу, чтобы выполнить услугу с более высоким приоритетом. Если несколько служб с низким приоритетом отправляются до завершения текущей службы, эти службы будут поставлены в очередь в TXFIFO. После завершения текущей службы будет выполнена следующая служба в TXFIFO.

Microsemi не дает никаких гарантий, заявлений или гарантий в отношении информации, содержащейся в данном документе, или пригодности своих продуктов и услуг для какой-либо конкретной цели, а также Microsemi не берет на себя никакой ответственности, вытекающей из применения или использования любого продукта или схемы. Продукты, продаваемые по настоящему Соглашению, и любые другие продукты, продаваемые Microsemi, прошли ограниченное тестирование и не должны использоваться вместе с критически важным оборудованием или приложениями. Любые характеристики производительности считаются надежными, но не проверяются, и Покупатель должен провести и завершить все эксплуатационные и другие испытания продуктов, отдельно или вместе с любыми конечными продуктами или установленными в них. Покупатель не должен полагаться на какие-либо данные и технические характеристики или параметры, предоставленные Microsemi. Покупатель несет ответственность за самостоятельное определение пригодности любых продуктов, а также их тестирование и проверку. Информация, предоставляемая Microsemi по настоящему Соглашению, предоставляется «как есть, где есть» и со всеми ошибками, и весь риск, связанный с такой информацией, полностью лежит на Покупателе. Microsemi не предоставляет, прямо или косвенно, какой-либо стороне какие-либо патентные права, лицензии или любые другие права на интеллектуальную собственность, будь то в отношении самой такой информации или чего-либо, описываемого такой информацией. Информация, представленная в этом документе, является собственностью Microsemi, и Microsemi оставляет за собой право вносить любые изменения в информацию в этом документе или в любые продукты и услуги в любое время без предварительного уведомления.
Microsemi, дочерняя компания Microchip Technology Inc. (Nasdaq: MCHP), предлагает комплексный портфель полупроводниковых и системных решений для аэрокосмической и оборонной промышленности, связи, центров обработки данных и промышленных рынков. Продукция включает в себя высокопроизводительные и радиационно-стойкие аналоговые интегральные схемы смешанных сигналов, FPGA, SoC и ASIC; продукты управления питанием; устройства измерения времени и синхронизации, а также решения для точного времени, устанавливающие мировой стандарт времени; устройства обработки голоса; РФ решения; дискретные компоненты; корпоративные решения для хранения и связи; технологии безопасности и масштабируемая защитаampпродукты; Ethernet-решения; ИС и инжекторы Power-over-Ethernet; а также возможности индивидуального дизайна и услуги. Штаб-квартира Microsemi находится в Алисо-Вьехо, Калифорния, и насчитывает около 4,800 сотрудников по всему миру. Узнайте больше на www.microsemi.com.

Логотип Microsemi

Штаб-квартира Микросеми
One Enterprise, Алисо Вьехо,
CA 92656 США
В пределах США: +1 800-713-4113
За пределами США: +1 949-380-6100
Продажи: +1 949-380-6136
Факс: +1 949-215-4996
Электронная почта: продажи.support@microsemi.com
www.microsemi.com
© 2018 Микросеми. Все права защищены. Microsemi и логотип Microsemi
являются товарными знаками корпорации Microsemi. Все остальные товарные знаки и услуги
знаки являются собственностью соответствующих владельцев.

Документы/Ресурсы

Microsemi UG0837 IGLOO2 и SmartFusion2 Моделирование системных служб FPGA [pdf] Руководство пользователя
UG0837, UG0837 IGLOO2 и SmartFusion2 Моделирование системных служб FPGA, IGLOO2 и SmartFusion2 Моделирование системных служб FPGA, SmartFusion2 Моделирование системных служб FPGA, Моделирование системных служб FPGA, Моделирование сервисов

Ссылки

Оставьте комментарий

Ваш адрес электронной почты не будет опубликован. Обязательные поля отмечены *