Еще одна реализация компьютера Орион-128 на базе FPGA

Компьютер Орион-128 (1990) расширяемый до 256 КБ и его развитие

Moderator: Shaos

Alekcandr
Devil
Posts: 723
Joined: 01 Oct 2007 10:30
Location: Ukraine

Еще одна реализация компьютера Орион-128 на базе FPGA

Post by Alekcandr »

Сразу возникает вопрос зачем?

По моим наблюдениям за долгие годы так никто и не сделал в FPGA точной копии Ориона по времянкам совпадающей с оригинальным. Моя реализация, вероятно, тоже не идеал, но остальные по моим данным и до этого не дошли. Если это не так не стесняйтесь напишите.

Для решения этой задачи схема Ориона была перенесена в Quartus. Как результат ничего не работало. Продолжая работу, была сделана "странная" модель оригинальной схемы в Verilog-е и в последствии обкатанная в Modelsim.
И уже на базе модели был написан синхронный код для запуска в FPGA. Основной упор был сделан на повторение точного синхрогенератора от оригинала. Остальное было заменено на функциональные аналоги, как то ИР13 и т.п.

Ссылка на гитхаб прилагается - ori1fpga
Last edited by Alekcandr on 19 Mar 2026 16:30, edited 1 time in total.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
User avatar
FizikS
Maniac
Posts: 319
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

Re: Еще одна реализация компьютера Орион-128 на базе FPGA

Post by FizikS »

Alekcandr wrote: 19 Mar 2026 04:38
Для решения этой задачи схема Ориона была перенесена в Quartus. Как результат ничего не работало.
Провожу эксперименты с вашей схемой в Протеусе. Заменял ИЕ5 на 74LS393 - работает прекрасно. При замене счетчиков на синхронные возникли проблемы в формирователе 111 цепи. После задержки сигнала с 44-й цепи (один неинвертирующий вентиль) проблемы исчезли.

Думаю, что проблемы с переносом схемы в Quartus такие: модели микросхем в нем все синхронные, тогда как в схеме Ориона счетчики асинхронные и защелки представляют собой прозрачные D-триггеры. Схема синхрогенератора учитывает задержки в триггерах счетчиков ИЕ5. Я заменил в схеме защелки в видеоформирователе U47, U48 на 74LS374, которые срабатывают не по уровню, а по фронту сигнала CLK, пришлось менять схему записи в них (вместо NOR поставил OR элемент). Без этой замены схема не работала.
Сейчас счетчик U2, формирователь сигналов CLK, цепи 111, 66 запихнул в GAL22V10, счетчик кадровой развертки сделал на одной микросхеме 74HC4040. Планирую заменить на ГАЛку, туда же пойдет и формирователь кадрового импульса. Схема станет значительно проще. Еще один кусок схемы запихнул в ГАЛку - формирователь цепей 92-95 и 112. Могу сказать, что схема значительно "похудела".
Большим пока похвастать нечем. Экспериментирую дальше. Жаль времени мало свободного.
Alekcandr
Devil
Posts: 723
Joined: 01 Oct 2007 10:30
Location: Ukraine

Re: Еще одна реализация компьютера Орион-128 на базе FPGA

Post by Alekcandr »

Любопытно все это. У меня цели менее амбициозные. Заработало в Proteus и хорошо, что-либо менять в синхрогенераторе не планирую.

А в Quartus счетчики х93 асинхронные. Там такая лютая дичь происходила, что и вспоминать страшно. После долгих мытарств я эту модель обуздал. Поэтому я и назвал модель "странной", потому что такое делать в здравом уме никто не будет и работать такое сможет только в симуляторе Verilog. Мне от этой модели нужны были только времянки, вот и пришлось заняться такими странными вещами.

p.s. И латчи (Latch) Quartus на дух не переносит, ругается благим матом :) Все в Quartus должно быть синхроненько касательно регистров, тогда Quartus доволен.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
Alekcandr
Devil
Posts: 723
Joined: 01 Oct 2007 10:30
Location: Ukraine

Re: Еще одна реализация компьютера Орион-128 на базе FPGA

Post by Alekcandr »

FizikS wrote: 19 Mar 2026 13:52 Думаю, что проблемы с переносом схемы в Quartus такие: модели микросхем в нем все синхронные, тогда как в схеме Ориона счетчики асинхронные и защелки представляют собой прозрачные D-триггеры.
Ну да, триггеры переключаются синхронно, просто что считать критерием синхронности. Дребезжит это все со страшной силой, а не щелк и готово. Схема в сборе работает асинхронно.
You do not have the required permissions to view the files attached to this post.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
User avatar
FizikS
Maniac
Posts: 319
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

Re: Еще одна реализация компьютера Орион-128 на базе FPGA

Post by FizikS »

