nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 05:08



Reply to topic  [ 38 posts ]  Go to page Previous  1, 2, 3  Next
Сумматор-вычитатель 
Author Message
Fanat

Joined: 25 Jan 2014 21:54
Posts: 92
Location: 37.113.169.14
Reply with quote
Lavr wrote:
Кстати, джентльмены, ни у кого случаем нет контактов некоего г-на Микушина А.В. -
автора вот этой учебной страницы в Интернете: https://digteh.ru/digital/counter.php

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

Счётчик по фронту:
Image

у него считает явно по спаду...
Image

Хотя даже нелюбимый многими Proteus подсказывает, что это не так. :wink:
Attachment:
CNT_F.PNG

Я бы и сам намекнул бы ему об этом, но, к сожалению, контактов кроме VK автор не оставил,
Attachment:
VK.PNG

а материал, выдаваемый за учебный, будут бездумно списывать все представители поколения ЕГЭ... :-?

Тут всё зависит от конкретной реализации триггера. 7474 выполнен на элементах NAND. Если в той же схеме применить элементы NOR, то триггер будет срабатывать по спаду.
PS: В своё время (тогда готовых триггеров у нас ещё не было) я столкнулся с подобной проблемой. В книге Мансурова и др. была приведена подобная схема на элементах NOR, а в моём распоряжении были микросхемы 155ЛА4. Потратил массу времени прежде чем разобрался как будет работать триггер если заменить NOR на NAND. Это было в 1973 году, я тогда был ещё студентом и с цифровой техникой вплотную познакомился только во время работы над дипломным проектом. :)
PPS: Ещё одна ссылка (datasheet): https://www.ti.com/lit/ds/symlink/sn74hcs72.pdf?ts=1667270860915&ref_url=www.mouser.com


31 Oct 2022 21:04
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Bill wrote:
Тут всё зависит от конкретной реализации триггера. 7474 выполнен на элементах NAND. Если в той же схеме применить элементы NOR, то триггер будет срабатывать по спаду.

