nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 29 Mar 2024 07:11



Reply to topic  [ 114 posts ]  Go to page Previous  1 ... 4, 5, 6, 7, 8  Next
АЛУ на NAND 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
VituZz wrote:
Просто смешно было бы делать каждому что-то своё, когда нас можно пересчитать по пальцам одной руки, и пальцев более чем хватит.

Не вижу ничего смешного, если бы я, ты, Хардыч и Шаос предложили по 1 своей схеме дешифратора - можно было бы выбрать лучший вариант из 4-х.

А так мне просто трудно отвечать на вопросы "а почему бы" и "что мешает"? - ничего не мешает,
но готовой схемы у меня сейчас нет.
Я рассказал из каких принципов я её буду строить, но на вопросы почему бы "не фпиндюрить" что-то в то, чего ещё нет я пока не знаю ответов. :lol:

PS. Весь оффтоп перенёс в корзину, "потому что мы больше любим дуть. А андоррцы больше любят фрукты". :wink:


Last edited by Lavr on 22 Oct 2011 12:26, edited 1 time in total.



22 Oct 2011 11:07
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
Lavr wrote:
Не вижу ничего смешного, если бы я, ты, Хардыч и Шаос предложили по 1 своей схеме дешифратора - можно было бы выбрать лучший вариант из 4-х.

Ну тогда пока мой выбор - твоя первая схема:



Когда дойдём до устройства управления, всегда можно будет внести коррективы.


Last edited by VituZz on 09 Jun 2013 04:24, edited 1 time in total.



22 Oct 2011 12:03
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
VituZz wrote:
Lavr wrote:
Не вижу ничего смешного, если бы я, ты, Хардыч и Шаос предложили по 1 своей схеме дешифратора - можно было бы выбрать лучший вариант из 4-х.

Ну тогда пока мой выбор - твоя первая схема:
...
Когда дойдём до устройства управления, всегда можно будет внести коррективы.


Я немножко другое имел ввиду, но ты прав. :wink:
Обсуждать действительно лучше готовую схему устройства управления, нежели намерения.

Ёю я активно и займусь...

PS. Виталий - я немножко поджал рисунок... ничё?


22 Oct 2011 12:33
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
Lavr wrote:
я немножко поджал рисунок... ничё?

Да, так лучше.

Если КОП будет содержать 4 бита, то дешифратор должен быть применимо к этой схеме 4 на 8. Очень напрашивается 155РЕ3, но на куче И-НЕ всё же, наверное, будет быстрее. Другое решение "в лоб" - 8 штук КП1.
Image
Это на основе твоей таблички:
Image
Я не сильно много напутал? Разумеется, это как первое приближение.


Last edited by VituZz on 09 Jun 2013 04:25, edited 1 time in total.



22 Oct 2011 13:04
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
VituZz wrote:
Lavr wrote:
я немножко поджал рисунок... ничё?

Да, так лучше.

Если КОП будет содержать 4 бита, то дешифратор должен быть применимо к этой схеме 4 на 8. Очень напрашивается 155РЕ3, но на куче И-НЕ всё же, наверное, будет быстрее. Другое решение "в лоб" - 8 штук КП1.
...
Это на основе твоей таблички:
...
Я не сильно много напутал? Разумеется, это как первое приближение.


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

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

Часть схемы ЦПУ вот (она нами ранее обсуждалась):

Image

Раз уж я согласился на 4-битное АЛУ, чего не хотел, но размеры заставили, то есть вот какой вариант.
ОЗУ инструкций и данных у нас на 2-х 537РУ8 - это 16 линий, из которых лишь 4 - данные, раз уж АЛУ 4-битное.
И поскольку нам всем не очень хотелось префиксов (а их не избежать, если команда 4-битная), я подумал, почему бы не задействовать 12 бит под код команды?
Раз уж 2 штуки 537РУ8 есть в схеме...

Поэтому я не очень спешу приделать дешифратор, т.к. он действительно лишь сворачивает сигналы из 8-ми в три, да ещё и инверторов хочет.

Я прикидываю, не проще ли мне будет распорядиться 12 линиями предполагаемой команды только лишь вентилями?
Действительно при длинной команде куда проще схемотехника - схемы Wang 220 меня в этом убедили. :D

С другой стороны - просматриваю вот эту весьма неглупую табличку кодов от 580ВМ80:

Image

