Проверка функционирования контроллера во время сброса HS режима
Сброс питания после установления конечной точки
Настройка регистров контроллера
Проверка функционирования usb контроллера во время подавления HS режима
Проверка функционирования контроллера во время сброса FS режима
После прошивки CPU проверить на соединение CPU и usb контроллера
Состояние данных во входной нулевой конечной точки для FS и HS режимов
Состояние данных в выходной нулевой конечной точки для FS и HS режимов
Статус нулевой конечной точки для FS и HS режимов
Статус выходной конечной точки для FS и HS режимов
Настройка нулевой конечной точки
Основная bulk передача
Тест1: доступ к существующим конечным точкам по доступному прерыванию
Тест2: доступ к существующим конечным точкам прерывание отсутствует
Тест3: доступ к существующим конечным точкам и отправка нулевого байта данных
Тест4: Чистка встроенного блока памяти
Bulk передача:
Тест1: Доступ к существующим конечным точкам с некорректным функциональным адресом
Тест2: Доступ к несуществующим конечным точкам
Тест3: Доступ к существующим конечным точкам с проверкой CRC
Тест4: Доступ к существующим конечным точкам которые не готовы к отправке
Тест5: Доступ к существующим конечным точкам с выходным включением
Тест6: Загрука меньше 4 байт в InPktRdy
Bulk передача(согласно стандарту необходимо проверить data toggle cм стандарт usb 2.0 секция 5):
1. Единственная буферизация
2. Двойная буферизация (имеем, но не используем)
3. Двойная буферизация (имеем и используем)
4. Автонастройка двойной буферизации
5. Автонастройка единственной буферизации
6. Автонастройка двойной буферизации используя CPU
Bulk передача:
1. Межпакетное временное взаимодействие DATA и ACK
2. Межпакетное временное взаимодействие NACK
3. Межпакетное временное взаимодействие STALL
ISO передача:
1. доступ к существующим конечным точкам по доступному прерыванию
2. доступ к существующим конечным точкам прерывание отсутствует
3. доступ к существующим конечным точкам и отправка нулевого байта. Все прерывания доступны
ISO передача:
Тест1: Доступ к существующим конечным точкам с некорректным функциональным адресом
Тест2: Доступ к несуществующим конечным точкам
Тест3: Доступ к существующим конечным точкам с проверкой CRC
Тест4: Доступ к существующим конечным точкам которые не готовы к отправке
Тест5: Доступ к существующим конечным точкам с выходным включением
ISO передача: (согласно стандарту необходимо проверить data toggle cм стандарт usb 2.0 секция 5):
1. Единственная буферизация
2. Двойная буферизация (имеем, но не используем)
3. Двойная буферизация (имеем и используем)
4. Автонастройка двойной буферизации
5. Автонастройка единственной буферизации
6. Автонастройка двойной буферизации используя CPU
ISO передача:
1. Межпакетное временное взаимодействие DATA и ACK
2. Межпакетное временное взаимодействие NACK
3. Межпакетное временное взаимодействие STALL
ISO передача:
1. Попытка получить данные из конечной точки после загрузки встроенного блока памяти
2. Проверка на степень двойки (64,128,256,512,1024)
ISO передача:
1. Проверка высокой пропускной способности для двойного пакета двойной буферизации буферизации (порядок для FIFO: 2048,1024, 512,256,128)
2. Проверка высокой пропускной способности для тройного пакета двойной буферизации (порядок для FIFO: 4096,2048,1024, 512,256,128)
3. Проверка высокой пропускной способности для двойного пакета, двойная буферизация не используется (порядок для FIFO: 2048,1024, 512,256,128)
4. Проверка высокой пропускной способности для тройного пакета, двойная буферизация не используется (порядок для FIFO: 8192,4096,2048,1024, 512,256,128)
32 разрядные ALU и аккумулятор реализованы с широким спектром арифметических и логических операций, большинство из которых выполняются в течение одного командного цикла. Данные, поступающие на обработку в ALU, могут быть предварительно промасштабированы в масштабирующем сдвиговом регистре.
На один из входов ALU всегда подается содержимое аккумулятора, а другой вход может быть соединен либо с регистром произведения умножителя либо с выходом масштабирующего сдвигового регистра.
32-разрядный аккумулятор разделен на два 16-разрядных слова для удобства при сохранении его в памяти данных: старшее слово и младшее слово.
Дополнительный сдвиговый регистр, соединенный с выходом аккумулятора обеспечивает левый сдвиг от 0 до 7 разрядов. Этот сдвиг осуществляется перед, выдачей данных на шину для сохранения их в памяти. При этом содержимое аккумулятора не изменяется. При сдвиге влево, младшие разряды выбираются из, а старшие теряются. При сдвиге влево, младшие разряды заполняются нулями, а старшие теряются.
DSP поддерживает операции с плавающей точкой для вычислений, требующих большого динамического диапазона. Команда нормализации нормализует числа с фиксированной точкой, находящиеся в аккумуляторе, путем выполнения левого сдвига. Команда загрузить аккумулятор со сдвигом, определяемым Т-регистром денормализует числа с плавающей точкой с помощью арифметического левого сдвига мантиссы через входной масштабирующий сдвиговый регистр. Коэффициент сдвига в этом случае – это значение экспоненты, определяемое четырьмя младшими разрядами Т-регистра.
Команды прибавить к/вычесть из аккумулятора со сдвигом, заданным в Т-регистре также позволяют обрабатывать числа с 16-разрядной мантиссой и 4-разрядной экспонентой.
Режим насыщения при переполнении может быть запрограммирован при помощи команд установить/сбросить режим переполнения. Если аккумулятор находится в режиме насыщения, и произошло переполнение, устанавливается флаг переполнения, и в аккумулятор загружается наибольшее положительное (>7FFFFFFFh) или отрицательное (>80000000h) число, в зависимости от знака переполнения. Если режим насыщения не установлен (бит cброшен), результат операции, приведшей к переполнению, загружается в аккумулятор без изменений (т.е. с потерей старших разрядов). Необходимо отметить, что логические операции не могут вызывать переполнения.
В DSP реализованы команды ветвления, в зависимости от состояния больше/меньше/равен нулю, переполнен, сгенерировал перенос. Кроме того, инструкции B перейти по адресу, расположенному в аккумуляторе и вызвать подпрограмму по адресу, расположенному в аккумуляторе позволяют вычислять адрес ветвления программного кода. Команды, не изменяя содержимого аккумулятора, позволяют тестировать значение конкретных разрядов в любом слове памяти данных.
В аккумуляторе предусмотрен бит переноса, который устанавливается или сбрасывается в зависимости от операций выполняемых устройством. Бит переноса позволяет более эффективно выполнять умножение, сложение и вычитание. Также он удобен при работе с переполнениями. Бит переноса изменяется при выполнении большинства арифметических команд, а также команд сдвига и вращения аккумулятора. Но он не изменяется при загрузке аккумулятора, логических операциях, или при других неарифметических или управляющих операциях.
Значение, прибавляемое или вычитаемое из аккумулятора, может быть предварительно пропущено через сдвиговый регистр. Бит переноса устанавливается, если при сложении в аккумуляторе генерируется перенос, или сбрасывается, если при вычитании возникает заем из старшего разряда. Во всех остальных случаях он сбрасывается при сложении и устанавливается при вычитании. Команды прибавить с переносом и SUBB вычесть с заемом позволяют воспользоваться значением переноса, полученным в предыдущих командах сложения/ вычитания.
В аккумуляторе также реализована возможность внутреннего одноразрядного сдвига содержимого вправо или влево или вращения содержимого через бит переноса. Бит X оказывает влияние на режим выполнения команды F (сдвинуть аккумулятор вправо). Когда X=1, F осуществляет арифметический правый сдвиг, сохраняющий знак аккумулятора. Когда X=0, F выполняет логический сдвиг, выдвигая младший разряд и заполняя нулем старший. Команда F (сдвинуть аккумулятор влево) выполняется одинаково, вне зависимости от значения X, выдвигая наружу старший разряд и заполняя нулем младший.
Значение X не оказывает влияния на выполнение правого и левого кольцевых сдвигов.