Миландр

Ключевым подразделением нашей компании
является Центр Проектирования интегральных микросхем
Текущее время: 2020-авг-04 19:50

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 154 сообщения ]  На страницу « 17 8 9 10 11 »
Автор Сообщение
 Заголовок сообщения: Re: 1967ВН028
СообщениеДобавлено: 2018-дек-11 10:41 
Не в сети

Зарегистрирован: 2015-май-25 13:52
Сообщения: 23
Добрый день. Вопрос про JTAG цепочку из 8 ми процессоров. Мы работаем в среде VisualDSP c отладчиками AD ADZS-USB-ICE и ADZS-HPUSB-ICE.
Цепочка из 4 х у нас успешно работает. При работе с 8 мью процессорами редко и с большим трудом, но сессия все же открывается, далее начинаются долгие подвисы, но процессоры так и не удается запустить.
Проверялась ли работа JTAG цепочки из 8 ми процессоров в среде VisualDSP? Есть ли рекомендация по установке буфферов на JTAG? Куда стоит копать?
Спасибо.

Кстати. Н стр. 134 в пунктах 7 4 4 2 и 7 4 4 3 ошибка - конвейерному протоколу соответствует 0 BNKSLOW, а не 1. И Про медленный тоже самое наоборот.


Вернуться к началу
 Заголовок сообщения: Re: 1967ВН028
СообщениеДобавлено: 2018-дек-12 07:27 
Не в сети

Зарегистрирован: 2014-авг-15 11:04
Сообщения: 205
Организация: Миландр
Откуда: Миландр
В Errata на микросхему есть ошибка номер 6 о проблемах когда число процессоров больше 4-х.
Вы учитываете эту ошибку в своей системе?


Вернуться к началу
 Заголовок сообщения: Re: 1967ВН028
СообщениеДобавлено: 2018-дек-12 12:20 
Не в сети

Зарегистрирован: 2015-май-25 13:52
Сообщения: 23
Ошибка №6 о ДМА канале. А мы пытаемся запустить JTAG цепочку. Никаких ДМА запросов нет. Внешней EEPROM нет. Межпроцессорного взаимодействия тоже нет.
Восемь процессоров в JTAG и мы пытаемся запустить проект, в котором у нас на флаги заведены светодиоды (это не принципиально).

Кстати по ошибке №6. Не очень ясно. Если я например процессором с ID4 захочу обратиться к процессору с ID>4 по ДМА, то могу попасть во внутреннюю память процессора ID4?


Вернуться к началу
 Заголовок сообщения: Re: 1967ВН028
СообщениеДобавлено: 2018-дек-12 13:56 
Не в сети

Зарегистрирован: 2014-авг-15 11:04
Сообщения: 205
Организация: Миландр
Откуда: Миландр
Да. Ваша система никак не задевает баг в ДМА.
Все процессоры после сброса должны ждать прерывания (Вы гарантируете что прерываний не будет).
Соответственно, через джитаг вы можете грузить в процессоры все что угодно
и отлаживать программу. Предполагаю, что и 4-х процессорная система у вас была сделана аналогично
и программу вы на ней запускали идентичную.
Никаких проблем не вижу. Предполагаю, что и джитаг Вы можете проверить на работоспособность.