Я видел в интернете несколько схем Орионов, построенных на EPM7128, прошивка к которым сделана в виде схем, перерисованных с ж. Радио один в один. У меня были сомнения в их работоспособности, т.к. кроме схем и рендеров печатной платы ничего не предоставлялось. Я тоже пытался что-то подобное ваять в Протеусе по схемам моделей Квартуса и получил негативный результат. Ваши посты полностью подтверждают мои сомнения в работоспособности этих схем. Ну да ладно... Свою разработаю, проверю в Протеусе и буду паять (плату закупил Орион УКНЦ версии 2025г. - неплохая версия, как по мне). Отчет со всеми расчетами опубликую на этом форуме.
newold86
Devil
Posts: 741
Joined: 30 Nov 2013 11:08
Location: WWW

Re: Еще одна реализация компьютера Орион-128 на базе FPGA

Post by newold86 »

Alekcandr wrote: 19 Mar 2026 04:38 По моим наблюдениям за долгие годы так никто и не сделал в FPGA точной копии Ориона по времянкам совпадающей с оригинальным.
Как минимум, я сделал. Начало эпопеи здесь - www.nedopc.org/forum/viewtopic.php?t=10688

Потом я вернулся к теме, и после того, когда наконец-то окончательно понял, как работает Орион, допилил именно до 100% соответствия. Насколько помню (эх, давно было) счетчики пришлось «собирать» из отдельных логических элементов - только так удалось убрать ненужную синхронность и излишнюю оптимизацию Quartus’а. И вроде бы пришлось где-то вставлять задержку с использованием физического резистора и конденсатора (хотя, возможно, это было в Специалисте).
Alekcandr
Devil
Posts: 723
Joined: 01 Oct 2007 10:30
Location: Ukraine

Re: Еще одна реализация компьютера Орион-128 на базе FPGA

Post by Alekcandr »

newold86 wrote: 19 Mar 2026 23:09 Как минимум, я сделал. Начало эпопеи здесь - www.nedopc.org/forum/viewtopic.php?t=10688
Я видел ваш тетанический труд. Просто в финале не нашел конкретных цифр, выраженных во времени по работе синхронизатора. Может плохо искал. В моих исходниках эти цифры приведены.

И потом мы преследовали несколько иные цели. Выша цель была запустить максимально приближенную схему оригинала в CPLD, как я понял. У меня одна из целей была синтезировать 100% переносимую схему (не упомянул об этом в первом посте) под разные FPGA. Естественно моя финальная схема ничего общего с оригинальной схемой не имеет из-за не совместимости принципов проектирования.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
Alekcandr
Devil
Posts: 723
Joined: 01 Oct 2007 10:30
Location: Ukraine

Re: Еще одна реализация компьютера Орион-128 на базе FPGA

Post by Alekcandr »

FizikS wrote: 19 Mar 2026 22:53 Я видел в интернете несколько схем Орионов, построенных на EPM7128, прошивка к которым сделана в виде схем, перерисованных с ж. Радио один в один.
В CPLD c этим попроще, не тот масштаб. А вот в FPGA две строчки поменяешь, компилятор изменит нет лист схемы и все развалилось.

Например, всем известный проект Multicomp от Grant Searle имеет подобную проблему. С Циклоном 2 все работает замечательно. Но стоит перенести на Циклон 4, как начинает отваливаться SD карта.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
Alekcandr
Devil
Posts: 723
Joined: 01 Oct 2007 10:30
Location: Ukraine

Re: Еще одна реализация компьютера Орион-128 на базе FPGA

Post by Alekcandr »

Из любопытного. Делая Орион в FPGA я получил фичу оригинальной схемы, когда слева появляется одна четкая лишняя вертикальная линия из середины активной области экрана. Пришлось мне добавлять задержку в один пиксель, чтобы это убрать.

Code: Select all

always @(posedge clk_i)
begin
  if (cke_10m_i) delay_hblank_q <= hblank_q;
end
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
Alekcandr
Devil
Posts: 723
Joined: 01 Oct 2007 10:30
Location: Ukraine

Re: Еще одна реализация компьютера Орион-128 на базе FPGA

Post by Alekcandr »

Если уж разглагольствовать дальше, то существует две непримиримые группы. Назовем их условно декаперы (те, которые снимают крышку микросхемы и восстанавливаю оригинальную схему на языках интегральных схем) и чистые фпжа-шники (костяк, работающий над проектом MiSTer FPGA).

У декаперов восстановленная схема более компактная и в значительно мере соответствует оригиналу, но с переносимостью часто возникают проблемы. Декаперов эта проблема особо не интересует, потому что они всегда в курсе, где надо поставить костыль, если что-то идет не так.
Чистые фпжа-шники же опираются в своей работе на функциональное описание восстанавливаемой микросхемы и следую принципу проектирования в FPGA. Восстановленная схема как правило занимает чуть больший объем, зато с переносимостью все замечательно.