Здесь аналоги реализованных нами в АЛУ команд.
Как мне кажется - из неё неплохо видно в цвете, как они свои дешифраторы кода привязали к командам.
Хочу некую аналогию позаимствовать. Не грех же поучиться у Intel ? :wink:


PS. КОП 0000 - не может быть у ADD - мы ж сами решили уже, что 0000 - это NOP, нет?
Поэтому я присматриваюсь к варианту от Intel, где инструкция ближе к середине...


22 Oct 2011 13:53
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
ДЕШИФРАТОР КОДОВ ОПЕРАЦИЙ АЛУ

Дешифратор Кодов Операций АЛУ "минималистски-нищебродский"… более простого и "нищебродского" я, пожалуй, придумать не смогу.
Тем не менее, он корректно отрабатывает декодирование КОП-ов для схем АЛУ на NAND, изображенных на рисунках 7, 8, 9.

Image
_______________ Рис. 10. _______________

D0-D3 не обязательно младшие биты, а любые четыре бита из слова команды. Обозначены так просто для определённости. Так что NOP вполне можно кодировать как 00Н.

Дешифратор выполнен согласно представленной ниже таблице.

Image

Я всё-таки счёл необходимым ввести команды CMC и STC, раз уж мы согласились с их необходимостью. Они не работают с функциями АЛУ, а только с регистром флагов.
Но реализация их довольно проста, и я её сделаю позже, когда буду проверять работу АЛУ совместно с дешифратором.

Дешифратор проверен на модели, из работы которой можно заметить, что с целью минимизации аппаратных средств, применены не совсем корректные решения.

http://sgu-wap.narod.ru/ALU/ALU_Dec1.zip

Так CS ALU = 0 не выключает дешифратор полностью. Некоторые управляющие линии не блокируются. Но мне кажется, это не должно повлиять на работу ЦПУ в целом, т.к. во время блокировки АЛУ кодами других операций результат не фиксируется в аккумуляторе и включение отдельных блоков АЛУ не должно вызывать сбоев.

Дешифратор Кодов Операций АЛУ в "минималистски-нищебродской" конфигурации выполнен на 6 корпусах ТТЛ-логики, 18 диодах и 6 резисторах.

Следующий вариант Дешифратора попробую выполнить без логики на диодах.
Естественно, корпусов ТТЛ-логики он потребует больше.

PS. Кстати говоря, прикидка показывает, что при подключении Дешифратора КОП к АЛУ, число корпусов полной схемы может сократиться...

PPS. Нашел ошибку в реализации сигнала для CPI(CMP). Не включался C=1. Исправил в схемах и модели. Что-то сайт на народе сегодня подглючивает... (27.10.2011) :-?


Last edited by Lavr on 27 Oct 2011 07:08, edited 1 time in total.



26 Oct 2011 19:56
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
Lavr, есть нахальное предложение: нельзя ли твои наработки в плане УГО советских микросхем сделать всеобщим достоянием? Так сказать, Public Domain?
А то вроде бы и набросал бы какую схемку, так с буржуйскими и возиться не хочется, такие они уродливые, а рисовать всё с нуля самому - слишком долго.


27 Oct 2011 00:34
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
Lavr wrote:
PS. КОП 0000 - не может быть у ADD - мы ж сами решили уже, что 0000 - это NOP, нет?

Я предлагал NOP=1111. Так можно свободный прогон выполнять, просто вынимая ПЗУ из панельки.


27 Oct 2011 00:41
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
VituZz wrote:
Lavr, есть нахальное предложение: нельзя ли твои наработки в плане УГО советских микросхем сделать всеобщим достоянием? Так сказать, Public Domain?