По поводу ошибки номер 6. Она влияет на загрузку из EEPROM при старте процессора 4.
Канал ДМА внешний "свой" адрес детектирует как hit_internal_memory = (A[31:29]==3'b000) && (A[28:26]==(ID xor 3'b100)).
При старте, канал 0 ДМА, для EEPROM, берет адрес 0, и 4-й процессор (ID==3'b100) детектирует этот адрес как внутренний.
Выполнить доступ к другим процессорам из процессора 4 можно.
Из выражения видно, что для процессора 4 ложный "свой" внешний адрес это A[31:26]==6'b000_0_00.
Для 5-го - A[31:26]==6'b000_0_01.
Для 6-го - A[31:26]==6'b000_0_10.
Для 7-го - A[31:26]==6'b000_0_11 (broadcast!).
Если вы захотите работать с EEPROM из процессоров 4-7, нужно подбирать старшие биты внешнего адреса так,
чтобы не сработал баг.


Вернуться к началу
 Заголовок сообщения: Re: 1967ВН028
СообщениеДобавлено: 2019-май-20 14:37 
Не в сети

Зарегистрирован: 2015-окт-13 11:20
Сообщения: 14
Добрый день! Может кто в курсе по поводу совместимости JTAG отладчика ADZS-ICE-2000 и 1967ВН028 (ADSP-TSxxx)? У продавцов в описании - "поддержка всех JTAG-совместимых процессоров AD". У них же в описании - "поддержка архитектур: Blackfin, SHARC". В описании на отладчик сказано примерно такого плана - "список поддерживаемых изделий ищите на сайте в ветках тех. поддержки". Короче, про TigerSharc пока не нашел нигде инфы. Поставщик предлагает замену снятого с производства ADZS-USB-ICE на этот ADZS-ICE-2000. Его цена около 3000$. Конечно, можно купить ADZS-HPUSB-ICE, но у него цена кусается, порядка 7500$
PS: Используем VisualDSP++ т.к. пока не удалось окончательно перейти CM-LYNX ).


Вернуться к началу
 Заголовок сообщения: Re: 1967ВН028
СообщениеДобавлено: 2019-дек-26 15:59 
Не в сети

Зарегистрирован: 2014-авг-15 11:04
Сообщения: 205
Организация: Миландр
Откуда: Миландр
Вот решил под Новый Год написать статью Деду Морозу :)
Глядишь, может и еще кому она интересной покажется.
Тема всё та же: ВН28+ВН44, кластеры, линки, суперпроцессоры и т.п.


Вложения:
Link_as_Host.pdf [659.97 КБ]
99 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: 1967ВН028
СообщениеДобавлено: 2019-дек-26 23:51 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1509
Откуда: Тула
И полезно (для общего развития), и очень интересно! Спасибо и с наступающим!

_________________
сочувствующий…


Вернуться к началу
 Заголовок сообщения: Re: 1967ВН028
СообщениеДобавлено: 2019-дек-27 08:57 
Не в сети

Зарегистрирован: 2009-сен-21 12:39
Сообщения: 540
Цитата:
Я получил бесценный совет купить напильник и шлифануть один из кабелей.
Спасибо, шедеврально. С наступающим!


Вернуться к началу
 Заголовок сообщения: Re: 1967ВН028
СообщениеДобавлено: 2020-фев-24 19:32 
Не в сети

Зарегистрирован: 2016-июл-20 14:40
Сообщения: 2
Организация: АО "ФНПЦ"НИИРТ"
В спецификации на процессор в разделе 7.10.6.2 "Регистр команды JTAG" приводится таблица с кодами команд TAP-контроллера. Регистр команд имеет длину 5 бит. В то же время в BSDL-файле содержится совсем другая информация. Как я понимаю, в микросхеме существует два TAP-контроллера и BSDL-файл, выложенный на Вашем сайте, относится к тому из них, который задействуется при подключении входа JG_MX к лог. '1'. Меня интересует, можно ли выполнять тестирование межсоединений на плате с помощью контроллера, который отвечает за управление эмулятором, т. е. того, про который идет речь в разделе 7.10.6 спецификации ? Команды SAMPLE/PRELOAD и EXTEST у него имеются, судя по описанию. Не могли бы Вы предоставить BSDL-файл для TAP-контроллера, включающегося при JG_MX = '0' ?


Вернуться к началу
 Заголовок сообщения: Re: 1967ВН028
СообщениеДобавлено: 2020-фев-26 10:51 
Не в сети

