nabbla (nabbla1) wrote,
nabbla
nabbla1

Categories:

Тестируем "абсолютный" QuatCore

То есть, без относительных адресов, при том со всей подключённой периферией. Так выглядит "вычислительное ядро" (в центре композиции), к которому подключён видеообработчик (GPU, слева), селектор ввода-вывода, приёмопередатчик SPI, мультиплексор SPI на 3 устройства (связано с тем, что авторы отладочной платы "на всякий случай" вывели разные устройства на разные ножки ПЛИС, иначе можно было бы иметь общие SCK, MISO и MOSI, а индивидуальные только nCS), передатчик UART, контроллер ЖК-экранчика и контроллер SRAM:



Правда, сейчас мы всё это великолепие воткнули в данную "отладочную схему":


где вся эта периферия не задействована, да и программа к ней пока не обращается - записывает результаты в память - и убегает в бесконечный цикл.

В таком виде оно всё синтезируется в 1227 ЛЭ, хотя здесь явно синтезатор не дурак - обнаруживает толпу неподключённых выходов и вырезает незадействованную логику налево и направо. Предельная частота по результатам Timing Analyzer составляет 27,93 МГц - это мне нравится!

Когда симуляция завершилась, мне показали то место, на котором я закончил в прошлый раз:


Выглядит очень многообещающе!


Адреса команд немного сменились, поскольку я добавил код, перетаскивающий все оставшиеся элементы из списка ActivePoints в AllPoints. Он здесь тоже выполняется, хотя ему достаётся "примитивный частный случай", когда в списке ActivePoints ловить уже нечего.

Но что радует: времени на обработку ушло ровно столько же, и только здесь мы перешли в бесконечный цикл, которым "заканчивается" наша программа.

Давайте ещё глянем на дамп памяти:


Что-то до боли знакомое! Единственная разница - в [SP] - там раньше лежал адрес 0xC00C, из которого брался только младший байт 0x0C. В этот раз там лежит 0x8C52. Посмотрим, как мы использовали стек последний раз, это как раз в добавленном коде:

52  8879              @@Transfer:     ZAcc        RoundZero
53  83D8                          SUB     [Y+k]           ;если [Y+k]=NULL, значит пора закругляться
54  F325                          [SP++]  @@Transfer
55  B83D                          JL      ListOp
56  89FF                          NOP     [--SP]      ;раз не было вызова - возвращаем стек в исходное состояние                      


Мы занесли в стек метку @@Transfer, это адрес 0x52. Да, младший байт совпадает, а на старший нам плевать.


Что-то мне подсказывает, что всё хорошо :)

Теперь начнём в несколько этапов перебираться на "железо". Сначала - добавим в программу вывод параметров точек в UART. Затем - отладим это с "генератором тестового изображения" на 4 МГц. Затем - на 25 МГц. Затем - заставить записывать кадр в SRAM и по запросу выдавать его по UART. И наконец - то же самое, но с РЕАЛЬНЫМ изображением с камеры. Хотелось бы к пятнице успеть :)
Tags: ПЛИС, программки, работа, странные девайсы
Subscribe

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

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

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

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

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

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

  • Огари разговаривают

    Сегодня по пути на работу встретил огарей прямо в Лосином острове, на берегу Яузы. Эти были на удивление бесстрашны, занимались своими делами, не…

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

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

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

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

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 0 comments