Сначала делаем state машину с кучей действий для каждого state, а потом выдавливаем это всё в параллельное выполнения.
И хрен кто разберёт, КАК ЭТО все РАБОТАЕТ???? :D
Вид для печати
Сначала делаем state машину с кучей действий для каждого state, а потом выдавливаем это всё в параллельное выполнения.
И хрен кто разберёт, КАК ЭТО все РАБОТАЕТ???? :D
После длительной неработоспособности проца (где то недели три, как я его "разобрал" - попытка реализовать протокол, похожий на протокол обмена по МПИ) сегодня прошёл первый запуск с работоспособностью пульта :)
Теперь посмотрю, что будет, если менять тактовую проца и ПЗУ пульта - одна из целей - добиться работоспособности на любой (ну в пределах работы внутренности - вряд ли заведу проц или ПЗУ на гигагерце) комбинации скоростей. Сейчас у меня на выбор 25, 50, 100, 200 и 400 МГц
Попытка повысить клок проца с 25 до 50 МГц прошла успешно.
Попытка повысить скорость памяти с 50 до 100 МГц - сбой внутреннего обработчика состояний. Так же проц перестал работать на клоке 1 Гц. Буду разбираться, но позже.
Надо же. Проц и на 100 МГц завёлся :) Раньше максимум на 50-ти :)
Сколько получалось у автора - не совсем понятно, там клок от памяти шёл.
Но пока у меня медленно получается по скорострельности в инструкция (около трех миллионов) - надо дорабатывать работу памяти (что бы можно было повысить скорость) и процессора с шиной
Пользуюсь тем, что синтез идёт приличное время (сейчас, видимо из за top элемента - минут 35, буду с этим разбираться, но потом) - иногда вношу изменения даже с работы :)
Сейчас отрабатываю работу с BRAM памятью пословно и побайтно (собственно, само по себе это проблем не вызывает) плюс смотрю - удастся ли прикрутить её инициализацию. Собственно, если синтез ROM - то вопросов вообще нет - PDP не читает с шины байты, а вот если RAM...
Значительно чаще синтез стал проходить успешно, но, видимо, где то возросли задержки и пришлось снизить скорость до 50 МГц. Пошёл второй подход к Timing Analyzer - буду потихоньку учиться добавлять временные констрейнты.
Внутри синтезированного ядра решил отказаться от подхода QBUS - слишком много тратится клоков на отработку протокола, пусть и без фаз - выдача адреса-выдача данных - учитывая, что шины адреса и данных - раздельные. Но надо будет реализовать модуль работы с QBUS, подключенной снаружи - 36 контактов на гребёнке вроде должно хватить для подключения внешний плат. Но это - не ближайшее будущее :)
Время только катастрофически не хватает...
Как это не странно, но Квартус не отказался инициализировать RAM массив из двух-байтовых слов (слова описаны как двухбайтовый массив, то есть получаем двухмерный массив) mif файлом, в котором использовались 16-ти битные слова, не байты (то есть, например 012737, а не 025, 337). Одной проблемой меньше :)
- - - Добавлено - - -
В общем, делать RAM и загонять туда тестовую (или не тестовую) прошивку, полученную из листинга, теперь нет особых проблем. А когда допилю скрипт - и вообще mif файл будет делаться мухой.
Немного ускорил работа процессора с шиной (вместо четырёх тактов стало три), к чему стремиться - ещё есть. Пока на этом остановлюсь, займусь восстановлением работоспобности модуля видеотерминала. Времени, как обычно, кот наплакал, так что - урывками и пользуюсь тем, что синтез идёт в лучшем случае минут 15, если не свезёт (как с попыткой сделать два такта) - то и под час - так что в параллель с основной работой. Чего сломал в модуле VT, пока не понял, так что, скорее всего начну с доделки скрипта генерации mif из листинга - что бы проще было загонять тестовый код в память. Ну и может сигналТуп что подскажет..
Оффтоп как всегда
не ПДП-11 конечно, но где то рядом. Значительнее ранее
Увы, удалить попозже не представляеЦЦа возможным. лесники запретили .
https://www.youtube.com/watch?v=iymD9eysqXo
[свернуть]
Hunta, а в Вашей переработанной реализации уже сделана внешняя шина или планируется к реализации?