svofski
До скольки МГц реально разогнать "проц" в рамках DE1 (с минимальными усилиями, без существенных переделок кода)?
Вид для печати
svofski
До скольки МГц реально разогнать "проц" в рамках DE1 (с минимальными усилиями, без существенных переделок кода)?
Хех. Я не очень-то думал над этим вопросом, потому что мне больше всего охота была сделать Вектор как Вектор, а скорость -- это так. Например, он генерирует циклы ожидания, как настоящий Вектор. Без них он уже сразу быстрее раза в полтора.
Сделать переключатель "турбо" наверное можно. Если просто вставить побольше разрешающих импульсов, может быть можно в два раза ускорить. Но это будет нечестное ускорение. Например, между двумя прерываниями будет исполняться в два раза больше команд. Программы имеют полное право сходить от такого с ума. Правда, может быть это и забавно.
Глумить нужно вот это место:
http://code.google.com/p/vector06cc/...rc/clockster.v
Процессор разрешают импульсы ce3. Идея состоит в том, чтобы найти свободные от других разрешающих импульсов отсчеты и сделать еще один ce3, сдвинутый по фазе. При этом результирующий ce3 будет отщелкивать замысловатый ритм, но это не должно нас расстраивать.
http://code.google.com/p/vector06cc/...k_Distribution
На этой картинке показаны ce3 и ce3v; если она еще соответствует действительности, теоретически у нас есть еще два свободных отсчета. Займешься?
DE1 у меня нету, а самое главное нет навыков программирования на всяческих verilogaх и HDLях, так что я пас.
Вопрос возник в связи с тем, что:
В b2m можно очень легко накрутить любую желаемую частоту, я пару раз игрался с этой возможностью. Но делать что-то чисто под эмулятор - это не айс. Если знать, что существует железяка, которая тоже так может - это уже другое дело.
Правда, нужно не только турбо (чем больше тем лучше), но еще какой-нибудь улучшеный вариант КД (b2m поддерживает "кировский", который задействует старшие 2 бита 10h) и z80 (наверно было бы сравнительно легко t80 сделать в варианте z80 в рамках твоего проекта).
Увеличение числа тактов между прерываниями в 2,4,8,16... раз - это то что надо :)
Ну чо, это будет не совсем уже Вектор, но почему нет. Я просто не могу обещать, что я этим займусь на днях. Может быть меня пропрет и я это сделаю сегодня, но скорее всего все-таки в какое-нибудь другое время.
А ты решил сделать River Raid? :)
Эта идея меня стала мучать во время бодания с king's valley. Эта игрушка синхронизирована по прерываниям и ее скорость после определенной частоты (когда на все начинает хватать времени) остается постоянной.
При достаточно большой частоте можно сделать для этого гипотетического монстрика практически эмулятор msx, правда в нем пойдет не так много игрушек, только те которые обращались к аппаратуре через bios.
Тут главное не переборщить. Потому что MSX вообщем-то тоже есть и возникает естественный вопрос..
С другой стороны, большое быстродействие развращает, высокочастотный вектор - это от лукавого, я осознал :).
А вот z80 на 3 МГц и поддержка кировского КД - это ведь эмуляция реально имевших место старых железок, может когда-нибудь подумаешь о реализации этих штук?
Вот у Tim0xI дойдут руки до DE1, он приделает Z80. А то бывал ведь еще 580ВМ1 =)
Кстати, я обновил снепшот сорцов и битстримы до ревизии 333, она принципиально лучше ревизии 322. Из серьезных глюков осталась, по прежнему к сожалению, трудноуловимая трабла с записью на диск.
Совершенно отстраненный вопрос -- кроме того, что у z80 практически отсуствуют губительные для Вектора 5-тактовые циклы, что делает его волшебным? Вне контекста портирования спектрумных и msx-ных гамезов, конечно, с этим все понятно. LDIR? Или наборы стремных префиксных инструкций, ими вообще кто-то пользуется иногда хотя бы?
svofski, z80 приделывать нужно, если есть желание развивать проект. Т.к. с z80 у Вектора есть перспективы железного и программного развития ввиду его удачной адресации портов не превышающей #7F, что позволяет в дальнейшем использовать развитие z80 - eZ80. А с eZ80 открываются просто бесконечные перспективы развития компьютера, вполоть до использования линукс платформы имеющейся под eZ80.