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

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

Да что ж Вы так уцепились за пин-2-пин совместимость? Чтобы ее получить, придется минимум заказывать свою корпусировку кристалла FPGA. Сколько это денег потянет - боюсь предположить.

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


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

pin-2-pin - нет, тк под этим подразумевается 100% совместимость, а это очень геморройно, и мне совсем неинтересно. Заинтересует только проект, итогом которого будет серийный выпуск дешевой платы (starter kit) с нормальной FPGA.

 

*.docx - 2007 офис не держу, так что документ не читается

 

Например, starterkit.ru - там плата со Spartan-6 стоит 2500руб.

 

Перезалил файл в .doc -формате.

 

Ну т.е. то что Вы предлагаете, ничем принципиально от http://code.google.com/p/bk0010/ отличаться не будет?

 

Да что ж Вы так уцепились за пин-2-пин совместимость? Чтобы ее получить, придется минимум заказывать свою корпусировку кристалла FPGA. Сколько это денег потянет - боюсь предположить.

 

Может я чего-то не понимаю, но разве для pin-2-pin совместимости важен формат корпуса и геометрическое расположение выводов?

Не обязательно чтобы он прикладывался в те же дырки, что и оригинальный ВМ1, но хорошо чтобы мог подпаиваться вместо него при необходимости (например через переходник). Это не значит, что я или кто-то еще обязательно будем его заталкивать в старую БК по 5 раз на дню. Важно совместимость соблюсти. Пусть не будет идеально равен ВМ1 по растактовке, но чтобы 99.9% софта работало без заметных на глаз отклонений - я не имею ввиду скорость исполнения сейчас.

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


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

Ну т.е. то что Вы предлагаете, ничем принципиально от http://code.google.com/p/bk0010/ отличаться не будет?

По идее - да, наверно, только вместо использования DE1 (и тп) разработать именно универсальный конструктор(набор плат), чтобы стоимость конечной системы менялась от 2000 до 20000 руб (к примеру). Главное от использования системы команд PDP-11 - не 100% совместимость со всем старым софтом, а возможность использования готовых средств разработки - ОС, компиляторы, и тп - для разработки новых программ.

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

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


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

Пусть не будет идеально равен ВМ1 по растактовке, но чтобы 99.9% софта работало без заметных на глаз отклонений...

... и для этого нам надо, чтобы он молотил на частоте хотя бы 100МГц, а 90% времени он будет отдыхать

...я не имею ввиду скорость исполнения сейчас.

а что, предполагается, что скорость ВМ1 завтра изменится?

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


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

А вы сядьте и детально разберитесь с этой архитектурой сколько у вас это займет времени.

Чтобы сделать копию нужно детально разобрать оригинал.

 

Значит расклад такой.

1. Поскольку система команд не оптимизирована для конвейеров и ПЛИС, то Вам нужно решить, как будет работать машина. Либо команды будут выполняться за разное время, либо все команды будут выполняться за одинаковое время, но определяемое самой долго-выполняемой командой. И при этом надо учесть, что некоторые команды "не любят" выполняться одна за другой в смежных синхротактах. Например PUSH и POP, поскольку память большого объема есть только синхронная. И сначала защелкивается адрес, а на следующем такте - данные. Соответсвенно либо время выполнения программы будет по времени зависеть от команд, либо машина будет 90% времени отдыхать...

2. Вам надо нарисовать подробную блок-схему прохождения данных. В ПЛИС нет трехстабильных шин, а есть только мультиплексоры. Вот и нарисуйте то кол-во сегментов шин данных и мультиплексоров, которое потребуется для машины. Посмотрите мой курс "микроконтроллер своими руками", там примерно все разрисовано. А количество и разрядность мультиплексоров позволит понять, на какой частоте они могут быть реализованы без конвейеров или с конвейерами. А это поможет определиться с временем исполнения команды...

2а. И надо нарисовать, сколько внешних шин будет у процессора. Скажем шина для ОЗУ и отдельно шина для УВВ. А на одну шину их вешать при частотах больше, чем 20 Мгц - нельзя... Скажем, сравните с PCI...

