Аппаратный отладчик
Иногда случается, что код корректно работает в симуляторе, но не запускается в реальном железе. Конечно, это не повод отказываться от симуляторов, но иногда бывает полезным заглянуть, что же происходит непосредственно в «железе». Мы столкнулись с аналогичной проблемой. Для решения этой проблемы придуман трассировщик.
При клике на картинку схема откроется в новом окне в полном размере.
Задача этого устройства — вывести информацию о состоянии процессора на удалёное устройство через последовательный порт. При установке входного сигнала i_step, устройство сбрасывает выхдной сигнал o_done и начинает процесс вывода отладочной информации в выходной порт. После завершения вывода на внешнее устройство информации о состоянии шин bus_address, ida, data_out и access type, трассировщик устанавливает выходной сигнал o_done, извещающий о завершении операции вывода отладочной информации.
Ниже показан пример работы устройсства. Для теста отладочного устройства, на шину адреса мы подаём счётчик числа тактов. Помимо этого, младшим 8-ми битам шины o_data присваивается значение, принятое из последовательного порта. (Нажатия на клавиши в терминале).
На все остальные шины в тестовой схеме поданы константные значения.
Тестовые данные аппаратного отладчика можно увидеть на следующем рисунке:
Трассировщик создан для интеграции в проект процессора для отладки дизайна непосредственно в железе.
Обратите внимание — поле «Адрес» содержит число тиков тактового генератора после сброса устройства. Последний байт в поле «Выход данных» содержит ASCII код нажатой в терминале клавиши.
Схема проверена на частоте 100Мгц на ПЛИС Cyclone III EP3C10E144C8
Оставить комментарий