nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 16 Dec 2018 07:53



Reply to topic  [ 254 posts ]  Go to page Previous  1 ... 13, 14, 15, 16, 17
4-bit Processor 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Lavr wrote:
Мне стало казаться, что косвенный JMP полезнее CALL ADDR с одним возвратом...
Угу - похоже на то...

Да - CALL ADDR в 4-битнике делать не буду: присмотрелся внимательно - это требует
больше микросхем, чем 3 регистра с z-состоянием выхода. И самое неприятное в плане
нищебродства - нужны еще минимум как 2 шинных формирователя. Это портит всё нищебродство...

На том "железе", которое уже есть реализовал немного кривоватый косвенный JMP:
JMI SEG,ADR,REG - сегмент и старший ниббл РС указываются напрямую, а
младший ниббл РС берется из указанного регистра общего назначения.
Это дает возможность косвенно передать управление на 16 ячеек подряд.
Немного, но без аппаратного усложнения - хоть так... :-?

Ввел некий аналог рестарта по типу RST N: только он у меня передает управление на начало
одного из 16 сегментов по 256 байт.
Т.е. RST SEG = JMP SEG,00h,00h.

Думаю, надо ввести еще RST REGB - идея та же самая, но номер сегмента берется не
из команды, а из регистра В. Немного гибкости должно придать...


P.S. Вот еще задумался - нужна ли процессору инструкция HLT с выходом только по RESET ?

_________________
iLavr


03 Dec 2015 11:21
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Вот такая система команд у меня утряслась в итоге на имеющемся "железе":
Attachment:
4BITinstr96.gif
4BITinstr96.gif [ 28.71 KiB | Viewed 6168 times ]

Я отказался от CALL ADDR с одноранговым стеком - усложняет схему ~ на 5 корпусов.
Отказался от CMP - тоже зело усложняет схему.
Для нищебродского 4-битника стыдно быть сложным! :egeek:

Все команды работают, проверены на простеньких примерах. Теперь надо бы что-то спрограммировать
посерьезнее... :wink: Теннис ? :ebiggrin:

Аппаратно хочу пока заменить этот странный 155ИР26, которого у меня так и нет, на К155РУ2,
аналог которой - (К589РУ01 - 16 слов по 4 разряда) я таки сподобился приобрести...
Неприятно, что у них инверсный выход с открытым коллектором. :osad:

Ну и, по возможности, постараюсь максимально привести всю схему к базису: 155ЛА3, 155ЛН1.


P.S. Ну и сама схема на данный момент:

Image
Увеличить

_________________
iLavr


03 Dec 2015 16:52
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17231
Location: Colorado
Reply with quote
А куда столько диодов по низу?

_________________
:eugeek: https://twitter.com/Shaos1973


03 Dec 2015 22:09
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
А это же диодный ДЕШИФРАТОР КОДОВ ОПЕРАЦИЙ АЛУ! :lol:
Придуманный и проверенный мной уже давно - вот сейчас он
быстро и вписался в схему ЦПУ... :wink:

_________________
iLavr


04 Dec 2015 08:55
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17231
Location: Colorado
Reply with quote
Lavr wrote:
А это же диодный ДЕШИФРАТОР КОДОВ ОПЕРАЦИЙ АЛУ! :lol:
Придуманный и проверенный мной уже давно - вот сейчас он
быстро и вписался в схему ЦПУ... :wink:


понял

P.S. а есть схемка побольше, а то номеров не видать :roll:

_________________
:eugeek: https://twitter.com/Shaos1973


04 Dec 2015 09:25
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
...а есть схемка побольше, а то номеров не видать :roll:

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


P.S. Ну и прикольно же я имплементировал инструкцию HLT, аж самому смешно! :ebiggrin:
Без единого дополнительного вентиля!!! :o
Как в популярной в былые времена песенке:"Сделано всё без единого
выстрела!...
"


Я уже выше написал, что HLT приостанавливает микропрограммный счетчик,
ну или тактовый генератор приостанавливают, а для этого нужен
хотя бы RS-триггер, чтобы потом по RESET запустить всё заново
и "отпустить" счетчик или тактовый генератор...
А мне просто жуть как не хотелось ничего добавлять, но от
нереализованной инструкции CALL остались свободными 2 вывода
ПЗУ микрокоманд. И поскольку программный счетчик команд РС сделан
на реверсивных счетчиках К155ИЕ7, то я и завёл один из выводов
ПЗУ микрокоманд на вход счета на уменьшение...

Инструкция HLT теперь откатывает программный счетчик команд - РС
на 1 инструкцию назад, т.е. указывает снова на саму себя, а после
нее FETCH увеличивает на 1 РС, но снова выполняется HLT, который
откатывает РС назад... Так всё и топчется на адресе инструкции HLT!

Кстати, чисто на будущее, это куда лучше остановок микропрограммного
счетчика или тактового генератора, поскольку процессор не остановлен,
а работает, можно легко обслужить прерывание, если будет нужно, а
не только выходить из состояния HLT по RESET...

Но выглядит это реально смешно, когда смотришь на индикатор РС...

_________________
iLavr


04 Dec 2015 11:35
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Аппаратно хочу пока заменить этот странный 155ИР26, которого у меня так и нет, на К155РУ2,
аналог которой - (К589РУ01 - 16 слов по 4 разряда) я таки сподобился приобрести...