Зарегистрирован: 2018-авг-10 23:14
Сообщения: 30
Организация: Milandr
Откуда: АО «ПКК Миландр»
SerjZx писал(а): *
В спецификации на процессор в разделе 7.10.6.2 "Регистр команды JTAG" приводится таблица с кодами команд TAP-контроллера. Регистр команд имеет длину 5 бит. В то же время в BSDL-файле содержится совсем другая информация. Как я понимаю, в микросхеме существует два TAP-контроллера и BSDL-файл, выложенный на Вашем сайте, относится к тому из них, который задействуется при подключении входа JG_MX к лог. '1'. Меня интересует, можно ли выполнять тестирование межсоединений на плате с помощью контроллера, который отвечает за управление эмулятором, т. е. того, про который идет речь в разделе 7.10.6 спецификации ? Команды SAMPLE/PRELOAD и EXTEST у него имеются, судя по описанию. Не могли бы Вы предоставить BSDL-файл для TAP-контроллера, включающегося при JG_MX = '0' ?
Ответили по почте, также продублируем ответ здесь:
"Всё правильно, в процессоре 1967ВН028 есть два независимых TAP-контроллера, подключенных к одним и тем же JTAG-выводам процессора. Один из них отладочный и аналогичен интерфейсу в TS201S, а другой - тестовый, который управляет в том числе и boundary scan режимом. Выбор того или иного TAP-контроллера, как Вы правильно заметили, производится сигналом JG_MX (0 - отладочный, 1 - тестовый). Периферийное сканирование рекомендуется выполнять при помощи TAP-контроллера в тестовом режиме (JG_MX = 1). Официальный BSDL-файл по ходу разработки всегда имел привязку к тестовому TAP-контроллеру с четырёхбитными инструкциями."

Дополнительно:
"Для проведения граничного сканирования нужен именно второй TAP-контроллер, который устанавливается при JG_MX = 1, поэтому необходимо доработать плату, чтобы иметь возможность устанавливать тестовый режим для JTAG. Отладочный же TAP-контроллер (JG_MX = 0) отвечает за программную совместимость и совместимость по формату отладочной информации относительно TS201."

_________________
Отдел технической поддержки support@milandr.ru


Вернуться к началу
 Заголовок сообщения: Re: 1967ВН028
СообщениеДобавлено: 2020-мар-23 12:57 
Не в сети

Зарегистрирован: 2014-авг-15 11:04
Сообщения: 205
Организация: Миландр
Откуда: Миландр
В Errata описана ошибка номер 5 (она же номер 4 для ВН44) в командах SIMD умножения с округлением
для чисел плавающей запятой одинарной точности.
Вместо умножения с округлением рекомендовано использовать вариант умножения с отсечением SFRsd = Rmd * Rnd (T);;
В алгоритмах БПФ один из операндов умножения (массив коэффициентов) может быть известен заранее.
Можно проверить этот массив на наличие "проблемных" значений.
Начиная с БПФ размера 1К среди коэффициентов появляется такое значение (мантисса 0х708066)
и для него можно найти три числа, при перемножении с которыми будет получен ошибочный результат.

Однако команда умножения SFRsd = Rmd * Rnd;; имеет особенность при генерации ошибочного результата.
Имеет значение, в каком регистре (Rmd или Rnd) находится проблемный множитель. Для случая реализации БПФ,
когда коэффициент всегда находится в регистре Rnd, умножение на значение мантиссы 0х708066 не формирует ошибочный результат.
Поэтому в алгоритмах БПФ (до 4К включительно) с использованием новых SIMD команд также можно использовать режим округления к ближайшему.
Соответственно, при проверке массива коэффициентов БПФ на наличие ошибочных значений, нужно принимать
во внимание в каком регистре будет находится данный множитель.


Последний раз редактировалось BY_man 2020-апр-07 09:17, всего редактировалось 1 раз.

Вернуться к началу
 Заголовок сообщения: Re: 1967ВН028
СообщениеДобавлено: 2020-мар-23 13:16 
Не в сети

Зарегистрирован: 2014-июн-17 16:55
Сообщения: 9
В соответствии с рекомендациями по пункту 0006 errata, не получается загрузить процессор id4 из флеш.
Можно поподробнее расписать строку из рекомендаций "После окончания загрузки процессор ID=0 программирует канал ПДП процессора ID=4 на загрузку из адреса 0х20000000 и устанавливает в регистре DP канала ПДП источник «EPROM» (DP[31:29]=110). После этого процессор ID=4 загружается из EPROM."


Вернуться к началу
 Заголовок сообщения: Re: 1967ВН028
СообщениеДобавлено: 2020-мар-23 16:49 
Не в сети

