nabbla (nabbla1) wrote,
nabbla
nabbla1

Categories:

Обнаружение на новом GPU - сходу не вышло

Запустил симуляцию - посчиталась довольно быстро, и вскоре стало ясно, почему. Мы так и не ушли дальше самой первой строки!



Похоже, что "не угадали" с чётностью - начали с чётного числа, отсчитали сверху 28 строк, а потом выдали эту команду BGPUL (Begin GPUL), которая переключила бит в единичку, но строка-то была чётная, поэтому результаты единственной команды ACQ WholeRow были сочтены некорректными и вышвырнуты нафиг!


Именно поэтому, команда GPUL вместо того, чтобы сразу выдать результат, остановила процессор "навсегда". У нас ещё оставалась команда ACQ HSync для видеопроцессора, и когда она была исполнена (так ничего и не выдав в результаты, как мы и хотели), выскочило прерывание UFLO (исчерпание заданий на обработку), но поскольку в этой "тестовой схеме" (testbench) у нас обработчик прерываний не подключён, мы так и остались застрявшими в этом месте.

Нда, почему-то мне казалось, что если мы в начале работы ошибёмся с чётностью, то "всего лишь" сдвинемся на одну строку. Нет, при ошибке мы вообще застрянем.

Так что добавить ещё одну команду, которая обнулит этот бит чётности в начале работы с кадром - очень неплохая идея. Не знаю, конечно, может это паранойя, считать что всё здесь может сбиваться. Точнее, это НЕДОСТАТОЧНАЯ ПАРАНОЙЯ - какой смысл отслеживать конкретно косяки с получением изображения, но считать при этом, что процессор работает безукоризненно.

Впрочем, хотя бы в целях отладки это неплохая проверка, пущай будет. Просто поменяем количество строк, которые мы "пропускаем". Сделаем на единичку меньше, и попробуем повторно.


А вообще, неплохо: мы увидели, что происходит, когда чётность не совпала, а также проверили, что по синхроимпульсам действительно результаты не приходит, как и задумано. Сейчас попробуем ещё разок.
Tags: ПЛИС, программки, работа, странные девайсы
Subscribe

  • Нахождение двух самых отдалённых точек

    Пока компьютер долго и упорно мучал симуляцию, я пытался написать на ассемблере алгоритм захвата на ближней дистанции. А сейчас на этом коде можно…

  • Слишком общительный счётчик

    Вчера я чуть поторопился отсинтезировать проект,параметры не поменял: RomWidth = 8 вместо 7, RamWidth = 9 вместо 8, и ещё EnableByteAccess=1, чтобы…

  • Балансируем конвейер QuatCore

    В пятницу у нас всё замечательно сработало на симуляции, первые 16 миллисекунд полёт нормальный. А вот прошить весь проект на ПЛИС и попробовать "в…

  • Ковыряемся с сантехникой

    Наконец-то закрыл сколько-нибудь пристойно трубы, подводящие к смесителю, в квартире в Москве: А в воскресенье побывал на даче, там очередная…

  • Мартовское велосипедное

    Продолжаю кататься на работу и с работы на велосипеде, а также в РКК Энергию и на дачу. Хотя на две недели случился перерыв, очередная поломка,…

  • Обнаружение на новом GPU - первые 16 мс

    Закончилась симуляция. UFLO и OFLO ни разу не возникли, что не может не радовать. За это время мы дошли до строки 0x10F = 271. Поглядим дамп памяти:…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 0 comments