Разработка цифровых ИС на примере микроконтроллерного ядра SCR1 - HDL описание
Debug Module Interface
Внешний отладчик коммуницирует с подсистемой отладки ядра через JTAG-интерфейс и TAP контроллер.
Модуль отладки (англ. Debug Module) является ведомым виртуальной шины, называемой Debug Module Interface (DMI), а TAP контроллер является ведущим.
Debug Module
Модуль отладки (англ. Debug Module) реализует интерфейс трансляции между абстрактными операциями отладки и их конкретной реализацией. Он может поддерживать следующие операции:
- Предоставление отладчику необходимой информации о реализации.
- Позволяет останавливать и возобновлять работу одного харта* ядра.
- Предоставляет статус, если харт* остановлен.
-
Предоставляет абстрактный доступ на чтение и запись регистров общего назначения остановленного харта*.
* Харт (англ. hart) - аппаратный поток.
- Предоставляет доступ к сигналу сброса, позволяющему выполнять отладку с самой первой инструкции после сброса.
- Предоставляет механизм, позволяющий отлаживать харт* сразу после сброса (независимо от причины сброса).
- Обеспечивает абстрактный доступ к регистрам харта*, не относящимся к регистрам общего назначения (CSR, PC).
- Предоставляет программный буфер (англ. Program Buffer), чтобы заставить харт* выполнять произвольные инструкции.
- Обеспечивает доступ к памяти с точки зрения харта*.
Больше информации о модуле отладки приведено в разделе 8.4 спецификации SCR1, приведенной в [1].
*Харт (англ. hart) - аппаратный поток.
Hart Debug Unit
Модуль отладки аппаратного потока осуществляет контроль над отладочными функциями аппаратного потока и предоставляющий для этого интерфейс модулю отладки (Debug Module).
Он управляет переходами между состояниями отладки харта (сброс/запуск/отложенное состояние), а также процессом выполнения инструкций из программного буфера.
При выполнении кода из программного буфера для харта действуют определенные правила, например, исключения не обновляют никакие регистры, а прекращают выполнение кода из программного буфера. Данные правила приведены в разделе 8.5.2 спецификации SCR1, приведенной в [1].
Больше информации о модуле отладки аппаратного потока приведено в разделе 8.5 спецификации SCR1, приведенной в [1].
Триггеры могут вызвать исключение точки остановы (англ. breakpoint exception) или вход в режим отладки без выполнения специальной инструкции, что полезно при отладке кода из ROM.
Триггер может срабатывать при выполнении инструкции по определенному адресу, чтении/записи по определенному адресу или при достижении выполнения определенного числа инструкций. Триггеры не срабатывают в режиме отладки. Больше информации о триггерах приведено в разделе 8.6 спецификации SCR1, приведенной в [1].
Список использованных источников
- SCR1 External Architecture Specification - URL: https://github.com/syntacore/scr1/blob/master /docs/scr1_eas.pdf.