Зарегистрирован: 2014-авг-15 11:04
Сообщения: 205
Организация: Миландр
Откуда: Миландр
d_des писал(а): *
В соответствии с рекомендациями по пункту 0006 errata, не получается загрузить процессор id4 из флеш.
Можно поподробнее расписать строку из рекомендаций "После окончания загрузки процессор ID=0 программирует канал ПДП процессора ID=4 на загрузку из адреса 0х20000000 и устанавливает в регистре DP канала ПДП источник «EPROM» (DP[31:29]=110). После этого процессор ID=4 загружается из EPROM."
В данном случае нужно чтобы были сделаны соответствующие аппаратные
модификации на плате. Обычно сигналы nBMS всех процессоров
соединены вместе. Но здесь нужно чтобы сигнал nBMS
процессора 4 (nBMS_4) был отключен от общего провода (nBMSx).
Сигнал выборки EPROM nBMS_E = nBMSx and nBMS_4;
Общий провод nBMSx резистором к нулю (резистор имеется внутри процессора), что говорит о том, что все процессоры
стартуют с EPROM. Но сигнал nBMS_4 должен быть резистором к 1 (внешний резистор к питанию).
Это говорит о том, что процессор ID4 просто ждет запроса прерывания после сброса.

Все процессоры (кроме 4-го) стартуют с EPROM.
На процессор 0 возлагаем дополнительную миссию по активизации
процессора 4. После начала исполнения загрузочного кода, он делает

xr10 = SYSTAT;;
xr10 = r10 and 7;; // xr10 = processor ID
if nxaeq, jump skip_id0_start (NP);;

процесор ID0 программирует канал DMA0 процессора ID4 на загрузку из EPROM.

xr0 = 0x20000000;;
xr1 = (256<<16)+4;;
xr2 = 0;;
xr3 = TCB_EPROM | TCB_NORMAL | TCB_INT;; // | TCB_HPRIORITY
q[j31+0x201f0000] = xr3:0;;
xr4 = 0;;
xr5 = (256<<16)+1;;
xr6 = 0;;
xr7 = TCB_INTMEM | TCB_NORMAL | TCB_INT;;
q[j31+0x201f0004] = xr7:4;;

skip_id0_start:

ДМА канал процессора ID4 не воспринимает адрес 0х2000_0000 как свой адрес из-за бага.
Внешний nBMS_4 активизируется в 0 из-за того, что в ДМА канале прописан режим TCB_EPROM.
У EPROM нет никакого адресного пространства на внешней шине и сигнал nBMS активизируется
специальным режимом , а не дешифратором адреса.

После того как ID4 загрузит 256 первых слов, он начнет исполнять этот код.
Если нужно опять обращаться к EPROM, то опять же для ID4 это не должен быть
адрес у которого биты с 31 по 26-й равны нулю.

PS. Когда ID4 обращается наружу, провод nBMSx должен подтягиваться резистором к единице.
Такой резистор имеется в ID0. Адрес 0х2000_0000 выбран не случайно. Все оставшиеся 7 процессоров кластера
не видят nBMS_4 сигнала процессора ID4. Поэтому важно значение на шине адреса. Адрес 0х2000_0000
не принадлежит никакому ресурсу шины (кроме процессора ID4) и поэтому никто на него случайно не откликнется.
EPROM не должна использовать 29-й бит адреса и поэтому для неё этот адрес тоже самое , что и нулевой.


Вернуться к началу
 Заголовок сообщения: Re: 1967ВН028
СообщениеДобавлено: 2020-мар-24 10:20 
Не в сети

Зарегистрирован: 2014-июн-17 16:55
Сообщения: 9
BY_man писал(а): *
d_des писал(а): *
В соответствии с рекомендациями по пункту 0006 errata, не получается загрузить процессор id4 из флеш.
Можно поподробнее расписать строку из рекомендаций "После окончания загрузки процессор ID=0 программирует канал ПДП процессора ID=4 на загрузку из адреса 0х20000000 и устанавливает в регистре DP канала ПДП источник «EPROM» (DP[31:29]=110). После этого процессор ID=4 загружается из EPROM."
В данном случае нужно чтобы были сделаны соответствующие аппаратные
модификации на плате. Обычно сигналы nBMS всех процессоров
соединены вместе. Но здесь нужно чтобы сигнал nBMS
процессора 4 (nBMS_4) был отключен от общего провода (nBMSx).
Сигнал выборки EPROM nBMS_E = nBMSx and nBMS_4;
Общий провод nBMSx резистором к нулю (резистор имеется внутри процессора), что говорит о том, что все процессоры
стартуют с EPROM. Но сигнал nBMS_4 должен быть резистором к 1 (внешний резистор к питанию).
Это говорит о том, что процессор ID4 просто ждет запроса прерывания после сброса.