Результат на выходе одинаковый. 100% совместимости с оригиналом достичь нельзя. Впрочем, я не вижу тут никаких проблем, сложные интегральные схемы, сделанные по технологии NMOS и CMOS тоже от части не совместимы, и никого это особо не волнует.

По какому пути идти каждый решает для себя сам.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
newold86
Devil
Posts: 741
Joined: 30 Nov 2013 11:08
Location: WWW

Re: Еще одна реализация компьютера Орион-128 на базе FPGA

Post by newold86 »

Alekcandr wrote: 20 Mar 2026 02:10 А вот в FPGA две строчки поменяешь, компилятор изменит нет лист схемы и все развалилось.
Меня это до истерики доводило…

А Орион в конечном итоге удалось сделать, как уже говорил, сделав счетчики (и вроде еще что-то) на логических элементах и убрав оптимизацию компилятора (насколько помню, не так просто оказалось). А главное - добавив в кучу мест задержки, организованные на сдвиговых регистрах и тактируемых приличной частотой. Такой подход обеспечил переносимость дизайна в пределах разумного - на частотах Ориона задержками FPGA можно пренебречь, а сдвиговые регистры позволяют довольно неплохо имитировать скорости старых микросхем, и при этом сохраняются при переносе дизайна.

Но вот CGA адаптер я так и не осилил с таким подходом :(
Alekcandr
Devil
Posts: 723
Joined: 01 Oct 2007 10:30
Location: Ukraine

Re: Еще одна реализация компьютера Орион-128 на базе FPGA

Post by Alekcandr »

newold86 wrote: 20 Mar 2026 11:25 Но вот CGA адаптер я так и не осилил с таким подходом :(
По мне вот этот проект можно рассматривать, как дверь в мир FPGA. Отчасти я до сих пор нахожусь под его влиянием.

Ссылка на гитхаб vdp18
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
newold86
Devil
Posts: 741
Joined: 30 Nov 2013 11:08
Location: WWW

Re: Еще одна реализация компьютера Орион-128 на базе FPGA

Post by newold86 »

Alekcandr wrote: 20 Mar 2026 12:00
newold86 wrote: 20 Mar 2026 11:25 Но вот CGA адаптер я так и не осилил с таким подходом :(
По мне вот этот проект можно рассматривать, как дверь в мир FPGA. Отчасти я до сих пор нахожусь под его влиянием.

Ссылка на гитхаб vdp18
Да у меня не вообще с FPGA трудности были (кое-чего я все-таки уже умею), а именно с пониманием сути работы оригинального CGA адаптера. Там есть вещи типа элемента NOT с выходом, подключенным к своему же входу (или что-то подобное - подробности уже забылись). Там, мне кажется, половина схемы исходит из того, что у элементов более-менее определенные задержки, и в голове это не уложить…
Alekcandr
Devil
Posts: 723
Joined: 01 Oct 2007 10:30
Location: Ukraine

Re: Еще одна реализация компьютера Орион-128 на базе FPGA

Post by Alekcandr »

newold86 wrote: 20 Mar 2026 15:09 Да у меня не вообще с FPGA трудности были (кое-чего я все-таки уже умею), а именно с пониманием сути работы оригинального CGA адаптера.
Я поэтому и предложил готовый проект. Просто проектов много, но только единицы ведут в правильном направлении, остальные обычно заводят куда-то не туда.
А касательно схемного ввода, думаю, что для этой задачи это вряд ли подойдет.

p.s. Как вариант можно было бы использовать Proteus для глубокого понимания схемы, но и тут тоже затык. Где взять счетчик Мотороловкий? За один присест похоже эту задачу не решить.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
User avatar
FizikS
Maniac
Posts: 319
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

Re: Еще одна реализация компьютера Орион-128 на базе FPGA

Post by FizikS »

Alekcandr wrote: 21 Mar 2026 02:16 p.s. Как вариант можно было бы использовать Proteus для глубокого понимания схемы, но и тут тоже затык. Где взять счетчик Мотороловкий? За один присест похоже эту задачу не решить.
1. Что за такой счетчик? (вопрос число для интереса)
2. В Протеусе много цифровых микросхем, которые не симулируются. Например, для моделирования VGA выхода на Орион не помешали бы модельки серии 74ALS и других, более быстрых.

От нечего делать я описал эти микросхемы в соответствующих файлах (получилось более 200 микросхем), осталось "совсем немного": прицепить эти файлы к символам и скомпилировать новые библиотеки... Времени нет совсем, да и еще не разобрался, как это сделать малой кровью. На многие микросхемы есть по 3 символа. Хочется все же довести дело до конца...