Вопрос Алексею Гребенникову

Страницы: 1
RSS
Вопрос Алексею Гребенникову
 
Здравствуйте, Алексей.

Я изучаю написанную вами статью "Интерфейс VJTAG для отладочной платы

DK-START-3C25N" и пытаюсь применить виртуальный интерфейс к плате SLS CoreCommander Development Kit. В ней используется похожая ПЛИС, а также флэшпамять, динамическая память DDR SDRAM, набор светодиодов и кнопок. Но есть и различие, отсутствует статическая память SSRAM. Скажите пожалуйста, возможно ли использование интерфейса VJTAG на основе вашей статьи? Учитывая присутствие статической памяти в вашем проекте, можно сделать вывод о необходимости написания нового проекта без участия SSRAM (и написании нового управляющего сценария). Хотелось бы знать насколько это реально. Может быть без статитической память не получится использовать все функции интерфейса? Спасибо!
 

Добрый день,


Да, использование интерфейса VJTAG на основе статьи возможно. Сама мегафункция VJTAG  содержит один конфигурируемый параметр - ширина регистра инструкций, которая задаёт максимально возможное число декодируемых команд. В статье этот параметр равен 6 - то есть возможно задание до 64-х различных команд. Декодирование команд осуществляется внешним по отношения к мегафункции VJTAG модулем vjtag_decoder. Именно этот модуль является интерфейсом со всеми устройствами на плате. В статье "Интерфейс VJTAG для отладочной платы DK-START-3C25N" модуль vjtag_decoder подключен только к светодиодам и памяти SSRAM. Рекомендую также ознакомиться со статьёй "Контроллер DDR SDRAM для платы DK-START-3C25N", опубликованной в журнале "Современная электроника" №1,2011г. В этой статье модуль vjtag_decoder также управляет памятью DDR SDRAM через интерфейс VJTAG.

В целом модуль vjtag_decoder взаимодействует не с самими устройствами (такими как различные типы памяти), а с их контроллерами (например ssram_cntr). То есть в принципе если модуль ssram_cntr при том же наборе входных команд, которых в блоке vjtag_decoder для памяти SSRAM три  (Write SSRAM memory 000010, Read SSRAM memory set parameters 000011,  Read SSRAM memory actual read 000100) будет своими выходными сигналами контролировать флэш-память или любое другое устройство, то возможно использование интерфейса VJTAG (и управляющего сценария), описанного в статье, без изменений. С другой стороны, даже если на Вашей плате установлена память DDR SDRAM, использование контроллера VJTAG из статьи в номере №1 за 2011 год без доработок кода возможно только в том случае, если Ваш контроллер DDR SDRAM будет совместим по набору команд.

Что касается управляющего сценария - он достаточно прост при кажущейся сложности. 90 процентов сценария - это формирование графики, которая в принципе не критична. Сами команды для VJTAG устройства посылаются командами device_virtual_ir_shift и device_virtual_dr_shift. Допустим, команда


device_virtual_ir_shift -instance_index 0 -ir_value 3


устанавливает модуль vjtag_decoder в состояние установки параметров для операции чтения памяти SSRAM (3 в двоичном коде - 000011),

Следующая команда непредственно устанавливает параметры:


device_virtual_dr_shift -instance_index 0 -dr_value DDDDDDDD$ssram_cmd$seq_ssram_addr -length 64 -value_in_hex


Именно эти команды специфичны для реализации модуля vjtag_decoder и должны быть изменены, если Ваш модуль vjtag_decoder будет отличаться.

 

Обобщая вышесказанное - использование готового контроллера VJTAG и управляющего сценария (особенно из статьи №1 за 2011г) возможно без изменений. Но тогда потребуется написание контроллеров устройств (флэш-памяти, DDR SDRAM), совместимых по командам с блоком vjtag_decoder. Второй вариант - использование своих контроллеров устройств, при этом потребуется модификация модуля vjtag_decoder и управляющего сценария. На мой взгляд, второй вариант предпочтительнее, так как контроллер VJTAG вместе с упавляющим сценарием на порядок проще, скажем, контроллера DDR SDRAM. Рекомендую начать со светодиодов - очень простое устройство, которое поможет Вам полностью понять суть работы VJTAG. При этом возможно использование кода из статьи практически без изменений для контроля 4-х светодиодов.

 

 

 

 
 

Именно эти команды специфичны для реализации модуля vjtag_decoder
и должны быть изменены, если Ваш модуль vjtag_decoder будет отличаться.


Страницы: 1