Приобрести оказалось хоть и не совсем просто, но проще, чем заменить... :econfused:
Аналог этих двухпортовых ОЗУ - 74LS189 - в моей версии "Протезуса" не поддерживается,
а модели, найденные в сети, изругали мой "Протезус", как непотребно старый... :-?

Пришлось делать модель для ОЗУ на 16 нибблов самому, и самый кратчайший путь оказался -
смоделировать на 4-х моих же собственных моделях 155ИР26, сделанных ранее. :ebiggrin:
Attachment:
74LS189_sch.gif
74LS189_sch.gif [ 14.77 KiB | Viewed 6127 times ]

Получилось не совсем точно К155РУ2 = К589РУ01 ~ 74LS189, но довольно
близко к оригиналу. Ну и главное - заработало нормально...

16 4-битных регистров общего назначения - всё же получше, чем 4.. хотя несколько изменилось
управление ими, но, надеюсь, это не ухудшит проект.

_________________
iLavr


05 Dec 2015 18:58
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Ну вот, в преддверии Нового Года более-менее безглючная Beta-версия 4-битного нищебродского
процессора из ТТЛ-хлама
и заработала довольно-таки устойчиво...
Вычистил все глюки и ошибки, которые нашел (но, наверняка, насовал новых на этом пути). 8)

Image
Увеличить

Схема электрическая принципиальная (большая).

Итоговая система команд выглядит следующим образом:

Image

Соглашусь, что она не бесспорна, но я в ней сегодня программировал.. без компиляторов...
в кодах... через WinHEX. И вот что у меня получилось:

Image

В общем-то вручную я написал примерно байт 200 кода и это меня подутомило... :-?
Поэтому в архиве проекта 4_Bit_CPU_ALU есть утилита от PIC - Bmp2asm.exe - транслирующая
BMP-картинку нужного размера LCD в массив кодов, ну и я дописал утилитку ASM2HEX.EXE,
превращающую этот массив кодов в бинарный код 4-bit CPU.

Под LCD от Nokia 3310 расположена игровая клавиатурка, дублирующая кнопки, подключенные
к порту ввода, но кнопки этой клавиатурки управляются кроме мыши еще и нажатием клавиш
на клавиатуре компьютера "1", "2", "3", "4". И это можно легко поменять, если надо...
Кнопки "2" и "3" сейчас не выполняют в программе определенных функций, хотя и опрашиваются.
То есть, я прицеливался написать какую-либо игрушку, но оценив скорость эмуляции LCD,
я отказался от этой бесперспективной затеи - медленно слишком... :osad:

Да и программировать в кодах - это, конечно, спорт своеобразный... но особого экстаза не вызывает... :wink:

_________________
iLavr


10 Dec 2015 11:55
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17231
Location: Colorado
Reply with quote
чото я припоминаю, что выспрашивал тут про детали того как работают комбинации битов в SKIP, но почему-то не могу найти, ну да ладно

обновления в прожэкте есть? а то я думаю может быть платку развести :roll:

_________________
:eugeek: https://twitter.com/Shaos1973


16 Nov 2017 05:12
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
чото я припоминаю, что выспрашивал тут про детали того как работают комбинации битов в SKIP, но почему-то не могу найти

В таблице команд же указано побитно, и на схеме это очевидно.

Shaos wrote:
обновления в прожэкте есть? а то я думаю может быть платку развести :roll:
А я прицеливаюсь как бы по максимуму упихать это в ПЛИС...
Платку лучше пока не разводи, мне не очень нравится возврат из CALL по фиксированным адресам.
Надо будет обдумать, как бы это смягчить малой кровью...

А так получается, что даже ассемблера под эти нищебродские особенности железки - нет. :osad:

_________________
iLavr


16 Nov 2017 05:57
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17231
Location: Colorado
Reply with quote
Lavr wrote:
А так получается, что даже ассемблера под эти нищебродские особенности железки - нет. :osad:

Да я вроде писал табличку для своего RASM под твой процык - надо поискать

_________________
:eugeek: https://twitter.com/Shaos1973


16 Nov 2017 06:27
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos... и у меня есть предложение - не отвлекаться сейчас
на эту 4-битную затею минувших дней, а сосредоточиться и помочь haqreu с его троичной железкой.
Всё ж человек рискнул и вложил в это дело деньги - чем и меня подтолкнул потратить время на
расчеты в EWB и Proteus, и у нас всё же есть какая-никакая команда заинтересованных лиц:
ты, я, сам haqreu и AlexanderZh, которые могут что-то сделать.

Может быть подтолкнём троичный проект, ибо хочется увидеть что-то живое до твоей пенсии? :wink:
А мой этот 4-битник можно взять за прототип, ибо и Nibbler, и MP-4 Simplest 4 Bit TTL CPU
на него очень похожи, следовательно, основные идеи рабочие, и мы можем использовать их для
создания троичного процессора.

_________________
iLavr


16 Nov 2017 06:30
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Да я вроде писал табличку для своего RASM под твой процык - надо поискать

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

Я в первый раз делал это всё вручную в WinHEX - удовольствие ниже среднего. :-?

_________________
iLavr


16 Nov 2017 06:35
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17231
Location: Colorado
Reply with quote
Троичная железяка - это да, надо :)

_________________
:eugeek: https://twitter.com/Shaos1973


16 Nov 2017 10:36
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 254 posts ]  Go to page Previous  1 ... 13, 14, 15, 16, 17

Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.