Да без вопросов - все картинки, что я выкладываю - безусловно Public Domain...
Если уж не сами схемы, так пусть хоть картинки пойдут кому-либо на пользу. :wink:
Другое дело - я тут выяснил, что некоторые символы я использую из старого ГОСТа.
Пришлось недавно посмотреть новый ГОСТ... местами он меня удивил.
Особенно в позиции "Выход с тремя состояниями". :(

VituZz wrote:
Lavr wrote:
PS. КОП 0000 - не может быть у ADD - мы ж сами решили уже, что 0000 - это NOP, нет?

Я предлагал NOP=1111. Так можно свободный прогон выполнять, просто вынимая ПЗУ из панельки.

Мы уже обсуждали этот вопрос в топике 4-bit Processor. Мое мнение - NOP=00Н,
т.к. прогон можно делать притянув шинки к 0 резисторами.
А вот забивать ошибки или ненужное в ПЗУ удобно только кодом 00Н.


27 Oct 2011 03:50
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
Lavr wrote:
Да без вопросов - все картинки, что я выкладываю - безусловно Public Domain...

Может, тогда положишь их где-нибудь в свободный доступ в виде архива или папочки?
Lavr wrote:
Мое мнение - NOP=00Н,
т.к. прогон можно делать притянув шинки к 0 резисторами.
А вот забивать ошибки или ненужное в ПЗУ удобно только кодом 00Н.

Если шина уже притянута резисторами к питанию, то к нулю её особо уже не перетянешь. Вопрос, конечно, не принципиален, у меня с малолетства ещё есть напаянная на дохлую РФку мелкая платка для свободного прогона, на которой уместились буфер и мультиплексор, которыми можно выдавать NOP, имеющий любой код. Для Z80, кажись, делал.
А РФки мне забивать нулями тоже не приходилось, потому как из журнала "Радиолюбитель" сделал эмулятор ПЗУ РФ2 на РУ10. Тот, который можно программировать в обычном программаторе для РФ2.

Набор 4-разрядных ПЗУ довольно невелик. В основном, это 556 серия: РТ4, РТ11-15, а также 541РТ1 - от 256 до 2к ячеек. И все они в исходном состоянии (как говорит справочник) в ячейках имеют нули.


27 Oct 2011 04:56
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
VituZz wrote:
Lavr wrote:
Да без вопросов - все картинки, что я выкладываю - безусловно Public Domain...

Может, тогда положишь их где-нибудь в свободный доступ в виде архива или папочки?

А они все здесь и лежат... на этом форуме. Частично в треде "Специалист".
Но собирать я их в папочку не буду. Лучше второй вариант Дешифратора КОП доделаю...
Это интереснее! :D

PS.
VituZz wrote:
Набор 4-разрядных ПЗУ довольно невелик. В основном, это 556 серия: РТ4, РТ11-15, а также 541РТ1 - от 256 до 2к ячеек. И все они в исходном состоянии (как говорит справочник) в ячейках имеют нули.

А у меня так и вообще нет 4-разрядных ПЗУ. Так что все ПЗУ будут только 8-разрядные. РФ2(РФ5). :wink:

PPS. Нашел ошибку в реализации сигнала для CPI(CMP) Рис. 10.
Не включался C=1. Исправил в схемах и модели. (27.10.2011)
:oops:


Last edited by Lavr on 27 Oct 2011 15:00, edited 1 time in total.



27 Oct 2011 05:07
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
ДЕШИФРАТОР КОДОВ ОПЕРАЦИЙ АЛУ ПОЛНОСТЬЮ НА ТТЛ-ЛОГИКЕ

Второй вариант Дешифратора КОП выполнен только на элементах ТТЛ-логики.
Выключение АЛУ теперь действительно корректно, то есть, при CS ALU = 0 АЛУ
полностью отключается. Возможно, это излишне…

Image
_______________ Рис. 11. _______________

Сигналы команд CMC и STC - F0 и F1, теперь отключены от мультиплексора Cin, т.к. эти операции выполняются только с регистром флагов, то по моим прикидкам схемотехника этого узла более проста…

Дешифратор Кодов Операций АЛУ занимает теперь на 8 корпусов ТТЛ-логики, причём два вентиля остаются свободными. Я думаю, в полной схеме АЛУ что-нибуть ещё сократится…

http://sgu-wap.narod.ru/ALU/ALU_Dec3.zip

Корректность работы Дешифратора КОП можно проверить на модели.


27 Oct 2011 14:30
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Мультиплексор операнда 'A'

Наличие в схеме АЛУ мультиплексоров с открытым колектором позволяет упростить другой узел схемы АЛУ - мультиплексор операнда 'A' ('A' MUX). В его задачу входило подавать на вход 'A' исполнительного блока АЛУ значения собственно самого операнда 'A', либо '0' или '0Fh'.
Но если не подавать на выходы ни 'A', ни '0', то резисторы, подключенные к выходам вентилей с ОК, как раз и сформируют значение '0Fh'.

Схемотехнически это будет выглядеть следующим образом.

Image

Следовательно, сигнал K2 (A='F') в схеме Дешифратора КОП можно упразднить.

PS. Кстати говоря, также можно упростить и мультиплексор флага 'С' ('С' MUX) на один вентиль.
Следовательно, и сигнал С2 (С='1') в схеме Дешифратора КОП можно упразднить.
Но нумерацию для совместимости оставлю...



И чтобы нас не смогли упрекнуть в том, что мы подло и неспортивно применили в схеме АЛУ реальный дешифратор К155ИД4, выполненный не на кошерных NAND, схему его я, так и быть, приведу здесь. :D

Image

Но прорисовывать до отдельных элементов К155ЛА3 - не буду. :-?

Если же у кого спортивный дух столь высок, что ВСЁ должно быть сугубо из NAND, рекомендую для ознакомления сайт, где этой спортивной дисциплине уделяют внимание… :wink:
http://digital.sibsutis.ru/contCU.htm

Напомню лишь, что дешифратор К155ИД4 легко заменим на К155ИД7, а я его применил лишь потому, что К155ИД4 у меня достаточно много.


Last edited by Lavr on 28 Oct 2011 08:51, edited 2 times in total.



28 Oct 2011 06:18
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
РЕГИСТР ФЛАГОВ 'F'

Флаги АЛУ "защёлкиваются" в Регистр Флагов 'F' после завершения операции в АЛУ по стробирующему сигналу Stb 'F' от Устройства Управления и Синхронизации ЦПУ.
Первоначально я планировал выполнить Регистр Флагов на отдельных D-триггерах, чтобы иметь возможность манипулировать отдельно битом флага Carry командами STC, CMC и CLC, подавая их от мультиплексора 'C'.
Но поскольку в процессе разработки Дешифратора КОП выяснилось, что команда CLC представляется излишней и в систему команд не войдёт, возникло более простое, на мой взгляд, решение.

Image

Регистр Флагов представляет собой счетверённый D-триггер с общим для всех триггеров входом стробирования C и сброса - R, имеющий прямые и инверсные выходы.
С инверсных выходов Регистра Флагов через инверсные же вентили с открытым коллектором флаги S, P, Z подаются на входы самого же Регистра Флагов, а вот сигнал флага 'C' подаётся либо в инверсном значении, либо не подаётся совсем, что эквивалентно сигналу логической '1' на входе 'C' Регистра Флагов. Собственно, что и составляет суть операций CMC и STC. По стробу Stb 'F' эти значения флагов зафиксируются в Регистре Флагов, как и в завершении любой операции АЛУ. Отличие заключается в том, что во время выполнения операций CMC и STC АЛУ не работает и не мешает манипуляциям с флагами.

Единственное, что нуждается в исправлении в схеме АЛУ - выходной элемент блока формирования флага Z. Он выполнен не на вентиле с ОК, но это легко поправимо.

В схеме Дешифратора КОП управляющий сигнал 'F0' должен быть активным как во время выполнения операции CMC, так и - STC, для чего инверсные значения этих сигналов с дешифратора D1 следует объединить через NAND, благо свободный элемент от ЛА3 есть.

Осталось лишь соединить все блоки нашего АЛУ в единую схему и протестировать её работоспособность. :wink:


Last edited by Lavr on 29 Oct 2011 10:53, edited 1 time in total.



28 Oct 2011 06:34
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
4-Bit TTL ALU

Завершил схему 4-битного АЛУ на ТТЛ-логических элементах:

Image
Увеличить
_______________ Рис. 12. _______________

Красиво!... А если учесть, что 8-битное примерно вдвое выше... :wink:

Я чуть поторопился, поскольку дальше будет со временем не ахти, а хотелось всё же свести все блоки в законченную схему...
Сквозную нумерацию элементов делать пока не стал. Во время отрисовки схемы 2 ТТЛ корпуса были "сэкономлены" и "неприкаянным" остался лишь один инвертор...
Глядишь, на свежий взгляд позже "подсократится" что-нибудь ещё... :lol:

Этот вариант я выбрал для тестирования и отладки на модели. Сведу отдельные модели блоков в единое устройство.

Вариантов же другого исполнения отдельных частей АЛУ я рассмотрел здесь предостаточно...
Во многом все они взаимозаменяемы.

Так что, кому интересно самодельное ТТЛ АЛУ - do please! :D


PS. Подсчитал-таки корпуса... 37 ТТЛ-корпусов занимает АЛУ...
Ввёл нумерацию на большом чертеже. 2 инвертора остались "бесхозными"...


28 Oct 2011 14:06
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 114 posts ]  Go to page Previous  1 ... 4, 5, 6, 7, 8  Next

Who is online

Users browsing this forum: No registered users and 7 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.