Перейти к содержанию
    

Реализация расширенной FPGA-реплики ретро-компьютера

Что касается процессора, уже готова его упрощенная модель, которая будет в итоге работать с частотой примерно 100 мГц, но в отличие от оригинального ВМ1 будет выполнять 1 команду за 1 такт, а не за 10. Итого, получим ускорение процессора порядка 200 раз в сравнении с оригиналом.

Вопрос зачем? Что существуют задачи, которые можно решать только на БК01 и не хватает скорости?.

А все существующие программы расчитаны на стандартные скорости и на повышенной частоте могут и перестать работать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А все существующие программы расчитаны на стандартные скорости и на повышенной частоте могут и перестать работать.

Помню такой же глюк модуля CRT из Турбо Паскаля 7.0. Работает на 486 процах, возможно на ранних Пентиумах. На современных сразу при инициализации модуля (на старте) выдаёт ошибку 200 и конец выполнения. Там это связано с переполнением регистра и делением на 0 (кажется) во время определения скорости проца.

Изменено пользователем GetSmart

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что касается процессора, уже готова его упрощенная модель, которая будет в итоге работать с частотой примерно 100 мГц

В смысле - упрощенная блок-схема? (судя по заявленной частоте)

 

которая будет в итоге работать с частотой примерно 100 мГц, но в отличие от оригинального ВМ1 будет выполнять 1 команду за 1 такт, а не за 10.

ADD @A(R1),@B(R2) - за сколько тактов будет исполняться?

 

 

 

... все существующие программы расчитаны на стандартные скорости и на повышенной частоте могут и перестать работать.

Подать на стандартный таймер 5кГц(например) вместо 50Гц - заработают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подать на стандартный таймер 5кГц(например) вместо 50Гц - заработают.

А собственную скорость (рук, глаз, мозгов) в 100 раз разогнать слабо? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

-На что жалуетесь?

-Доктор, мне все говорят, что я сумасшедший

-Почему же?

-Потому что я люблю сосиски.

-Ну и что?! Все любят сосиски. Я тоже люблю сосиски.

-Правда? Пойдемте, я покажу Вам свою коллекцию.

 

---------

 

Я уже начал прорабатывать FPGA-клон PDP-11. Мои требования, в порядке приоритетов:

1) работоспособность RT-11 v5.x, DIR, PIP, DUP, RESORC, MACRO, LINK, PASCAL, ...

2) простота реализации,

3) скорость.

Игры - в последнюю очередь.

 

Систему команд выбрал без EIS (ASHC, ASH, DIV, MARK, MUL, RTT, SOB, SXT, XOR), выкинул также MFPS, MTPS. В моем программном симуляторе RESORC определяет такой процессор, как PDP 11/15,20. Проверил также, что работоспособность сохраняется при уменьшении памяти до 32КБайт - чтобы можно было запускать на "слабых" FPGA.

 

Одна из проблем - неоднозначность системы команд PDP-11 (об этом есть в wiki). Разрешение этой неоднозначности зависит от требований к скорости и набору программ, поэтому проверка в симуляторе точной модели - обязательный этап, с этого и надо начинать.

Изменено пользователем Leka

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В смысле - упрощенная блок-схема? (судя по заявленной частоте)

ADD @A(R1),@B(R2) - за сколько тактов будет исполняться?

 

Вот более подробная информация от разработчика:

 

Синтезируемое ядро на VHDL.

Исполняет все команды 1801ВМ1 (включая SXT, XOR, SOB, MARK), пока отсутствуют прерывания по внешнему сигналу и внутренним источникам ошибок кода , а также трассировка по биту T

 

Содержит 4-х ступенчатый исполнительный конвейер

Результаты синтеза (Quartus 11.0) для Altera Cyclone III , Optimization for Area, Slow 85C Model, (самая медленная оценка):

 

Для grade -8 : 91.1 мгц

Для grade -6: 106.36 мгц (117.63 мгц для Slow 0C Model).

 

Общее число логических элементов – 1708 (11 % EP3C16 )

 

Симуляция процессора на Active HDL 8.2

Время исполнения операций:

ADD R1, R2 - 1 такт

ADD R1, (R2) – 2 такта

ADD R1, 10(R2) – 3 такта

ADD @A(R1), @B(R2) - 7 тактов

 

Условные переходы 2 – 3 такта (зависит от выполнения условия)

JSR R5, (R1) - 4 такта

RTS - 4 такта

TRAP, EMT, BPT, IOT – 8 тактов

MARK – 3 такта