3. Далее надо будет сделать под сотню коротких тестов, чтобы проверить реализацию модели процессора. Соотв. надо будет сделать кросс-ассемблер и сплиттер, чтобы подгружать дамп памяти в симуляцию. И к этому необходимы описания тестов, чтобы тот, кто займется симуляцией не напорол в программах... Итак, сначала пересылки регистров, потом логика и арифметика, потом обращение к памяти и УВВ, потом прерывания и вложенные прерывания... Кстати, в это время понадобится программный кросс-симулятор. Желательно, чтобы он показывал и аппаратную начинку...

4. Потом надо решить, как будет делаться отладка машины. И поскольку ни о каких внутрисхемных эмуляторах речь не идет, то надо решить то, как это будет сделано. Варианты эти я тоже описал, здесь повторять не буду. Т. е. либо делаем только программный монитор-отладчик в теневом ПЗУ, либо делаем к нему еще и аппаратную поддержку. Либо ставим внешний микроконтроллер за 0,5 долл. и к нему делаем программу-отладчик в РС. Соответственно это все надо внести в ТЗ "до начала разработки"...

5. Потом надо написать загрузчик, чтобы с СОМ-порта принимать байты и заносить их в память команд... И соотв. надо сделать аппаратную поддержку на переключение страниц памяти, чтобы не компилить проект каждый раз при отладке... И это надо внести тоже...

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

6. Вместо дисков надо поставить CD-флэшки. И соответственно, перекроить ТЗ на то, чтобы поддерживалась работа с 2-мя флэшками. Отладить софт по заливке данных во флэшь. Контроллер дисков либо сделать программным, соотв. с размещением этой программы в дополнительной памяти, либо аппаратно-программным. Но в любом случае, это надо превратить в документ. А копировать пин-в-пин тут не имеет смысла...

7. Потом поправить операционку под новый контроллер флэшек. Потом вставить их в считыватель СД-карт в РС и если надо, то сделать конвертор форматов данных, чтобы форматирование и перезапись данныз можно было делать на РС...

8. Сделать-достать тесты проверки аппаратной части: ПЛИС+память+флэшь. Иначе разработку не проверить. А аппаратные редкие сбои будут иметь место...

 

 

Так что не все так легко, чтобв просто "передрать и все".... Ведь если на "Запорожец" поставить мотор от BMW он долго и быстро ездить не будет.

 

 

про переходники, про пин-в-пин - забыть и никогда не писать!!!

И для начала ориентироваться на готовый стартовый набор с внешней памятью или надо снаружи напаять разъем для SODIM. И это все тоже надо заранее "переварить"...

 

Вот, для начала, чтобы убрать из конференции лишний треп. А те, кто пишут, что мол, ерунда... Что только скопировать чипы и развести плату, те еще просто сами с процессорами реально дела никогда не имели...

 

На этом пока я заканчиваю, ибо и дальше еще есть что описывать, а времени пока нет. А будут вопросы - пишите!

 

 

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


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

В инете пишут: "The simulated PDP-11 on a modern 3 GHz PC is about as fast as the current FPGA implementation on a Spartan-6. However, there is certainly room for improvement on the FPGA side..."

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


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

В инете пишут: "The simulated PDP-11 on a modern 3 GHz PC is about as fast as the current FPGA implementation on a Spartan-6. However, there is certainly room for improvement on the FPGA side..."

 

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

 

Эмуляция чисто системы команд - это новая машина, для которой софт придется либо адаптировать, либо писать с нуля. Это никто делать не будет.

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


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

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

Фраза взята с http://opencores.org/project,w11

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

 

Т.е. ни БКшные программы, ни какие либо другие полной совместимости иметь на такой машине не будут?

Нормально написанные программы (те с учетом переносимости) - пойдут.

 

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

Просто муторная работа, вряд-ли кто-то будет делать.

 

Эмуляция чисто системы команд - это новая машина, для которой софт придется либо адаптировать, либо писать с нуля. Это никто делать не будет.

