[an error occurred while processing this directive]
|
Когда FPGA выполняет обращение (чтение или запись) к DSP (ADSP21160N) через HOST интерфейс, то он обращается только к 6 или 7 ячейке в каждой из 0...7 группе внутренней памяти DSP. Т.е. когда FPGA выставляет на системной шине адрес следующего битового вида: "хххх хххх хххх хххx xxxxx xxxx", то DSP всегда интерпритирует этот адрес как "xxxx xxxx xxxx xxxx xxxx x11x" предоставляя доступ только к ячейкам №6 и 7 в каждой группе ячеек 0…7 пространства памяти (Также бывали ситуации когда DSP интерпретировал адрес как "xxxx xxxx xxxx xxxx xxxx x10x"). Это происходит ВСЕГДА во всем адресном диапазоне DSP. С помощью интерфейса JTAG легко можно увидеть, что меняются ячейки только с номерами 6 и 7 соответствующей группы и при считывании из DSP информации последовательно по адресам скажем 050000..05000F, DSP четырежды выставляет на шину попеременно информацию из ячеек №050006 и 050007, а затем четырежды выставляет на шину попеременно информацию из ячеек №05000E и 05000F.
Осциллографом проверены уровни сигналов ADDR1 и ADDR2 и времянка по всем сигналам HOST интерфейса – все соответствует требованиям.
Кроме того, в случае когда DSP управляет адресными сигналами и производит доступ к памяти в FPGA, то все работает прекрасно и вышеописанного маскирования адресных линий ADDR1 и ADDR2 не наблюдается, т.е. DSP “видит” непрерывное адресное пространство.
Описание системы: Данные имеют ширину 16 бит (D47…D32). Адрес имеет ширину 24-бита (A23..A0). В системе используется JTAG для отладки программы DSP. DMA не используется. Сигналы DMA – в высоком состоянии, сигналы /RDL, /WRL, PAGE, /CIF, /BR1../BR6, /PA не подсоединены. Системная тактовая – 50МГц, в процессоре используется умножение частоты на 2.
FPGA устанавливает адрес на шине адреса и сигнал /CS через 40ns после того как /HBG устанавливается в ноль. /WRH устанавливается в ноль через 80ns после того как /HBG устанавливается в ноль. Длительность /WRH равна 80ns. FPGA перестает управлять шиной адреса и снимает сигнал /HBG в единицу через 20ns после того как он снимает сигнал /WRH в единицу.
DSP держит сигнал /REDY всегда в единице (неактивным). FPGA управляет сигналом ACK одинаково для случаев когда DSP производит доступ в FPGA, так и в случае когда FPGA производит доступ к DSP (Хотя я понимаю, что не требуется какого-либо управления FPGA сигналом ACK для случая, когда FPGA производит доступ к DSP).
Кто-нибудь может что-нибудь посоветовать, как исправить этот баг? Заранее длагодарю.
Андрей.
mail to: a_metel@tut.by
E-mail: info@telesys.ru