(время RTS .. MARK не зависит от параметров)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот более подробная информация от разработчика: ...

В проекте на opencores тактов вдвое больше(и частота поменьше), так что круто будет, если все получится.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Содержит 4-х ступенчатый исполнительный конвейер ... ADD R1, (R2) – 2 такта

Этот момент удивляет...

Сам решил отказаться от конвейера(кроме записи), интересно будет потом сравнить разные подходы.

 

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

post-9118-1327073707_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Без прерывания по T-биту жить будет тяжело, все отладчики на него завязаны.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С конвейером, кстати, надо аккуратно. MACRO.SAV, например, использует такую последовательность команд:

MOV R2,(PC)
...

те пересылает команду из R2 в память, и тут-же исполняет ее (в конкретном случае команду EMT).

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хотелось бы узнать мнений по мультимедийной архитектуре будущей машины.

1). Звук.

Есть вариант использовать дешевый vs1011, в составе которого есть хреновенький DAC и усилитель, а также декодер mp3. Работу по организации потока данных на vs1011 можно взвалить либо на ЦП, либо на периферийный PIC32MX695 (под который существуют кстати даже готовые mp3-плееры). Вроде бы красивое, недорогое, простое, но не самое качественное для уха меломана решение.

 

Другой вариант - переместить AY в ПЛИС, поставить качественный DAC (например CS4398), который правда потребует усложнения обвязки и повлечет удорожание решения за счет этого. Звук как c AY, так и оцифрованный - будет выводиться в один канал качественного DAC. Если использовать реальный AY, то получится два отдельных канала, т.к. у AY свой собственный DAC, и свести эти два канала в один, качественно можно только с помощью реле. Ну или не сводить вовсе. Для декодирования mp3 в этом случае можно использовать отдельный узкофункциональный процессор на vhdl в составе основной ПЛИС.

 

2). Графика.

В качестве Video-DAC пока предполагается ADV7125, в качестве конвертера DVI - TFP410PAP PBF. Возможно существуют более красивые решения (более дешевые или два в одном?).

Уже сделаны первые попытки вывода изображения с эмулируемой ВП1-037 (на отладочной плате) на широкоформатный монитор. Показывает нормально, но изображение излишне широкое в ставнении с оригинальной БК. Единственно приемлемое стандартное разрешение для вывода стандартных БКшных разрешений - 640 на 350, из него высекается 512 на 256 с небольшими полями, частота вывод точек там тоже регламентирована - 25.175 мгц, но 25 вроде прокатывает; если увеличить частоту точек и монитор это не отвергнет, то просто увеличатся поля слева и справа. Можно монитору нестандартный режим развертки подсунуть, но разные монитору могут на это реагировать по-разному.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... Графика.

БК11М - палитра 16 цветов всего, достаточно будет простейшей резистивной матрицы вместо видео-ЦАП. По 2 бита на каждый основной цвет + синхроимпульсы --> 8 ног и 8 резисторов всего. А для расширенной версии (если дело дойдет до этого) - отдельная плата с графическим процессором и спец-микрухами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

БК11М - палитра 16 цветов всего, достаточно будет простейшей резистивной матрицы вместо видео-ЦАП. По 2 бита на каждый основной цвет + синхроимпульсы --> 8 ног и 8 резисторов всего. А для расширенной версии (если дело дойдет до этого) - отдельная плата с графическим процессором и спец-микрухами.

 

Не выйдет, т.к. расширенная графика реализуется внутри основной ПЛИС (Циклон 3), это будет на мой вггляд несколько нелогично, выносить только две микросхемы Video-DAC + Converter DVI на отдельную плату.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) Расширенная графика - следующий этап.

2) DAC и DVI одновременно не нужны, поэтому логично иметь 3 отдельные небольшие видеоплаты: VGA, DVI, HDMI.

3) Обмен между ЦП и видеоплатой м/б последовательным, тк скорость относительно невысокая (максимум = 25 МИПС * 16 бит = 400Мбит/сек).

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) Расширенная графика - следующий этап.

2) DAC и DVI одновременно не нужны, поэтому логично иметь 3 отдельные небольшие видеоплаты: VGA, DVI, HDMI.

3) Обмен между ЦП и видеоплатой м/б последовательным, тк скорость относительно невысокая (максимум = 25 МИПС * 16 бит = 400Мбит/сек).

 

Поток передачи изображения в максимальном расширенном режиме 800*600 при цветности 3 байта составит не менее 100 мегабайт в секунду: 800*600*3байта*75Гц.

Изменено пользователем VVoland

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...