Не смотрел, как конкретно сделано в уже реализованных проектах, думаю - одна часть системы эмулируется, для другой - адаптируется ОС.

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

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


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

Не смотрел, как конкретно сделано в уже реализованных проектах, думаю - одна часть системы эмулируется, для другой - адаптируется ОС.

 

Боюсь что для БК понятие ОС слишком далеко от таких монстров как Windows, где программа вообще ничего не знает о железе.

Т.е. адаптирование БКщной ОС к такой машине не будет таким значимым фактором для совместимости работающей из под нее программ.

 

Оставим пока процессор. 1801ВП1-037, 014, 128 заэмулировать в ПЛИС сможете? Для них же проще добиться полной программной совместимости? Но опять же, эмулировать нужно так, чтобы замена этих микросхем на новой плате на ПЛИС не сделала БК другим компьютером. Все программы должны работать как на оригинале.

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

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


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

Чегой-то мне кажется, что эмуляцию БКшного проца можно сделать в двух режимах на одной и той же плисине. Самый быстрый режим - TURBO, будет на максимальной скорости с неточным соблюдением растактовки и с несколько сот кратным превышением скорости оригинала. Если в проге будут потактово формироваться задержки, то конечно прога будет вести себя не так, как надо. Но на многих прогах это будет работать нормально. И второй режим, когда выполнение каждой команды проца будет стопариться внутреннним таймером (к каждой команде будет привязано значение) и тогда все программы, работающие на старом тормозном 1801ВМх будут исполняться как в оригинале. Режимы можно перелючать чуть ли не джампером.

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


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

Чегой-то мне кажется, что эмуляцию БКшного проца можно сделать в двух режимах на одной и той же плисине. Самый быстрый режим - TURBO, будет на максимальной скорости с неточным соблюдением растактовки и с несколько сот кратным превышением скорости оригинала. Если в проге будут потактово формироваться задержки, то конечно прога будет вести себя не так, как надо. Но на многих прогах это будет работать нормально. И второй режим, когда выполнение каждой команды проца будет стопариться внутреннним таймером (к каждой команде будет привязано значение) и тогда все программы, работающие на старом тормозном 1801ВМх будут исполняться как в оригинале. Режимы можно перелючать чуть ли не джампером.

 

Осталось только сделать :). Желающих пока нет. Насколько сложно на новой плате предусмотреть взаимозаменяемость оригинала 1801ВМ1 и чипа-эмулятора? Я не про геометрию, а про схемотехнику.

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


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

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

 

Дело это не для среднестатистического студня по уровню. А для более продвинутых разработчиков судя по отзывам интереса в этой работе нет. Так что либо стимулируйте бОльшими деньгами, либо делайте сами :)

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


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

Осталось только сделать :). Желающих пока нет. Насколько сложно на новой плате предусмотреть взаимозаменяемость оригинала 1801ВМ1 и чипа-эмулятора? Я не про геометрию, а про схемотехнику.

 

Если по схемотехнике, то нужно как минимум организовать преобразование уровней современной ПЛИС (+3,3В или +2,5В) в +5В. Это может и не очень сложно, но замусорит схему прилично.

Сейчас можно в ПЛИСине иметь вообще всю логику и всю память ПЗУ-ОЗУ, наружу только порты выставить. Этакий SoC. В таком случае для поддержки внешнего процессора придется вывести наружу все процессорные сигналы и оснастить их преобразователями.

 

Насчет ВП1-xxx - в теории можно попробовать обратиться к их изготовителю, приобрести проекты для БМК этих контроллеров и перевести их в ПЛИС. Получится самый что ни на есть "теплый ламповый звук" :)

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


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

http://opencores.org/project,w11,implementation

Терминология мне непонятна, мож кто пояснит, как периферия эмулируется? Как сам понял, собственно периферия аппаратно не эмулируется, просто регистры передаются на сторону, и далее все эмулируется программно.

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


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

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

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

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

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

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

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

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

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

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