Доработки схемы Орион 128

FizikS

Легенда
Пользователь
Сообщения
11
Счётчик реакций
5
Очки
230
Всем привет!
В этой теме буду выкладывать свои доработки схемы компьютера Орион. Кое-какие результаты уже достигнуты, но уже трудно что-либо вспомнить по последовательности доработок. Поэтому решил постить здесь все с нуля, восстанавливая доработки в хронологическом порядке (думаю, будет полезно в образовательных целях).

Что хочется получить на выходе:
** переработать синхрогенератор для работы с VGA дисплеем без дополнительных конвертеров, сохранив возможность работы с бытовым телевизором;
** интегрировать схему Турбо 200%;
** использовать статическую память на 16 бит - исключительно ради уменьшения печатной платы и упрощения разводки;
** разработать печатную плату для модернизации собранного компьютера.

В качестве исходного варианта взял схему с этого форума: viewtopic.php?t=23931

Первая доработка схемы - замена всех микросхем 155-й серии (SN74xx) на 1533 серию (SN74ALSxx).
Оставил только счетчики 155ИЕ5 (7493), 155ТМ7 (7475), 155ИР13 (74198). Замены производил по одной - двум микросхемам, контролируя корректность симуляции схемы. Такой подход позволил быстро находить проблемные места при замене микросхем. Кое где пришлось добавлять пару инверторов для задержки сигналов. Это цепи 70, 87, 61 и сигнал с выхода элемента DD16.A (3 нога)
Для проверки симуляции пришлось писать простенькую программу (написана очень коряво, но мне хватает), которая рисует шахматное поле из квадратов 8*8 точек на экране. После запуска она копирует себя из ПЗУ в ОЗУ и работает уже в ОЗУ. Это позволяет проверить работу ОЗУ, причем значительно быстрее, чем ждать запуска стандартного монитора.

Проект в архиве. Версия Proteus 8.17 SP5
Модели микросхем для симуляции можно взять здесь: http://www.nedopc.org/forum/viewtopic.php?t=24264

ORION_ALS1.PNG
 

Вложения

меня интересуют модели ГФ24, Z80A и ВМ80А. можете поделиться?
 
Небольшая доработка схемы ПК Орион.
Изменено:
Полностью переработан синхрогенератор.
- на горизонтальную развертку установлены синхронные счетчики 74ALS161
- на вертикальную развертку установлен счетчик 74HC4040
- добавлен сдвиг растра по вертикали (DSW1 на схеме). Верхний включенный дип переключатель соответствует наибольшему смещению растра вниз
- реализована поддержка 3-х разрешений экрана с настройками. 384*256, 480*256, 512*256. Возможна некорректная симуляция отображения картинки из-за несовершенной модели RGBIOUT.DLL. На дешифраторах U5, U6 реализованы формирователи сдвига сигналов гашения и строчного синхроимпульса. Начало импульса гашения выбирается переключением входов 6,5,4,3 мультиплексора U40 к выходам дешифраторов. Синхроимпульс двигается переключением диодов D13,D14; D15,D16; D17,D18.
- упрощена схема управления регистрами сдвига 74198, формирующими изображение
- заменены прозрачные летчи 74LS373 на защелки 74ALS574
- изменено управление буфером шины данных процессора
- арбитр памяти и эмуляторы сигналов i8080 (на инверторах) пришлось оставить "медленными" серии 74xx.

Orion_ALS_161.PNG
 

Вложения

Можно скачать проект в архиве и пользоваться им.
Это пустой проект с настроенным процессором z80.

Сделать проект с нуля:
1. Создать каталог с проектом
2. Скопировать в него файл x80.dll
3. Создать новый проект Proteus.
4. Добавить процессор z80 (в поле keywords вписать z80, выбрать процессор). Он немного отличается по внешнему виду от того, что в проекте Орион.
5. Вынести процессор в рабочее поле. Открыть свойства процессора, поставить галку на чекбокс "Edit all propertues as text", вписать текст, как на скриншоте в посте по ссылке, или взять отсюда:
Код:
{PACKAGE=DIL40}
{PRIMITIVE=DIGITAL,Z80CPU}
{MODDLL=x80.DLL}
{ITFMOD=CMOS}
{CPUDHL=30n}
{CPUDLH=30n}
6. Подтвердить ввод [Ok]

Можно пользоваться.

Если нужен проц i8080 или i8085, то все печальнее: нужно вручную нарисовать графическую модель процессора и повторить магические действия, описанные выше.
Если лень, то на сайте Nedopc ищем проекты со схемами РК-86, Специалист. Скачиваем проект, открываем его, удаляем все микросхемы кроме процессора, правим если нужно, свойства процессора и пересохраняем его как пустой проект. Я так тоже делал.
 

Вложения

  • z80.zip
    z80.zip
    57.7 КБ · Просмотры: 0
у меня версия протеуса 9.1 SP2 и Z80 в него уже встроен.
но хотелось бы наш, родной ВМ80 :)
но выясняется. что нужно делать кучу телодвижений.
ок
но остаётся вопрос: вот те проекты, что с уже настроенными микропроцессорами, они же когда-то были без микропроцессоров. как их туда внедрили. ну да ладно. это уже вопрос второго порядка.
есть "хак", значит будем пользоваться им.
 
