Chaosorg пишет: Так что, если уж так хочется порисовать что-то 3D на марсоходе, то, может быть, лучше делать не расширение универсального процессора, а отдельный блок (растеризации, скажем так) с отдельной очередью специализированных команд. Если места хватит, то можно еще и вертексный участок конвейера разместить с аппаратным вращением и проецированием вершин, хотя это много умножителей...
Увы, не хватает места. Из за этого я вообще убрал floating-point блоки. Вся отрисковка идет на целочисленной 16-битной арифметике без деления. Так, как ни странно, оказалось быстрее всего. Софтварно используется таблица синусов и таблица значений вида 65536/x.
С вынесением растеризации в отдельный блок есть сложность. Буфер цвета и буфер глубины не помещаются в кеш целиком. А если постоянно гонять их из оперативной памяти, не хватает пропускной способности sdram. В результате отрисовка идет по одной строке. То есть внешний цикл по строкам, внутри цикл по полигонам с определением точек пересечения полигона со строкой. И уже потом, на 3-м уровне вложенности, цикл по пикселам внутри строки, принадлежащим заданному полигону. Внутри которого, в свою очередь, нужно рассчитать текстурные координаты текущего пиксела, найти в кеше текстуру, достать из неё нужный цвет и применить к нему коэффициент освещенности текущего полигона.
Сделать всё это в HDL получается ну очень громоздко. Я не смог придумать ничего лучше, чем сделать универсальный процессор с векторными операциями.
Chaosorg пишет: Главное не забыть добавит ботов и фраги - иначе какой смысл?
Это да. Сражение со зловещими Тетраэдрами (чтобы полигонов поменьше ;) ) в Пустынном Лабиринте. Правда будет муторно писать игровую логику на голом ассемблере. Я подумываю сделать компилятор си на основе lcc и уже потом приступать к фрагам. Только это еще не скоро, надо дождаться вдохновения.
alman пишет: К примеру USB-host. Я хочу им пользоваться и думаю что в этом я не одинок. Возможно даже готов заплатить за него какую-то символическую сумму (usb_controller.sv).
Не, не надо ничего платить. Будет здорово если кто-нибудь воспользуется и объяснит мне, откуда у меня берутся
глюки
при чтении с флешки...
alman пишет: Кстати, хоть это к делу и не относится, не могли бы чуть рассказать о себе? Таки не каждый день кто-то выкладывает новые разработки такого уровня.
Я сейчас заканчиваю аспирантуру НИИСИ РАН. Несмотря на то, что там разработка на верилоге -- одно из основных направлений, я работаю по другой специальности, пишу программы для суперкомпьютеров. Но познакомиться с разработкой микросхем давно хотелось.