Либо вы любите людям голову морочить, либо сами не всё понимаете, поскольку в данный момент пишете полный бред... :(

На схеме изображена конкретная реализация триггера, работающего по фронту.

Image

Об этом свидетельствует стрелка. И ни про какие элементы NAND ничего не говорится! :-?

Если триггер работает по спаду, у него другое обозначение:
Attachment:
Spad1.png
Spad1.png [ 3.79 KiB | Viewed 3685 times ]

При этом совершенно безразлично на каких элементах триггер сделан внутри.

Bill wrote:
Вы всё-таки ссылочку посмотрите http://www.6502.org/users/dieter/a2/a2_4.htm
Там всё чётко объясняется.
Quote:
Q=A-B: S3..0 = 0110
The red marked ANDs are active.
Basically it's like A+B, with B inverted.
Note: borrow is low_active, like with the 6502.

Я на эту ссылочку посмотрел много раз, и вам покажу:
Attachment:
borrow.PNG
borrow.PNG [ 14.63 KiB | Viewed 3685 times ]

Если вы плохо знаете английский, то там написано:
Quote:
Практически как A+B, с инвертированным B.
Примечание: заём имеет низкий активный уровень, как и у 6502.


Теперь смотрим на схему вашего "именно вычитателя":

Image

Где у него "A+B, с инвертированным B" ? :roll:
То, что 6502 по своему трактует заём, мы об этом тут и так ранее сказали...

Я привёл вам полную принципиальную схему 74181:

Image

Покажите на ней, где схемотехнически формируются заёмы как на схеме "именно вычитателя"?

Чтобы вы не запутались, я вам подскажу, что "именно вычитатель" называют:
Attachment:
sub.PNG
sub.PNG [ 9.76 KiB | Viewed 3685 times ]
https://ru.wikipedia.org/wiki/Вычитатель

И по вашей ссылке и в АЛУ 74181 и в микропроцессоре 6502 на входе сумматора инвертируют один из аргументов.
А в схеме "именно вычитателя", как правильно заметил коллега, вычитание происходит:
Mixa64 wrote:
...без колдовства над вычитаемым.

_________________
iLavr


01 Nov 2022 01:45
Profile
Fanat

Joined: 25 Jan 2014 21:54
Posts: 92
Location: 37.113.169.14
Reply with quote
Lavr wrote:
Bill wrote:
Тут всё зависит от конкретной реализации триггера. 7474 выполнен на элементах NAND. Если в той же схеме применить элементы NOR, то триггер будет срабатывать по спаду.

Либо вы любите людям голову морочить, либо сами не всё понимаете, поскольку в данный момент пишете полный бред... :(

На схеме изображена конкретная реализация триггера, работающего по фронту.

Image

Об этом свидетельствует стрелка. И ни про какие элементы NAND ничего не говорится! :-?

Если триггер работает по спаду, у него другое обозначение:
При этом совершенно безразлично на каких элементах триггер сделан внутри.

В смысле обозначения на схеме у автора косяк. Тут я с вами согласен. Но у него есть и другая неточность. Если соединить инверсный выход триггера с D-входом, то триггер действительно будет работать в счётном режиме. Но это не значит, что при этом D-триггер превратиться в T-триггер. Реальный T-триггер должен иметь информационный вход T. При этом логика работы такого триггера будет следующей: при T=0 триггер сохраняет своё текущее состояние вне зависимости от перепадов синхросигнала; при T=1 триггер будет переключаться в противоположное состояние при активном перепаде сигнала синхронизации. Чтобы реализовать T-триггер на основе D-триггера, необходимо вход D соединить с прямым выходом триггера через вентиль XOR. Второй вход вентиля будет служить входом T. Возможно автор не обратил внимания на эту тонкость.


01 Nov 2022 04:21
Profile
Doomed

Joined: 25 Aug 2009 07:02
Posts: 459
Location: Москва
Reply with quote
Lavr wrote:
Mixa64 wrote:
Bill wrote:
:) Ещё одна ссылочка: https://en.wikipedia.org/wiki/Subtractor
...
Переключением схемы переноса-заема можно превращать сумматор в вычитатель и обратно

Внизу по ссылке: Adder–subtractor
Attachment:
add-sub.png

Что-то Википедисты переключением схемы переноса-заема превращать сумматор в вычитатель и обратно не торопятся! :wink:

Да бог с ними, с википедиками, таскают туда-сюда вариации вычитателя на базе сумматора.. Разряды сформировали, на заем с переносом положили.
К этой картинке тоже есть вопросы, треугольнички имелось в виду инверторы, получилось как повторители.
Image
Вот если вместо этих "подразумевается инвертор" поставить по XOR, (управляемые инверторы), то будет переключение между вычитанием и суммированием, с нормальными (по смыслу как у людей) переносом и заемом.


01 Nov 2022 08:22
Profile
Fanat

Joined: 10 Mar 2018 12:50
Posts: 67
Reply with quote
в продолжение темы. Видел у одного пенсионера такую штучку.
http://www.155la3.ru/k584.htm


02 Nov 2022 04:43
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Bill wrote:
В смысле обозначения на схеме у автора косяк. Тут я с вами согласен.

Ну вот я и попросил всех вас - коллег по форуму, у кого есть VK, намекнуть автору косяк исправить. :wink:
Ибо, когда пишешь в форму обратной связи:

Image

Она требует авторизации в VK, а у меня такой авторизации нет.
В остальном автор преподносит весьма неплохой учебный материал...

_________________
iLavr


03 Nov 2022 04:02
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Mixa64 wrote:
Вот если вместо этих "подразумевается инвертор" поставить по XOR, (управляемые инверторы), то будет переключение между вычитанием и суммированием, с нормальными (по смыслу как у людей) переносом и заемом.

Да это ладно... придираться к Вики - себя не уважать... смысл мы поняли. И я вовсе не против этой схемы
т.н. "именно вычитателя". Возможно, с академической или учебной точек зрения она и представляет интерес...

Но весь цимес заключается в том что эта схема полностью идентична той, что практически используется
в обсуждаемых микропроцессорах и известных ИС АЛУ.
Attachment:
sub2.PNG
sub2.PNG [ 17.47 KiB | Viewed 3607 times ]

Распространенная схема II получается из схемы I упрощением, если знать вот эти формулки:

 АКСИОМЫ И ТОЖДЕСТВА БУЛЕВОЙ АЛГЕБРЫ-ЛОГИКИ
Image

И известный факт, что полный сумматор является самодвойственной функцией.

Честно говоря, там и по ссылке https://en.wikipedia.org/wiki/Subtractor написано:
Quote:
Subtractors are usually implemented within a binary adder for only a small cost when using the standard two's complement notation, by providing an addition/subtraction selector to the carry-in and to invert the second operand.
Бюджетные (small cost) вычитатели обычно реализуются на основе двоичного сумматора при использовании стандартного представления дополнения двоичного числа до двух, с использованием селектора операции сложения/вычитания для входа переноса и инверсии второго операнда.

Бюджетные (или small cost - дешевые) по той простой причине, что для 8-разрядного сумматора-вычитателя
понадобится 16 управляемых инверторов если делать его по схеме "именно вычитателя", и лишь 9 по типичной схеме...

Но весь этот сыр-бор с "именно вычитателями" начался у нас с вот этого заявления:
Bill wrote:
Lavr wrote:
Опять я споткнулся об эти флаги, программируя 6502... :-?
Оказывается, есть просто разные подходы к интерпретации флага переноса C: от Intel и от MOS Technology
Image
Quote:
Some architectures, namely MOS 6502 and all ARM CPUs, use "true carry" subtraction implementation that Carry flag from PSW is not inverted before and after subtraction, so, C = 1 means no borrow and C = 0 means borrow.

Тут всё зависит от реализации операции вычитания в АЛУ. В одних случаях выполняется именно вычитание, в других случаях вычитание заменяется сложением с дополнительным кодом вычитаемого. Например, операция 1-1 = 0.
Code:
    00000001        00000001
  -                +
    00000001        11111111
 С  --------     С  ---------
 0  00000000     1  00000000

Однако на сегодняшний день схемотехника древних микропроцессоров Intel и MOS секрета не представляет,
и по информации из открытых источников очевидно, что вычитание в них организовано с инверсией
вычитаемого, а не т.н. "именно вычитанием"... :wink:
Attachment:
ALU6502.PNG
ALU6502.PNG [ 67.76 KiB | Viewed 3607 times ]
Attachment:
ALUi8085.PNG
ALUi8085.PNG [ 308.19 KiB | Viewed 3607 times ]

_________________
iLavr


03 Nov 2022 05:25
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Джентльмены, поскольку эта беседа с самого начала не затрагивает темы 4-bit Processor,
вы не будете против, если я перенесу её в топик Hardware под заглавием Сумматор-вычитатель ?

_________________
iLavr


03 Nov 2022 05:55
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Bill wrote:
Если соединить инверсный выход триггера с D-входом, то триггер действительно будет работать в счётном режиме. Но это не значит, что при этом D-триггер превратиться в T-триггер. Реальный T-триггер должен иметь информационный вход T. При этом логика работы такого триггера будет следующей: при T=0 триггер сохраняет своё текущее состояние вне зависимости от перепадов синхросигнала; при T=1 триггер будет переключаться в противоположное состояние при активном перепаде сигнала синхронизации. Чтобы реализовать T-триггер на основе D-триггера, необходимо вход D соединить с прямым выходом триггера через вентиль XOR. Второй вход вентиля будет служить входом T. Возможно автор не обратил внимания на эту тонкость.

Интересно, а где конкретно вы имели случай лицезреть такую "тонкость" ?
У меня напряг со временем сейчас, но сегодня, выбрав минутку, полистал я классиков жанра: Хоровиц-Хилл,
Гутников, Алексеенко-Шагурин и т.д.

Все они единодушны в мнении, что T-триггер - это вот что:
Attachment:
T-trig.png
T-trig.png [ 104.03 KiB | Viewed 3396 times ]

А где вы встречали свой такой затейливый "Реальный T-триггер" ? :roll:

_________________
iLavr


28 Nov 2022 15:27
Profile
Fanat

Joined: 25 Jan 2014 21:54
Posts: 92
Location: 37.113.169.14
Reply with quote
Lavr wrote:
Bill wrote:
Если соединить инверсный выход триггера с D-входом, то триггер действительно будет работать в счётном режиме. Но это не значит, что при этом D-триггер превратиться в T-триггер. Реальный T-триггер должен иметь информационный вход T. При этом логика работы такого триггера будет следующей: при T=0 триггер сохраняет своё текущее состояние вне зависимости от перепадов синхросигнала; при T=1 триггер будет переключаться в противоположное состояние при активном перепаде сигнала синхронизации. Чтобы реализовать T-триггер на основе D-триггера, необходимо вход D соединить с прямым выходом триггера через вентиль XOR. Второй вход вентиля будет служить входом T. Возможно автор не обратил внимания на эту тонкость.

Интересно, а где конкретно вы имели случай лицезреть такую "тонкость" ?
У меня напряг со временем сейчас, но сегодня, выбрав минутку, полистал я классиков жанра: Хоровиц-Хилл,
Гутников, Алексеенко-Шагурин и т.д.

Все они единодушны в мнении, что T-триггер - это вот что:
Attachment:
T-trig.png

А где вы встречали свой такой затейливый "Реальный T-триггер" ? :roll:
Вообще-то, насколько мне известно, T-триггеры как самостоятельные изделия промышленностью не выпускаются. Но хотя-бы чисто теоретически таковые имеются наряду с RS-, D- и JK-триггерами.
https://www.electronics-tutorials.ws/sequential/toggle-flip-flop.html
С другой стороны микросхемы синхронных счётчиков строятся на основе D-триггеров, которые как раз используются в режиме T-триггера.
https://assets.nexperia.com/documents/data-sheet/74HC_HCT163.pdf
PS: Кстати, на основе T-триггера можно выполнить D-триггер, а также JK-триггер. И вообще, все эти триггеры можно рассматривать как элементарные автоматы, и на их основе можно синтезировать произвольный конечный автомат.


30 Nov 2022 05:49
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Bill wrote:
Если соединить инверсный выход триггера с D-входом, то триггер действительно будет работать в счётном режиме. Но это не значит, что при этом D-триггер превратиться в T-триггер. Реальный T-триггер должен иметь информационный вход T. При этом логика работы такого триггера будет следующей: при T=0 триггер сохраняет своё текущее состояние вне зависимости от перепадов синхросигнала; при T=1 триггер будет переключаться в противоположное состояние при активном перепаде сигнала синхронизации. Чтобы реализовать T-триггер на основе D-триггера, необходимо вход D соединить с прямым выходом триггера через вентиль XOR. Второй вход вентиля будет служить входом T. Возможно автор не обратил внимания на эту тонкость.

А вот так - не то же ли самое получится? :roll:
Attachment:
T-image013.jpg
T-image013.jpg [ 4.48 KiB | Viewed 3154 times ]

_________________
iLavr


12 Jan 2023 07:25
Profile
Fanat

Joined: 25 Jan 2014 21:54
Posts: 92
Location: 37.113.169.14
Reply with quote
Lavr wrote:
Bill wrote:
Если соединить инверсный выход триггера с D-входом, то триггер действительно будет работать в счётном режиме. Но это не значит, что при этом D-триггер превратиться в T-триггер. Реальный T-триггер должен иметь информационный вход T. При этом логика работы такого триггера будет следующей: при T=0 триггер сохраняет своё текущее состояние вне зависимости от перепадов синхросигнала; при T=1 триггер будет переключаться в противоположное состояние при активном перепаде сигнала синхронизации. Чтобы реализовать T-триггер на основе D-триггера, необходимо вход D соединить с прямым выходом триггера через вентиль XOR. Второй вход вентиля будет служить входом T. Возможно автор не обратил внимания на эту тонкость.

А вот так - не то же ли самое получится? :roll:
Image

Наверное, можно и так. Разве что дополнительная задержка (небольшая) на входе синхронизации появляется.


12 Jan 2023 09:11
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Bill wrote:
Lavr wrote:
Bill wrote:
Если соединить инверсный выход триггера с D-входом, то триггер действительно будет работать в счётном режиме. Но это не значит, что при этом D-триггер превратиться в T-триггер. Реальный T-триггер должен иметь информационный вход T. При этом логика работы такого триггера будет следующей: при T=0 триггер сохраняет своё текущее состояние вне зависимости от перепадов синхросигнала; при T=1 триггер будет переключаться в противоположное состояние при активном перепаде сигнала синхронизации. Чтобы реализовать T-триггер на основе D-триггера, необходимо вход D соединить с прямым выходом триггера через вентиль XOR. Второй вход вентиля будет служить входом T. Возможно автор не обратил внимания на эту тонкость.

А вот так - не то же ли самое получится? :roll:
Image

Наверное, можно и так. Разве что дополнительная задержка (небольшая) на входе синхронизации появляется.

А от вентиля XOR значит дополнительная задержка (тоже небольшая) совсем не появляется? :roll:
Мне так думается, что у вентиля XOR эта дополнительная задержка (совсем небольшая) но подлиннее
будет в силу его более сложной внутренней структуры... :wink:

_________________
iLavr


12 Jan 2023 09:36
Profile
Fanat

Joined: 25 Jan 2014 21:54
Posts: 92
Location: 37.113.169.14
Reply with quote
Lavr wrote:
Bill wrote:
Lavr wrote:
Bill wrote:
Если соединить инверсный выход триггера с D-входом, то триггер действительно будет работать в счётном режиме. Но это не значит, что при этом D-триггер превратиться в T-триггер. Реальный T-триггер должен иметь информационный вход T. При этом логика работы такого триггера будет следующей: при T=0 триггер сохраняет своё текущее состояние вне зависимости от перепадов синхросигнала; при T=1 триггер будет переключаться в противоположное состояние при активном перепаде сигнала синхронизации. Чтобы реализовать T-триггер на основе D-триггера, необходимо вход D соединить с прямым выходом триггера через вентиль XOR. Второй вход вентиля будет служить входом T. Возможно автор не обратил внимания на эту тонкость.

А вот так - не то же ли самое получится? :roll:
Image

Наверное, можно и так. Разве что дополнительная задержка (небольшая) на входе синхронизации появляется.

А от вентиля XOR значит дополнительная задержка (тоже небольшая) совсем не появляется? :roll:
Мне так думается, что у вентиля XOR эта дополнительная задержка (совсем небольшая) но подлиннее
будет в силу его более сложной внутренней структуры... :wink:

По отношению к активному фронту (спаду) синхроимпульса значение сигнала на входе D будет вполне установившимся, а значит и задержки не будет.


14 Jan 2023 06:28
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Bill wrote:
Lavr wrote:
Bill wrote:
Lavr wrote:
Bill wrote:
Если соединить инверсный выход триггера с D-входом, то триггер действительно будет работать в счётном режиме. Но это не значит, что при этом D-триггер превратиться в T-триггер. Реальный T-триггер должен иметь информационный вход T. При этом логика работы такого триггера будет следующей: при T=0 триггер сохраняет своё текущее состояние вне зависимости от перепадов синхросигнала; при T=1 триггер будет переключаться в противоположное состояние при активном перепаде сигнала синхронизации. Чтобы реализовать T-триггер на основе D-триггера, необходимо вход D соединить с прямым выходом триггера через вентиль XOR. Второй вход вентиля будет служить входом T. Возможно автор не обратил внимания на эту тонкость.

А вот так - не то же ли самое получится? :roll:
Image

Наверное, можно и так. Разве что дополнительная задержка (небольшая) на входе синхронизации появляется.
А от вентиля XOR значит дополнительная задержка (тоже небольшая) совсем не появляется? :roll:
Мне так думается, что у вентиля XOR эта дополнительная задержка (совсем небольшая) но подлиннее
будет в силу его более сложной внутренней структуры... :wink:
По отношению к активному фронту (спаду) синхроимпульса значение сигнала на входе D будет вполне установившимся, а значит и задержки не будет.

В статике это так. Но в динамике всё несколько иначе.
XOR у вас в роли управляемого инвертора и он же создаёт задержку между выходом D-триггера и входом D.
Поэтому в динамике этот триггер по вашему описанию работает на запись состояния входа D постоянно.
Но при включении его по входу Т (второй вход XOR) режим работы будет зависеть от того в каком соотношении по времени находились сигнал Т и тактовый сигнал.
При этом Т-триггер по вашему описанию может начать работать некорректно, если XOR не успел инвертировать сигнал с выхода D-триггера.
А на высокой частоте может и вовсе перестать работать.
Возможно вы не обратили внимания на эту тонкость? :roll:

_________________
iLavr


15 Jan 2023 10:41
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 38 posts ]  Go to page Previous  1, 2, 3  Next

Who is online

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