В Протеусе модель Z80 не симулируется. Возможность симуляции Z80, 8080, 8085 появляется после добавления файла x80.dll к графической модели процессора. Все проекты именно так и делались. Есть проблема с "хаком"- он может не сработать. Тогда нужно будет "прикручивать" файл x80.dll к графической модели процессора заново. Мне пришлось так поступать с моделями дисплеев ( RGBIOUT.DLL ) в новых версиях Протеуса.
 
Еще одна доработка схемы: замена 2-х восьмибитных микросхем SRAM одной 16-ти битной. Получаем в одной микросхеме ОЗУ 512 кБт памяти и цвет.
Симуляция проходит нормально.
Необходимо установить модели для Proteus отсюда: http://www.nedopc.org/forum/viewtopic.php?t=24264

Orion_SRAM_16_bit.PNG
 

Вложения

Пересмотрел еще раз даташит на 16 битную память, и понял, что схему включения можно немного упростить. Оказалось, что при активном сигнале /OE можно производить запись в микросхему.
Измененная схема во вложении.
Orion_SRAM_16_bit1.PNG
 

Вложения

Очередная доработка схемы Орион. Теперь начинаем упрощать схему, используя микросхемы программируемой логики. Я выбрал для этих целей GAL22V10.
Первая доработка: меняем управление статическим ОЗУ. При применении GAL больше не нужно задерживать сигнал, формируемый элементом DD16.A.
Легко заметить, что заменяемая часть схемы представляет собой узел комбинационной логики, который легко описывается логическими уравнениями, по которым несложно "состряпать" прошивку для GAL-ки.
Код:
Name       GAL1.pld;
Partno     ;
Date       ;
Revision   ;
Designer   ;
Company    ;
Assembly   ;
Location   ;
Device     P22V10;



/* *************** INPUT PINS *********************/
PIN  2 = N87;
PIN  3 = N73;
PIN  4 = N43;
PIN  5 = N118;
PIN  6 = N83;
PIN  7 = BA12;
PIN  8 = BA11;
PIN  9 = BA10;
PIN 10 = BA13;
PIN 11 = BA14;
PIN 13 = BA15;   
/* *************** OUTPUT PINS *********************/
PIN 23 = RAM_WE; 
PIN 21 = N94 ;  
PIN 20 = N95; 
PIN 19 = RAM_LB; 
PIN 18 = RAM_UB; 
PIN 17 = N92; 
PIN 16 = N93;
PIN 15 = N112;
PIN 14 = NAF4;
/* ********* */
NAF  = BA12 & BA13 & BA14 & BA15; /* select addr. 0FxxxH */
N112 = !(BA11 & NAF # N83);
A    = !(!NAF & N118);
C    = !(N73 & N43);
E    = N87;
D    = N87;
NAF4 = !(BA10 & NAF);
F    = N112 & NAF4;

/* --- 74155--*/
E1 = !E & F;
E2 = !D & !C;
N94 = !(E1 & !A);
N95 = !(E1 &  A);
N92 = !(E2 & !A);
N93 = !(E2 &  A);
/* END OF 74155 */

RAM_WE =   N92 & N93;
RAM_LB = !N92;
RAM_UB = !N93;

GAL0.png
GAL1.PNG
 

Вложения

а есть что-то более удобное и улучшенное, чем этот древний WinCUPL ?
я его скачал и он постоянно какие-то окна-сохранения предлагает, хотя файл сохранён 100500 раз. по клику на *.PLD в редакторе не открывается :rolleyes:
что есть посовременнее?
 
Я пользуюсь WinCUPL II (вышла в 2026 г.): http://www.nedopc.org/forum/viewtopic.php?t=24041
Работает корректно даже в линуксе.

Для комбинационных схем можно воспользоваться программой Digital: https://github.com/hneemann/Digital?ysclid=mthrrtym6r819628197
Она позволяет сделать прошивку для GAL на основе схемы, таблицы истинности. Я ее даже пытался русифицировать(меню уже на русском практически полностью, и частично справка)

Есть еще и другие программы, но они под виндовс 98.
Есть современная реинкарнация GALASM, работает в актуальных версиях виндовс. Я ее не пробовал, т.к. распространяется в исходниках.
 
WinCUPL II супер! спасибо!
а вот Digital у меня не запускается. пишет ошибку что Digital.jar не найден.
в архиве с гитхаба его нет :(

а всё, нашёл
 
Последний раз редактировалось:
хорошая программа, жаль только, что нельзя горячие клавиши назначать
получается "мышиная возня"
жмёшь F9 - анализ
схема ОК
а потом нужно мышей двигать по менюхам чтобы файл .jed получить 🧐
не лучше ли было бы предусмотреть и для этой настройки горячую клавишу либо сделать чтобы на панели под меню получалась спец.кнопка для нужного чипа?
ну, чтобы не делать лишних телодвижений!
странно, что вот люди вроде хорошие проги пишут, а про юзабилити как-то не заботятся 🤔
ну да ладно. имеем то, что имеем.
как говорится, дарёному коню....
 
Последний раз редактировалось:
Назад
Вверх