Все процессоры (кроме 4-го) стартуют с EPROM.
На процессор 0 возлагаем дополнительную миссию по активизации
процессора 4. После начала исполнения загрузочного кода, он делает

xr10 = SYSTAT;;
xr10 = r10 and 7;; // xr10 = processor ID
if nxaeq, jump skip_id0_start (NP);;

процесор ID0 программирует канал DMA0 процессора ID4 на загрузку из EPROM.

xr0 = 0x20000000;;
xr1 = (256<<16)+4;;
xr2 = 0;;
xr3 = TCB_EPROM | TCB_NORMAL | TCB_INT;; // | TCB_HPRIORITY
q[j31+0x201f0000] = xr3:0;;
xr4 = 0;;
xr5 = (256<<16)+1;;
xr6 = 0;;
xr7 = TCB_INTMEM | TCB_NORMAL | TCB_INT;;
q[j31+0x201f0004] = xr7:4;;

skip_id0_start:

ДМА канал процессора ID4 не воспринимает адрес 0х2000_0000 как свой адрес из-за бага.
Внешний nBMS_4 активизируется в 0 из-за того, что в ДМА канале прописан режим TCB_EPROM.
У EPROM нет никакого адресного пространства на внешней шине и сигнал nBMS активизируется
специальным режимом , а не дешифратором адреса.

После того как ID4 загрузит 256 первых слов, он начнет исполнять этот код.
Если нужно опять обращаться к EPROM, то опять же для ID4 это не должен быть
адрес у которого биты с 31 по 26-й равны нулю.

PS. Когда ID4 обращается наружу, провод nBMSx должен подтягиваться резистором к единице.
Такой резистор имеется в ID0. Адрес 0х2000_0000 выбран не случайно. Все оставшиеся 7 процессоров кластера
не видят nBMS_4 сигнала процессора ID4. Поэтому важно значение на шине адреса. Адрес 0х2000_0000
не принадлежит никакому ресурсу шины (кроме процессора ID4) и поэтому никто на него случайно не откликнется.
EPROM не должна использовать 29-й бит адреса и поэтому для неё этот адрес тоже самое , что и нулевой.
На отладочной плате СОДх2 можно эту методику реализовать?
q[j31+0x201f0000] = xr3:0;; - это 128-ми битное обращение через кластерную шину в адресное пространство ID4 и оно аппаратно разбивается на 32-х или 64-х разрядные в зависимости от того как кластерная шина сконфигурирована?


Вернуться к началу
 Заголовок сообщения: Re: 1967ВН028
СообщениеДобавлено: 2020-мар-24 12:09 
Не в сети

Зарегистрирован: 2014-авг-15 11:04
Сообщения: 205
Организация: Миландр
Откуда: Миландр
1. Не знаю что такое СОДх2. Вы имеете ввиду нашу отладочную плату с двумя ВН28?
Я посмотрю можно ли на ней что-то похожее сделать. ID там можно назначить любые.
Можно сделать 0-й и 4-й. 0-й можно подконтачить к среде отладки, а 4-й оставить в ожидании
прерывания. Тогда 0-й может стартануть 4-й и тот загрузится с EPROM (если она есть на плате) и , например, поморгает светодиодом.
В таком случае не нужно разрывать nBMS линию на две.

2. q[j31+0x201f0000] = xr3:0;; - это 128-ми битное обращение через кластерную шину в адресное пространство ID4 и оно аппаратно разбивается на 32-х или 64-х разрядные в зависимости от того как кластерная шина сконфигурирована?
да. именно так. В ID4 эти куски опять собираются в одно квадрослово и пишутся по назначению. В данном случае это запись в 128-разрядный регистр
DMA канал 0.

PS. как не вертел плату ВН28, но так и не вижу на ней EPROM. Может через внешний разъем предполагалось подключать?


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 154 сообщения ]  На страницу « 17 8 9 10 11 »

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти: 

Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB