|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Author |
Message |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Не вижу ничего смешного, если бы я, ты, Хардыч и Шаос предложили по 1 своей схеме дешифратора - можно было бы выбрать лучший вариант из 4-х.
А так мне просто трудно отвечать на вопросы "а почему бы" и "что мешает"? - ничего не мешает,
но готовой схемы у меня сейчас нет.
Я рассказал из каких принципов я её буду строить, но на вопросы почему бы "не фпиндюрить" что-то в то, чего ещё нет я пока не знаю ответов.
PS. Весь оффтоп перенёс в корзину, "потому что мы больше любим дуть. А андоррцы больше любят фрукты".
Last edited by Lavr on 22 Oct 2011 12:26, edited 1 time in total.
|
22 Oct 2011 11:07 |
|
|
VituZz
God
Joined: 13 Nov 2010 04:06 Posts: 1345
|
Ну тогда пока мой выбор - твоя первая схема:
Когда дойдём до устройства управления, всегда можно будет внести коррективы.
Last edited by VituZz on 09 Jun 2013 04:24, edited 1 time in total.
|
22 Oct 2011 12:03 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Я немножко другое имел ввиду, но ты прав.
Обсуждать действительно лучше готовую схему устройства управления, нежели намерения.
Ёю я активно и займусь...
PS. Виталий - я немножко поджал рисунок... ничё?
|
22 Oct 2011 12:33 |
|
|
VituZz
God
Joined: 13 Nov 2010 04:06 Posts: 1345
|
Да, так лучше.
Если КОП будет содержать 4 бита, то дешифратор должен быть применимо к этой схеме 4 на 8. Очень напрашивается 155РЕ3, но на куче И-НЕ всё же, наверное, будет быстрее. Другое решение "в лоб" - 8 штук КП1.
Это на основе твоей таблички:
Я не сильно много напутал? Разумеется, это как первое приближение.
Last edited by VituZz on 09 Jun 2013 04:25, edited 1 time in total.
|
22 Oct 2011 13:04 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
| | | | VituZz wrote: Да, так лучше. Если КОП будет содержать 4 бита, то дешифратор должен быть применимо к этой схеме 4 на 8. Очень напрашивается 155РЕ3, но на куче И-НЕ всё же, наверное, будет быстрее. Другое решение "в лоб" - 8 штук КП1. ... Это на основе твоей таблички: ... Я не сильно много напутал? Разумеется, это как первое приближение. | | | | |
Благодарю! Надо внимательно проверить.
Но выше ты совершенно верно сказал, что я что-то планирую наперёд, а ты этого знать не можешь, естественно...
Ты прав - суть в том, что я на ходу мысленно пытаюсь "привязать" АЛУ к той схеме ЦПУ, что мы здесь обсуждали и пытаюсь учесть все наши наработки...
Часть схемы ЦПУ вот (она нами ранее обсуждалась):
Раз уж я согласился на 4-битное АЛУ, чего не хотел, но размеры заставили, то есть вот какой вариант.
ОЗУ инструкций и данных у нас на 2-х 537РУ8 - это 16 линий, из которых лишь 4 - данные, раз уж АЛУ 4-битное.
И поскольку нам всем не очень хотелось префиксов (а их не избежать, если команда 4-битная), я подумал, почему бы не задействовать 12 бит под код команды?
Раз уж 2 штуки 537РУ8 есть в схеме...
Поэтому я не очень спешу приделать дешифратор, т.к. он действительно лишь сворачивает сигналы из 8-ми в три, да ещё и инверторов хочет.
Я прикидываю, не проще ли мне будет распорядиться 12 линиями предполагаемой команды только лишь вентилями?
Действительно при длинной команде куда проще схемотехника - схемы Wang 220 меня в этом убедили.
С другой стороны - просматриваю вот эту весьма неглупую табличку кодов от 580ВМ80:
Здесь аналоги реализованных нами в АЛУ команд.
Как мне кажется - из неё неплохо видно в цвете, как они свои дешифраторы кода привязали к командам.
Хочу некую аналогию позаимствовать. Не грех же поучиться у Intel ?
PS. КОП 0000 - не может быть у ADD - мы ж сами решили уже, что 0000 - это NOP, нет? Поэтому я присматриваюсь к варианту от Intel, где инструкция ближе к середине...
|
22 Oct 2011 13:53 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
ДЕШИФРАТОР КОДОВ ОПЕРАЦИЙ АЛУ
Дешифратор Кодов Операций АЛУ "минималистски-нищебродский"… более простого и "нищебродского" я, пожалуй, придумать не смогу.
Тем не менее, он корректно отрабатывает декодирование КОП-ов для схем АЛУ на NAND, изображенных на рисунках 7, 8, 9.
_______________ Рис. 10. _______________
D0-D3 не обязательно младшие биты, а любые четыре бита из слова команды. Обозначены так просто для определённости. Так что NOP вполне можно кодировать как 00Н.
Дешифратор выполнен согласно представленной ниже таблице.
Я всё-таки счёл необходимым ввести команды 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 |
|
|
VituZz
God
Joined: 13 Nov 2010 04:06 Posts: 1345
|
Lavr, есть нахальное предложение: нельзя ли твои наработки в плане УГО советских микросхем сделать всеобщим достоянием? Так сказать, Public Domain?
А то вроде бы и набросал бы какую схемку, так с буржуйскими и возиться не хочется, такие они уродливые, а рисовать всё с нуля самому - слишком долго.
|
27 Oct 2011 00:34 |
|
|
VituZz
God
Joined: 13 Nov 2010 04:06 Posts: 1345
|
Я предлагал NOP=1111. Так можно свободный прогон выполнять, просто вынимая ПЗУ из панельки.
|
27 Oct 2011 00:41 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Да без вопросов - все картинки, что я выкладываю - безусловно Public Domain... Если уж не сами схемы, так пусть хоть картинки пойдут кому-либо на пользу. Другое дело - я тут выяснил, что некоторые символы я использую из старого ГОСТа. Пришлось недавно посмотреть новый ГОСТ... местами он меня удивил. Особенно в позиции " Выход с тремя состояниями".
Мы уже обсуждали этот вопрос в топике 4-bit Processor. Мое мнение - NOP=00Н,
т.к. прогон можно делать притянув шинки к 0 резисторами.
А вот забивать ошибки или ненужное в ПЗУ удобно только кодом 00Н.
|
27 Oct 2011 03:50 |
|
|
VituZz
God
Joined: 13 Nov 2010 04:06 Posts: 1345
|
Может, тогда положишь их где-нибудь в свободный доступ в виде архива или папочки?
Если шина уже притянута резисторами к питанию, то к нулю её особо уже не перетянешь. Вопрос, конечно, не принципиален, у меня с малолетства ещё есть напаянная на дохлую РФку мелкая платка для свободного прогона, на которой уместились буфер и мультиплексор, которыми можно выдавать NOP, имеющий любой код. Для Z80, кажись, делал.
А РФки мне забивать нулями тоже не приходилось, потому как из журнала "Радиолюбитель" сделал эмулятор ПЗУ РФ2 на РУ10. Тот, который можно программировать в обычном программаторе для РФ2.
Набор 4-разрядных ПЗУ довольно невелик. В основном, это 556 серия: РТ4, РТ11-15, а также 541РТ1 - от 256 до 2к ячеек. И все они в исходном состоянии (как говорит справочник) в ячейках имеют нули.
|
27 Oct 2011 04:56 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А они все здесь и лежат... на этом форуме. Частично в треде "Специалист". Но собирать я их в папочку не буду. Лучше второй вариант Дешифратора КОП доделаю... Это интереснее! PS.
А у меня так и вообще нет 4-разрядных ПЗУ. Так что все ПЗУ будут только 8-разрядные. РФ2(РФ5).
PPS. Нашел ошибку в реализации сигнала для CPI(CMP) Рис. 10. Не включался C=1. Исправил в схемах и модели. (27.10.2011)
Last edited by Lavr on 27 Oct 2011 15:00, edited 1 time in total.
|
27 Oct 2011 05:07 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
ДЕШИФРАТОР КОДОВ ОПЕРАЦИЙ АЛУ ПОЛНОСТЬЮ НА ТТЛ-ЛОГИКЕ
Второй вариант Дешифратора КОП выполнен только на элементах ТТЛ-логики.
Выключение АЛУ теперь действительно корректно, то есть, при CS ALU = 0 АЛУ
полностью отключается. Возможно, это излишне…
_______________ Рис. 11. _______________
Сигналы команд CMC и STC - F0 и F1, теперь отключены от мультиплексора Cin, т.к. эти операции выполняются только с регистром флагов, то по моим прикидкам схемотехника этого узла более проста…
Дешифратор Кодов Операций АЛУ занимает теперь на 8 корпусов ТТЛ-логики, причём два вентиля остаются свободными. Я думаю, в полной схеме АЛУ что-нибуть ещё сократится…
http://sgu-wap.narod.ru/ALU/ALU_Dec3.zip
Корректность работы Дешифратора КОП можно проверить на модели.
|
27 Oct 2011 14:30 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Мультиплексор операнда 'A'
Наличие в схеме АЛУ мультиплексоров с открытым колектором позволяет упростить другой узел схемы АЛУ - мультиплексор операнда 'A' ('A' MUX). В его задачу входило подавать на вход 'A' исполнительного блока АЛУ значения собственно самого операнда 'A', либо '0' или '0Fh'.
Но если не подавать на выходы ни 'A', ни '0', то резисторы, подключенные к выходам вентилей с ОК, как раз и сформируют значение '0Fh'.
Схемотехнически это будет выглядеть следующим образом.
Следовательно, сигнал K2 (A='F') в схеме Дешифратора КОП можно упразднить.
PS. Кстати говоря, также можно упростить и мультиплексор флага 'С' ('С' MUX) на один вентиль. Следовательно, и сигнал С2 (С='1') в схеме Дешифратора КОП можно упразднить. Но нумерацию для совместимости оставлю...
И чтобы нас не смогли упрекнуть в том, что мы подло и неспортивно применили в схеме АЛУ реальный дешифратор К155ИД4, выполненный не на кошерных NAND, схему его я, так и быть, приведу здесь.
Но прорисовывать до отдельных элементов К155ЛА3 - не буду.
Если же у кого спортивный дух столь высок, что ВСЁ должно быть сугубо из NAND, рекомендую для ознакомления сайт, где этой спортивной дисциплине уделяют внимание…
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 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
РЕГИСТР ФЛАГОВ 'F'
Флаги АЛУ " защёлкиваются" в Регистр Флагов 'F' после завершения операции в АЛУ по стробирующему сигналу Stb 'F' от Устройства Управления и Синхронизации ЦПУ.
Первоначально я планировал выполнить Регистр Флагов на отдельных D-триггерах, чтобы иметь возможность манипулировать отдельно битом флага Carry командами STC, CMC и CLC, подавая их от мультиплексора 'C'.
Но поскольку в процессе разработки Дешифратора КОП выяснилось, что команда CLC представляется излишней и в систему команд не войдёт, возникло более простое, на мой взгляд, решение.
Регистр Флагов представляет собой счетверённый D-триггер с общим для всех триггеров входом стробирования C и сброса - R, имеющий прямые и инверсные выходы.
С инверсных выходов Регистра Флагов через инверсные же вентили с открытым коллектором флаги S, P, Z подаются на входы самого же Регистра Флагов, а вот сигнал флага 'C' подаётся либо в инверсном значении, либо не подаётся совсем, что эквивалентно сигналу логической '1' на входе 'C' Регистра Флагов. Собственно, что и составляет суть операций CMC и STC. По стробу Stb 'F' эти значения флагов зафиксируются в Регистре Флагов, как и в завершении любой операции АЛУ. Отличие заключается в том, что во время выполнения операций CMC и STC АЛУ не работает и не мешает манипуляциям с флагами.
Единственное, что нуждается в исправлении в схеме АЛУ - выходной элемент блока формирования флага Z. Он выполнен не на вентиле с ОК, но это легко поправимо.
В схеме Дешифратора КОП управляющий сигнал 'F0' должен быть активным как во время выполнения операции CMC, так и - STC, для чего инверсные значения этих сигналов с дешифратора D1 следует объединить через NAND, благо свободный элемент от ЛА3 есть.
Осталось лишь соединить все блоки нашего АЛУ в единую схему и протестировать её работоспособность.
Last edited by Lavr on 29 Oct 2011 10:53, edited 1 time in total.
|
28 Oct 2011 06:34 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
4-Bit TTL ALU
Завершил схему 4-битного АЛУ на ТТЛ-логических элементах:
Увеличить
_______________ Рис. 12. _______________
Красиво!... А если учесть, что 8-битное примерно вдвое выше...
Я чуть поторопился, поскольку дальше будет со временем не ахти, а хотелось всё же свести все блоки в законченную схему...
Сквозную нумерацию элементов делать пока не стал. Во время отрисовки схемы 2 ТТЛ корпуса были " сэкономлены" и " неприкаянным" остался лишь один инвертор...
Глядишь, на свежий взгляд позже " подсократится" что-нибудь ещё...
Этот вариант я выбрал для тестирования и отладки на модели. Сведу отдельные модели блоков в единое устройство.
Вариантов же другого исполнения отдельных частей АЛУ я рассмотрел здесь предостаточно...
Во многом все они взаимозаменяемы.
Так что, кому интересно самодельное ТТЛ АЛУ - do please!
PS. Подсчитал-таки корпуса... 37 ТТЛ-корпусов занимает АЛУ... Ввёл нумерацию на большом чертеже. 2 инвертора остались "бесхозными"...
|
28 Oct 2011 14:06 |
|
|
Who is online |
Users browsing this forum: No registered users and 1 guest |
|
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
|
|