двоичный код в вентиль И-НЕ - булева алгебра

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

   X1X0 
 + Y1Y0
   ----
 Z2Z1Z0

я думаю так устроено! Теперь, для части умножения

    1  carry in?
110101 
X 1101
------
101011001  thats what i ended up with. Probobly, not right!

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

       X1X0 
     + Y1Y0
       ----
     Z2Z1Z0

       X0 Y0   Carry     Z0
       0   0     0        0
       1   0     0        1
       0   1     0        1
       1   1     1        0



  X1  Y1   Carryin            Carryout Z1 
  0   0     0                       0   0
  1   0     0                       0   1
  0   1     0                       0   1
  1   1     0                       1   0
  0   0     1                       0   1
  1   0     1                       1   0

Я запутался в части x1 и y1. Было бы проще, если бы я мог увидеть это в действии и обозначить, что такое «перенос» и «вынос» во время его умножения.

будет ли «перенос» результатом 1 + 1, а «вынос» будет результатом следующего результата переноса?

Я думаю, что после того, как мы получим таблицу истинности с переносом и выполнением, мы должны использовать булевую алгебру, например:

Z1 = X1• Y1' • Carryin' + X1' • Y1• Carryin' + X1' • Y1' • Carryin + X1• Y1• Carryin 
Carryout = X1• Y1• Carryin' + X1 • Y1' • Carryin + X1' • Y1• Carryin + X1 • Y1• Carryin
Z2 = Carryout

Мы должны «разработать уравнения для функций И, ИЛИ и НЕ, используя только оператор НЕ-И». не уверен, как это сделать!


person Steller    schedule 15.10.2010    source источник


Ответы (1)


NAND — это просто AND, за которым следует NOT.

С точки зрения реализации других логических операций только с NAND:

  NOT a = a NAND a

a | (a NAND a) | result
--+------------+-------
0 |     1      |  OKAY
1 |     0      |  OKAY

a AND b = NOT (NOT (a AND b))
        = NOT (a NAND b)
        = (a NAND b) NAND (a NAND b)

a | b | x=(a NAND b) | (x NAND x) | result
--+---+--------------+------------+-------
0 | 0 |      1       |     0      |  OKAY
0 | 1 |      1       |     0      |  OKAY
1 | 0 |      1       |     0      |  OKAY
1 | 1 |      0       |     1      |  OKAY

a OR  b = NOT((NOT a) AND (NOT b))               # DeMorgans Law
        = NOT((a NAND a) AND (b NAND b))
        = NOT(NOT ((a NAND a) NAND (b NAND b)))
        = (a NAND a) NAND (b NAND b)

a | b | x=(a NAND a) | y = (b NAND b) | (x NAND y) | result
--+---+--------------+----------------+------------+-------
0 | 0 |       1      |        1       |      0     |  OKAY
0 | 1 |       1      |        0       |      1     |  OKAY
1 | 0 |       0      |        1       |      1     |  OKAY
1 | 1 |       0      |        0       |      1     |  OKAY
person paxdiablo    schedule 15.10.2010
comment
что такое in1 и in2? Можете ли вы показать мне, что такое перенос и перенос, когда вы выполняете фактическое умножение? - person Steller; 15.10.2010
comment
мне бы очень помогло, если бы вы могли умножить двоичное число и составить из него таблицу истинности и пометить переносы, чтобы я мог видеть их в действии, пока они производятся. Спасибо - person Steller; 15.10.2010