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

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

Задача решается на любой отладочной плате для ПЛИС с необходимыми интерфейсами и встраиваемом процессоре. Совместимость программ обеспечивается на уровне бинарной трансляции кода во время загрузки.

Хотя, лучшим решением будет плата миниПК с программным симулятором.

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


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

Совместимость программ обеспечивается на уровне бинарной трансляции кода во время загрузки.

Ага, оттранслируйте во время загрузки MOV -(PC),-(PC)

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


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

Ага, оттранслируйте во время загрузки MOV -(PC),-(PC)

Я же не говорил, что это просто :)

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


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

Команда сдвиг влево эквивалентна команде ADD регистра с самим собой.

точно, тормознул :)

 

Имхо, не получится, разве только 64К таблица переходов на подпрограммы. Архитектура не строго ортогональная, выполнение команд зависит от операндов.

немного вернусь к проблеме дешифрации... смотрим на таблицу кодов команд:

post-37401-1324632185_thumb.jpg

как видим, система команд неплохо структурируется - если старший байт команды нулевой, то по младшему байту (со смещением на 1к) вытаскиваем из памяти адрес подпрограммы обработки команды. если он не нулевой, то по старшим 10 разрядам вытаскиваем из памяти адрес подпрограммы, в которой уже анализируем младшие разряды. итого, таблица указателей на подпрограммы займет 1к+21 слова

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

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


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

2 ALL

 

Вспомните ветку "свои процессоры" - главной проблемой является софт, а не железо, отсюда и стремления клонировать конкретную реализацию БК, а не создать совместимую с PDP-11. Начинать надо с софта: собрать, выделить необходимый минимум, изучитть переносимость, и оформить это в ПЕРВЫХ пунктах ТЗ. А систему команд и прочие мелочи - мелким шрифтом на последней странице.

 

XC6SLX9 (64КБайт встроенной памяти) стоит $15 на avnet.com - зачем программно эмулировать, если можно железно? Сначала надо набрать интересное и легко переносимое ПО, найти легко адаптируемую ОС, все остальное - потом.

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


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

немного вернусь к проблеме дешифрации... смотрим на таблицу кодов команд:

А можно поинтересоваться, в чём будет разница такой вот эмуляции PDP-11 на MSP430 и на любой другой платформе?

И какое вообще значение при этом имеет похожесть системы команд и регистров?

 

XC6SLX9 (64КБайт встроенной памяти) стоит $15 на avnet.com - зачем программно эмулировать, если можно железно?

Вроде уже перетёрли эту тему. Можно и так, и так. Кому как больше нравится. Но лично я бы не отказался от включения какого-нить старенького компа типа Пня 4 или Атлона и обнаружения вместо винды - игрух БуКашки :) Зачем клепать железо, когда старого рабочего хлама бесплатно раздают.

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

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


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

А можно поинтересоваться, в чём будет разница такой вот эмуляции PDP-11 на MSP430 и на любой другой платформе?

да нет особой разницы... точнее она есть, но не принципиальная

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


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

да нет особой разницы... точнее она есть, но не принципиальная

Тогда почему выбор пал на самый тормознутый (а MSP430 так и есть) проц со среднетипичным размером рамы 2-4 КБ ? :)

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


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

Зачем клепать железо, когда старого рабочего хлама бесплатно раздают.

Управляющий комп, работающий в реальном времени со сигналами в десятки-сотни МГц. Ни МК, ни ПК, ни БК такое не под силу. А тут - на одной микросхеме за $15.

 

Вот образец игрушки для "компа на FPGA":

http://electronix.ru/forum/index.php?showt...p;#entry1008988

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


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

Управляющий комп, работающий в реальном времени со сигналами в десятки-сотни МГц.

Вся прога с игрушкой БК полностью залезет в кэш того же Атлона :) FSB при этом будет 200 мгц.

 

А вообще, 15 баксами не обойтись. Нужны как минимум видеокарта и флопик. Всё это уже есть в писюхе. Плюс ещё клава, мышь (хотя зечем?) и прочие прелести.

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


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

Кто-то уже подобное делал :blink: ? Поставленная топик-стартером задача выглядит скорее как утопия (задание для ученика к ДП или КР), и вряд ли будет кем-то реализована (мнение может быть ошибочным, если только сам автор не сделает все сам :rolleyes:) Так-как скорее всего, только он один имеет представление что, как и для чего... Т.е. сделать получиться только то, что осознал и знаешь как. А проблема как известно, в мелочах :rolleyes:

Вот к примеру проект ZX-Spectrum 48K на VHDL от Ewgeny7 для новичков. Процессор z80 (T80) может работать на частоте до 120МГц в FPGA СycloneIII и использует 2500LE, т.е. если взять подходящее семейство MAX то можно реализовать его в CPLD и т.д. т.п... Думаю для начала будет достаточно...

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

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


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

автору :

я не смог прошлым постом сформулировать трудность, попытаюсь еще раз ::

 

на ПЛИС реализации процессора трудно добиться 100% соответствия,

то есть какие-то программы пойдут, а какие-то нет

и иногда доделать для работы следующей программы будет также трудно, как и запустить первую (ну например если потребуется изменить такты исполнения)

в том примере, на который ссылаетесь bk0010-fpga в DE1 я так понял, что некотрые программы не пошли и работа стала

я собственно об этом и писал

 

а не в том, чтобы сделать винтажное железо или же поставить стартер кит

 

--------------------

 

это при любом подходе будет, но если делать софтверный эмулятор (а не плисовый) то вносить изменения проще, я как игрок на обоих струментах уверяю

 

--------------------

 

почему АРМ - ну с точки зрения набора-конструктора - какая разница, что там стоит АРМ или ПЛИС? чип с ножками, если что - потрите шкуркой крышечку и никто вообще не догадается

на всякий случай намекну, что под АРМом в этом случае подразумевается чип с процессором, ПЗУ, ОЗУ, какой-то периферией что-то типа

 

http://www.nxp.com/products/microcontrolle...2917_19_01.html

http://www.st.com/internet/mcu/product/252144.jsp

 

то есть сравнивая с ПЛИС тут можно вообще сингл чип солюшин получить (а на плис типа спартана еще нужно откуда-то прошивку прогрузить, ПЗУ в ней нету)

 

отличие от х86 эмуляторов - то что можно таких ARM-ов внутрь корпуса БК напихать несколько штук, а x86 в малогабаритном сингл-чип исполнении пока человечество не придумало (по крайней мере мне неизвестно)

 

ну и цена ARM-а поменьше за штучку чем у ПЛИС

 

опять же - + (имхо гиганский) проработтаность эмуляторов - наверняка сумеете найти исходные коды на С (или чем либо еще) и скомпилировать под АРМ

огромный плюс этих кодов - они уже проверены и какие-то программы на них уже заработали (в отличие от ПЛИС реализации)

 

----------------

 

MSP430 не годится, имхо, у него проще система команд - ну то есть что-то типа 27 против ~60 у 1801

там с регистрами мухлеж - типа константы вместо 0 регистра (мипс/спарк идея)

ну и производительность у него меньше, то есть сделать на нем вряд ли

 

=============================

 

то есть я бы реализовывал идею так - 5в толерантная древняя CPLD, чисто для согласования напряжений и возможно для выправления времянки (про 1801 не скажу, но в те времена очень, очень любили многофазные тактовые генераторы) и более-менее современный АРМ в сингл чип исполнении

 

это можно запаять на маленькой платке, залить эпоксидкой и получить реинкаронацию 1801 р2р совместимую, потом так же развлекаться и для остальных контроллеров

оригинальные времена там очень скромные, то есть потребность в ПЛИС аргументировать надо очень сильно

 

 

 

 

 

Сергей Вакуленко серьезный чел (кой какой код я брал у него и мне это помогло), ну и хобист программирования - напишите ему, может заинтересуете

 

он же

http://vak.ru/doku.php/proj

 

UPD: опа на нашел у него линк на себя, приятно блин :))))

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


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

MSP430 не годится, имхо, у него проще система команд - ну то есть что-то типа 27 против ~60 у 1801

это Вы невнимательно смотрели, у него 27 основных команд и 24 эмулируемых. т.е. допустим NOPа нет, но можно же сделать копирование регистра самого в себя (MOV R3,R3) - чем не NOP?

у него нет так же специфических команд типа RESET - так это сброс внешних устройств и переход на инициализацию, т.е. нужно дернуть ножкой и перейти на начало.

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


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

это Вы невнимательно смотрели, у него 27 основных команд и 24 эмулируемых. т.е. допустим NOPа нет, но можно же сделать копирование регистра самого в себя (MOV R3,R3) - чем не NOP?

у него нет так же специфических команд типа RESET - так это сброс внешних устройств и переход на инициализацию, т.е. нужно дернуть ножкой и перейти на начало.

 

невнимательно и давно,

но помню, что там регистры по другому и их больше (ну то есть нет CG), и с командами - умножения в БКшном 1801 вроде не было, но помоему там полностью ортогональны методы адресации, а в 430 есть матрица запретов

 

то есть исполнять код непосредственно нельзя, соответственно нужно писать какую-то виртуальную машину - какие тогда плюсы при мендленном 430?

вобщем я сомневаюсь

 

upd: ну и писали вроде, что машинные коды у них разные - в 1801 вроде бы в октетах первые 2 цифры код, потом метод адресации и регистр первый операнд и второй, то есть можно читать коды как ассемблер, для MSP я что-то такого не помню

 

 

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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