Obwody cyfrowe - skrócona instrukcja

Jeśli podstawa lub podstawa systemu liczbowego to „r”, to liczby obecne w tym systemie liczbowym mieszczą się w zakresie od zera do r-1. Wszystkie liczby obecne w tym systemie liczbowym to „r”. Zatem otrzymamy różne systemy liczbowe, wybierając wartości podstawy jako większe lub równe dwa.

W tym rozdziale omówimy temat popular number systemsi jak przedstawić liczbę w odpowiednim systemie liczbowym. Poniższe systemy liczbowe są najczęściej używane.

  • System liczb dziesiętnych
  • System liczb binarnych
  • System liczb ósemkowych
  • System liczb szesnastkowych

System liczb dziesiętnych

Plik base lub podstawa systemu liczb dziesiętnych to 10. Tak więc liczby od 0 do 9 są używane w tym systemie liczbowym. Część liczby znajdująca się po lewej stroniedecimal pointjest znany jako część całkowita. Podobnie część liczby, która znajduje się na prawo od przecinka dziesiętnego, nazywana jest częścią ułamkową.

W tym systemie liczbowym kolejne pozycje po lewej stronie przecinka dziesiętnego o wagach 10 0 , 10 1 , 10 2 , 10 3 i tak dalej. Podobnie kolejne pozycje po prawej stronie przecinka dziesiętnego o wagach 10-1 , 10-2 , 10-3 i tak dalej. Oznacza to, że każda pozycja ma określoną wagę, czylipower of base 10

Przykład

Weź pod uwagę decimal number 1358.246. Część całkowita tej liczby to 1358, a część ułamkowa tej liczby to 0,246. Cyfry 8, 5, 3 i 1 mają wagi odpowiednio 100, 101, 10 2 i 10 3 . Podobnie cyfry 2, 4 i 6 mają wagi odpowiednio 10-1 , 10-2 i 10-3 .

Mathematically, możemy to zapisać jako

1358,246 = (1 × 10 3 ) + (3 × 10 2 ) + (5 × 10 1 ) + (8 × 10 0 ) + (2 × 10 -1 ) +

(4 × 10-2 ) + (6 × 10-3 )

Po uproszczeniu terminów po prawej stronie otrzymamy liczbę dziesiętną, która znajduje się po lewej stronie.

System liczb binarnych

Wszystkie obwody i systemy cyfrowe używają tego systemu liczb binarnych. Plikbase lub podstawa tego systemu liczbowego to 2. Tak więc liczby 0 i 1 są używane w tym systemie liczbowym.

Część liczby znajdująca się po lewej stronie binary pointjest znany jako część całkowita. Podobnie część liczby, która znajduje się na prawo od punktu binarnego, nazywana jest częścią ułamkową.

W tym systemie liczbowym kolejne pozycje na lewo od punktu binarnego mają wagi 2 0 , 2 1 , 2 2 , 2 3 i tak dalej. Podobnie kolejne pozycje na prawo od punktu binarnego o wagach 2 -1 , 2 -2 , 2 -3 i tak dalej. Oznacza to, że każda pozycja ma określoną wagę, czylipower of base 2.

Przykład

Weź pod uwagę binary number 1101.011. Część całkowita tej liczby to 1101, a część ułamkowa tej liczby to 0,011. Cyfry 1, 0, 1 i 1 części całkowitej mają wagi odpowiednio 2 0 , 2 1 , 2 2 , 2 3 . Podobnie, cyfry 0, 1 i 1 części ułamkowej mają masę od 2 -1 , 2 -2 , 2 -3 odpowiednio.

Mathematically, możemy to zapisać jako

1101.011 = (1 × 2 3 ) + (1 × 2 2 ) + (0 × 2 1 ) + (1 × 2 0 ) + (0 × 2 -1 ) +

(1 × 2–2 ) + (1 × 2–3 )

Po uproszczeniu terminów po prawej stronie otrzymamy liczbę dziesiętną, która jest odpowiednikiem liczby binarnej po lewej stronie.

System liczb ósemkowych

Plik base lub podstawa systemu liczb ósemkowych to 8. Tak więc liczby od 0 do 7 są używane w tym systemie liczbowym. Część liczby znajdująca się po lewej stronieoctal pointjest znany jako część całkowita. Podobnie część liczby znajdująca się na prawo od punktu ósemkowego jest nazywana częścią ułamkową.

W tym systemie liczbowym kolejne pozycje na lewo od punktu ósemkowego mają wagi 8 0 , 8 1 , 8 2 , 8 3 i tak dalej. Podobnie kolejne pozycje na prawo od punktu ósemkowego o wagach 8-1 , 8-2 , 8-3 i tak dalej. Oznacza to, że każda pozycja ma określoną wagę, czylipower of base 8.

Przykład

Weź pod uwagę octal number 1457.236. Część całkowita tej liczby to 1457, a część ułamkowa tej liczby to 0,236. Cyfry 7, 5, 4 i 1 mają wagi odpowiednio 8 0 , 8 1 , 8 2 i 8 3 . Podobnie cyfry 2, 3 i 6 mają wagi odpowiednio 8-1 , 8-2 , 8-3 .

Mathematically, możemy to zapisać jako

1457,236 = (1 × 8 3 ) + (4 × 8 2 ) + (5 × 8 1 ) + (7 × 8 0 ) + (2 × 8 -1 ) +

(3 × 8-2 ) + (6 × 8-3 )

Po uproszczeniu terminów po prawej stronie otrzymamy liczbę dziesiętną, która jest odpowiednikiem liczby ósemkowej po lewej stronie.

System liczb szesnastkowych

Plik base lub podstawa systemu liczb szesnastkowo-dziesiętnych to 16. Tak więc liczby od 0 do 9 i litery od A do F są używane w tym systemie liczbowym. Dziesiętny odpowiednik cyfr szesnastkowych od A do F wynosi od 10 do 15.

Część liczby znajdująca się po lewej stronie hexadecimal pointjest znany jako część całkowita. Podobnie część liczby znajdująca się po prawej stronie przecinka szesnastkowego jest nazywana częścią ułamkową.

W tym systemie liczbowym kolejne pozycje po lewej stronie przecinka szesnastkowego mają wagi 16 0 , 16 1 , 16 2 , 16 3 i tak dalej. Podobnie kolejne pozycje po prawej stronie przecinka szesnastkowego o wadze 16-1 , 16-2 , 16-3 i tak dalej. Oznacza to, że każda pozycja ma określoną wagę, czylipower of base 16.

Przykład

Weź pod uwagę Hexa-decimal number 1A05.2C4. Część całkowita tej liczby to 1A05, a część ułamkowa tej liczby to 0,2C4. Cyfry 5, 0, A i 1 mają wagi odpowiednio 16 0 , 16 1 , 16 2 i 16 3 . Podobnie cyfry 2, C i 4 mają wagi odpowiednio 16-1 , 16-2 i 16-3 .

Mathematically, możemy to zapisać jako

1A05.2C4 = (1 × 16 3 ) + (10 × 16 2 ) + (0 × 16 1 ) + (5 × 16 0 ) + (2 × 16 -1 ) +

(12 × 16-2 ) + (4 × 16-3 )

Po uproszczeniu terminów po prawej stronie otrzymamy liczbę dziesiętną, która jest odpowiednikiem liczby szesnastkowej po lewej stronie.

W poprzednim rozdziale widzieliśmy cztery główne systemy liczbowe. W tym rozdziale przeliczmy liczby z jednego systemu liczbowego na drugi, aby znaleźć równoważną wartość.

Konwersja liczb dziesiętnych na inne podstawy

Jeśli liczba dziesiętna zawiera zarówno część całkowitą, jak i część ułamkową, zamień osobno obie części liczby dziesiętnej na inną podstawę. Wykonaj poniższe czynności, aby przekonwertować liczbę dziesiętną na odpowiadającą jej liczbę o dowolnej podstawie „r”.

  • Zrobić division części całkowitej liczby dziesiętnej i successive quotientsz podstawą „r” i zanotuj reszty, aż iloraz wyniesie zero. Rozważmy reszty w odwrotnej kolejności, aby otrzymać część całkowitą równoważnej liczby podstawy „r”. Oznacza to, że pierwsza i ostatnia reszta oznaczają odpowiednio najmniej znaczącą cyfrę i najbardziej znaczącą cyfrę.

  • Zrobić multiplication części ułamkowej liczby dziesiętnej i successive fractionsz podstawą „r” i zanotuj przeniesienie, aż wynik będzie równy zero lub uzyskana zostanie żądana liczba równoważnych cyfr. Rozważ normalną sekwencję przeniesienia, aby otrzymać ułamkową część równoważnej liczby zasad „r”.

Zamiana liczb dziesiętnych na dwójkowe

Podczas konwersji liczby dziesiętnej na jej równoważną liczbę binarną mają miejsce następujące dwa rodzaje operacji.

  • Dzielenie części całkowitej i kolejnych ilorazów o podstawie 2.
  • Mnożenie części ułamkowej i kolejne ułamki o podstawie 2.

Example

Weź pod uwagę decimal number 58.25. Tutaj część całkowita to 58, a część ułamkowa to 0,25.

Step 1 - Dzielenie 58 i kolejne ilorazy o podstawie 2.

Operacja Iloraz Reszta
58/2 29 0 (LSB)
29/2 14 1
14/2 7 0
7/2 3 1
3/2 1 1
1/2 0 1(MSB)

⇒ (58) 10 = (111010) 2

Dlatego też integer part równoważnej liczby binarnej to 111010.

Step 2 - Mnożenie przez 0,25 i kolejne ułamki o podstawie 2.

Operacja Wynik Nieść
0,25 x 2 0.5 0
0,5 x 2 1.0 1
- 0.0 -

⇒ (0,25) 10 = (0,01) 2

Dlatego też fractional part równoważnej liczby binarnej to .01

⇒ (58,25) 10 = (111010,01) 2

Dlatego też binary equivalent liczby dziesiętnej 58,25 to 111010,01.

Zamiana liczb dziesiętnych na ósemkowe

Podczas konwersji liczby dziesiętnej na jej równoważną liczbę ósemkową mają miejsce następujące dwa rodzaje operacji.

  • Dzielenie części całkowitej i kolejnych ilorazów o podstawie 8.

  • Mnożenie części ułamkowej i kolejne ułamki o podstawie 8.

Example

Weź pod uwagę decimal number 58.25. Tutaj część całkowita to 58, a część ułamkowa to 0,25.

Step 1 - Dzielenie 58 i kolejne ilorazy o podstawie 8.

Operacja Iloraz Reszta
58/8 7 2
7/8 0 7

⇒ (58) 10 = (72) 8

Dlatego też integer part równoważnej liczby ósemkowej to 72.

Step 2 - Mnożenie przez 0,25 i kolejne ułamki o podstawie 8.

Operacja Wynik Nieść
0,25 x 8 2.00 2
- 0,00 -

⇒ (0,25) 10 = (0,2) 8

Dlatego też fractional part równoważnej liczby ósemkowej to 0,2

⇒ (58,25) 10 = (72,2) 8

Dlatego też octal equivalent liczby dziesiętnej 58,25 to 72,2.

Zamiana liczb dziesiętnych na szesnastkowe

Podczas konwersji liczby dziesiętnej na jej równoważną liczbę szesnastkową mają miejsce następujące dwa typy operacji.

  • Dzielenie części całkowitej i kolejnych ilorazów o podstawie 16.
  • Mnożenie części ułamkowej i kolejne ułamki o podstawie 16.

Example

Weź pod uwagę decimal number 58.25. Tutaj część całkowita to 58, a część dziesiętna to 0,25.

Step 1 - Dzielenie 58 i kolejne ilorazy o podstawie 16.

Operacja Iloraz Reszta
58/16 3 10 = A
3/16 0 3

⇒ (58) 10 = (3A) 16

Dlatego też integer part równoważnej liczby szesnastkowej wynosi 3A.

Step 2 - Mnożenie przez 0,25 i kolejne ułamki o podstawie 16.

Operacja Wynik Nieść
0,25 x 16 4.00 4
- 0,00 -

⇒ (0,25) 10 = (0,4) 16

Dlatego też fractional part równoważnej liczby szesnastkowej wynosi 0,4.

⇒(58.25)10 = (3A.4)16

Dlatego też Hexa-decimal equivalent liczby dziesiętnej 58,25 to 3A.4.

Konwersja liczb binarnych na inne bazy

Proces konwersji liczby z dwójkowej na dziesiętną różni się od procesu konwersji liczby binarnej na inne zasady. Omówmy teraz konwersję liczby binarnej na systemy liczb dziesiętnych, ósemkowych i szesnastkowych, jeden po drugim.

Zamiana liczb binarnych na dziesiętne

Aby przekształcić liczbę binarną na jej równoważną liczbę dziesiętną, najpierw pomnóż bity liczby binarnej przez odpowiednie wagi pozycyjne, a następnie dodaj wszystkie te iloczyny.

Example

Weź pod uwagę binary number 1101.11.

Mathematically, możemy to zapisać jako

(1101.11) 2 = (1 × 2 3 ) + (1 × 2 2 ) + (0 × 2 1 ) + (1 × 2 0 ) + (1 × 2 -1 ) +

(1 × 2–2 )

⇒ (1101.11) 2 = 8 + 4 + 0 + 1 + 0,5 + 0,25 = 13,75

⇒ (1101.11) 2 = (13,75) 10

Dlatego też decimal equivalent liczby binarnej 1101.11 to 13,75.

Konwersja binarna na ósemkową

Wiemy, że podstawy systemów liczb binarnych i ósemkowych to odpowiednio 2 i 8. Trzy bity liczby binarnej odpowiadają jednej cyfrze ósemkowej, ponieważ 2 3 = 8.

Wykonaj te dwa kroki, aby przekonwertować liczbę binarną na jej równoważną liczbę ósemkową.

  • Zacznij od punktu binarnego i utwórz grupy po 3 bity po obu stronach punktu binarnego. Jeśli jeden lub dwa bity są mniejsze podczas tworzenia grupy 3 bitów, należy dołączyć wymaganą liczbę zer na skrajnych stronach.

  • Wpisz cyfry ósemkowe odpowiadające każdej grupie 3 bitów.

Example

Weź pod uwagę binary number 101110.01101.

Step 1 - Utwórz grupy po 3 bity po obu stronach punktu binarnego.

101 110.011 01

Tutaj, po prawej stronie punktu binarnego, ostatnia grupa ma tylko 2 bity. Więc dołącz jedno zero po skrajnej stronie, aby było to grupa 3 bitów.

⇒ 101 110,011 010

Step 2 - Wpisz cyfry ósemkowe odpowiadające każdej grupie 3 bitów.

⇒ (101 110,011 010) 2 = (56,32) 8

Dlatego też octal equivalent liczby binarnej 101110,01101 to 56,32.

Zamiana liczb dwójkowych na szesnastkowe

Wiemy, że podstawy systemów liczb dwójkowych i szesnastkowych to odpowiednio 2 i 16. Cztery bity liczby dwójkowej odpowiadają jednej cyfrze szesnastkowej , ponieważ 2 4 = 16.

Wykonaj te dwa kroki, aby przekonwertować liczbę binarną na odpowiadającą jej liczbę szesnastkową.

  • Zacznij od punktu binarnego i utwórz grupy po 4 bity po obu stronach punktu binarnego. Jeśli niektóre bity są mniejsze podczas tworzenia grupy 4 bitów, należy dołączyć wymaganą liczbę zer na skrajnych stronach.

  • Wpisz cyfry dziesiętne szesnastkowe odpowiadające każdej grupie 4 bitów.

Example

Weź pod uwagę binary number 101110.01101

Step 1 - Utwórz grupy po 4 bity po obu stronach punktu binarnego.

10 1110.0110 1

Tutaj pierwsza grupa ma tylko 2 bity. Więc dołącz dwa zera po skrajnej stronie, aby utworzyć grupę 4 bitów. Podobnie, dołącz trzy zera po skrajnej stronie, aby ostatnia grupa była również grupą 4 bitów.

⇒ 0010 1110,0110 1000

Step 2 - Wpisz cyfry szesnastkowe dziesiętne odpowiadające każdej grupie 4 bitów.

⇒ (0010 1110,0110 1000) 2 = (2E.68) 16

Dlatego też Hexa-decimal equivalent liczby binarnej 101110.01101 to (2E.68).

Zamiana liczby ósemkowej na inne zasady

Proces konwersji liczby z ósemkowej na dziesiętną różni się od procesu przekształcania liczby ósemkowej na inne zasady. Omówmy teraz konwersję liczby ósemkowej na systemy liczb dziesiętnych, dwójkowych i szesnastkowych, jeden po drugim.

Konwersja ósemkowa na dziesiętną

Aby przekształcić liczbę ósemkową na jej równoważną liczbę dziesiętną, najpierw pomnóż cyfry liczby ósemkowej przez odpowiednie wagi pozycyjne, a następnie dodaj wszystkie te iloczyny.

Example

Weź pod uwagę octal number 145.23.

Mathematically, możemy to zapisać jako

(145,23) 8 = (1 × 8 2 ) + (4 × 8 1 ) + (5 × 8 0 ) + (2 × 8-1 ) + (3 × 8-2 )

⇒ (145,23) 8 = 64 + 32 + 5 + 0,25 + 0,05 = 101,3

⇒ (145,23) 8 = (101,3) 10

Dlatego też decimal equivalent liczby ósemkowej 145,23 to 101,3.

Konwersja ósemkowa na binarną

Proces konwersji liczby ósemkowej na równoważną liczbę binarną jest dokładnie odwrotny do procesu konwersji liczby binarnej na ósemkową. Przedstawiając każdą cyfrę ósemkową za pomocą 3 bitów, otrzymamy równoważną liczbę binarną.

Example

Weź pod uwagę octal number 145.23.

Reprezentuj każdą cyfrę ósemkową za pomocą 3 bitów.

(145,23) 8 = (001100101,010 011) 2

Wartość nie zmienia się po usunięciu zer, które znajdują się po skrajnej stronie.

⇒ (145,23) 8 = (1100101,010011) 2

Dlatego też binary equivalent liczby ósemkowej 145,23 to 1100101,010011.

Zamiana liczb ósemkowych na szesnastkowe

Wykonaj te dwa kroki, aby przekonwertować liczbę ósemkową na jej równoważną liczbę szesnastkową.

  • Zamień liczbę ósemkową na odpowiadającą jej liczbę binarną.
  • Zamień powyższą liczbę binarną na odpowiadającą jej liczbę szesnastkową.

Example

Weź pod uwagę octal number 145.23

W poprzednim przykładzie otrzymaliśmy binarny odpowiednik liczby ósemkowej 145,23 jako 1100101,010011.

Postępując zgodnie z procedurą konwersji liczb dwójkowych na szesnastkowo-dziesiętne, otrzymamy

(1100101.010011) 2 = (65,4 ° C) 16

⇒ (145,23) 8 = (65,4 ° C) 16

Dlatego też Hexa-decimal equivalento ósemkowej liczby 145.23 jest 65,4 C .

Konwersja liczb szesnastkowych na inne zasady

Proces przekształcania liczby szesnastkowej na dziesiętną różni się od procesu zamiany liczby szesnastkowej na inne zasady. Omówmy teraz konwersję liczby szesnastkowej dziesiętnej na dziesiętne, binarne i ósemkowe systemy liczbowe jeden po drugim.

Konwersja szesnastkowo-dziesiętna na dziesiętną

Aby przekonwertować liczbę szesnastkową na jej równoważną liczbę dziesiętną, najpierw pomnóż cyfry liczby szesnastkowej przez odpowiednie wagi pozycyjne, a następnie dodaj wszystkie te iloczyny.

Example

Weź pod uwagę Hexa-decimal number 1A5.2

Mathematically, możemy to zapisać jako

(1A5.2) 16 = (1 × 16 2 ) + (10 × 16 1 ) + (5 × 16 0 ) + (2 × 16 -1 )

⇒ (1A5.2) 16 = 256 + 160 + 5 + 0,125 = 421,125

⇒ (1A5.2) 16 = (421,125) 10

Dlatego też decimal equivalent liczby szesnastkowej 1A5.2 to 421,125.

Konwersja szesnastkowo-dziesiętna na dwójkową

Proces konwersji liczby szesnastkowej na jej równoważną liczbę binarną jest dokładnie odwrotny do procesu konwersji liczby szesnastkowej na szesnastkową. Reprezentując każdą szesnastkową cyfrę dziesiętną za pomocą 4 bitów, otrzymamy równoważną liczbę binarną.

Example

Weź pod uwagę Hexa-decimal number 65.4C

Reprezentuj każdą cyfrę szesnastkową z 4 bitami.

(65,4 C) 6 = (0110 0101.0100 1100) 2

Wartość nie zmienia się po usunięciu zer, które znajdują się na dwóch skrajnych stronach.

⇒ (65,4 C) 16 = (1100101,010011) 2

Dlatego też binary equivalent liczby szesnastkowej 65,4C to 1100101,010011.

Konwersja szesnastkowo-dziesiętna na ósemkową

Wykonaj te dwa kroki, aby przekonwertować liczbę szesnastkową na jej równoważną liczbę ósemkową.

  • Konwertuj liczbę szesnastkową na jej równoważną liczbę binarną.
  • Zamień powyższą liczbę binarną na odpowiadającą jej liczbę ósemkową.

Example

Weź pod uwagę Hexa-decimal number 65.4C

W poprzednim przykładzie otrzymaliśmy binarny odpowiednik liczby szesnastkowej 65,4C jako 1100101.010011.

Postępując zgodnie z procedurą konwersji binarnej na ósemkową, otrzymamy

(1100101.010011) 2 = (145,23) 8

⇒ (65,4C) 16 = (145,23)

Dlatego też octal equivalentliczby szesnastkowej 65,4 C wynosi 145,23.

Możemy podzielić liczby binarne na następujące dwie grupy - Unsigned numbers i Signed numbers.

Unsigned Numbers

Liczby bez znaku zawierają tylko wielkość liczby. Nie mają żadnego znaku. Oznacza to, że wszystkie liczby binarne bez znaku są dodatnie. Podobnie jak w systemie liczb dziesiętnych, umieszczenie znaku dodatniego przed liczbą jest opcjonalne w przypadku liczb dodatnich. Dlatego wszystkie liczby dodatnie, w tym zero, mogą być traktowane jako liczby bez znaku, jeśli przed liczbą nie jest przypisany znak dodatni.

Podpisane numery

Podpisane liczby zawierają zarówno znak, jak i wielkość liczby. Zwykle znak jest umieszczony przed liczbą. Musimy więc wziąć pod uwagę znak dodatni dla liczb dodatnich i znak ujemny dla liczb ujemnych. Dlatego wszystkie liczby mogą być traktowane jako liczby ze znakiem, jeśli przed numerem zostanie nadany odpowiedni znak.

Jeśli bit znaku ma wartość zero, oznacza to, że liczba binarna jest dodatnia. Podobnie, jeśli bit znaku wynosi jeden, co wskazuje, że liczba binarna jest ujemna.

Reprezentacja niepodpisanych liczb binarnych

Bity obecne w nieznakowanej liczbie binarnej zawierają rozszerzenie magnitudeliczby. Oznacza to, że jeśli liczba binarna bez podpisu zawiera‘N’ bity, a potem wszystko N bity reprezentują wielkość liczby, ponieważ nie ma ona żadnego bitu znaku.

Example

Weź pod uwagę decimal number 108. Binarny odpowiednik tej liczby to1101100. To jest reprezentacja liczby binarnej bez znaku.

(108) 10 = (1101100) 2

Ma 7 bitów. Te 7 bitów reprezentuje wielkość liczby 108.

Reprezentacja podpisanych liczb binarnych

Najbardziej znaczący bit (MSB) liczb binarnych ze znakiem jest używany do wskazania znaku liczb. Stąd jest również nazywany jakosign bit. Znak dodatni jest reprezentowany przez umieszczenie „0” w bicie znaku. Podobnie znak ujemny jest reprezentowany przez umieszczenie „1” w bicie znaku.

Jeśli liczba binarna ze znakiem zawiera „N” bitów, to (N-1) bitów reprezentuje tylko wielkość liczby, ponieważ jeden bit (MSB) jest zarezerwowany do reprezentowania znaku liczby.

Są trzy types of representations dla liczb binarnych ze znakiem

  • Formularz wielkości znaku
  • Forma uzupełnienia 1
  • Forma uzupełnienia 2

Reprezentacja liczby dodatniej we wszystkich tych trzech formach jest taka sama. Ale tylko reprezentacja liczby ujemnej będzie się różnić w każdej postaci.

Example

Weź pod uwagę positive decimal number +108. Binarny odpowiednik wielkości tej liczby to 1101100. Te 7 bitów reprezentuje wielkość liczby 108. Ponieważ jest to liczba dodatnia, traktuj bit znaku jako zero, który znajduje się po lewej stronie wielkości.

(+108) 10 = (01101100) 2

Dlatego też signed binary representationdodatniej liczby dziesiętnej +108 wynosi. Tak więc ta sama reprezentacja jest poprawna w postaci znaku-wielkości, postaci uzupełnienia 1 i postaci uzupełnienia 2 dla dodatniej liczby dziesiętnej +108.

Formularz wielkości znaku

W postaci wielkości znaku MSB służy do reprezentowania sign liczby, a pozostałe bity reprezentują magnitudeliczby. Więc po prostu dołącz bit znaku po lewej stronie liczby binarnej bez znaku. Ta reprezentacja jest podobna do reprezentacji liczb dziesiętnych ze znakiem.

Example

Weź pod uwagę negative decimal number -108. Wielkość tej liczby wynosi 108. Wiemy, że binarna reprezentacja liczby 108 bez znaku to 1101100. Ma 7 bitów. Wszystkie te bity reprezentują wielkość.

Ponieważ podana liczba jest ujemna, traktuj bit znaku jako jeden, który znajduje się po lewej stronie wielkości.

(−108) 10 = (11101100) 2

Dlatego reprezentacja wielkości znaku -108 wynosi 11101100.

Forma uzupełnienia 1

Uzupełnienie liczby do 1 uzyskuje się przez complementing all the bitsliczby binarnej ze znakiem. Tak więc uzupełnienie liczby dodatniej 1 daje liczbę ujemną. Podobnie, uzupełnienie 1 liczby ujemnej daje liczbę dodatnią.

Oznacza to, że jeśli wykonasz dwa razy uzupełnienie 1 liczby binarnej, w tym bit znaku, otrzymasz oryginalną liczbę binarną ze znakiem.

Example

Weź pod uwagę negative decimal number -108. Wielkość tej liczby wynosi 108. Wiemy, że binarna reprezentacja 108 ze znakiem to 01101100.

Ma 8 bitów. MSB tej liczby wynosi zero, co oznacza liczbę dodatnią. Dopełnienie zera to jedynka i odwrotnie. Więc zamień zera na jedynki i jedynki na zera, aby uzyskać liczbę ujemną.

(−108) 10 = (10010011) 2

Dlatego też 1’s complement of (108)10 jest (10010011)2.

Forma uzupełnienia 2

Uzupełnienie liczby binarnej do liczby dwójkowej uzyskuje się przez adding one to the 1’s complementliczby binarnej ze znakiem. Tak więc uzupełnienie liczby dodatniej do 2 daje liczbę ujemną. Podobnie uzupełnienie liczby ujemnej do 2 daje liczbę dodatnią.

Oznacza to, że jeśli wykonasz dwukrotne uzupełnienie liczby binarnej do dwójki, w tym bit znaku, otrzymasz oryginalną liczbę binarną ze znakiem.

Example

Weź pod uwagę negative decimal number -108.

Znamy uzupełnienie 1 do (108)10 jest (10010011)2

Komplement 2 z (108) 10 = komplement 1 z (108) 10 + 1.

= 10010011 + 1

= 10010100

Dlatego też 2’s complement of (108)10 jest (10010100)2.

W tym rozdziale omówimy podstawowe operacje arytmetyczne, które można wykonać na dowolnych dwóch liczbach binarnych ze znakiem przy użyciu metody dopełnienia do 2. Plikbasic arithmetic operations to dodawanie i odejmowanie.

Dodanie dwóch podpisanych liczb binarnych

Rozważ dwie liczby binarne A i B ze znakiem, które są reprezentowane w postaci uzupełnienia do 2. Możemy wykonaćadditiontych dwóch liczb, co jest podobne do dodania dwóch liczb binarnych bez znaku. Jeśli jednak suma wynikowa zawiera bit wykonania ze znaku, odrzuć go (zignoruj), aby uzyskać poprawną wartość.

Jeśli suma wypadkowa jest dodatnia, możesz bezpośrednio określić jej wielkość. Ale jeśli otrzymana suma jest ujemna, weź uzupełnienie do 2, aby otrzymać wielkość.

Przykład 1

Wykonajmy addition dwóch liczb dziesiętnych +7 and +4 przy użyciu metody dopełnienia do 2.

Plik 2’s complement reprezentacje +7 i +4 z 5 bitami każdy pokazano poniżej.

(+7) 10 = (00111) 2

(+4) 10 = (00100) 2

Dodanie tych dwóch liczb to

(+7) 10 + (+ 4) 10 = (00111) 2 + (00100) 2

⇒ (+7) 10 + (+ 4) 10 = (01011) 2 .

Otrzymana suma zawiera 5 bitów. Tak więc nie ma wykonania z bitu znaku. Bit znaku „0” wskazuje, że otrzymana suma topositive. Tak więc suma wynosi 11 w systemie liczb dziesiętnych. Dlatego dodanie dwóch liczb dodatnich da kolejną liczbę dodatnią.

Przykład 2

Wykonajmy addition dwóch liczb dziesiętnych -7 i -4 przy użyciu metody dopełnienia do 2.

Plik 2’s complement reprezentacje -7 i -4 z 5 bitami każdy pokazano poniżej.

(−7) 10 = (11001) 2

(−4) 10 = (11100) 2

Dodanie tych dwóch liczb to

(−7) 10 + (−4) 10 = (11001) 2 + (11100) 2

⇒ (−7) 10 + (−4) 10 = (110101) 2 .

Otrzymana suma zawiera 6 bitów. W tym przypadku przeniesienie jest uzyskiwane z bitu znaku. Więc możemy to usunąć

Wynikowa suma po usunięciu przeniesienia wynosi (−7) 10 + (−4) 10 =(10101)2.

Bit znaku „1” wskazuje, że otrzymana suma to negative. Tak więc, biorąc uzupełnienie do 2, otrzymamy wielkość wynikowej sumy jako 11 w systemie liczb dziesiętnych. Dlatego dodanie dwóch liczb ujemnych da kolejną liczbę ujemną.

Odejmowanie dwóch podpisanych liczb binarnych

Rozważ dwie liczby binarne A i B ze znakiem, które są reprezentowane w postaci uzupełnienia do 2. Wiemy, że uzupełnienie liczby dodatniej do 2 daje liczbę ujemną. Tak więc, ilekroć musimy odjąć liczbę B od liczby A, weź uzupełnienie B do 2 i dodaj je do A. Więc,mathematically możemy to zapisać jako

A - B = A + (2's complement of B)

Podobnie, jeśli musimy odjąć liczbę A od liczby B, to weź uzupełnienie A do 2 i dodaj je do B. Więc, mathematically możemy to zapisać jako

B - A = B + (2's complement of A)

Tak więc odejmowanie dwóch liczb binarnych ze znakiem jest podobne do dodawania dwóch liczb binarnych ze znakiem. Ale musimy wziąć uzupełnienie do 2 liczby, która ma zostać odjęta. To jestadvantagetechnika uzupełnienia do 2. Postępuj zgodnie z tymi samymi zasadami dodawania dwóch liczb binarnych ze znakiem.

Przykład 3

Wykonajmy subtraction dwóch liczb dziesiętnych +7 and +4 przy użyciu metody dopełnienia do 2.

Odejmowanie tych dwóch liczb to

(+7) 10 - (+4) 10 = (+7) 10 + (−4) 10 .

Plik 2’s complement reprezentacje +7 i -4 z 5 bitami każdy pokazano poniżej.

(+7) 10 = (00111) 2

(+4) 10 = (11100) 2

⇒ (+7) 10 + (+4) 10 = (00111) 2 + (11100) 2 = (00011) 2

Tutaj przeniesienie uzyskane z bitu znaku. Więc możemy to usunąć. Wynikowa suma po usunięciu przeniesienia to

(+7) 10 + (+4) 10 =(00011)2

Bit znaku „0” wskazuje, że otrzymana suma to positive. Zatem wielkość tego wynosi 3 w systemie liczb dziesiętnych. Dlatego odjęcie dwóch liczb dziesiętnych +7 i +4 daje +3.

Przykład 4

Wykonajmy subtraction of dwie liczby dziesiętne +4 i +7 przy użyciu metody dopełnienia do 2.

Odejmowanie tych dwóch liczb to

(+4) 10 - (+7) 10 = (+4) 10 + (−7) 10 .

Plik 2’s complement reprezentacje +4 i -7 z 5 bitami każdy pokazano poniżej.

(+4) 10 = (00100) 2

(-7) 10 = (11001) 2

⇒ (+4) 10 + (-7) 10 = (00100) 2 + (11001) 2 = (11101) 2

Tutaj przeniesienie nie jest uzyskiwane z bitu znaku. Bit znaku „1” wskazuje, że otrzymana suma tonegative. Tak więc, biorąc uzupełnienie do 2, otrzymamy wielkość sumy wynikowej jako 3 w systemie liczb dziesiętnych. Dlatego odjęcie dwóch liczb dziesiętnych +4 i +7 wynosi -3.

W kodowaniu, gdy liczby lub litery są reprezentowane przez określoną grupę symboli, mówi się, że kodowana jest ta liczba lub litera. Grupa symboli nosi nazwę ascode. Dane cyfrowe są reprezentowane, przechowywane i przesyłane jako grupa bitów. Ta grupa bitów jest również nazywana jakobinary code.

Kody binarne można podzielić na dwa typy.

  • Kody ważone
  • Kody nieważone

Jeśli kod ma wagi pozycyjne, mówi się, że tak weighted code. W przeciwnym razie jest to kod nieważony. Kody ważone można dalej klasyfikować jako kody ważone dodatnio i kody ważone ujemnie.

Kody binarne dla cyfr dziesiętnych

W poniższej tabeli przedstawiono różne kody binarne cyfr dziesiętnych od 0 do 9.

Cyfra dziesiętna 8421 Code 2421 Code 84-2-1 Kod Kod nadmiaru 3
0 0000 0000 0000 0011
1 0001 0001 0111 0100
2 0010 0010 0110 0101
3 0011 0011 0101 0110
4 0100 0100 0100 0111
5 0101 1011 1011 1000
6 0110 1100 1010 1001
7 0111 1101 1001 1010
8 1000 1110 1000 1011
9 1001 1111 1111 1100

Mamy 10 cyfr w systemie dziesiętnym. Aby przedstawić te 10 cyfr w systemie dwójkowym, potrzebujemy minimum 4 bitów. Ale przy 4 bitach będzie 16 unikalnych kombinacji zer i jedynek. Ponieważ mamy tylko 10 cyfr dziesiętnych, pozostałe 6 kombinacji zer i jedynek nie jest wymaganych.

8 4 2 1 kod

  • Wagi tego kodu to 8, 4, 2 i 1.

  • Ten kod ma wszystkie dodatnie wagi. Więc to jestpositively weighted code.

  • Ten kod jest również nazywany jako natural BCD (Dziesiętne w kodzie binarnym) code.

Example

Znajdźmy odpowiednik BCD liczby dziesiętnej 786. Ta liczba ma 3 cyfry dziesiętne 7, 8 i 6. Z tabeli możemy zapisać kody BCD (8421) 7, 8 i 6 to odpowiednio 0111, 1000 i 0110 .

∴ (786)10 = (011110000110)BCD

W reprezentacji BCD występuje 12 bitów, ponieważ każdy kod BCD cyfry dziesiętnej ma 4 bity.

2 4 2 1 kod

  • Wagi tego kodu to 2, 4, 2 i 1.

  • Ten kod ma wszystkie dodatnie wagi. Więc to jestpositively weighted code.

  • To jest unnatural BCDkod. Suma wag nienaturalnych kodów BCD wynosi 9.

  • To jest self-complementingkod. Kody samouzupełniające zapewniają uzupełnienie dziewiątki liczby dziesiętnej, po prostu zamieniając jedynki i 0 w jej równoważnej reprezentacji 2421.

Example

Znajdźmy 2421 odpowiednik liczby dziesiętnej 786. Ta liczba ma 3 cyfry dziesiętne 7, 8 i 6. Z tabeli możemy zapisać 2421 kodów 7, 8 i 6 to odpowiednio 1101, 1110 i 1100.

Dlatego 2421 odpowiednikiem liczby dziesiętnej 786 jest 110111101100.

8 4-2-1 kod

  • Wagi tego kodu to 8, 4, -2 i -1.

  • Ten kod ma wagi ujemne wraz z wagami dodatnimi. Więc to jestnegatively weighted code.

  • To jest unnatural BCD kod.

  • To jest self-complementing kod.

Example

Znajdźmy odpowiednik 8 4-2-1 liczby dziesiętnej 786. Ta liczba ma 3 cyfry dziesiętne 7, 8 i 6. Z tabeli możemy zapisać 8 4-2-1 kody 7, 8 i 6 to odpowiednio 1001, 1000 i 1010.

Zatem odpowiednik 8 4 -2 -1 liczby dziesiętnej 786 to 100110001010.

Nadmiar kodu 3

  • Ten kod nie ma wag. Więc to jestun-weighted code.

  • Otrzymamy kod Nadmiaru 3 liczby dziesiętnej, dodając trzy (0011) do binarnego odpowiednika tej liczby dziesiętnej. W związku z tym nazywa się to kodem Nadwyżki 3.

  • To jest self-complementing kod.

Example

Znajdźmy ekwiwalent Nadwyżki 3 liczby dziesiętnej 786. Ta liczba ma 3 cyfry dziesiętne 7, 8 i 6. Z tabeli możemy zapisać kody Nadwyżki 3 z 7, 8 i 6 to odpowiednio 1010, 1011 i 1001.

Therefore, the Excess 3 equivalent of the decimal number 786 is 101010111001

Gray Code

The following table shows the 4-bit Gray codes corresponding to each 4-bit binary code.

Decimal Number Binary Code Gray Code
0 0000 0000
1 0001 0001
2 0010 0011
3 0011 0010
4 0100 0110
5 0101 0111
6 0110 0101
7 0111 0100
8 1000 1100
9 1001 1101
10 1010 1111
11 1011 1110
12 1100 1010
13 1101 1011
14 1110 1001
15 1111 1000
  • This code doesn’t have any weights. So, it is an un-weighted code.

  • In the above table, the successive Gray codes are differed in one bit position only. Hence, this code is called as unit distance code.

Binary code to Gray Code Conversion

Follow these steps for converting a binary code into its equivalent Gray code.

  • Consider the given binary code and place a zero to the left of MSB.

  • Compare the successive two bits starting from zero. If the 2 bits are same, then the output is zero. Otherwise, output is one.

  • Repeat the above step till the LSB of Gray code is obtained.

Example

From the table, we know that the Gray code corresponding to binary code 1000 is 1100. Now, let us verify it by using the above procedure.

Given, binary code is 1000.

Step 1 − By placing zero to the left of MSB, the binary code will be 01000.

Step 2 − By comparing successive two bits of new binary code, we will get the gray code as 1100.

We know that the bits 0 and 1 corresponding to two different range of analog voltages. So, during transmission of binary data from one system to the other, the noise may also be added. Due to this, there may be errors in the received data at other system.

That means a bit 0 may change to 1 or a bit 1 may change to 0. We can’t avoid the interference of noise. But, we can get back the original data first by detecting whether any error(s) present and then correcting those errors. For this purpose, we can use the following codes.

  • Error detection codes
  • Error correction codes

Error detection codes − are used to detect the error(s) present in the received data (bit stream). These codes contain some bit(s), which are included (appended) to the original bit stream. These codes detect the error, if it is occurred during transmission of the original data (bit stream).Example − Parity code, Hamming code.

Error correction codes − are used to correct the error(s) present in the received data (bit stream) so that, we will get the original data. Error correction codes also use the similar strategy of error detection codes.Example − Hamming code.

Therefore, to detect and correct the errors, additional bit(s) are appended to the data bits at the time of transmission.

Parity Code

It is easy to include (append) one parity bit either to the left of MSB or to the right of LSB of original bit stream. There are two types of parity codes, namely even parity code and odd parity code based on the type of parity being chosen.

Even Parity Code

The value of even parity bit should be zero, if even number of ones present in the binary code. Otherwise, it should be one. So that, even number of ones present in even parity code. Even parity code contains the data bits and even parity bit.

The following table shows the even parity codes corresponding to each 3-bit binary code. Here, the even parity bit is included to the right of LSB of binary code.

Binary Code Even Parity bit Even Parity Code
000 0 0000
001 1 0011
010 1 0101
011 0 0110
100 1 1001
101 0 1010
110 0 1100
111 1 1111

Here, the number of bits present in the even parity codes is 4. So, the possible even number of ones in these even parity codes are 0, 2 & 4.

  • If the other system receives one of these even parity codes, then there is no error in the received data. The bits other than even parity bit are same as that of binary code.

  • If the other system receives other than even parity codes, then there will be an error(s) in the received data. In this case, we can’t predict the original binary code because we don’t know the bit position(s) of error.

Therefore, even parity bit is useful only for detection of error in the received parity code. But, it is not sufficient to correct the error.

Odd Parity Code

The value of odd parity bit should be zero, if odd number of ones present in the binary code. Otherwise, it should be one. So that, odd number of ones present in odd parity code. Odd parity code contains the data bits and odd parity bit.

The following table shows the odd parity codes corresponding to each 3-bit binary code. Here, the odd parity bit is included to the right of LSB of binary code.

Binary Code Odd Parity bit Odd Parity Code
000 1 0001
001 0 0010
010 0 0100
011 1 0111
100 0 1000
101 1 1011
110 1 1101
111 0 1110

Here, the number of bits present in the odd parity codes is 4. So, the possible odd number of ones in these odd parity codes are 1 & 3.

  • If the other system receives one of these odd parity codes, then there is no error in the received data. The bits other than odd parity bit are same as that of binary code.

  • If the other system receives other than odd parity codes, then there is an error(s) in the received data. In this case, we can’t predict the original binary code because we don’t know the bit position(s) of error.

Therefore, odd parity bit is useful only for detection of error in the received parity code. But, it is not sufficient to correct the error.

Hamming Code

Hamming code is useful for both detection and correction of error present in the received data. This code uses multiple parity bits and we have to place these parity bits in the positions of powers of 2.

The minimum value of 'k' for which the following relation is correct (valid) is nothing but the required number of parity bits.

$$2^k\geq n+k+1$$

Where,

‘n’ is the number of bits in the binary code (information)

‘k’ is the number of parity bits

Therefore, the number of bits in the Hamming code is equal to n + k.

Let the Hamming code is $b_{n+k}b_{n+k-1}.....b_{3}b_{2}b_{1}$ & parity bits $p_{k}, p_{k-1}, ....p_{1}$. We can place the ‘k’ parity bits in powers of 2 positions only. In remaining bit positions, we can place the ‘n’ bits of binary code.

Based on requirement, we can use either even parity or odd parity while forming a Hamming code. But, the same parity technique should be used in order to find whether any error present in the received data.

Follow this procedure for finding parity bits.

  • Find the value of p1, based on the number of ones present in bit positions b3, b5, b7 and so on. All these bit positions (suffixes) in their equivalent binary have ‘1’ in the place value of 20.

  • Find the value of p2, based on the number of ones present in bit positions b3, b6, b7 and so on. All these bit positions (suffixes) in their equivalent binary have ‘1’ in the place value of 21.

  • Find the value of p3, based on the number of ones present in bit positions b5, b6, b7 and so on. All these bit positions (suffixes) in their equivalent binary have ‘1’ in the place value of 22.

  • Similarly, find other values of parity bits.

Follow this procedure for finding check bits.

  • Find the value of c1, based on the number of ones present in bit positions b1, b3, b5, b7 and so on. All these bit positions (suffixes) in their equivalent binary have ‘1’ in the place value of 20.

  • Find the value of c2, based on the number of ones present in bit positions b2, b3, b6, b7 and so on. All these bit positions (suffixes) in their equivalent binary have ‘1’ in the place value of 21.

  • Find the value of c3, based on the number of ones present in bit positions b4, b5, b6, b7 and so on. All these bit positions (suffixes) in their equivalent binary have ‘1’ in the place value of 22.

  • Similarly, find other values of check bits.

The decimal equivalent of the check bits in the received data gives the value of bit position, where the error is present. Just complement the value present in that bit position. Therefore, we will get the original binary code after removing parity bits.

Example 1

Let us find the Hamming code for binary code, d4d3d2d1 = 1000. Consider even parity bits.

The number of bits in the given binary code is n=4.

We can find the required number of parity bits by using the following mathematical relation.

$$2^k\geq n+k+1$$

Substitute, n=4 in the above mathematical relation.

$$\Rightarrow 2^k\geq 4+k+1$$

$$\Rightarrow 2^k\geq 5+k$$

The minimum value of k that satisfied the above relation is 3. Hence, we require 3 parity bits p1, p2, and p3. Therefore, the number of bits in Hamming code will be 7, since there are 4 bits in binary code and 3 parity bits. We have to place the parity bits and bits of binary code in the Hamming code as shown below.

The 7-bit Hamming code is $b_{7}b_{6}b_{5}b_{4}b_{3}b_{2}b_{1}=d_{4}d_{3}d_{2}p_{3}d_{1}p_{2}bp_{1}$

By substituting the bits of binary code, the Hamming code will be $b_{7}b_{6}b_{5}b_{4}b_{3}b_{2}b_{1} = 100p_{3}Op_{2}p_{1}$. Now, let us find the parity bits.

$$p_{1}=b_{7}\oplus b_{5}\oplus b_{3}=1 \oplus 0 \oplus 0=1$$

$$p_{2}=b_{7}\oplus b_{6}\oplus b_{3}=1 \oplus 0 \oplus 0=1$$

$$p_{3}=b_{7}\oplus b_{6}\oplus b_{5}=1 \oplus 0 \oplus 0=1$$

By substituting these parity bits, the Hamming code will be $b_{7}b_{6}b_{5}b_{4}b_{3}b_{2}b_{1}= 1001011$.

Example 2

In the above example, we got the Hamming code as $b_{7}b_{6}b_{5}b_{4}b_{3}b_{2}b_{1}= 1001011$. Now, let us find the error position when the code received is $b_{7}b_{6}b_{5}b_{4}b_{3}b_{2}b_{1}= 1001111$.

Now, let us find the check bits.

$$c_{1}=b_{7}\oplus b_{5}\oplus b_{3}\oplus b_{1}=1 \oplus 0 \oplus 1 \oplus1 =1$$

$$c_{2}=b_{7}\oplus b_{6}\oplus b_{3}\oplus b_{2}=1 \oplus 0 \oplus 1 \oplus1 =1$$

$$c_{3}=b_{7}\oplus b_{6}\oplus b_{5}\oplus b_{4}=1 \oplus 0 \oplus 0 \oplus1 =0$$

The decimal value of check bits gives the position of error in received Hamming code.

$$c_{3}c_{2}c_{1} = \left ( 011 \right )_{2}=\left ( 3 \right )_{10}$$

Therefore, the error present in third bit (b3) of Hamming code. Just complement the value present in that bit and remove parity bits in order to get the original binary code.

Boolean Algebra is an algebra, which deals with binary numbers & binary variables. Hence, it is also called as Binary Algebra or logical Algebra. A mathematician, named George Boole had developed this algebra in 1854. The variables used in this algebra are also called as Boolean variables.

The range of voltages corresponding to Logic ‘High’ is represented with ‘1’ and the range of voltages corresponding to logic ‘Low’ is represented with ‘0’.

Postulates and Basic Laws of Boolean Algebra

In this section, let us discuss about the Boolean postulates and basic laws that are used in Boolean algebra. These are useful in minimizing Boolean functions.

Boolean Postulates

Consider the binary numbers 0 and 1, Boolean variable (x) and its complement (x’). Either the Boolean variable or complement of it is known as literal. The four possible logical OR operations among these literals and binary numbers are shown below.

x + 0 = x

x + 1 = 1

x + x = x

x + x '= 1

Podobnie cztery możliwe logical AND operacje między tymi literałami i liczbami binarnymi są pokazane poniżej.

x.1 = x

x.0 = 0

xx = x

x.x '= 0

To są proste postulaty boolowskie. Możemy łatwo zweryfikować te postulaty, zastępując zmienną boolowską „0” lub „1”.

Note- Uzupełnienie dopełnienia dowolnej zmiennej boolowskiej jest równe samej zmiennej. tj. (x ')' = x.

Podstawowe prawa algebry Boole'a

Poniżej przedstawiono trzy podstawowe prawa algebry Boole'a.

  • Prawo przemienne
  • Prawo stowarzyszeniowe
  • Prawo dystrybucyjne

Prawo przemienne

Jeśli jakakolwiek operacja logiczna dwóch zmiennych boolowskich daje ten sam wynik, niezależnie od kolejności tych dwóch zmiennych, wówczas ta operacja logiczna jest nazywana Commutative. Logiczne OR i logiczne operacje AND dwóch zmiennych boolowskich x i y pokazano poniżej

x + y = y + x

xy = yx

Symbol „+” oznacza operację logiczną LUB. Podobnie symbol „.” wskazuje operację logiczną AND i jej reprezentacja jest opcjonalna. Prawo przemienne jest zgodne z logicznymi operacjami LUB i logicznymi operacjami AND.

Prawo stowarzyszeniowe

Jeśli operacja logiczna dowolnych dwóch zmiennych boolowskich jest wykonywana najpierw, a następnie ta sama operacja jest wykonywana z pozostałą zmienną, która daje ten sam wynik, to ta operacja logiczna jest nazywana Associative. Logiczne OR i logiczne operacje AND na trzech zmiennych boolowskich x, y i z są pokazane poniżej.

x + (y + z) = (x + y) + z

x. (yz) = (xy). z

Prawo asocjacyjne jest zgodne z operacjami logicznymi OR i logicznymi operacjami AND.

Prawo dystrybucyjne

Jeśli jakakolwiek operacja logiczna może być rozłożona na wszystkie warunki obecne w funkcji boolowskiej, wówczas ta operacja logiczna jest Distributive. Rozkład operacji logicznych OR i logicznych AND trzech zmiennych boolowskich x, y i z pokazano poniżej.

x. (y + z) = xy + xz

x + (yz) = (x + y). (x + z)

Prawo podziału jest zgodne z logicznymi operacjami LUB i logicznymi operacjami AND.

Oto podstawowe prawa algebry Boole'a. Możemy łatwo zweryfikować te prawa, zastępując zmienne boolowskie „0” lub „1”.

Twierdzenia algebry Boole'a

Poniższe dwa twierdzenia są używane w algebrze Boole'a.

  • Twierdzenie o dualności
  • Twierdzenie DeMorgana

Twierdzenie o dualności

To twierdzenie stwierdza, że dualfunkcji boolowskiej uzyskuje się poprzez zamianę operatora logicznego AND na operator logiczny OR i zer na jedynki. Dla każdej funkcji boolowskiej będzie odpowiadała funkcja Dual.

Ułóżmy równania (relacje) Boole'a, które omówiliśmy w części postulatów Boole'a i podstawowych praw, podzielmy na dwie grupy. Poniższa tabela przedstawia te dwie grupy.

Grupa 1 Grupa 2
x + 0 = x x.1 = x
x + 1 = 1 x.0 = 0
x + x = x xx = x
x + x '= 1 x.x '= 0
x + y = y + x xy = yx
x + (y + z) = (x + y) + z x. (yz) = (xy). z
x. (y + z) = xy + xz x + (yz) = (x + y). (x + z)

W każdym rzędzie znajdują się dwa równania boolowskie, które są ze sobą podwójne. Możemy zweryfikować wszystkie te równania Boole'a z Grupy 1 i Grupy 2, używając twierdzenia o dualności.

Twierdzenie DeMorgana

To twierdzenie jest przydatne w znajdowaniu complement of Boolean function. Stwierdza, że ​​uzupełnienie logicznego OR co najmniej dwóch zmiennych boolowskich jest równe logicznemu AND każdej uzupełnionej zmiennej.

Twierdzenie DeMorgana z 2 zmiennymi logicznymi xiy można przedstawić jako

(x + y) '= x'.y'

Podwójna powyższa funkcja boolowska to

(xy) '= x' + y '

Dlatego uzupełnienie logicznego AND dwóch zmiennych boolowskich jest równe logicznemu LUB każdej uzupełnianej zmiennej. Podobnie, możemy zastosować twierdzenie DeMorgana również dla więcej niż 2 zmiennych boolowskich.

Uproszczenie funkcji boolowskich

Do tej pory omawialiśmy postulaty, podstawowe prawa i twierdzenia algebry Boole'a. Teraz uprośćmy niektóre funkcje boolowskie.

Przykład 1

Pozwól nam simplify funkcja boolowska, f = p'qr + pq'r + pqr '+ pqr

Możemy uprościć tę funkcję na dwa sposoby.

Method 1

Biorąc pod uwagę funkcję boolowską, f = p'qr + pq'r + pqr '+ pqr.

Step 1- W pierwszym i drugim okresie r jest powszechne, aw trzecim i czwartym okresie pq jest wspólne. Więc weź wspólne terminy, używającDistributive law.

⇒ f = (p'q + pq ') r + pq (r' + r)

Step 2- Terminy występujące w pierwszym nawiasie można uprościć do operacji Ex-OR. Terminy występujące w drugim nawiasie można uprościć do „1”, używającBoolean postulate

⇒ f = (p ⊕q) r + pq (1)

Step 3- Pierwszego terminu nie da się dalej uprościć. Ale drugi termin można uprościć do pq, używającBoolean postulate.

⇒ f = (p ⊕q) r + pq

Dlatego uproszczoną funkcją boolowską jest f = (p⊕q)r + pq

Method 2

Biorąc pod uwagę funkcję boolowską, f = p'qr + pq'r + pqr '+ pqr.

Step 1 - Użyj Boolean postulate, x + x = x. Oznacza to, że operacja Logiczne LUB z dowolną zmienną logiczną „n” razy będzie równa tej samej zmiennej. Więc możemy napisać ostatni wyraz pqr jeszcze dwa razy.

⇒ f = p'qr + pq'r + pqr '+ pqr + pqr + pqr

Step 2 - Użyj Distributive law1 ul i 4 th warunkach, 2 -go i 5 TH terminy, 3 rd i 6 th warunkach.

⇒ f = qr (p '+ p) + pr (q' + q) + pq (r '+ r)

Step 3 - Użyj Boolean postulate, x + x '= 1 dla uproszczenia terminów występujących w każdym nawiasie.

⇒ f = qr (1) + pr (1) + pq (1)

Step 4 - Użyj Boolean postulate, x.1 = x dla uproszczenia powyższych trzech terminów.

⇒ f = qr + pr + pq

⇒ f = pq + qr + pr

Dlatego uproszczoną funkcją boolowską jest f = pq + qr + pr.

Tak więc otrzymaliśmy dwie różne funkcje boolowskie po uproszczeniu danej funkcji boolowskiej w każdej metodzie. Funkcjonalnie te dwie funkcje boolowskie są takie same. Tak więc, w oparciu o wymaganie, możemy wybrać jedną z tych dwóch funkcji boolowskich.

Przykład 2

Znajdźmy plik complement funkcji boolowskiej, f = p'q + pq '.

Uzupełnieniem funkcji boolowskiej jest f '= (p'q + pq') '.

Step 1 - Użyj twierdzenia DeMorgana, (x + y) '= x'.y'.

⇒ f '= (p'q)'. (Pq ')'

Step 2 - Użyj twierdzenia DeMorgana, (xy) '= x' + y '

⇒ f '= {(p') '+ q'}. {P '+ (q') '}

Step3 - Użyj postulatu boolowskiego, (x ')' = x.

⇒ f '= {p + q'}. {P '+ q}

⇒ f '= pp' + pq + p'q '+ qq'

Step 4 - Użyj postulatu boolowskiego, xx '= 0.

⇒ f = 0 + pq + p'q '+ 0

⇒ f = pq + p'q '

Dlatego też complement funkcji boolowskiej, p'q + pq to pq + p’q’.

Otrzymamy cztery logiczne wyrazy iloczynu, łącząc dwie zmienne xiy za pomocą operacji logicznej AND. Te logiczne terminy dotyczące produktów są nazywane jakomin terms lub standard product terms. Terminy min to x'y ', x'y, xy' i xy.

Podobnie, otrzymamy cztery logiczne wyrazy sumy, łącząc dwie zmienne xiy za pomocą logicznej operacji LUB. Te wyrazy sumy logicznej są nazywane jakoMax terms lub standard sum terms. Terminy Max to x + y, x + y ', x' + y i x '+ y'.

W poniższej tabeli przedstawiono terminy minimalne i maksymalne dla 2 zmiennych.

x y Minimalne terminy Maksymalna liczba terminów
0 0 m 0 = x'y ' M 0 = x + y
0 1 m 1 = x'y M 1 = x + y '
1 0 m 2 = xy ' M 2 = x '+ y
1 1 m 3 = xy M 3 = x '+ y'

Jeśli zmienna binarna ma wartość „0”, to jest reprezentowana jako uzupełnienie zmiennej w okresie minimalnym i jako sama zmienna w okresie maksymalnym. Podobnie, jeśli zmienna binarna ma wartość „1”, to jest reprezentowana jako uzupełnienie zmiennej w terminie maksymalnym i jako sama zmienna w terminie minimalnym.

Z powyższej tabeli można łatwo zauważyć, że terminy minimalne i maksymalne uzupełniają się. Jeśli jest „n” zmiennych boolowskich, będzie 2 n minimalnych terminów i 2 n maksymalnych terminów.

Formularze kanoniczne SoP i PoS

Tabela prawdy składa się z zestawu danych wejściowych i wyników. Jeśli istnieje „n” zmiennych wejściowych, to będzie 2 n możliwych kombinacji z zerami i jedynkami. Zatem wartość każdej zmiennej wyjściowej zależy od kombinacji zmiennych wejściowych. Zatem każda zmienna wyjściowa będzie miała „1” dla pewnej kombinacji zmiennych wejściowych i „0” dla innej kombinacji zmiennych wejściowych.

Dlatego każdą zmienną wyjściową możemy wyrazić na dwa sposoby.

  • Formularz kanoniczny SoP
  • Formularz kanoniczny PoS

Formularz kanoniczny SoP

Formularz kanoniczny SoP oznacza formularz Canonical Sum of Products. W tej formie każdy termin produktu zawiera wszystkie literały. Tak więc te warunki dotyczące produktów to nic innego jak warunki minimalne. Stąd kanoniczny formularz SoP jest również nazywany jakosum of min terms Formularz.

Najpierw zidentyfikuj minimalne warunki, dla których zmienna wyjściowa jest równa jeden, a następnie wykonaj logiczne LUB tych minimalnych składników, aby uzyskać wyrażenie logiczne (funkcję) odpowiadające tej zmiennej wyjściowej. Ta funkcja boolowska będzie miała postać sumy minimalnych warunków.

Wykonaj tę samą procedurę dla innych zmiennych wyjściowych, jeśli istnieje więcej niż jedna zmienna wyjściowa.

Przykład

Rozważ następujące truth table.

Wejścia Wynik
p q r f
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1

Tutaj wyjście (f) wynosi „1” dla czterech kombinacji wejść. Odpowiednie terminy minimalne to p'qr, pq'r, pqr ', pqr. Wykonując logiczne OR tych czterech minimalnych terminów, otrzymamy funkcję logiczną wyjścia (f).

Dlatego funkcja boolowska wyniku to f = p'qr + pq'r + pqr '+ pqr. To jestcanonical SoP formprodukcji, f. Możemy również przedstawić tę funkcję w następujących dwóch notacjach.

$$f = m_{3}+m_{5}+m_{6}+m_{7}$$

$$f = \sum m\left ( 3,5,6,7 \right )$$

W jednym równaniu przedstawiliśmy funkcję jako sumę odpowiednich składników minimalnych. W innym równaniu użyliśmy symbolu do sumowania tych minimalnych terminów.

Formularz kanoniczny PoS

Forma kanonicznego PoS oznacza postać kanonicznego produktu sum. W tej formie każdy termin sumaryczny zawiera wszystkie literały. Zatem te sumy warunków są niczym innym jak warunkami Max. Stąd kanoniczna forma PoS jest również nazywana jakoproduct of Max terms Formularz.

Najpierw zidentyfikuj terminy Max, dla których zmienna wyjściowa wynosi zero, a następnie wykonaj logiczne AND tych warunków Max, aby uzyskać wyrażenie logiczne (funkcję) odpowiadające tej zmiennej wyjściowej. Ta funkcja boolowska będzie miała postać iloczynu warunków Max.

Wykonaj tę samą procedurę dla innych zmiennych wyjściowych, jeśli istnieje więcej niż jedna zmienna wyjściowa.

Example

Rozważ tę samą tabelę prawdy z poprzedniego przykładu. Tutaj wyjście (f) wynosi „0” dla czterech kombinacji wejść. Odpowiednie terminy Max to p + q + r, p + q + r ', p + q' + r, p '+ q + r. Wykonując logiczne AND z tych czterech wyrażeń Max, otrzymamy funkcję logiczną wyjścia (f).

Dlatego funkcja boolowska wyniku to f = (p + q + r). (P + q + r '). (P + q' + r). (P '+ q + r). To jestcanonical PoS formprodukcji, f. Możemy również przedstawić tę funkcję w następujących dwóch notacjach.

$$f=M_{0}.M_{1}.M_{2}.M_{4}$$

$$f=\prod M\left ( 0,1,2,4 \right )$$

W jednym równaniu przedstawiliśmy funkcję jako iloczyn odpowiednich warunków Max. W innym równaniu użyliśmy symbolu mnożenia tych terminów Max.

Funkcja boolowska, f = (p + q + r). (P + q + r '). (P + q' + r). (P '+ q + r) jest dwoistością funkcji boolowskiej, f = p'qr + pq'r + pqr '+ pqr.

Dlatego zarówno kanoniczne formy SoP, jak i kanoniczne formy PoS są Dualdo siebie. Funkcjonalnie te dwie formy są takie same. W oparciu o wymaganie możemy użyć jednej z tych dwóch form.

Standardowe formularze SoP i PoS

Omówiliśmy dwie kanoniczne formy reprezentacji logicznych wyników. Podobnie, istnieją dwie standardowe formy przedstawiania wartości logicznych. To są uproszczone wersje form kanonicznych.

  • Standardowy formularz SoP
  • Standardowy formularz PoS

Omówimy bramy logiczne w dalszych rozdziałach. Głównyadvantagestandardowych formularzy polega na tym, że liczbę wejść stosowanych do bramek logicznych można zminimalizować. Czasami całkowita liczba wymaganych bramek logicznych zmniejszy się.

Standardowy formularz SoP

Standardowy formularz SoP oznacza Standard Sum of ProductsFormularz. W tej formie każdy termin produktu nie musi zawierać wszystkich literałów. Tak więc warunki produktu mogą, ale nie muszą, być warunkami minimalnymi. Dlatego standardowy formularz SoP jest uproszczoną formą kanonicznego formularza SoP.

Otrzymamy standardową postać SoP zmiennej wyjściowej w dwóch krokach.

  • Uzyskaj kanoniczną postać zmiennej wyjściowej SoP
  • Uprość powyższą funkcję boolowską, która ma postać kanoniczną SoP.

Wykonaj tę samą procedurę dla innych zmiennych wyjściowych, jeśli istnieje więcej niż jedna zmienna wyjściowa. Czasami uproszczenie kanonicznego formularza SoP może być niemożliwe. W takim przypadku zarówno kanoniczne, jak i standardowe formularze SoP są takie same.

Example

Przekonwertuj następującą funkcję logiczną na standardowy formularz SoP.

f = p'qr + pq'r + pqr '+ pqr

Podana funkcja logiczna ma postać kanoniczną SoP. Teraz musimy uprościć tę funkcję boolowską, aby otrzymać standardowy formularz SoP.

Step 1 - Użyj Boolean postulate, x + x = x. Oznacza to, że operacja Logiczne LUB z dowolną zmienną logiczną „n” razy będzie równa tej samej zmiennej. Więc możemy napisać ostatni wyraz pqr jeszcze dwa razy.

⇒ f = p'qr + pq'r + pqr '+ pqr + pqr + pqr

Step 2 - Użyj Distributive law1 ul i 4 th warunkach, 2 -go i 5 TH terminy, 3 rd i 6 th warunkach.

⇒ f = qr (p '+ p) + pr (q' + q) + pq (r '+ r)

Step 3 - Użyj Boolean postulate, x + x '= 1 dla uproszczenia terminów występujących w każdym nawiasie.

⇒ f = qr (1) + pr (1) + pq (1)

Step 4 - Użyj Boolean postulate, x.1 = x dla uproszczenia powyżej trzech wyrazów.

⇒ f = qr + pr + pq

⇒ f = pq + qr + pr

To jest uproszczona funkcja boolowska. Dlatego teżstandard SoP form odpowiadający danemu kanonicznemu formularzowi SoP to f = pq + qr + pr

Standardowy formularz PoS

Standardowy formularz PoS oznacza Standard Product of SumsFormularz. W tej formie każdy termin sumy nie musi zawierać wszystkich literałów. Zatem suma warunków może, ale nie musi, być warunkami Max. Dlatego standardowy formularz PoS jest uproszczoną formą kanonicznego formularza PoS.

Otrzymamy zmienną wyjściową w postaci standardowego PoS w dwóch krokach.

  • Uzyskaj kanoniczną postać zmiennej wyjściowej PoS
  • Uprość powyższą funkcję boolowską, która ma postać kanoniczną PoS.

Wykonaj tę samą procedurę dla innych zmiennych wyjściowych, jeśli istnieje więcej niż jedna zmienna wyjściowa. Czasami może nie być możliwe uproszczenie kanonicznego formularza PoS. W takim przypadku zarówno kanoniczne, jak i standardowe formularze PoS są takie same.

Example

Przekonwertuj następującą funkcję logiczną na standardowy formularz PoS.

f = (p + q + r). (p + q + r '). (p + q' + r). (p '+ q + r)

Podana funkcja boolowska ma postać kanoniczną PoS. Teraz musimy uprościć tę funkcję boolowską, aby otrzymać standardowy formularz PoS.

Step 1 - Użyj Boolean postulate, xx = x. Oznacza to, że operacja logiczna AND z dowolną zmienną logiczną „n” razy będzie równa tej samej zmiennej. Zatem możemy napisać pierwszy wyraz p + q + r jeszcze dwa razy.

⇒ f = (p + q + r). (P + q + r). (P + q + r). (P + q + r '). (P + q' + r). (P '+ q + r)

Step 2 - Użyj Distributive law,x + (YZ) = (x + y), (x + z) 1 ul i 4 p nawiasów 2 II i 5 p nawias, 3 rd i 6 p nawiasach.

⇒ f = (p + q + rr '). (P + r + qq'). (Q + r + pp ')

Step 3 - Użyj Boolean postulate, x.x '= 0 dla uproszczenia terminów występujących w każdym nawiasie.

⇒ f = (p + q + 0). (P + r + 0). (Q + r + 0)

Step 4 - Użyj Boolean postulate, x + 0 = x dla uproszczenia terminów występujących w każdym nawiasie

⇒ f = (p + q). (P + r). (Q + r)

⇒ f = (p + q). (Q + r). (P + r)

To jest uproszczona funkcja boolowska. Dlatego teżstandard PoS form odpowiadający danemu kanonicznemu formularzowi PoS to f = (p + q).(q + r).(p + r). To jestdual funkcji boolowskiej, f = pq + qr + pr.

Dlatego zarówno standardowe formularze SoP, jak i standardowe formularze PoS są podwójne.

W poprzednich rozdziałach uprościliśmy funkcje boolowskie za pomocą postulatów i twierdzeń boolowskich. Jest to proces czasochłonny i po każdym kroku musimy przepisać uproszczone wyrażenia.

Aby pokonać tę trudność, Karnaughprzedstawił metodę uproszczenia funkcji boolowskich w łatwy sposób. Ta metoda jest znana jako metoda mapy Karnaugha lub metoda K-mapy. Jest to metoda graficzna, która składa się z 2 n komórek na „n” zmiennych. Sąsiednie komórki różnią się tylko pozycją pojedynczego bitu.

Mapy K dla 2 do 5 zmiennych

Metoda K-Map jest najbardziej odpowiednia do zminimalizowania funkcji boolowskich 2 zmiennych do 5 zmiennych. Omówmy teraz kolejno K-Maps dla 2 do 5 zmiennych.

2 Zmienna mapa K

Liczba komórek w 2 zmiennej K-map wynosi cztery, ponieważ liczba zmiennych wynosi dwa. Poniższy rysunek przedstawia2 variable K-Map.

  • Istnieje tylko jedna możliwość zgrupowania 4 sąsiednich terminów min.

  • Możliwe kombinacje grupowania 2 sąsiednich terminów minimalnych to {(m 0 , m 1 ), (m 2 , m 3 ), (m 0 , m 2 ) i (m 1 , m 3 )}.

3 zmienna mapa K

Liczba komórek w 3 zmiennej K-map wynosi osiem, ponieważ liczba zmiennych wynosi trzy. Poniższy rysunek przedstawia3 variable K-Map.

  • Istnieje tylko jedna możliwość zgrupowania 8 sąsiednich terminów min.

  • Możliwe kombinacje grupowania 4 sąsiednich terminów min to {(m 0 , m 1 , m 3 , m 2 ), (m 4 , m 5 , m 7 , m 6 ), (m 0 , m 1 , m 4 , m 5 ), (m 1 , m 3 , m 5 , m 7 ), (m 3 , m 2 , m 7 , m 6 ) i (m 2 , m 0 , m 6 , m 4 )}.

  • Możliwe kombinacje grupowania 2 sąsiednich terminów minimalnych to {(m 0 , m 1 ), (m 1 , m 3 ), (m 3 , m 2 ), (m 2 , m 0 ), (m 4 , m 5 ) , (m 5 , m 7 ), (m 7 , m 6 ), (m 6 , m 4 ), (m 0 , m 4 ), (m 1 , m 5 ), (m 3 , m 7 ) i ( m 2 , m 6 )}.

  • Jeśli x = 0, to 3 zmienne K-map stają się 2 zmiennymi K-mapami.

4 zmienna mapa K

Liczba komórek w 4 zmiennej K-map wynosi szesnaście, ponieważ liczba zmiennych wynosi cztery. Poniższy rysunek przedstawia4 variable K-Map.

  • Jest tylko jedna możliwość zgrupowania 16 sąsiednich terminów min.

  • Niech R 1 , R 2 , R 3 i R 4 reprezentują minimalne składniki odpowiednio pierwszego rzędu, drugiego rzędu, trzeciego rzędu i czwartego rzędu. Podobnie C 1 , C 2 , C 3 i C 4 reprezentują minimalne terminy odpowiednio pierwszej kolumny, drugiej kolumny, trzeciej kolumny i czwartej kolumny. Możliwe kombinacje grupowania 8 sąsiednich terminów minimalnych to {(R 1 , R 2 ), (R 2 , R 3 ), (R 3 , R 4 ), (R 4 , R 1 ), (C 1 , C 2 ) , (C 2 , C 3 ), (C 3 , C 4 ), (C 4 , C 1 )}.

  • Jeśli w = 0, to 4 zmienne K-map stają się 3 zmiennymi K-mapami.

5 Zmienna mapa K

Liczba komórek w 5 zmiennej K-map wynosi trzydzieści dwa, ponieważ liczba zmiennych wynosi 5. Poniższy rysunek przedstawia 5 variable K-Map.

  • Istnieje tylko jedna możliwość zgrupowania 32 sąsiednich terminów min.

  • Istnieją dwie możliwości zgrupowania 16 sąsiednich terminów min. czyli grupowanie terminów min z m 0 M 15 i m 16 M 31 .

  • Jeśli v = 0, to 5 zmiennych K-map staje się 4 zmiennymi K-mapami.

We wszystkich K-mapach używaliśmy wyłącznie notacji terminów min. Podobnie możesz używać wyłącznie notacji terminów Max.

Minimalizacja funkcji boolowskich za pomocą K-Maps

Jeśli weźmiemy pod uwagę kombinację danych wejściowych, dla których funkcja boolowska wynosi „1”, otrzymamy funkcję boolowską, która jest w standard sum of products formularz po uproszczeniu mapy K.

Podobnie, jeśli weźmiemy pod uwagę kombinację danych wejściowych, dla których funkcja boolowska wynosi „0”, to otrzymamy funkcję boolowską, która jest w standard product of sums formularz po uproszczeniu mapy K.

Postępuj zgodnie z tymi rules for simplifying K-maps aby otrzymać standardową sumę produktów.

  • Wybierz odpowiednią mapę K w oparciu o liczbę zmiennych obecnych w funkcji boolowskiej.

  • Jeśli funkcja boolowska jest podana jako suma wyrażeń minimalnych, umieść je w odpowiednich komórkach terminów minimalnych na mapie K. Jeśli funkcja boolowska jest podana jako suma iloczynów, to umieść je we wszystkich możliwych komórkach K-mapy, dla których obowiązują podane wyrazy iloczynu.

  • Sprawdź możliwości zgrupowania maksymalnej liczby sąsiadujących. Powinna to być potęga dwojga. Zacznij od najwyższej potęgi dwóch i do najmniejszej potęgi dwóch. Najwyższa moc jest równa liczbie zmiennych uwzględnionych w mapie K, a najmniejsza moc wynosi zero.

  • Każda grupa zawiera dosłowny lub jeden termin produktu. Jest znany jakoprime implicant. Mówi się, że głównym implikatorem jestessential prime implicant, jeśli przynajmniej jedna „1” nie jest objęta żadną inną grupą, ale obejmuje tylko tę grupę.

  • Zanotuj wszystkie pierwotne implanty i niezbędne implanty pierwotne. Uproszczona funkcja Boole'a zawiera wszystkie niezbędne implanty prime i tylko wymagane implanty prime.

Note 1 - Jeśli wyjścia nie są zdefiniowane dla jakiejś kombinacji wejść, wtedy te wartości wyjściowe będą reprezentowane przez don’t care symbol ‘x’. Oznacza to, że możemy je traktować jako „0” lub „1”.

Note 2- Jeśli nie obchodzi mnie również obecne terminy, to miejsce nie obchodzi 'x' w odpowiednich komórkach K-mapy. Weź pod uwagę tylko „x” nie obchodzi, które są pomocne przy grupowaniu maksymalnej liczby sąsiednich. W takich przypadkach traktuj wartość „nie przejmuj się” jako „1”.

Przykład

Pozwól nam simplify następująca funkcja boolowska, f(W, X, Y, Z)= WX’Y’ + WY + W’YZ’ za pomocą K-map.

Podana funkcja boolowska jest sumą iloczynów. Ma 4 zmienne W, X, Y i Z. Tak więc wymagamy4 variable K-map. Plik4 variable K-map z tymi, które odpowiadają danym terminom produktowym, przedstawiono na poniższym rysunku.

Tutaj jedynki są umieszczane w kolejnych komórkach mapy K.

  • Komórki, które są wspólne dla przecięcia wiersza 4 i kolumn 1 i 2, odpowiadają terminowi produktu, WX’Y’.

  • Komórki, które są wspólne dla przecięcia wierszy 3 i 4 oraz kolumn 3 i 4, odpowiadają terminowi produktu, WY.

  • The cells, which are common to the intersection of Rows 1 & 2 and column 4 are corresponding to the product term, W’YZ’.

There are no possibilities of grouping either 16 adjacent ones or 8 adjacent ones. There are three possibilities of grouping 4 adjacent ones. After these three groupings, there is no single one left as ungrouped. So, we no need to check for grouping of 2 adjacent ones. The 4 variable K-map with these three groupings is shown in the following figure.

Here, we got three prime implicants WX’, WY & YZ’. All these prime implicants are essential because of following reasons.

  • Two ones (m8 & m9) of fourth row grouping are not covered by any other groupings. Only fourth row grouping covers those two ones.

  • Single one (m15) of square shape grouping is not covered by any other groupings. Only the square shape grouping covers that one.

  • Two ones (m2 & m6) of fourth column grouping are not covered by any other groupings. Only fourth column grouping covers those two ones.

Therefore, the simplified Boolean function is

f = WX’ + WY + YZ’

Follow these rules for simplifying K-maps in order to get standard product of sums form.

  • Select the respective K-map based on the number of variables present in the Boolean function.

  • If the Boolean function is given as product of Max terms form, then place the zeroes at respective Max term cells in the K-map. If the Boolean function is given as product of sums form, then place the zeroes in all possible cells of K-map for which the given sum terms are valid.

  • Check for the possibilities of grouping maximum number of adjacent zeroes. It should be powers of two. Start from highest power of two and upto least power of two. Highest power is equal to the number of variables considered in K-map and least power is zero.

  • Each grouping will give either a literal or one sum term. It is known as prime implicant. The prime implicant is said to be essential prime implicant, if atleast single ‘0’ is not covered with any other groupings but only that grouping covers.

  • Note down all the prime implicants and essential prime implicants. The simplified Boolean function contains all essential prime implicants and only the required prime implicants.

Note − If don’t care terms also present, then place don’t cares ‘x’ in the respective cells of K-map. Consider only the don’t cares ‘x’ that are helpful for grouping maximum number of adjacent zeroes. In those cases, treat the don’t care value as ‘0’.

Example

Let us simplify the following Boolean function, $f\left ( X,Y,Z \right )=\prod M\left ( 0,1,2,4 \right )$ using K-map.

The given Boolean function is in product of Max terms form. It is having 3 variables X, Y & Z. So, we require 3 variable K-map. The given Max terms are M0, M1, M2 & M4. The 3 variable K-map with zeroes corresponding to the given Max terms is shown in the following figure.

There are no possibilities of grouping either 8 adjacent zeroes or 4 adjacent zeroes. There are three possibilities of grouping 2 adjacent zeroes. After these three groupings, there is no single zero left as ungrouped. The 3 variable K-map with these three groupings is shown in the following figure.

Here, we got three prime implicants X + Y, Y + Z & Z + X. All these prime implicants are essential because one zero in each grouping is not covered by any other groupings except with their individual groupings.

Therefore, the simplified Boolean function is

f = (X + Y).(Y + Z).(Z + X)

In this way, we can easily simplify the Boolean functions up to 5 variables using K-map method. For more than 5 variables, it is difficult to simplify the functions using K-Maps. Because, the number of cells in K-map gets doubled by including a new variable.

Due to this checking and grouping of adjacent ones (min terms) or adjacent zeros (Max terms) will be complicated. We will discuss Tabular method in next chapter to overcome the difficulties of K-map method.

In previous chapter, we discussed K-map method, which is a convenient method for minimizing Boolean functions up to 5 variables. But, it is difficult to simplify the Boolean functions having more than 5 variables by using this method.

Quine-McClukey tabular method is a tabular method based on the concept of prime implicants. We know that prime implicant is a product (or sum) term, which can’t be further reduced by combining with any other product (or sum) terms of the given Boolean function.

This tabular method is useful to get the prime implicants by repeatedly using the following Boolean identity.

xy + xy’ = x(y + y’) = x.1 = x

Procedure of Quine-McCluskey Tabular Method

Follow these steps for simplifying Boolean functions using Quine-McClukey tabular method.

Step 1 − Arrange the given min terms in an ascending order and make the groups based on the number of ones present in their binary representations. So, there will be at most ‘n+1’ groups if there are ‘n’ Boolean variables in a Boolean function or ‘n’ bits in the binary equivalent of min terms.

Step 2 − Compare the min terms present in successive groups. If there is a change in only one-bit position, then take the pair of those two min terms. Place this symbol ‘_’ in the differed bit position and keep the remaining bits as it is.

Step 3 − Repeat step2 with newly formed terms till we get all prime implicants.

Step 4 − Formulate the prime implicant table. It consists of set of rows and columns. Prime implicants can be placed in row wise and min terms can be placed in column wise. Place ‘1’ in the cells corresponding to the min terms that are covered in each prime implicant.

Step 5 − Find the essential prime implicants by observing each column. If the min term is covered only by one prime implicant, then it is essential prime implicant. Those essential prime implicants will be part of the simplified Boolean function.

Step 6 − Reduce the prime implicant table by removing the row of each essential prime implicant and the columns corresponding to the min terms that are covered in that essential prime implicant. Repeat step 5 for Reduced prime implicant table. Stop this process when all min terms of given Boolean function are over.

Example

Let us simplify the following Boolean function, $f\left ( W,X,Y,Z \right )=\sum m\left ( 2,6,8,9,10,11,14,15 \right )$ using Quine-McClukey tabular method.

The given Boolean function is in sum of min terms form. It is having 4 variables W, X, Y & Z. The given min terms are 2, 6, 8, 9, 10, 11, 14 and 15. The ascending order of these min terms based on the number of ones present in their binary equivalent is 2, 8, 6, 9, 10, 11, 14 and 15. The following table shows these min terms and their equivalent binary representations.

GA3
Group Name Min terms W X Y Z
GA1 2 0 0 1 0
8 1 0 0 0
GA2 6 0 1 1 0
9 1 0 0 1
10 1 0 1 0
11 1 0 1 1
14 1 1 1 0
GA4 15 1 1 1 1

The given min terms are arranged into 4 groups based on the number of ones present in their binary equivalents. The following table shows the possible merging of min terms from adjacent groups.

GB3
Group Name Min terms W X Y Z
GB1 2,6 0 - 1 0
2,10 - 0 1 0
8,9 1 0 0 -
8,10 1 0 - 0
GB2 6,14 - 1 1 0
9,11 1 0 - 1
10,11 1 0 1 -
10,14 1 - 1 0
11,15 1 - 1 1
14,15 1 1 1 -

The min terms, which are differed in only one-bit position from adjacent groups are merged. That differed bit is represented with this symbol, ‘-‘. In this case, there are three groups and each group contains combinations of two min terms. The following table shows the possible merging of min term pairs from adjacent groups.

Group Name Min terms W X Y Z
GB1 2,6,10,14 - - 1 0
2,10,6,14 - - 1 0
8,9,10,11 1 0 - -
8,10,9,11 1 0 - -
GB2 10,11,14,15 1 - 1 -
10,14,11,15 1 - 1 -

The successive groups of min term pairs, which are differed in only one-bit position are merged. That differed bit is represented with this symbol, ‘-‘. In this case, there are two groups and each group contains combinations of four min terms. Here, these combinations of 4 min terms are available in two rows. So, we can remove the repeated rows. The reduced table after removing the redundant rows is shown below.

Group Name Min terms W X Y Z
GC1 2,6,10,14 - - 1 0
8,9,10,11 1 0 - -
GC2 10,11,14,15 1 - 1 -

Further merging of the combinations of min terms from adjacent groups is not possible, since they are differed in more than one-bit position. There are three rows in the above table. So, each row will give one prime implicant. Therefore, the prime implicants are YZ’, WX’ & WY.

The prime implicant table is shown below.

Min terms / Prime Implicants 2 6 8 9 10 11 14 15
YZ’ 1 1 1 1
WX’ 1 1 1 1
WY 1 1 1 1

The prime implicants are placed in row wise and min terms are placed in column wise. 1s are placed in the common cells of prime implicant rows and the corresponding min term columns.

The min terms 2 and 6 are covered only by one prime implicant YZ’. So, it is an essential prime implicant. This will be part of simplified Boolean function. Now, remove this prime implicant row and the corresponding min term columns. The reduced prime implicant table is shown below.

Min terms / Prime Implicants 8 9 11 15
WX’ 1 1 1
WY 1 1

The min terms 8 and 9 are covered only by one prime implicant WX’. So, it is an essential prime implicant. This will be part of simplified Boolean function. Now, remove this prime implicant row and the corresponding min term columns. The reduced prime implicant table is shown below.

Min terms / Prime Implicants 15
WY 1

The min term 15 is covered only by one prime implicant WY. So, it is an essential prime implicant. This will be part of simplified Boolean function.

In this example problem, we got three prime implicants and all the three are essential. Therefore, the simplified Boolean function is

f(W,X,Y,Z) = YZ’ + WX’ + WY.

Digital electronic circuits operate with voltages of two logic levelsnamely Logic Low and Logic High. The range of voltages corresponding to Logic Low is represented with ‘0’. Similarly, the range of voltages corresponding to Logic High is represented with ‘1’.

The basic digital electronic circuit that has one or more inputs and single output is known as Logic gate. Hence, the Logic gates are the building blocks of any digital system. We can classify these Logic gates into the following three categories.

  • Basic gates
  • Universal gates
  • Special gates

Now, let us discuss about the Logic gates come under each category one by one.

Basic Gates

In earlier chapters, we learnt that the Boolean functions can be represented either in sum of products form or in product of sums form based on the requirement. So, we can implement these Boolean functions by using basic gates. The basic gates are AND, OR & NOT gates.

AND gate

An AND gate is a digital circuit that has two or more inputs and produces an output, which is the logical AND of all those inputs. It is optional to represent the Logical AND with the symbol ‘.’.

The following table shows the truth table of 2-input AND gate.

A B Y = A.B
0 0 0
0 1 0
1 0 0
1 1 1

Here A, B are the inputs and Y is the output of two input AND gate. If both inputs are ‘1’, then only the output, Y is ‘1’. For remaining combinations of inputs, the output, Y is ‘0’.

The following figure shows the symbol of an AND gate, which is having two inputs A, B and one output, Y.

This AND gate produces an output (Y), which is the logical AND of two inputs A, B. Similarly, if there are ‘n’ inputs, then the AND gate produces an output, which is the logical AND of all those inputs. That means, the output of AND gate will be ‘1’, when all the inputs are ‘1’.

OR gate

An OR gate is a digital circuit that has two or more inputs and produces an output, which is the logical OR of all those inputs. This logical OR is represented with the symbol ‘+’.

The following table shows the truth table of 2-input OR gate.

A B Y = A + B
0 0 0
0 1 1
1 0 1
1 1 1

Here A, B are the inputs and Y is the output of two input OR gate. If both inputs are ‘0’, then only the output, Y is ‘0’. For remaining combinations of inputs, the output, Y is ‘1’.

The following figure shows the symbol of an OR gate, which is having two inputs A, B and one output, Y.

This OR gate produces an output (Y), which is the logical OR of two inputs A, B. Similarly, if there are ‘n’ inputs, then the OR gate produces an output, which is the logical OR of all those inputs. That means, the output of an OR gate will be ‘1’, when at least one of those inputs is ‘1’.

NOT gate

A NOT gate is a digital circuit that has single input and single output. The output of NOT gate is the logical inversion of input. Hence, the NOT gate is also called as inverter.

The following table shows the truth table of NOT gate.

A Y = A’
0 1
1 0

Here A and Y are the input and output of NOT gate respectively. If the input, A is ‘0’, then the output, Y is ‘1’. Similarly, if the input, A is ‘1’, then the output, Y is ‘0’.

The following figure shows the symbol of NOT gate, which is having one input, A and one output, Y.

This NOT gate produces an output (Y), which is the complement of input, A.

Universal gates

NAND & NOR gates are called as universal gates. Because we can implement any Boolean function, which is in sum of products form by using NAND gates alone. Similarly, we can implement any Boolean function, which is in product of sums form by using NOR gates alone.

NAND gate

NAND gate is a digital circuit that has two or more inputs and produces an output, which is the inversion of logical AND of all those inputs.

The following table shows the truth table of 2-input NAND gate.

A B Y = (A.B)’
0 0 1
0 1 1
1 0 1
1 1 0

Here A, B are the inputs and Y is the output of two input NAND gate. When both inputs are ‘1’, the output, Y is ‘0’. If at least one of the input is zero, then the output, Y is ‘1’. This is just opposite to that of two input AND gate operation.

The following image shows the symbol of NAND gate, which is having two inputs A, B and one output, Y.

NAND gate operation is same as that of AND gate followed by an inverter. That’s why the NAND gate symbol is represented like that.

NOR gate

NOR gate is a digital circuit that has two or more inputs and produces an output, which is the inversion of logical OR of all those inputs.

The following table shows the truth table of 2-input NOR gate

A B Y = (A+B)’
0 0 1
0 1 0
1 0 0
1 1 0

Here A, B are the inputs and Y is the output. If both inputs are ‘0’, then the output, Y is ‘1’. If at least one of the input is ‘1’, then the output, Y is ‘0’. This is just opposite to that of two input OR gate operation.

The following figure shows the symbol of NOR gate, which is having two inputs A, B and one output, Y.

NOR gate operation is same as that of OR gate followed by an inverter. That’s why the NOR gate symbol is represented like that.

Special Gates

Ex-OR & Ex-NOR gates are called as special gates. Because, these two gates are special cases of OR & NOR gates.

Ex-OR gate

The full form of Ex-OR gate is Exclusive-OR gate. Its function is same as that of OR gate except for some cases, when the inputs having even number of ones.

The following table shows the truth table of 2-input Ex-OR gate.

A B Y = A⊕B
0 0 0
0 1 1
1 0 1
1 1 0

Here A, B are the inputs and Y is the output of two input Ex-OR gate. The truth table of Ex-OR gate is same as that of OR gate for first three rows. The only modification is in the fourth row. That means, the output (Y) is zero instead of one, when both the inputs are one, since the inputs having even number of ones.

Therefore, the output of Ex-OR gate is ‘1’, when only one of the two inputs is ‘1’. And it is zero, when both inputs are same.

Below figure shows the symbol of Ex-OR gate, which is having two inputs A, B and one output, Y.

Ex-OR gate operation is similar to that of OR gate, except for few combination(s) of inputs. That’s why the Ex-OR gate symbol is represented like that. The output of Ex-OR gate is ‘1’, when odd number of ones present at the inputs. Hence, the output of Ex-OR gate is also called as an odd function.

Ex-NOR gate

The full form of Ex-NOR gate is Exclusive-NOR gate. Its function is same as that of NOR gate except for some cases, when the inputs having even number of ones.

The following table shows the truth table of 2-input Ex-NOR gate.

A B Y = A⊙B
0 0 1
0 1 0
1 0 0
1 1 1

Here A, B are the inputs and Y is the output. The truth table of Ex-NOR gate is same as that of NOR gate for first three rows. The only modification is in the fourth row. That means, the output is one instead of zero, when both the inputs are one.

Therefore, the output of Ex-NOR gate is ‘1’, when both inputs are same. And it is zero, when both the inputs are different.

The following figure shows the symbol of Ex-NOR gate, which is having two inputs A, B and one output, Y.

Ex-NOR gate operation is similar to that of NOR gate, except for few combination(s) of inputs. That’s why the Ex-NOR gate symbol is represented like that. The output of Ex-NOR gate is ‘1’, when even number of ones present at the inputs. Hence, the output of Ex-NOR gate is also called as an even function.

From the above truth tables of Ex-OR & Ex-NOR logic gates, we can easily notice that the Ex-NOR operation is just the logical inversion of Ex-OR operation.

The maximum number of levels that are present between inputs and output is two in two level logic. That means, irrespective of total number of logic gates, the maximum number of Logic gates that are present (cascaded) between any input and output is two in two level logic. Here, the outputs of first level Logic gates are connected as inputs of second level Logic gate(s).

Consider the four Logic gates AND, OR, NAND & NOR. Since, there are 4 Logic gates, we will get 16 possible ways of realizing two level logic. Those are AND-AND, AND-OR, ANDNAND, AND-NOR, OR-AND, OR-OR, OR-NAND, OR-NOR, NAND-AND, NAND-OR, NANDNAND, NAND-NOR, NOR-AND, NOR-OR, NOR-NAND, NOR-NOR.

These two level logic realizations can be classified into the following two categories.

  • Degenerative form
  • Non-degenerative form

Degenerative Form

If the output of two level logic realization can be obtained by using single Logic gate, then it is called as degenerative form. Obviously, the number of inputs of single Logic gate increases. Due to this, the fan-in of Logic gate increases. This is an advantage of degenerative form.

Only 6 combinations of two level logic realizations out of 16 combinations come under degenerative form. Those are AND-AND, AND-NAND, OR-OR, OR-NOR, NAND-NOR, NORNAND.

In this section, let us discuss some realizations. Assume, A, B, C & D are the inputs and Y is the output in each logic realization.

AND-AND Logic

In this logic realization, AND gates are present in both levels. Below figure shows an example for AND-AND logic realization.

We will get the outputs of first level logic gates as $Y_{1}=AB$ and $Y_{2}=CD$

These outputs, $Y_{1}$ and $Y_{2}$ are applied as inputs of AND gate that is present in second level. So, the output of this AND gate is

$$Y=Y_{1}Y_{2}$$

Substitute $Y_{1}$ and $Y_{2}$ values in the above equation.

$$Y=\left ( AB \right )\left ( CD \right )$$

$\Rightarrow Y=ABCD$

Therefore, the output of this AND-AND logic realization is ABCD. This Boolean function can be implemented by using a 4 input AND gate. Hence, it is degenerative form.

AND-NAND Logic

In this logic realization, AND gates are present in first level and NAND gate(s) are present in second level. The following figure shows an example for AND-NAND logic realization.

Wcześniej otrzymywaliśmy dane wyjściowe bramek logicznych pierwszego poziomu jako $Y_{1} = AB$ i $Y_{2} = CD$

Te wyjścia,$Y_{1}$ i $Y_{2}$są stosowane jako wejścia bramki NAND, która jest obecna na drugim poziomie. Tak więc wyjście tej bramki NAND to

$$Y={\left ( Y_{1}Y_{2} \right )}'$$

Zastąpić $Y_{1}$ i $Y_{2}$ wartości w powyższym równaniu.

$$Y={\left ( \left ( AB \right ) \left ( CD \right )\right )}'$$

$\Rightarrow Y={\left ( ABCD \right )}'$

Dlatego wyjście tej realizacji logiki AND-NAND jest ${\left ( ABCD \right )}'$. Tę funkcję boolowską można zaimplementować za pomocą 4-wejściowej bramki NAND. Dlatego tak jestdegenerative form.

Logika OR-OR

W tej logicznej realizacji bramki OR są obecne na obu poziomach. Poniższy rysunek przedstawia przykładOR-OR logic realizacja.

Otrzymamy dane wyjściowe bramek logicznych pierwszego poziomu jako $Y_{1}=A+B$ i $Y_{2}=C+D$.

Te wyjścia, $Y_{1}$ i $Y_{2}$są stosowane jako wejścia bramki OR, która jest obecna na drugim poziomie. Zatem wyjście tej bramki OR to

$$Y=Y_{1}+Y_{2}$$

Zastąpić $Y_{1}$ i $Y_{2}$ wartości w powyższym równaniu.

$$Y=\left ( A+B \right )+\left ( C+D \right )$$

$\Rightarrow Y=A+B+C+D$

Dlatego wyjście tej realizacji logiki OR-OR jest A+B+C+D. Tę funkcję boolowską można zaimplementować za pomocą 4-wejściowej bramki LUB. Dlatego tak jestdegenerative form.

Podobnie możesz zweryfikować, czy pozostałe realizacje należą do tej kategorii, czy nie.

Forma nie degeneracyjna

Jeśli wynik realizacji logiki dwupoziomowej nie może zostać uzyskany przy użyciu pojedynczej bramki logicznej, wówczas jest nazywany as non-degenerative form.

Pozostali 10 combinationsdwupoziomowych realizacji logicznych ma postać niedegeneratywną. Są to AND-OR, AND-NOR, OR-AND, OR-NAND, NAND-AND, NANDOR, NAND-NAND, NOR-AND, NOR-OR, NOR-NOR.

Omówmy teraz kilka realizacji. Załóżmy, że A, B, C i D to wejścia, a Y to wyjście w każdej realizacji logicznej.

Logika AND-OR

W tej realizacji logiki bramki AND są obecne na pierwszym poziomie, a bramki OR są obecne na drugim poziomie. Poniższy rysunek przedstawia przykład dlaAND-OR logic realizacja.

Wcześniej otrzymywaliśmy dane wyjściowe bramek logicznych pierwszego poziomu jako $Y_{1} = AB$ i $Y_{2} = CD$.

Te wyjścia, Y1 i Y2 są stosowane jako wejścia bramki OR, która jest obecna na drugim poziomie. Zatem wyjście tej bramki OR to

$$Y=Y_{1}+Y_{2}$$

Zastąpić $Y_{1}$ i $Y_{2}$ wartości w powyższym równaniu

$$Y=AB+CD$$

Dlatego wyjście tej realizacji logiki AND-OR jest AB+CD. Ta funkcja boolowska jest wSum of ProductsFormularz. Ponieważ nie możemy tego zaimplementować przy użyciu pojedynczej bramki logicznej, ta realizacja logiki AND-OR tonon-degenerative form.

Logika AND-NOR

W tej realizacji logiki bramki AND są obecne na pierwszym poziomie, a bramki NOR są obecne na drugim poziomie. Poniższy rysunek przedstawia przykładAND-NOR logic realizacja.

Znamy wyjścia bramek logicznych pierwszego poziomu jako $Y_{1} = AB$ i $Y_{2} = CD$

Te wyjścia, Y1 i Y2 są stosowane jako wejścia bramki NOR, która jest obecna na drugim poziomie. Zatem wyjście tej bramki NOR to

$$Y={\left ( Y_{1}+Y_{2} \right )}'$$

Zastąpić $Y_{1}$ i $Y_{2}$ wartości w powyższym równaniu.

$$Y={\left ( AB+CD \right )}'$$

Dlatego wyjście tej realizacji logiki AND-NOR jest ${\left ( AB+CD \right )}'$. Ta funkcja boolowska jest wAND-OR-InvertFormularz. Ponieważ nie możemy go zaimplementować przy użyciu pojedynczej bramki logicznej, ta realizacja logiki AND-NOR tonon-degenerative form

Logika OR-AND

W tej realizacji logiki bramki OR są obecne na pierwszym poziomie, a bramki AND są obecne na drugim poziomie. Poniższy rysunek przedstawia przykładOR-AND logic realizacja.

Wcześniej otrzymywaliśmy dane wyjściowe bramek logicznych pierwszego poziomu jako $Y_{1}=A+B$ i $Y_{2}=C+D$.

Te wyjścia, $Y_{1}$ i $Y_{2}$są stosowane jako wejścia bramki AND, która jest obecna na drugim poziomie. Więc wyjście tej bramki AND to

$$Y=Y_{1}Y_{2}$$

Zastąpić $Y_{1}$ i $Y_{2}$ wartości w powyższym równaniu.

$$Y = \left ( A+B \right )\left ( C+D \right )$$

Dlatego wynikiem tej realizacji logiki OR-AND jest (A + B) (C + D). Ta funkcja boolowska jest wProduct of SumsFormularz. Ponieważ nie możemy tego zaimplementować przy użyciu pojedynczej bramki logicznej, ta realizacja logiki OR-AND tonon-degenerative form.

Podobnie możesz zweryfikować, czy pozostałe realizacje należą do tej kategorii, czy nie.

Combinational circuitsskładają się z bramek logicznych. Te obwody działają z wartościami binarnymi. Wyjście (a) obwodu kombinacyjnego zależy od kombinacji obecnych wejść. Poniższy rysunek przedstawiablock diagram obwodu kombinacyjnego.

Ten układ kombinacyjny ma „n” zmiennych wejściowych i „m” wyjść. Każda kombinacja zmiennych wejściowych będzie miała wpływ na wyniki.

Procedura projektowania układów kombinacyjnych

  • Znajdź wymaganą liczbę zmiennych wejściowych i wyników z podanych specyfikacji.

  • Sformułuj Truth table. Jeśli jest „n” zmiennych wejściowych, to będzie 2n możliwych kombinacji. Znajdź wartości wyjściowe dla każdej kombinacji danych wejściowych.

  • Znaleźć Boolean expressionsdla każdego wyjścia. W razie potrzeby uprość te wyrażenia.

  • Zaimplementuj powyższe wyrażenia logiczne odpowiadające każdemu wyjściu przy użyciu Logic gates.

Konwertery kodu

Omówiliśmy różne kody w rozdziale o nazwie kody. Konwertery, które konwertują jeden kod na inny, są nazywane jakocode converters. Te konwertery kodu zasadniczo składają się z bramek logicznych.

Przykład

Kod binarny do konwertera kodu Graya

Zaimplementujmy konwerter, który konwertuje 4-bitowy kod binarny WXYZ na odpowiadający mu kod Graya ABCD.

W poniższej tabeli przedstawiono Truth table 4-bitowego kodu binarnego do konwertera kodu Graya.

Kod binarny WXYZ WXYZ Szary kod ABCD
0000 0000
0001 0001
0010 0011
0011 0010
0100 0110
0101 0111
0110 0101
0111 0100
1000 1100
1001 1101
1010 1111
1011 1110
1100 1010
1101 1011
1110 1001
1111 1000

Z tabeli Prawda możemy napisać plik Boolean functions dla każdego wyjściowego bitu kodu Graya, jak poniżej.

$$A=\sum m\left (8,9,10,11,12,13,14,15 \right )$$

$$B=\sum m\left (4,5,6,7,8,9,10,11 \right )$$

$$C=\sum m\left (2,3,4,5,10,11,12,13 \right )$$

$$D=\sum m\left (1,2,5,6,9,10,13,14 \right )$$

Uprośćmy powyższe funkcje za pomocą 4 zmiennych K-Maps.

Poniższy rysunek przedstawia 4 variable K-Map dla uproszczenia Boolean function, A.

Grupując 8 sąsiednich, otrzymaliśmy $A=W$.

Poniższy rysunek przedstawia 4 variable K-Map dla uproszczenia Boolean function, B.

Istnieją dwie grupy po 4 sąsiednie. Po zgrupowaniu otrzymamy B jako

$$B={W}'X+W{X}'=W\oplus X $$

Podobnie, po uproszczeniu otrzymamy następujące funkcje logiczne dla C & D.

$$C={X}'Y+X{Y}'=X \oplus Y$$

$$D={Y}'Z+Y{Z}'=Y \oplus Z$$

Poniższy rysunek przedstawia circuit diagram 4-bitowego kodu binarnego do konwertera kodu Graya.

Ponieważ wyjścia zależą tylko od obecnych wejść, ten 4-bitowy konwerter kodu binarnego na kod Graya jest układem kombinacyjnym. Podobnie możesz zaimplementować inne konwertery kodu.

Generator bitów parzystości

Istnieją dwa typy generatorów bitów parzystości w zależności od typu generowanego bitu parzystości. Even parity generatorgeneruje bit parzystości. Podobnie,odd parity generator generuje dziwny bit parzystości.

Generator parzystości

Teraz zaimplementujmy generator równej parzystości dla 3-bitowego wejścia binarnego, WXY. Generuje parzysty bit parzystości P. Jeśli na wejściu jest nieparzysta liczba jedynek, to parzysty bit parzystości P powinien wynosić „1”, aby wynikowe słowo zawierało parzystą liczbę jedynek. Dla innych kombinacji danych wejściowych, nawet bitu parzystości, P powinno wynosić „0”. W poniższej tabeli przedstawionoTruth table generatora parzystości.

Wejście binarne WXY Parzysty bit P
000 0
001 1
010 1
011 0
100 1
101 0
110 0
111 1

Z powyższej tabeli Prawdy możemy napisać plik Boolean function dla parzystego bitu jako

$$P={W}'{X}'Y+{W}'X{Y}'+W{X}'{Y}'+WXY$$

$\Rightarrow P={W}'\left ( {X}'Y+X{Y}' \right )+W\left ({X}'{Y}'+XY \right )$

$\Rightarrow P={W}'\left ( X \oplus Y \right )+W{\left (X \oplus Y \right )}'=W \oplus X \oplus Y$

Poniższy rysunek przedstawia circuit diagram generatora parzystości.

Ten obwód składa się z dwóch Exclusive-OR gatesz dwoma wejściami każdy. Pierwsza bramka ExclusiveOR ma dwa wejścia W & X i wytwarza wyjście W ⊕ X. To wyjście jest podawane jako jedno wejście drugiej bramki Exclusive-OR. Drugim wejściem tej drugiej bramki Exclusive-OR jest Y i generuje wyjście W ⊕ X ⊕ Y.

Generator nieparzystej parzystości

Jeśli na wejściu występuje parzysta liczba jedynek, to nieparzysty bit parzystości P powinien wynosić „1”, tak aby wynikowe słowo zawierało nieparzystą liczbę jedynek. W przypadku innych kombinacji danych wejściowych nieparzysty bit parzystości P powinien wynosić „0”.

Postępuj zgodnie z tą samą procedurą dla generatora parzystej parzystości dla implementacji generatora nieparzystej parzystości. Plikcircuit diagram nieparzystego generatora parzystości pokazano na poniższym rysunku.

Powyższy schemat obwodu składa się z bramki Ex-OR na pierwszym poziomie i bramki Ex-NOR na drugim poziomie. Ponieważ parzystość nieparzysta jest przeciwieństwem parzystości parzystej, możemy umieścić falownik na wyjściu generatora parzystości parzystej. W takim przypadku pierwszy i drugi poziom zawierają bramkę ExOR na każdym poziomie, a trzeci poziom składa się z falownika.

Kontroler parzystości

Istnieją dwa rodzaje narzędzi do sprawdzania parzystości w zależności od rodzaju sprawdzania parzystości. Even parity checkersprawdza błędy w przesyłanych danych, które zawierają bity wiadomości wraz z parzystością. Podobnie,odd parity checker sprawdza błąd w przesyłanych danych, które zawierają bity komunikatu wraz z nieparzystą parzystością.

Nawet sprawdzanie parzystości

Teraz zaimplementujmy obwód sprawdzania parzystości. Załóżmy, że 3-bitowe wejście binarne, WXY jest przesyłane wraz z bitem parzystości P. Zatem wynikowe słowo (dane) zawiera 4 bity, które zostaną odebrane jako wejście kontrolera parzystości.

Generuje plik even parity check bit, E. Ten bit będzie równy zero, jeśli odebrane dane zawierają parzystą liczbę jedynek. Oznacza to, że w otrzymanych danych nie ma błędów. Ten bit kontroli parzystości będzie równy jeden, jeśli odebrane dane zawierają nieparzystą liczbę jedynek. Oznacza to, że w odebranych danych wystąpił błąd.

W poniższej tabeli przedstawiono Truth table równego kontrolera parzystości.

4-bitowe odebrane dane WXYP Bit kontroli parzystości E
0000 0
0001 1
0010 1
0011 0
0100 1
0101 0
0110 0
0111 1
1000 1
1001 0
1010 0
1011 1
1100 0
1101 1
1110 1
1111 0

Z powyższej tabeli Prawdy możemy zauważyć, że parzystą wartość bitu kontroli parzystości wynosi „1”, gdy w odebranych danych występuje nieparzysta liczba bitów. Oznacza to, że funkcją boolowską bitu kontroli parzystości jest funkcjaodd function. Funkcja wyłącznego LUB spełnia ten warunek. Dlatego możemy bezpośrednio napisać plikBoolean function nawet bit kontroli parzystości jako

$$E=W \oplus X \oplus Y \oplus P$$

Poniższy rysunek przedstawia circuit diagram nawet kontrolera parzystości.

Ten obwód składa się z trzech Exclusive-OR gatesz dwoma wejściami każdy. Bramki pierwszego poziomu generują wyjścia$W \oplus X$ & $Y \oplus P$. Bramka Exclusive-OR, która jest na drugim poziomie, generuje wyjście$W \oplus X \oplus Y \oplus P$

Nieparzysty kontroler parzystości

Załóżmy, że 3-bitowe wejście binarne, WXY jest przesyłane wraz z nieparzystym bitem parzystości P. Zatem wynikowe słowo (dane) zawiera 4 bity, które zostaną odebrane jako wejście nieparzystego kontrolera parzystości.

Generuje plik odd parity check bit, E. Ten bit będzie równy zero, jeśli odebrane dane zawierają nieparzystą liczbę jedynek. Oznacza to, że w otrzymanych danych nie ma błędów. Ten nieparzysty bit kontroli parzystości będzie równy jeden, jeśli odebrane dane zawierają parzystą liczbę jedynek. Oznacza to, że w odebranych danych wystąpił błąd.

Postępuj zgodnie z tą samą procedurą co kontroler parzystej parzystości, aby zaimplementować nieparzysty kontroler parzystości. Plikcircuit diagram nieparzystego kontrolera parzystości pokazano na poniższym rysunku.

Powyższy schemat obwodu składa się z bramek Ex-OR na pierwszym poziomie i bramki Ex-NOR na drugim poziomie. Ponieważ parzystość nieparzysta jest przeciwieństwem parzystości parzystej, możemy umieścić falownik na wyjściu kontrolera parzystości. W takim przypadku pierwszy, drugi i trzeci poziom zawierają odpowiednio dwie bramki Ex-OR, jedną bramkę Ex-OR i jeden falownik.

Binary Adder

Najbardziej podstawową operacją arytmetyczną jest dodawanie. Obwód, który wykonuje dodawanie dwóch liczb binarnych, jest znany jakoBinary adder. Najpierw zaimplementujmy sumator, który dodaje dwa bity.

Half Adder

Sumator połówkowy to obwód kombinacyjny, który wykonuje dodawanie dwóch liczb binarnych A i B. single bit. Daje sumę dwóch wyjść, S & Carry, C.

Plik Truth table pół sumatora pokazano poniżej.

Wejścia Wyjścia
ZA b do S
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0

Kiedy dodamy dwa bity, otrzymana suma może mieć wartości z przedziału od 0 do 2 w systemie dziesiętnym. Możemy przedstawić cyfry dziesiętne 0 i 1 za pomocą pojedynczego bitu w systemie dwójkowym. Ale nie możemy przedstawić cyfry dziesiętnej 2 z pojedynczym bitem w systemie dwójkowym. Tak więc potrzebujemy dwóch bitów do przedstawienia tego w postaci binarnej.

Niech suma, S jest najmniej znaczącym bitem i przeniesieniem, C jest najbardziej znaczącym bitem sumy wynikowej. Dla pierwszych trzech kombinacji danych wejściowych, przeniesienie, C wynosi zero, a wartość S będzie równa zero lub jeden w oparciu onumber of onesobecny na wejściach. Ale dla ostatniej kombinacji danych wejściowych przeniesienie C wynosi jeden, a suma S wynosi zero, ponieważ suma wypadkowa wynosi dwa.

Z tabeli Prawda możemy bezpośrednio napisać plik Boolean functions dla każdego wyjścia jako

$$S=A \oplus B$$

$C=AB$

Powyższe funkcje możemy zaimplementować z 2-wejściową bramką Ex-OR i 2-wejściową bramką AND. Plikcircuit diagram Pół sumatora pokazano na poniższym rysunku.

W powyższym obwodzie dwie wejściowe bramki Ex-OR i dwie wejściowe bramki AND generują odpowiednio sumę, S i przeniesienie, C. Dlatego Half-adder dodaje dwa bity.

Pełny dodatek

Pełny sumator to układ kombinacyjny, który wykonuje addition of three bitsA, B i C w . Gdzie A i B są dwie równoległe znaczące bity i C w to bit przeniesienia, która jest wytwarzana z poprzedniego etapu. Ten pełny sumator wytwarza również sumę dwóch wyjść, S & carry, C out , które są podobne do Half adder.

Plik Truth table pełnego sumatora pokazano poniżej.

Wejścia Wyjścia
A B Cin Cout S
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

Kiedy dodamy trzy bity, otrzymana suma może mieć wartości z przedziału od 0 do 3 dziesiętnie. Możemy przedstawić cyfry dziesiętne 0 i 1 za pomocą pojedynczego bitu w systemie dwójkowym. Ale nie możemy przedstawić cyfr dziesiętnych 2 i 3 za pomocą pojedynczego bitu w systemie dwójkowym. Tak więc potrzebujemy dwóch bitów do przedstawienia tych dwóch cyfr dziesiętnych w systemie dwójkowym.

Suma, S jest najmniej znaczącym bitem, a C out jest najbardziej znaczącym bitem sumy wynikowej. W tabeli prawdy łatwo jest wypełnić wartości wyników dla wszystkich kombinacji danych wejściowych. Po prostu policznumber of onesobecny na wejściach i zapisz równoważną liczbę binarną na wyjściach. Jeśli C in jest równe zero, to tabela prawdy pełnego sumatora jest taka sama, jak tabela prawdy pół sumatora.

Otrzymamy następujące Boolean functions dla każdego wyjścia po uproszczeniu.

$$S=A \oplus B \oplus C_{in}$$

$c_{out} = AB + \left ( A \oplus B \right )c_{in}$

Suma S jest równa jeden, gdy na wejściach występuje nieparzysta liczba jedynek. Wiemy, że bramka Ex-OR generuje wyjście, które jest nieparzystą funkcją. Tak więc, możemy użyć dwóch 2-wejściowych bramek Ex-OR lub jednej 3-wejściowej bramki Ex-OR w celu uzyskania sumy S. Możemy zaimplementować carry, C out używając dwóch 2-wejściowych bramek AND i jednej bramki OR. Plikcircuit diagram pełnego sumatora pokazano na poniższym rysunku.

Ten dodatek nazywa się as Full adderponieważ do wdrożenia jednego pełnego sumatora potrzebujemy dwóch sumatorów Half i jednej bramki OR. Jeśli C in wynosi zero, to sumator pełny staje się sumą połowiczną. Możemy to łatwo zweryfikować z powyższego schematu lub z funkcji boolowskich wyjść sumatora pełnego.

4-bitowy dodatek binarny

4-bitowy sumator binarny wykonuje addition of two 4-bit numbers. Niech 4-bitowe liczby binarne,$A=A_{3}A_{2}A_{1}A_{0}$ i $B= B_{3}B_{2}B_{1}B_{0}$. Możemy zaimplementować 4-bitowy sumator binarny na jeden z dwóch poniższych sposobów.

  • Użyj sumatora Połowa, aby dodać dwa najmniej znaczące bity i trzy sumatory Pełne, aby dodać trzy bardziej znaczące bity.

  • Aby uzyskać jednolitość, użyj czterech pełnych dodatków. Ponieważ początkowy przeniesienia C w jest zero, sumator pełny, który jest stosowany do dodawania najmniej znaczące bity staje się połową sumator.

Na razie rozważaliśmy drugie podejście. Plikblock diagram 4-bitowego sumatora binarnego pokazano na poniższym rysunku.

Tutaj 4 pełne sumatory są ułożone kaskadowo. Każdy sumator Full otrzymuje odpowiednie bity z dwóch równoległych wejść A i B. Wyjście przeniesienia jednego sumatora pełnego będzie wejściem przeniesienia kolejnego sumatora pełnego wyższego rzędu. Ten 4-bitowy sumator binarny daje wynikową sumę mającą najwyżej 5 bitów. Tak więc, ostatni etap pełnego sumatora będzie MSB.

W ten sposób możemy zaimplementować dowolny sumator binarny wyższego rzędu, po prostu kaskadując wymaganą liczbę pełnych sumatorów. Ten dodatek binarny jest również nazywany jakoripple carry (binary) adder ponieważ przeniesienie rozchodzi się (faluje) z jednego etapu do następnego.

Odejmowanie binarne

Obwód, który wykonuje odejmowanie dwóch liczb binarnych, jest znany jako Binary subtractor. Odejmowanie binarne możemy zaimplementować w dwóch metodach.

  • Odejmowanie kaskadowe pełne
  • Metoda dopełnienia 2

W pierwszej metodzie otrzymamy n-bitowy odejmowanie binarne przez kaskadowanie 'n' pełnych odejmowania. Więc najpierw możesz zaimplementować Half Subtractor i Full Subtractor, podobnie jak Half Subtractor i Full Adder. Następnie możesz zaimplementować n-bitowy odejmowanie binarne, kaskadując „n” pełnych odejmowania. Tak więc będziemy mieć dwa oddzielne obwody do dodawania binarnego i odejmowania dwóch liczb binarnych.

W drugiej metodzie możemy użyć tego samego sumatora binarnego do odejmowania dwóch liczb binarnych, po prostu dokonując pewnych modyfikacji w drugim wejściu. Tak więc ma miejsce wewnętrznie binarna operacja dodawania, ale wynikiem jest wynikowe odejmowanie.

Wiemy, że odjęcie dwóch liczb binarnych A i B można zapisać jako,

$$A-B = A+\left ( {2}'s \: compliment \: of \: B \right )$$

$\Rightarrow A-B = A+\left ( {1}'s \: compliment \: of \: B \right )+1$

4-bitowy odejmowanie binarne

4-bitowy odejmowanie binarne tworzy plik subtraction of two 4-bit numbers. Niech 4-bitowe liczby binarne,$A=A_{3}A_{2}A_{1}A_{0}$ i $B= B_{3}B_{2}B_{1}B_{0}$. Wewnętrznie działanie 4-bitowego odejmowania binarnego jest podobne do działania 4-bitowego sumatora binarnego. Jeśli normalny bity liczby binarnej, uzupełniony bitów liczba binarna B początkowego przenoszące (BORROW), C się jako jeden stosuje się 4-bitowym binarnym sumatora, a następnie staje się 4-bitowe binarne odejmujący. Plikblock diagram 4-bitowego odejmowania binarnego pokazano na poniższym rysunku.

Ten 4-bitowy odejmowanie binarne generuje wynik, który ma maksymalnie 5 bitów. Jeśli liczba binarna A jest większa niż liczba binarna B, wówczas MSB wyjścia wynosi zero, a pozostałe bity mają wielkość AB. Jeśli liczba binarna A jest mniejsza niż liczba binarna B, wówczas MSB wyjścia wynosi jeden. Więc weź dopełnienie 2 do wyjścia, aby otrzymać wielkość AB.

W ten sposób możemy zaimplementować dowolny binarny odejmowanie wyższego rzędu, po prostu kaskadując wymaganą liczbę pełnych sumatorów z niezbędnymi modyfikacjami.

Adder / Subtractor binarny

Obwód, który może być używany do dodawania lub odejmowania dwóch liczb binarnych w dowolnym momencie, jest znany jako Binary Adder / subtractor. Zarówno sumator binarny, jak i odejmowanie binarne zawierają zestaw pełnych sumatorów, które są kaskadowe. Bity wejściowe liczby binarnej A są bezpośrednio stosowane zarówno w sumatorze binarnym, jak i odejmowaniu binarnym.

Istnieją dwie różnice we wejściach pełnych sumatorów, które są obecne w sumatorach binarnych i odejmowaniu binarnym.

  • Bity wejściowe liczby binarnej B są bezpośrednio stosowane do sumatorów pełnych w sumatorze binarnym, podczas gdy uzupełniane bity liczby binarnej B są stosowane do sumatorów pełnych w odejmowaniu binarnym.

  • Początkowe przeniesienie, C 0 = 0, jest stosowane w 4-bitowym sumatorze binarnym, podczas gdy początkowe przeniesienie (pożyczka), C 0 = 1 jest stosowane w 4-bitowym odejmowaniu binarnym.

Wiemy, że a 2-input Ex-OR gategeneruje wyjście, które jest takie samo jak wyjście pierwszego wejścia, gdy inne wejście ma wartość zero. Podobnie, generuje wynik, który jest uzupełnieniem pierwszego wejścia, gdy inny jest jeden.

Dlatego możemy zastosować bity wejściowe liczby binarnej B do 2-wejściowych bramek Ex-OR. Drugie wejście do wszystkich tych bramek Ex-OR to C 0 . Tak więc, w oparciu o wartość C 0 , bramki Ex-OR wytwarzają normalne lub uzupełnione bity liczby binarnej B.

4-bitowy sumator / odejmowanie binarne

4-bitowy sumator / odejmowanie binarne generuje albo dodawanie, albo odejmowanie dwóch 4-bitowych liczb na podstawie wartości początkowego przeniesienia lub pożyczki, 0 . Niech 4-bitowe liczby binarne,$A=A_{3}A_{2}A_{1}A_{0}$ i $B= B_{3}B_{2}B_{1}B_{0}$. Działanie 4-bitowego sumatora / odejmowania binarnego jest podobne do działania 4-bitowego sumatora binarnego i 4-bitowego odejmowania binarnego.

Zastosuj zwykłe bity liczb binarnych A i B oraz początkowe przeniesienie lub pożyczenie, C 0 z zewnętrznego do 4-bitowego sumatora binarnego. Plikblock diagram 4-bitowego sumatora / odejmowania binarnego pokazano na poniższym rysunku.

Jeśli początkowe przeniesienie, 0 jest równe zero, to każdy pełny sumator otrzymuje normalne bity liczb binarnych A i B. Tak więc 4-bitowy sumator / odejmowanie binarne generuje wyjście, które jestaddition of two binary numbers A i B.

Jeśli początkowa pożyczka, 0 to jeden, to każdy pełny sumator otrzymuje normalne bity liczby binarnej A i uzupełnione bity liczby binarnej B. Tak więc 4-bitowy sumator / odejmowanie binarne generuje wynik, który jestsubtraction of two binary numbers A i B.

Dlatego za pomocą dodatkowych bramek Ex-OR ten sam obwód może być używany zarówno do dodawania, jak i odejmowania dwóch liczb binarnych.

Decoderjest układem kombinacyjnym, który ma „n” linii wejściowych i maksymalnie 2 n linii wyjściowych. Jedno z tych wyjść będzie aktywne w stanie wysokim w oparciu o kombinację wejść obecnych, gdy dekoder jest włączony. Oznacza to, że dekoder wykrywa określony kod. Wyjścia dekodera to nic innego jakmin terms z 'n' zmiennych wejściowych (wierszy), gdy jest włączone.

Dekoder 2 do 4

Niech 2 do 4 Dekoder ma dwa wejścia A 1 i A 0 oraz cztery wyjścia Y 3 , Y 2 , Y 1 i Y 0 . Plikblock diagram na poniższym rysunku przedstawiono dekoder 2 do 4.

Jedno z tych czterech wyjść będzie miało wartość „1” dla każdej kombinacji wejść, gdy zostanie włączona, E wynosi „1”. PlikTruth table poniżej 2 do 4 dekoderów.

Włączyć Wejścia Wyjścia
E A1 A0 Y3 Y2 Y1 Y0
0 x x 0 0 0 0
1 0 0 0 0 0 1
1 0 1 0 0 1 0
1 1 0 0 1 0 0
1 1 1 1 0 0 0

Z tabeli Prawda możemy napisać plik Boolean functions dla każdego wyjścia jako

$$Y_{3}=E.A_{1}.A_{0}$$

$$ Y_{2}=E.A_{1}.{A_{0}}'$$

$$ Y_{1}=E.{A_{1}}'.A_{0}$$

$$ Y_{0}=E.{A_{1}}'.{A_{0}}'$$

Każde wyjście ma jeden termin produktowy. Tak więc w sumie są cztery terminy dotyczące produktów. Możemy zaimplementować te cztery terminy dotyczące produktu, używając czterech bramek AND, z których każdy ma trzy wejścia i dwa falowniki. Plikcircuit diagram na poniższym rysunku przedstawiono dekoder 2 do 4.

Dlatego wyjścia od 2 do 4 dekodera to nic innego jak min termsdwóch zmiennych wejściowych A 1 i A 0 , gdy włączone, E jest równe jeden. Jeśli włączone, E jest równe zero, wtedy wszystkie wyjścia dekodera będą równe zero.

Podobnie, 3- do 8 dekoder wytwarza osiem warunków minimum trzech zmiennych wejście A 2 , A 1 i A 0 , i 4 do 16 dekodera wytwarza szesnaście min Warunki czterech zmiennych wejście A 3 , A 2 , A 1 i A 0 .

Implementacja dekoderów wyższego rzędu

Teraz zaimplementujmy następujące dwa dekodery wyższego rzędu przy użyciu dekoderów niższego rzędu.

  • Dekoder 3 do 8
  • Dekoder 4 do 16

Dekoder 3 do 8

W tej sekcji zaimplementujmy 3 to 8 decoder using 2 to 4 decoders. Wiemy, że dekoder 2 do 4 ma dwa wejścia, A 1 i A 0 oraz cztery wyjścia, Y 3 do Y 0 . Natomiast dekoder 3 do 8 ma trzy wejścia A 2 , A 1 i A 0 oraz osiem wyjść, Y 7 do Y 0 .

Liczbę dekoderów niższego rzędu potrzebnych do implementacji dekodera wyższego rzędu możemy znaleźć za pomocą poniższego wzoru.

$$Required \: number \: of \: lower \: order \: decoders=\frac{m_{2}}{m_{1}}$$

Gdzie,

$m_{1}$ jest liczbą wyjść dekodera niższego rzędu.

$m_{2}$ jest liczbą wyjść dekodera wyższego rzędu.

Tutaj, $m_{1}$ = 4 i $m_{2}$ = 8. Zastąp te dwie wartości w powyższym wzorze.

$$Required \: number \: of \: 2 \: to \: 4 \: decoders=\frac{8}{4}=2$$

Dlatego do zaimplementowania jednego dekodera od 3 do 8 potrzebujemy dwóch dekoderów od 2 do 4. Plikblock diagram na poniższym rysunku przedstawiono 3 do 8 dekoderów wykorzystujących 2 do 4 dekoderów.

Wejścia równoległe A 1 i A 0 są stosowane do każdego dekodera od 2 do 4. Uzupełnienie wejścia A 2 jest podłączone do Enable, E niższego dekodera 2 do 4 w celu uzyskania wyjść, Y 3 do Y 0 . To sąlower four min terms. Wejście A 2 jest bezpośrednio podłączone do Enable, E górnego dekodera 2 do 4 w celu uzyskania wyjść, Y 7 do Y 4 . To sąhigher four min terms.

Dekoder 4 do 16

W tej sekcji zaimplementujmy 4 to 16 decoder using 3 to 8 decoders. Wiemy, że dekoder od 3 do 8 ma trzy wejścia A 2 , A 1 i A 0 oraz osiem wyjść, Y 7 do Y 0 . Natomiast dekoder od 4 do 16 ma cztery wejścia A 3 , A 2 , A 1 i A 0 oraz szesnaście wyjść, Y 15 do Y 0

Znamy następujący wzór na znalezienie wymaganej liczby dekoderów niższego rzędu.

$$Required \: number \: of \: lower \: order \: decoders=\frac{m_{2}}{m_{1}}$$

Zastąpić, $m_{1}$ = 8 i $m_{2}$ = 16 w powyższym wzorze.

$$Required \: number \: of \: 3 \: to \: 8 decoders=\frac{16}{8}=2$$

Dlatego do zaimplementowania jednego dekodera od 4 do 16 potrzebujemy dwóch dekoderów od 3 do 8. Plikblock diagram Na poniższym rysunku przedstawiono dekoder od 4 do 16 dekoderów wykorzystujący od 3 do 8 dekoderów.

Wejścia równoległe A 2 , A 1 i A 0 są stosowane do każdego dekodera od 3 do 8. Uzupełnienie wejścia, A3 jest podłączone do Enable, E niższego dekodera 3 do 8 w celu uzyskania wyjść, Y 7 do Y 0 . To sąlower eight min terms. Wejście A 3 jest bezpośrednio podłączone do Enable, E górnego dekodera 3 do 8 w celu uzyskania wyjść, Y 15 do Y 8 . To sąhigher eight min terms.

Na Encoderto układ kombinacyjny, który wykonuje odwrotną operację dekodera. Ma maksymalnie 2 n linii wejściowych i „n” linii wyjściowych. Stworzy kod binarny odpowiadający wejściu, które jest aktywne High. Dlatego enkoder koduje 2 n linii wejściowych za pomocą „n” bitów. Przedstawianie sygnału zezwolenia w enkoderach jest opcjonalne.

Koder 4 do 2

Niech 4 do 2 Enkoder ma cztery wejścia Y 3 , Y 2 , Y 1 i Y 0 oraz dwa wyjścia A 1 i A 0 . Plikblock diagram 4 do 2 Enkoder pokazano na poniższym rysunku.

W dowolnym momencie tylko jedno z tych 4 wejść może mieć wartość „1”, aby uzyskać odpowiedni kod binarny na wyjściu. PlikTruth table poniżej pokazano koder 4 do 2.

Wejścia Wyjścia
Y3 Y2 Y1 Y0 A1 A0
0 0 0 1 0 0
0 0 1 0 0 1
0 1 0 0 1 0
1 0 0 0 1 1

Z tabeli Prawda możemy napisać plik Boolean functions dla każdego wyjścia jako

$$A_{1}=Y_{3}+Y_{2}$$

$$A_{0}=Y_{3}+Y_{1}$$

Możemy zaimplementować powyższe dwie funkcje logiczne, używając dwóch wejściowych bramek LUB. Plikcircuit diagram na poniższym rysunku pokazano enkodera 4 do 2.

Powyższy schemat obwodu zawiera dwie bramki OR. Te bramki OR kodują cztery wejścia dwoma bitami

Koder ósemkowy na binarny

Ósemkowej enkodera do binarnego ma osiem wejść Y 7 Y 0 i trzech wyjść A 2 , A 1 i A 0 . Koder ósemkowy na binarny to nic innego jak koder 8 do 3. Plikblock diagram enkodera ósemkowego na binarny pokazano na poniższym rysunku.

W dowolnym momencie tylko jedno z ośmiu wejść może mieć wartość „1”, aby uzyskać odpowiedni kod binarny. PlikTruth table enkodera ósemkowego na binarny pokazano poniżej.

Wejścia Wyjścia
Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 A2 A1 A0
0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0 1
0 0 0 0 0 1 0 0 0 1 0
0 0 0 0 1 0 0 0 0 1 1
0 0 0 1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 1 0 1
0 1 0 0 0 0 0 0 1 1 0
1 0 0 0 0 0 0 0 1 1 1

Z tabeli Prawda możemy napisać plik Boolean functions dla każdego wyjścia jako

$$A_{2}=Y_{7}+Y_{6}+Y_{5}+Y_{4}$$

$$A_{1}=Y_{7}+Y_{6}+Y_{3}+Y_{2}$$

$$A_{0}=Y_{7}+Y_{5}+Y_{3}+Y_{1}$$

Możemy zaimplementować powyższe funkcje boolowskie, używając czterech wejściowych bramek OR. Plikcircuit diagram enkodera ósemkowego na binarny pokazano na poniższym rysunku.

Powyższy schemat obwodu zawiera trzy 4-wejściowe bramki OR. Te bramki OR kodują osiem wejść trzema bitami.

Wady enkodera

Poniżej przedstawiono wady normalnego kodera.

  • Istnieje niejednoznaczność, gdy wszystkie wyjścia enkodera są równe zero. Ponieważ może to być kod odpowiadający wejściom, gdy tylko najmniej znaczący sygnał wejściowy to jeden lub gdy wszystkie wejścia są zerowe.

  • Jeśli więcej niż jedno wejście jest aktywne w stanie wysokim, to koder generuje wyjście, które może nie być poprawnym kodem. Dlaexample, jeśli zarówno Y 3, jak i Y 6 mają wartość „1”, to enkoder wytwarza 111 na wyjściu. Nie jest to ani równoważny kod odpowiadający Y 3 , kiedy wynosi „1”, ani równoważny kod odpowiadający Y 6 , kiedy wynosi „1”.

Aby więc przezwyciężyć te trudności, powinniśmy przypisać priorytety każdemu wejściu kodera. Wówczas wyjście enkodera będzie kodem (binarnym) odpowiadającym aktywnemu wejściu (wejściom) High, które ma wyższy priorytet. Ten koder nosi nazwępriority encoder.

Koder priorytetów

Enkoder priorytetowy 4 do 2 posiada cztery wejścia Y 3 , Y 2 , Y 1 i Y 0 oraz dwa wyjścia A 1 i A 0 . Tutaj wejście Y 3 ma najwyższy priorytet, podczas gdy wejście Y 0 ma najniższy priorytet. W tym przypadku, nawet jeśli więcej niż jedno wejście ma wartość „1” w tym samym czasie, wyjście będzie kodem (binarnym) odpowiadającym wejściu, które mahigher priority.

Rozważaliśmy jeszcze jeden output, V aby wiedzieć, czy kod dostępny na wyjściach jest ważny, czy nie.

  • Jeżeli przynajmniej jedno wejście enkodera ma wartość „1”, to kod dostępny na wyjściach jest prawidłowy. W takim przypadku wyjście V będzie równe 1.

  • Jeśli wszystkie wejścia enkodera mają wartość „0”, to kod dostępny na wyjściach jest nieprawidłowy. W takim przypadku wyjście V będzie równe 0.

Plik Truth table poniżej pokazano enkoder z priorytetem 4 do 2.

Wejścia Wyjścia
Y3 Y2 Y1 Y0 A1 A0 V
0 0 0 0 0 0 0
0 0 0 1 0 0 1
0 0 1 x 0 1 1
0 1 x x 1 0 1
1 x x x 1 1 1

Posługiwać się 4 variable K-maps aby uzyskać uproszczone wyrażenia dla każdego wyjścia.

Uproszczony Boolean functions

$$A_{1}=Y_{3}+Y_{2}$$

$A_{0}=Y_{3}+{Y_{2}}'Y_{1}$

Podobnie, otrzymamy funkcję logiczną wyjścia, V as

$$V=Y_{3}+Y_{2}+Y_{1}+Y_{0}$$

Powyższe funkcje logiczne możemy zaimplementować za pomocą bramek logicznych. Plikcircuit diagram Na poniższym rysunku pokazano enkodera z priorytetem 4 do 2.

Powyższy schemat obwodu zawiera dwie 2-wejściowe bramki OR, jedną 4-wejściową bramkę OR, jedną 2-wejściową bramkę ORAZ i falownik. W tym przypadku kombinacja bramki AND i inwertera jest używana do generowania prawidłowego kodu na wyjściach, nawet gdy wiele wejść jest równych „1” w tym samym czasie. Stąd ten obwód koduje cztery wejścia dwoma bitami w oparciu opriority przypisane do każdego wejścia.

Multiplexerjest układem kombinacyjnym, który ma maksymalnie 2 n wejść danych, „n” linii wyboru i jedną linię wyjściową. Jedno z tych danych wejściowych zostanie podłączone do wyjścia na podstawie wartości linii wyboru.

Ponieważ istnieje „n” linii wyboru, będzie 2 n możliwych kombinacji zer i jedynek. Tak więc każda kombinacja wybierze tylko jedno wejście danych. Multiplekser jest również nazywany jakoMux.

Multiplekser 4x1

Multiplekser 4x1 posiada cztery wejścia danych I 3 , I 2 , I 1 i I 0 , dwie linie wyboru s 1 i s 0 oraz jedno wyjście Y.block diagram multipleksera 4x1 pokazano na poniższym rysunku.

Jedno z tych 4 wejść zostanie podłączone do wyjścia w oparciu o kombinację wejść obecnych w tych dwóch liniach wyboru. Truth table multipleksera 4x1 pokazano poniżej.

Linie wyboru Wynik
S1 S0 Y
0 0 I 0
0 1 I 1
1 0 I 2
1 1 I 3

Z tabeli Prawda możemy bezpośrednio napisać plik Boolean function na wyjściu, Y jako

$$Y={S_{1}}'{S_{0}}'I_{0}+{S_{1}}'S_{0}I_{1}+S_{1}{S_{0}}'I_{2}+S_{1}S_{0}I_{3}$$

Możemy zaimplementować tę funkcję logiczną za pomocą inwerterów, bramek AND i bramek OR. Plikcircuit diagram multipleksera 4x1 pokazano na poniższym rysunku.

Z łatwością możemy zrozumieć działanie powyższego obwodu. Podobnie można zaimplementować multiplekser 8x1 i multiplekser 16x1, wykonując tę ​​samą procedurę.

Wdrażanie multiplekserów wyższego rzędu.

Teraz zaimplementujmy następujące dwa multipleksery wyższego rzędu przy użyciu multiplekserów niższego rzędu.

  • Multiplekser 8x1
  • Multiplekser 16x1

Multiplekser 8x1

W tej sekcji zaimplementujmy multiplekser 8x1 przy użyciu multiplekserów 4x1 i multiplekserów 2x1. Wiemy, że multiplekser 4x1 ma 4 wejścia danych, 2 linie wyboru i jedno wyjście. Natomiast multiplekser 8x1 ma 8 wejść danych, 3 linie wyboru i jedno wyjście.

Więc potrzebujemy dwóch 4x1 Multiplexersw pierwszym etapie, aby uzyskać 8 wejść danych. Ponieważ każdy multiplekser 4x1 wytwarza jedno wyjście, wymagamy pliku2x1 Multiplexer na drugim etapie poprzez uwzględnienie produktów z pierwszego etapu jako nakładów i wytworzenie produktu końcowego.

Niech multiplekser 8x1 ma osiem wejść danych od I 7 do I 0 , trzy linie wyboru s 2 , s 1 i s0 oraz jedno wyjście Y.Truth table multipleksera 8x1 pokazano poniżej.

Wybór wejść Wynik
S2 S1 S0 Y
0 0 0 I 0
0 0 1 I 1
0 1 0 I 2
0 1 1 I 3
1 0 0 I 4
1 0 1 I 5
1 1 0 I 6
1 1 1 I 7

We can implement 8x1 Multiplexer using lower order Multiplexers easily by considering the above Truth table. The block diagram of 8x1 Multiplexer is shown in the following figure.

The same selection lines, s1 & s0 are applied to both 4x1 Multiplexers. The data inputs of upper 4x1 Multiplexer are I7 to I4 and the data inputs of lower 4x1 Multiplexer are I3 to I0. Therefore, each 4x1 Multiplexer produces an output based on the values of selection lines, s1 & s0.

The outputs of first stage 4x1 Multiplexers are applied as inputs of 2x1 Multiplexer that is present in second stage. The other selection line, s2 is applied to 2x1 Multiplexer.

  • If s2 is zero, then the output of 2x1 Multiplexer will be one of the 4 inputs I3 to I0 based on the values of selection lines s1 & s0.

  • If s2 is one, then the output of 2x1 Multiplexer will be one of the 4 inputs I7 to I4 based on the values of selection lines s1 & s0.

Therefore, the overall combination of two 4x1 Multiplexers and one 2x1 Multiplexer performs as one 8x1 Multiplexer.

16x1 Multiplexer

In this section, let us implement 16x1 Multiplexer using 8x1 Multiplexers and 2x1 Multiplexer. We know that 8x1 Multiplexer has 8 data inputs, 3 selection lines and one output. Whereas, 16x1 Multiplexer has 16 data inputs, 4 selection lines and one output.

So, we require two 8x1 Multiplexers in first stage in order to get the 16 data inputs. Since, each 8x1 Multiplexer produces one output, we require a 2x1 Multiplexer in second stage by considering the outputs of first stage as inputs and to produce the final output.

Let the 16x1 Multiplexer has sixteen data inputs I15 to I0, four selection lines s3 to s0 and one output Y. The Truth table of 16x1 Multiplexer is shown below.

Selection Inputs Output
S3 S2 S1 S0 Y
0 0 0 0 I0
0 0 0 1 I1
0 0 1 0 I2
0 0 1 1 I3
0 1 0 0 I4
0 1 0 1 I5
0 1 1 0 I6
0 1 1 1 I7
1 0 0 0 I8
1 0 0 1 I9
1 0 1 0 I10
1 0 1 1 I11
1 1 0 0 I12
1 1 0 1 I13
1 1 1 0 I14
1 1 1 1 I15

We can implement 16x1 Multiplexer using lower order Multiplexers easily by considering the above Truth table. The block diagram of 16x1 Multiplexer is shown in the following figure.

The same selection lines, s2, s1 & s0 are applied to both 8x1 Multiplexers. The data inputs of upper 8x1 Multiplexer are I15 to I8 and the data inputs of lower 8x1 Multiplexer are I7 to I0. Therefore, each 8x1 Multiplexer produces an output based on the values of selection lines, s2, s1 & s0.

The outputs of first stage 8x1 Multiplexers are applied as inputs of 2x1 Multiplexer that is present in second stage. The other selection line, s3 is applied to 2x1 Multiplexer.

  • If s3 is zero, then the output of 2x1 Multiplexer will be one of the 8 inputs Is7 to I0 based on the values of selection lines s2, s1 & s0.

  • If s3 is one, then the output of 2x1 Multiplexer will be one of the 8 inputs I15 to I8 based on the values of selection lines s2, s1 & s0.

Therefore, the overall combination of two 8x1 Multiplexers and one 2x1 Multiplexer performs as one 16x1 Multiplexer.

De-Multiplexer is a combinational circuit that performs the reverse operation of Multiplexer. It has single input, ‘n’ selection lines and maximum of 2n outputs. The input will be connected to one of these outputs based on the values of selection lines.

Since there are ‘n’ selection lines, there will be 2n possible combinations of zeros and ones. So, each combination can select only one output. De-Multiplexer is also called as De-Mux.

1x4 De-Multiplexer

1x4 De-Multiplexer has one input I, two selection lines, s1 & s0 and four outputs Y3, Y2, Y1 &Y0. The block diagram of 1x4 De-Multiplexer is shown in the following figure.

The single input ‘I’ will be connected to one of the four outputs, Y3 to Y0 based on the values of selection lines s1 & s0. The Truth table of 1x4 De-Multiplexer is shown below.

Selection Inputs Outputs
S1 S0 Y3 Y2 Y1 Y0
0 0 0 0 0 I
0 1 0 0 I 0
1 0 0 I 0 0
1 1 I 0 0 0

From the above Truth table, we can directly write the Boolean functions for each output as

$$Y_{3}=s_{1}s_{0}I$$

$$Y_{2}=s_{1}{s_{0}}'I$$

$$Y_{1}={s_{1}}'s_{0}I$$

$$Y_{0}={s_1}'{s_{0}}'I$$

We can implement these Boolean functions using Inverters & 3-input AND gates. The circuit diagram of 1x4 De-Multiplexer is shown in the following figure.

We can easily understand the operation of the above circuit. Similarly, you can implement 1x8 De-Multiplexer and 1x16 De-Multiplexer by following the same procedure.

Implementation of Higher-order De-Multiplexers

Now, let us implement the following two higher-order De-Multiplexers using lower-order De-Multiplexers.

  • 1x8 De-Multiplexer
  • 1x16 De-Multiplexer

1x8 De-Multiplexer

In this section, let us implement 1x8 De-Multiplexer using 1x4 De-Multiplexers and 1x2 De-Multiplexer. We know that 1x4 De-Multiplexer has single input, two selection lines and four outputs. Whereas, 1x8 De-Multiplexer has single input, three selection lines and eight outputs.

So, we require two 1x4 De-Multiplexers in second stage in order to get the final eight outputs. Since, the number of inputs in second stage is two, we require 1x2 DeMultiplexer in first stage so that the outputs of first stage will be the inputs of second stage. Input of this 1x2 De-Multiplexer will be the overall input of 1x8 De-Multiplexer.

Let the 1x8 De-Multiplexer has one input I, three selection lines s2, s1 & s0 and outputs Y7 to Y0. The Truth table of 1x8 De-Multiplexer is shown below.

Selection Inputs Outputs
s2 s1 s0 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
0 0 0 0 0 0 0 0 0 0 I
0 0 1 0 0 0 0 0 0 I 0
0 1 0 0 0 0 0 0 I 0 0
0 1 1 0 0 0 0 I 0 0 0
1 0 0 0 0 0 I 0 0 0 0
1 0 1 0 0 I 0 0 0 0 0
1 1 0 0 I 0 0 0 0 0 0
1 1 1 I 0 0 0 0 0 0 0

We can implement 1x8 De-Multiplexer using lower order Multiplexers easily by considering the above Truth table. The block diagram of 1x8 De-Multiplexer is shown in the following figure.

The common selection lines, s1 & s0 are applied to both 1x4 De-Multiplexers. The outputs of upper 1x4 De-Multiplexer are Y7 to Y4 and the outputs of lower 1x4 De-Multiplexer are Y3 to Y0.

The other selection line, s2 is applied to 1x2 De-Multiplexer. If s2 is zero, then one of the four outputs of lower 1x4 De-Multiplexer will be equal to input, I based on the values of selection lines s1 & s0. Similarly, if s2 is one, then one of the four outputs of upper 1x4 DeMultiplexer will be equal to input, I based on the values of selection lines s1 & s0.

1x16 De-Multiplexer

In this section, let us implement 1x16 De-Multiplexer using 1x8 De-Multiplexers and 1x2 De-Multiplexer. We know that 1x8 De-Multiplexer has single input, three selection lines and eight outputs. Whereas, 1x16 De-Multiplexer has single input, four selection lines and sixteen outputs.

So, we require two 1x8 De-Multiplexers in second stage in order to get the final sixteen outputs. Since, the number of inputs in second stage is two, we require 1x2 DeMultiplexer in first stage so that the outputs of first stage will be the inputs of second stage. Input of this 1x2 De-Multiplexer will be the overall input of 1x16 De-Multiplexer.

Let the 1x16 De-Multiplexer has one input I, four selection lines s3, s2, s1 & s0 and outputs Y15 to Y0. The block diagram of 1x16 De-Multiplexer using lower order Multiplexers is shown in the following figure.

The common selection lines s2, s1 & s0 are applied to both 1x8 De-Multiplexers. The outputs of upper 1x8 De-Multiplexer are Y15 to Y8 and the outputs of lower 1x8 DeMultiplexer are Y7 to Y0.

Inny selection line, s3jest stosowany do De-multipleksera 1x2. Jeśli s 3 jest równe zero, to jedno z ośmiu wyjść niższego demultipleksera 1x8 będzie równe wejściu, I na podstawie wartości linii wyboru s 2 , s 1 i s 0 . Podobnie, jeśli s3 wynosi jeden, to jedno z 8 wyjść górnego demultipleksera 1x8 będzie równe wejściu, I na podstawie wartości linii wyboru s 2 , s 1 i s 0 .

Programowalne urządzenia logiczne (PLDs)są układami scalonymi. Zawierają tablicę bramek AND i inną tablicę bramek OR. Istnieją trzy rodzaje PLD oparte na typach macierzy, które mają programowalną funkcję.

  • Programowalna pamięć tylko do odczytu
  • Programowalna logika tablicowa
  • Programowalna tablica logiczna

Proces wprowadzania informacji do tych urządzeń jest znany jako programming. Zasadniczo użytkownicy mogą programować te urządzenia lub układy scalone elektrycznie, aby zaimplementować funkcje boolowskie w oparciu o wymagania. W tym przypadku termin programowanie odnosi się do programowania sprzętu, ale nie do programowania oprogramowania.

Programowalna pamięć tylko do odczytu (PROM)

Pamięć tylko do odczytu (ROM) to urządzenie pamięci, które na stałe przechowuje informacje binarne. Oznacza to, że nie możemy później zmienić tych przechowywanych informacji w żaden sposób. Jeśli pamięć ROM ma programowalną funkcję, nazywa się ją jakoProgrammable ROM (PROM). Użytkownik ma elastyczność jednorazowego zaprogramowania informacji binarnych za pomocą programatora PROM.

PROM to programowalne urządzenie logiczne, które ma stałą tablicę AND i programowalną tablicę OR. Plikblock diagram z PROM pokazano na poniższym rysunku.

Tutaj wejścia bramek AND nie są typu programowalnego. Musimy więc wygenerować 2 n składników iloczynu, używając 2 n bramek AND, z których każda ma n danych wejściowych. Możemy zaimplementować te warunki produktowe za pomocą dekodera nx2 n . Więc ten dekoder generuje 'n'min terms.

Tutaj wejścia bramek OR są programowalne. Oznacza to, że możemy zaprogramować dowolną liczbę wymaganych terminów produktowych, ponieważ wszystkie wyjścia bramek AND są stosowane jako wejścia do każdej bramki OR. Dlatego wyniki PROM będą miały postaćsum of min terms.

Przykład

Zaimplementujmy następujące Boolean functions za pomocą PROM.

$$A(X,Y,Z)=\sum m\left ( 5,6,7 \right )$$

$$B(X,Y,Z)=\sum m\left ( 3,5,6,7 \right )$$

Podane dwie funkcje są sumą wyrażeń minimalnych, a każda funkcja ma trzy zmienne X, Y i Z. Tak więc do wytworzenia tych dwóch funkcji potrzebujemy dekodera od 3 do 8 i dwóch programowalnych bramek OR. OdpowiedniPROM pokazano na poniższym rysunku.

Tutaj dekoder od 3 do 8 generuje osiem minut. Dwie programowalne bramki OR mają dostęp do wszystkich tych minimalnych terminów. Ale tylko wymagane terminy minimalne są programowane w celu wytworzenia odpowiednich funkcji boolowskich przez każdą bramkę OR. Symbol „X” jest używany do połączeń programowalnych.

Programowalna logika tablicowa (PAL)

PAL to programowalne urządzenie logiczne, które ma programowalną tablicę AND i stałą tablicę OR. Zaletą PAL jest to, że możemy generować tylko wymagane warunki produktu funkcji boolowskiej zamiast generować wszystkie minimalne warunki za pomocą programowalnych bramek AND. Plikblock diagram PAL jest pokazany na poniższym rysunku.

Tutaj wejścia bramek AND są programowalne. Oznacza to, że każda bramka AND ma zarówno normalne, jak i uzupełnione dane wejściowe zmiennych. Tak więc, w oparciu o wymagania, możemy zaprogramować dowolne z tych danych wejściowych. Tak więc możemy wygenerować tylko wymagane plikiproduct terms używając tych bramek AND.

Tutaj wejścia bramek OR nie są typu programowalnego. Tak więc liczba wejść do każdej bramki OR będzie ustalona. Dlatego należy zastosować te wymagane warunki produktu do każdej bramki LUB jako dane wejściowe. Dlatego wyjścia PAL będą miały postaćsum of products form.

Przykład

Zaimplementujmy następujące Boolean functions używając PAL.

$$A=XY+X{Z}'$$

$$A=X{Y}'+Y{Z}'$$

Podane dwie funkcje są sumą iloczynów. Każda funkcja boolowska zawiera dwa terminy produktowe. Tak więc potrzebujemy czterech programowalnych bramek AND i dwóch stałych bramek OR do wytworzenia tych dwóch funkcji. OdpowiedniPAL pokazano na poniższym rysunku.

Plik programmable AND gatesmają dostęp zarówno do normalnych, jak i uzupełnianych danych wejściowych zmiennych. Na powyższym rysunku wejścia X,${X}'$, Y, ${Y}'$, Z & ${Z}'$, są dostępne na wejściach każdej bramki AND. Dlatego programuj tylko wymagane literały, aby wygenerować jeden wyraz produktu dla każdej bramki AND. Symbol „X” jest używany do połączeń programowalnych.

Tutaj wejścia bramek OR są typu stałego. Tak więc niezbędne warunki produktu są połączone z wejściami każdego z nichOR gate. Aby bramki OR generowały odpowiednie funkcje boolowskie. Symbol '.' służy do połączeń stałych.

Programowalna tablica logiczna (PLA)

PLA to programowalne urządzenie logiczne, które ma zarówno programowalną tablicę ORAZ, jak i programowalną tablicę LUB. Dlatego jest to najbardziej elastyczny PLD. Plikblock diagram PLA pokazano na poniższym rysunku.

Tutaj wejścia bramek AND są programowalne. Oznacza to, że każda bramka AND ma zarówno normalne, jak i uzupełnione dane wejściowe zmiennych. Tak więc, w oparciu o wymagania, możemy zaprogramować dowolne z tych danych wejściowych. Tak więc możemy wygenerować tylko wymagane plikiproduct terms używając tych bramek AND.

Tutaj również wejścia bramek OR są programowalne. Tak więc możemy zaprogramować dowolną liczbę wymaganych terminów produktowych, ponieważ wszystkie wyjścia bramek AND są stosowane jako wejścia do każdej bramki OR. Dlatego wyjścia PAL będą miały postaćsum of products form.

Przykład

Zaimplementujmy następujące Boolean functions za pomocą PLA.

$$A=XY+X{Z}'$$

$$B=X{Y}'+YZ+X{Z}'$$

Podane dwie funkcje są sumą iloczynów. Liczba terminów iloczynowych występujących w danych funkcjach boolowskich A i B wynosi odpowiednio dwa i trzy. Jeden termin produktu,${Z}'X$ jest wspólne dla każdej funkcji.

Tak więc potrzebujemy czterech programowalnych bramek AND i dwóch programowalnych bramek OR do wytworzenia tych dwóch funkcji. OdpowiedniPLA pokazano na poniższym rysunku.

Plik programmable AND gatesmają dostęp zarówno do normalnych, jak i uzupełnianych danych wejściowych zmiennych. Na powyższym rysunku wejścia X,${X}'$, Y, ${Y}'$, Z & ${Z}'$, są dostępne na wejściach każdej bramki AND. Dlatego programuj tylko wymagane literały, aby wygenerować jeden wyraz produktu dla każdej bramki AND.

Wszystkie te warunki dotyczące produktów są dostępne na wejściu każdego z nich programmable OR gate. Ale programuj tylko wymagane warunki produktu, aby wygenerować odpowiednie funkcje boolowskie przez każdą bramkę OR. Symbol „X” jest używany do połączeń programowalnych.

W poprzednich rozdziałach zaimplementowaliśmy różne układy kombinacyjne wykorzystujące bramki logiczne. Z wyjątkiem bramki NOT, pozostałe wszystkie bramki logiczne mają co najmniej dwa wejścia i jedno wyjście. Podobniethreshold gate zawiera również co najmniej jedno wejście i tylko jedno wyjście.

Dodatkowo zawiera odpowiednie wagi dla każdego wejścia i wartość progową. Wartości tych wag i progów mogą mieć dowolną skończoną liczbę rzeczywistą.

Podstawy bramki progowej

Niech wejścia bramki progowej to X 1 , X 2 , X 3 ,…, X n . Odpowiednie wagi tych wejść to W 1 , W 2 , W 3 ,…, W n . Pliksymbol Bramki progowej pokazano na poniższym rysunku.

Threshold gatejest reprezentowany przez okrąg i ma wejścia 'n', X 1 do X n i pojedyncze wyjście, Y. Ten okrąg składa się z dwóch części. Jedna część przedstawia wagi odpowiadające wejściom, a druga część reprezentuje wartość progową, T.

Suma iloczynów danych wejściowych z odpowiednimi wagami jest znana jako weighted sum. Jeśli ta ważona suma jest większa lub równa wartości progowej, T, wtedy tylko wyjście, Y będzie równe jeden. W przeciwnym razie wynik Y będzie równy zero.

Mathematically, możemy zapisać tę relację między wejściami i wyjściami bramki progowej, jak poniżej.

$$Y=1, if \: \: W_{1}X_{1}+W_{2}X_{2}+W_{3}X_{3}+...W_{n}X_{n}\geq T$$

= 0, w przeciwnym razie.

Dlatego możemy implementować różne bramki logiczne i funkcje boolowskie, po prostu zmieniając wartości wag i / lub wartości progowej, T.

Przykład

Znajdźmy plik simplified Boolean function dla następnej bramki progowej.

Ta bramka progowa ma trzy wejścia X 1 , X 2 , X 3 i jedno wyjście Y.

Wagi odpowiadające wejściom X 1 , X 2 i X 3 wynoszą odpowiednio W 1 = 2, W 2 = 1 i W 3 = -4.

Wartość bramki progowej wynosi T = -1.

Plik weighted sum Brama progowa to

$$W=W_{1}X_{1}+W_{2}X_{2}+W_{3}X_{3}$$

Zastąp podane wagi w powyższym równaniu.

$$\Rightarrow W=2X_{1}+X_{2}-4X_{3}$$

Wyjście bramki progowej, Y będzie wynosić '1', jeśli W ≥ -1, w przeciwnym razie będzie to '0'.

Następujące table pokazuje relacje między wejściem i wyjściem dla wszystkich możliwych kombinacji wejść.

Wejścia Suma ważona Wynik
$X_{1}$ $X_{2}$ $X_{3}$ $W=2X_{1}+X_{2}-4X_{3}$ $Y$
0 0 0 0 1
0 0 1 -4 0
0 1 0 1 1
0 1 1 -3 0
1 0 0 2 1
1 0 1 -2 0
1 1 0 3 1
1 1 1 -1 1

Z powyższej tabeli możemy napisać plik Boolean function na wyjściu, Y jako

$$Y= \sum m\left ( 0,2,4,6,7 \right )$$

Uproszczenie tej funkcji logicznej przy użyciu 3 variable K-Map pokazano na poniższym rysunku.

Dlatego też simplified Boolean function dla danej bramki progowej to $Y={X_{3}'}+X_{1}X_{2}$.

Synteza funkcji progowych

Brama progowa jest również nazywana jako universal gateponieważ możemy zaimplementować dowolną funkcję logiczną za pomocą bramek progowych. Czasami może nie być możliwe zaimplementowanie kilku bramek logicznych i funkcji boolowskich przy użyciu jednej bramki progowej. W takim przypadku możemy potrzebować wielu bramek progowych.

Postępuj zgodnie z tymi steps do implementacji funkcji logicznej przy użyciu pojedynczej bramki progowej.

Step 1 - Sformułuj a Truth table dla danej funkcji boolowskiej.

Step 2 - W powyższej tabeli Prawdy dodaj (uwzględnij) jeszcze jedną kolumnę, która podaje relację między weighted sums i Threshold value.

Step 3 - Napisz relację między sumami ważonymi a progiem dla każdej kombinacji danych wejściowych, jak wspomniano poniżej.

  • Jeśli wyjście funkcji boolowskiej wynosi 1, to suma ważona będzie większa lub równa wartości progowej dla tej kombinacji danych wejściowych.

  • Jeśli wyjście funkcji boolowskiej wynosi 0, to suma ważona będzie mniejsza niż wartość progowa dla tej kombinacji danych wejściowych.

Step 4 - Dobierz wartości wag i progu w taki sposób, aby spełniały wszystkie relacje występujące w ostatniej kolumnie powyższej tabeli.

step 5 - Narysuj symbol bramki progowej z tymi wagami i wartością progową.

Przykład

Zaimplementujmy następujące Boolean function przy użyciu pojedynczej bramki progowej.

$$Y\left ( X_{1},X_{2},X_{3} \right )=\sum m\left ( 0,2,4,6,7 \right )$$

Podana funkcja boolowska jest funkcją z trzema zmiennymi, która jest reprezentowana w postaci sumy minimalnych warunków. PlikTruth table tej funkcji pokazano poniżej.

Wejścia Wynik
X1 X2 X3 Y
0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 1

Teraz dodajmy (uwzględnij) jeszcze jedną kolumnę do powyższej tabeli Prawdy. Ta ostatnia kolumna zawiera relacje międzyweighted sums (W) and Threshold wartość (T) dla każdej kombinacji wejść.

Wejścia Wynik Relacje między W&T
X1 X2 X3 Y
0 0 0 1 0 ≥ T.
0 0 1 0 W 3 <T
0 1 0 1 W 2 ≥ T
0 1 1 0 W 2 + W 3 <T
1 0 0 1 W 1 ≥ T
1 0 1 0 W 1 + W 3 <T
1 1 0 1 W 1 + W 2 ≥ T
1 1 1 1 W 1 + W 2 + W 3 ≥ T

Poniżej przedstawiono wnioski z powyższej tabeli.

  • Wartość progu powinna być zerowa lub ujemna w oparciu o pierwszą relację.

  • Wartość W 3 powinna być ujemna na podstawie relacji pierwszej i drugiej.

  • Wartości W 1 i W 2 powinny być większe lub równe Wartość progowa na podstawie piątej i trzeciej relacji.

  • W 2 powinno być większe niż W 3 na podstawie czwartej zależności.

Na podstawie powyższych wniosków możemy wybrać następujące wartości wag i progu.

W 1 = 2, W 2 = 1, W 3 = -4 i T = -1

Plik symbol bramki progowej z powyższymi wartościami pokazano poniżej.

W związku z tym ta bramka progowa implementuje dane Boolean function, $Y\left ( X_{1}, X_{2},X_{3} \right )=\sum m\left ( 0,2,4,6,7 \right )$.

W poprzednich rozdziałach omówiliśmy różne układy kombinacyjne. Wszystkie te obwody mają zestaw wyjść, który zależy tylko od kombinacji obecnych wejść. Poniższy rysunek przedstawiablock diagram obwodu sekwencyjnego.

Ten układ sekwencyjny zawiera zestaw wejść i wyjść. Wyjście (a) obwodu sekwencyjnego zależy nie tylko od kombinacji obecnych wejść, ale także od poprzednich wyjść. Poprzednie wyjście to nic innego jak plikpresent state. Dlatego układy sekwencyjne zawierają układy kombinacyjne wraz z elementami pamięci (pamięci). Niektóre układy sekwencyjne mogą nie zawierać obwodów kombinacyjnych, a jedynie elementy pamięci.

Poniższa tabela przedstawia differences między obwodami kombinacyjnymi a obwodami sekwencyjnymi.

Obwody kombinacyjne Układy sekwencyjne
Wyjścia zależą tylko od obecnych wejść. Wyjścia zależą zarówno od obecnych wejść, jak i od aktualnego stanu.
Brak ścieżki informacji zwrotnej. Obecna jest ścieżka informacji zwrotnej.
Elementy pamięci nie są wymagane. Wymagane są elementy pamięci.
Sygnał zegarowy nie jest wymagany. Wymagany jest sygnał zegarowy.
Łatwe do zaprojektowania. Trudne do zaprojektowania.

Rodzaje obwodów sekwencyjnych

Poniżej przedstawiono dwa typy obwodów sekwencyjnych -

  • Asynchroniczne układy sekwencyjne
  • Synchroniczne układy sekwencyjne

Asynchroniczne układy sekwencyjne

Jeśli niektóre lub wszystkie wyjścia obwodu sekwencyjnego nie zmieniają się (nie wpływają) w odniesieniu do aktywnego przejścia sygnału zegarowego, wówczas ten obwód sekwencyjny nazywa się Asynchronous sequential circuit. Oznacza to, że wszystkie wyjścia asynchronicznych obwodów sekwencyjnych nie zmieniają się (nie wpływają) w tym samym czasie. Dlatego większość wyjść asynchronicznych obwodów sekwencyjnych tonot in synchronous z albo tylko dodatnimi zboczami, albo tylko ujemnymi zboczami sygnału zegarowego.

Synchroniczne układy sekwencyjne

Jeśli wszystkie wyjścia obwodu sekwencyjnego zmieniają się (wpływają) w odniesieniu do aktywnego przejścia sygnału zegarowego, wówczas ten obwód sekwencyjny nazywa się Synchronous sequential circuit. Oznacza to, że wszystkie wyjścia synchronicznych obwodów sekwencyjnych zmieniają się (wpływają) w tym samym czasie. Dlatego też wyjścia synchronicznych obwodów sekwencyjnych są synchroniczne albo tylko z dodatnimi zboczami, albo tylko z ujemnymi zboczami sygnału zegarowego.

Sygnał zegarowy i wyzwalanie

W tej sekcji omówimy jeden po drugim sygnał zegara i rodzaje wyzwalania.

Sygnał zegarowy

Sygnał zegarowy jest sygnałem okresowym, a jego czas włączenia i czas wyłączenia nie muszą być takie same. Możemy przedstawić sygnał zegara jakosquare wave, gdy czas włączenia i czas wyłączenia są takie same. Ten sygnał zegarowy pokazano na poniższym rysunku.

Na powyższym rysunku za sygnał zegara uważa się falę prostokątną. Ten sygnał pozostaje w stanie logicznym High (5 V) przez pewien czas i pozostaje na poziomie logicznym Low (0 V) przez taki sam czas. Ten wzór powtarza się z pewnym okresem czasu. W tym przypadkutime period będzie równa dwukrotności czasu włączenia lub dwukrotności czasu wyłączenia.

Sygnał zegara możemy przedstawić jako train of pulses, gdy czas włączenia i czas wyłączenia nie są takie same. Ten sygnał zegarowy pokazano na poniższym rysunku.

Na powyższym rysunku ciąg impulsów jest traktowany jako sygnał zegarowy. Ten sygnał pozostaje w stanie logicznym High (5V) przez pewien czas, a przez inny czas na poziomie logiki Low (0V). Ten wzór powtarza się z pewnym okresem czasu. W tym przypadkutime period będzie równa sumie czasu włączenia i wyłączenia.

Odwrotność okresu czasu sygnału zegara jest znana jako frequencysygnału zegara. Wszystkie układy sekwencyjne są obsługiwane za pomocą sygnału zegarowego. Zatem częstotliwość, z jaką mogą pracować układy sekwencyjne, musi być odpowiednio dobrana, częstotliwość sygnału zegara.

Rodzaje wyzwalania

Poniżej przedstawiono dwa możliwe typy wyzwalania, które są używane w obwodach sekwencyjnych.

  • Wyzwalanie poziomu
  • Wyzwalanie krawędzi

Wyzwalanie poziomu

Istnieją dwa poziomy, a mianowicie stan logiczny wysoki i logiczny niski w sygnale zegarowym. Oto dwatypes of level triggering.

  • Wyzwalanie poziomu dodatniego
  • Wyzwalanie poziomu ujemnego

Jeśli obwód sekwencyjny działa z sygnałem zegara, gdy jest włączony Logic High, to ten typ wyzwalania jest znany jako Positive level triggering. Podkreślono to na poniższym rysunku.

Jeśli obwód sekwencyjny działa z sygnałem zegara, gdy jest włączony Logic Low, to ten typ wyzwalania jest znany jako Negative level triggering. Zostało to zaznaczone na poniższym rysunku.

Wyzwalanie krawędzi

W sygnale zegarowym występują dwa rodzaje przejść. Oznacza to, że sygnał zegara przechodzi albo z niskiego poziomu do wysokiego lub z wysokiego do niskiego.

Oto dwa types of edge triggering na podstawie przejść sygnału zegara.

  • Wyzwalanie dodatnim zboczem
  • Wyzwalanie ujemnym zboczem

Jeśli obwód sekwencyjny jest obsługiwany sygnałem zegarowym, który przechodzi od stanu logicznego niskiego do wysokiego, wówczas ten typ wyzwalania jest znany jako Positive edge triggering. Nazywa się to również wyzwalaniem zboczem narastającym. Przedstawiono to na poniższym rysunku.

Jeśli obwód sekwencyjny jest obsługiwany sygnałem zegarowym, który przechodzi z stanu logicznego wysokiego na niski, wówczas ten typ wyzwalania jest znany jako Negative edge triggering. Nazywa się to również wyzwalaniem zboczem opadającym. Przedstawiono to na poniższym rysunku.

W kolejnych rozdziałach omówimy różne układy sekwencyjne w zależności od rodzaju wyzwalania, które można w nim zastosować.

Istnieją dwa typy elementów pamięci w zależności od rodzaju wyzwalania, który jest odpowiedni do jej obsługi.

  • Latches
  • Flip-flops

Zatrzaski działają z sygnałem zezwolenia, którym jest level sensitive. Natomiast klapki są wrażliwe na krawędzie. O klapkach omówimy w następnym rozdziale. Porozmawiajmy teraz o SR Latch i D Latch jeden po drugim.

SR Latch

SR Latch jest również nazywany jako Set Reset Latch. Ten zatrzask ma wpływ na wyjścia, dopóki zezwolenie, E jest utrzymywane na poziomie „1”. Plikcircuit diagram SR Latch pokazano na poniższym rysunku.

Ten obwód ma dwa wejścia S i R i dwa wyjścia Q (t) i Q (t) '. Plikupper NOR gate ma dwa wejścia R i uzupełnienie stanu obecnego, Q (t) 'i wytwarza następny stan, Q (t + 1), gdy jest włączony, E wynosi' 1 '.

Podobnie lower NOR gate ma dwa wejścia S i stan obecny, Q (t) i wytwarza uzupełnienie następnego stanu, Q (t + 1) ', gdy jest włączony, E wynosi' 1 '.

Wiemy, że a 2-input NOR gategeneruje wyjście, które jest uzupełnieniem innego wejścia, gdy jedno z danych wejściowych ma wartość „0”. Podobnie generuje wyjście „0”, gdy jedno z wejść ma wartość „1”.

  • Jeśli S = 1, to następny stan Q (t + 1) będzie równy „1” niezależnie od stanu obecnego, wartości Q (t).

  • Jeśli R = 1, to następny stan Q (t + 1) będzie równy „0” niezależnie od stanu obecnego, wartości Q (t).

W dowolnym momencie tylko z tych dwóch wejść powinno wynosić „1”. Jeśli oba wejścia mają wartość „1”, to następna wartość stanu Q (t + 1) jest nieokreślona.

W poniższej tabeli przedstawiono state table zatrzasku SR.

S R Q (t + 1)
0 0 Q (t)
0 1 0
1 0 1
1 1 -

Dlatego SR Latch wykonuje trzy rodzaje funkcji, takie jak Hold, Set & Reset w oparciu o warunki wejściowe.

D Zatrzask

SR Latch ma jedną wadę. Oznacza to, że nie można przewidzieć następnej wartości stanu, gdy oba wejścia S i R są jednością. Tak więc możemy pokonać tę trudność za pomocą D Latcha. Jest również nazywany blokadą danych. Plikcircuit diagram D Latch pokazano na poniższym rysunku.

Ten obwód ma jedno wejście D i dwa wyjścia Q (t) i Q (t) '. D Latch uzyskuje się z SR Latch poprzez umieszczenie falownika między wejściami S & R i podłączenie wejścia D do S. Oznacza to, że wyeliminowaliśmy kombinacje S & R o tej samej wartości.

  • Jeśli D = 0 → S = 0 i R = 1, to następny stan Q (t + 1) będzie równy „0” niezależnie od stanu obecnego, wartości Q (t). Odpowiada to drugiemu wierszowi tabeli stanów zatrzasku SR.

  • Jeśli D = 1 → S = 1 i R = 0, to następny stan Q (t + 1) będzie równy „1” niezależnie od stanu obecnego, wartości Q (t). Odpowiada to trzeciemu wierszowi tabeli stanów zatrzasku SR.

W poniższej tabeli przedstawiono state table zatrzasku D.

re Q (t + 1)
0 0
1 1

Dlatego D Latch Przechowuje informacje, które są dostępne na wejściu danych, D. Oznacza to, że wyjście D Latch jest wrażliwe na zmiany na wejściu, D, o ile zezwolenie jest Wysokie.

W tym rozdziale zaimplementowaliśmy różne zamki, zapewniając sprzężenie krzyżowe między bramkami NOR. Podobnie możesz wdrożyć te zatrzaski za pomocą bramek NAND.

W poprzednim rozdziale omówiliśmy zamki. To podstawowy budulec klapek. Klapki możemy zrealizować na dwa sposoby.

W pierwszej metodzie cascade two latchesw taki sposób, że pierwszy przerzutnik jest włączany dla każdego dodatniego impulsu zegarowego, a drugi przerzutnik jest włączany dla każdego ujemnego impulsu zegarowego. Aby połączenie tych dwóch zatrzasków stało się przerzutnikiem.

W drugiej metodzie możemy bezpośrednio zaimplementować przerzutnik, który jest wrażliwy na krawędzie. W tym rozdziale omówimy następujące kwestieflip-flops przy użyciu drugiej metody.

  • SR Flip-Flop
  • D Flip-Flop
  • JK Flip-Flop
  • Przerzutnik typu T

SR Flip-Flop

Przerzutnik SR działa tylko z dodatnimi lub ujemnymi przejściami zegarowymi. Natomiast zatrzask SR działa z sygnałem zezwolenia. Plikcircuit diagram przerzutnika SR pokazano na poniższym rysunku.

Ten obwód ma dwa wejścia S i R i dwa wyjścia Q (t) i Q (t) '. Działanie SR flipflop jest podobne do SR Latch. Ale ten przerzutnik wpływa na wyjścia tylko wtedy, gdy zastosowane jest pozytywne przejście sygnału zegarowego zamiast aktywnego zezwolenia.

W poniższej tabeli przedstawiono state table przerzutnika SR.

S R Q (t + 1)
0 0 Q (t)
0 1 0
1 0 1
1 1 -

Tutaj Q (t) i Q (t + 1) są odpowiednio stanem obecnym i następnym. Tak więc przerzutnik SR może być używany do jednej z tych trzech funkcji, takich jak Hold, Reset & Set w oparciu o warunki wejściowe, gdy zastosowane jest pozytywne przejście sygnału zegarowego. W poniższej tabeli przedstawionocharacteristic table przerzutnika SR.

Obecne dane wejściowe Stan obecny Następny stan
S R Q(t) Q(t + 1)
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 x
1 1 1 x

Używając trzech zmiennych K-Map, możemy uzyskać uproszczone wyrażenie dla następnego stanu, Q (t + 1). Plikthree variable K-Map dla następnego stanu Q (t + 1) pokazano na poniższym rysunku.

Maksymalne możliwe zgrupowania sąsiednich są już pokazane na rysunku. Dlatego teżsimplified expression dla następnego stanu Q (t + 1) jest

$Q\left ( t+1 \right )=S+{R}'Q\left ( t \right )$

D Flip-Flop

Przerzutnik D działa tylko z dodatnimi lub ujemnymi przejściami zegarowymi. Natomiast zatrzask D działa z sygnałem zezwolenia. Oznacza to, że wyjście przerzutnika D jest niewrażliwe na zmiany na wejściu D, z wyjątkiem aktywnego przejścia sygnału zegarowego. Plikcircuit diagram przerzutnika D pokazano na poniższym rysunku.

Ten obwód ma jedno wejście D i dwa wyjścia Q (t) i Q (t) '. Działanie przerzutnika D jest podobne do działania D Latch. Ale ten przerzutnik wpływa na wyjścia tylko wtedy, gdy zastosowane jest pozytywne przejście sygnału zegarowego zamiast aktywnego zezwolenia.

W poniższej tabeli przedstawiono state table przerzutnika D.

re Qt + 1t + 1
0 0
1 1

Dlatego przerzutnik D zawsze posiada informację, która jest dostępna na wejściu danych, D o wcześniejszym dodatnim przejściu sygnału zegarowego. Z powyższej tabeli stanów możemy bezpośrednio zapisać następne równanie stanu jako

Q (t + 1) = D

Następny stan przerzutnika D jest zawsze równy wejściu danych, D dla każdego dodatniego przejścia sygnału zegarowego. Stąd przerzutniki D mogą być używane w rejestrach,shift registers i niektóre liczniki.

JK Flip-Flop

Przerzutnik JK to zmodyfikowana wersja przerzutnika SR. Działa tylko z dodatnimi przejściami zegara lub ujemnymi przejściami zegara. Plikcircuit diagram przerzutnika JK pokazano na poniższym rysunku.

Ten obwód ma dwa wejścia J i K oraz dwa wyjścia Q (t) i Q (t) '. Działanie przerzutnika JK jest podobne do przerzutnika SR. Tutaj rozważaliśmy wejścia przerzutnika SR jakoS = J Q(t)’ i R = KQ(t) w celu wykorzystania zmodyfikowanego przerzutnika SR dla 4 kombinacji wejść.

W poniższej tabeli przedstawiono state table przerzutnika JK.

jot K. Q (t + 1)
0 0 Q (t)
0 1 0
1 0 1
1 1 Q (t) ”

Tutaj Q (t) i Q (t + 1) są odpowiednio stanem obecnym i następnym. Tak więc przerzutnik JK może być użyty do jednej z tych czterech funkcji, takich jak Hold, Reset, Set & Complement aktualnego stanu w oparciu o warunki wejściowe, gdy zastosowana jest dodatnia zmiana sygnału zegarowego. W poniższej tabeli przedstawionocharacteristic table przerzutnika JK.

Obecne dane wejściowe Stan obecny Następny stan
J K Q(t) Q(t+1)
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 0

Używając trzech zmiennych K-Map, możemy uzyskać uproszczone wyrażenie dla następnego stanu, Q (t + 1). Three variable K-Map dla następnego stanu Q (t + 1) pokazano na poniższym rysunku.

Maksymalne możliwe zgrupowania sąsiednich są już pokazane na rysunku. Dlatego teżsimplified expression dla następnego stanu Q (t + 1) jest

$$Q\left ( t+1 \right )=J{Q\left ( t \right )}'+{K}'Q\left ( t \right )$$

Przerzutnik typu T

Przerzutnik T to uproszczona wersja przerzutnika JK. Uzyskuje się to poprzez podłączenie tego samego wejścia „T” do obu wejść przerzutnika JK. Działa tylko z dodatnimi przejściami zegara lub ujemnymi przejściami zegara. Plikcircuit diagram T flip-flop pokazano na poniższym rysunku.

Ten obwód ma jedno wejście T i dwa wyjścia Q (t) i Q (t) '. Działanie przerzutnika T jest takie samo jak przerzutnika JK. Tutaj rozważaliśmy wejścia przerzutnika JK jakoJ = T i K = Tw celu wykorzystania zmodyfikowanego przerzutnika JK dla 2 kombinacji wejść. Więc wyeliminowaliśmy pozostałe dwie kombinacje J i K, dla których te dwie wartości są do siebie komplementarne w przerzutniku T.

W poniższej tabeli przedstawiono state table przerzutnika T.

re Q (t + 1)
0 Q (t)
1 Q (t) ”

Tutaj Q (t) i Q (t + 1) są odpowiednio stanem obecnym i następnym. Tak więc przerzutnik T może być używany do jednej z tych dwóch funkcji, takich jak Hold i Uzupełnienie obecnego stanu w oparciu o warunki wejściowe, gdy zastosowane jest dodatnie przejście sygnału zegara. W poniższej tabeli przedstawionocharacteristic table przerzutnika T.

Wejścia Stan obecny Następny stan
T Q(t) Q(t + 1)
0 0 0
0 1 1
1 0 1
1 1 0

Z powyższej tabeli charakterystycznej możemy bezpośrednio napisać plik next state equation tak jak

$$Q\left ( t+1 \right )={T}'Q\left ( t \right )+TQ{\left ( t \right )}'$$

$$\Rightarrow Q\left ( t+1 \right )=T\oplus Q\left ( t \right )$$

Wyjście przerzutnika T zawsze przełącza się przy każdym dodatnim przejściu sygnału zegarowego, gdy wejście T pozostaje w stanie logicznym High (1). W związku z tym przerzutnik T może być używany wcounters.

W tym rozdziale zaimplementowaliśmy różne przerzutniki, zapewniając sprzężenie krzyżowe między bramkami NOR. Podobnie możesz zaimplementować te przerzutniki za pomocą bramek NAND.

W poprzednim rozdziale omówiliśmy cztery przerzutniki, a mianowicie przerzutnik SR, przerzutnik D, przerzutnik JK i przerzutnik T. Możemy przekształcić jeden przerzutnik w pozostałe trzy przerzutniki, dodając dodatkową logikę. W sumie będzie ich dwanaścieflip-flop conversions.

Postępuj zgodnie z tymi steps do konwersji jednego przerzutnika na drugi.

  • Weź pod uwagę characteristic table pożądanego przerzutnika.

  • Wypełnij wartości wzbudzenia (wejścia) danego przerzutnika dla każdej kombinacji stanu obecnego i następnego. Plikexcitation table dla wszystkich przerzutników pokazano poniżej.

Stan obecny Następny stan Wejścia przerzutnika SR Wejście przerzutnika D. Wejścia przerzutnika JK Wejście typu flip-flop
Q(t) Q(t+1) S R D J K T
0 0 0 x 0 0 x 0
0 1 1 0 1 1 x 1
1 0 0 1 0 x 1 1
1 1 x 0 1 x 0 0
  • Uzyskać simplified expressionsdla każdego wejścia wzbudzenia. W razie potrzeby użyj Kmaps do uproszczenia.

  • Narysuj circuit diagram żądanego przerzutnika zgodnie z uproszczonymi wyrażeniami przy użyciu podanych przerzutników i niezbędnych bramek logicznych.

Teraz zamieńmy kilka klapek na inne. Postępuj zgodnie z tym samym procesem dla pozostałych konwersji flipflop.

SR Flip-Flop do innych konwersji Flip-Flop

Poniżej znajdują się trzy możliwe konwersje przerzutnika SR na inne przerzutniki.

  • Przerzutnik SR na przerzutnik D.
  • Przerzutnik SR na przerzutnik JK
  • Przerzutnik SR do przerzutnika T.

Przerzutnik SR do konwersji przerzutnika D.

Tutaj dany przerzutnik to przerzutnik SR, a pożądany przerzutnik to przerzutnik D. Dlatego rozważ następujące kwestiecharacteristic table przerzutnika D.

Wejście przerzutnika D. Stan obecny Następny stan
D Q(t) Q(t + 1)
0 0 0
0 1 0
1 0 1
1 1 1

Wiemy, że przerzutnik SR ma dwa wejścia S i R. Więc zapisz wartości wzbudzenia przerzutnika SR dla każdej kombinacji wartości stanu obecnego i następnego. Poniższa tabela przedstawia charakterystyczną tabelę przerzutnika D wraz zexcitation inputs przerzutnika SR.

Wejście przerzutnika D. Stan obecny Następny stan Wejścia przerzutnika SR
D Q(t) Q(t + 1) S R
0 0 0 0 x
0 1 0 0 1
1 0 1 1 0
1 1 1 x 0

Z powyższej tabeli możemy napisać plik Boolean functions dla każdego wejścia, jak poniżej.

$$S=m_{2}+d_{3}$$

$$R=m_{1}+d_{0}$$

Możemy użyć 2 zmiennych K-Maps, aby uzyskać uproszczone wyrażenia dla tych danych wejściowych. Plikk-Maps dla S & R pokazano poniżej.

Tak więc po uproszczeniu otrzymaliśmy S = D i R = D '. Plikcircuit diagram przerzutnika D pokazano na poniższym rysunku.

Obwód składa się z przerzutnika SR i falownika. Ten falownik wytwarza wyjście, które jest uzupełnieniem wejścia D. Tak więc cały obwód ma jedno wejście, D i dwa wyjścia Q (t) i Q (t) '. Dlatego jest to plikD flip-flop. Podobnie możesz wykonać dwie pozostałe konwersje.

D Flip-Flop do innych konwersji Flip-Flop

Poniżej znajdują się trzy możliwe konwersje przerzutnika D na inne przerzutniki.

  • Przerzutnik D do Przerzutnika T.
  • Przerzutnik D do przerzutnika SR
  • Przerzutnik D do przerzutnika JK

Konwersja przerzutnika D do przerzutnika T.

Tutaj dany przerzutnik to przerzutnik D, a pożądany przerzutnik to przerzutnik T. Dlatego rozważ następujące kwestiecharacteristic table przerzutnika T.

Wejście typu flip-flop Stan obecny Następny stan
T Q(t) Q(t + 1)
0 0 0
0 1 1
1 0 1
1 1 0

Wiemy, że przerzutnik D ma pojedyncze wejście D. Więc zapisz wartości wzbudzenia przerzutnika D dla każdej kombinacji wartości stanu obecnego i następnego. Poniższa tabela przedstawia charakterystyczną tabelę T flip-flop wraz zexcitation input przerzutnika D.

Wejście typu flip-flop Stan obecny Następny stan Wejście przerzutnika D.
T Q(t) Q(t + 1) D
0 0 0 0
0 1 1 1
1 0 1 1
1 1 0 0

Z powyższej tabeli możemy bezpośrednio napisać plik Boolean function D jak poniżej.

$$D=T\oplus Q\left ( t \right )$$

Tak więc potrzebujemy dwustanowej bramki Exclusive-OR wraz z przerzutnikiem D. Plikcircuit diagram T flip-flop pokazano na poniższym rysunku.

Ten obwód składa się z przerzutnika D i bramki Exclusive-OR. Ta bramka Exclusive-OR generuje wyjście, które jest Ex-OR z T i Q (t). Zatem cały obwód ma jedno wejście, T i dwa wyjścia Q (t) i Q (t) '. Dlatego jest to plikT flip-flop. Podobnie możesz wykonać dwie pozostałe konwersje.

JK Flip-Flop do innych konwersji Flip-Flop

Poniżej znajdują się trzy możliwe konwersje przerzutnika JK na inne przerzutniki.

  • Przerzutnik JK do przerzutnika T.
  • Przerzutnik JK na przerzutnik D.
  • Przerzutnik JK na przerzutnik SR

Konwersja przerzutnika JK na przerzutnik T.

Tutaj dany przerzutnik to przerzutnik JK, a pożądany przerzutnik to przerzutnik T. Dlatego rozważ następujące kwestiecharacteristic table przerzutnika T.

Wejście typu flip-flop Stan obecny Następny stan
T Q(t) Q(t + 1)
0 0 0
0 1 1
1 0 1
1 1 0

Wiemy, że przerzutnik JK ma dwa wejścia J i K. Więc zapisz wartości wzbudzenia przerzutnika JK dla każdej kombinacji wartości stanu obecnego i następnego. Poniższa tabela przedstawia charakterystyczną tabelę T flip-flop wraz zexcitation inputs flipflopa JK.

Wejście typu flip-flop Stan obecny Następny stan Wejścia przerzutnika JK
T Q(t) Q(t + 1) J K
0 0 0 0 x
0 1 1 x 0
1 0 1 1 x
1 1 0 x 1

Z powyższej tabeli możemy napisać plik Boolean functions dla każdego wejścia, jak poniżej.

$$J=m_{2}+d_{1}+d_{3}$$

$$K=m_{3}+d_{0}+d_{2}$$

Możemy użyć 2 zmiennych K-Maps, aby uzyskać uproszczone wyrażenia dla tych dwóch danych wejściowych. Plikk-Maps dla J & K pokazano poniżej.

Tak więc po uproszczeniu otrzymaliśmy J = T i K = T. Plikcircuit diagram T flip-flop pokazano na poniższym rysunku.

Ten obwód składa się tylko z przerzutnika JK. Nie wymaga żadnych innych bramek. Wystarczy podłączyć to samo wejście T do obu J i K. Tak więc cały obwód ma pojedyncze wejście, T i dwa wyjścia Q (t) i Q (t) '. Dlatego jest to plikT flip-flop. Podobnie możesz wykonać dwie pozostałe konwersje.

T Flip-Flop do innych konwersji Flip-Flop

Poniżej znajdują się trzy możliwe konwersje przerzutnika T na inne przerzutniki.

  • Przerzutnik T do Przerzutnika D.
  • Przerzutnik T do przerzutnika SR
  • Przerzutnik T do Przerzutnika JK

Konwersja przerzutnika T na przerzutnik D.

Tutaj dany przerzutnik to przerzutnik T, a pożądany przerzutnik to przerzutnik D. Dlatego rozważ tablicę charakterystyczną przerzutnika D i zapisz wartości wzbudzenia przerzutnika T dla każdej kombinacji wartości stanu obecnego i następnego stanu. W poniższej tabeli przedstawionocharacteristic table przerzutnika D wraz z excitation input przerzutnika T.

Wejście przerzutnika D. Stan obecny Następny stan Wejście typu flip-flop
D Q(t) Q(t + 1) T
0 0 0 0
0 1 0 1
1 0 1 1
1 1 1 0

Z powyższej tabeli możemy bezpośrednio zapisać funkcję logiczną T, jak poniżej.

$$T=D\oplus Q\left ( t \right )$$

Tak więc potrzebujemy dwustanowej bramki Exclusive-OR wraz z przerzutnikiem T. Plikcircuit diagram przerzutnika D pokazano na poniższym rysunku.

Ten obwód składa się z przerzutnika T i bramki Exclusive-OR. Ta bramka Exclusive-OR generuje wyjście, które jest Ex-OR z D i Q (t). Zatem cały obwód ma jedno wejście, D i dwa wyjścia Q (t) i Q (t) '. Dlatego jest to plikD flip-flop. Podobnie możesz wykonać dwie pozostałe konwersje.

Wiemy, że jeden przerzutnik może przechowywać jeden bit informacji. Aby przechowywać wiele bitów informacji, potrzebujemy wielu przerzutników. Grupa przerzutników, które służą do przechowywania (przechowywania) danych binarnych, nazywana jestregister.

Jeśli rejestr jest zdolny do przesuwania bitów albo w prawą stronę, albo w lewą stronę, nazywa się shift register. Rejestr przesuwny z bitem „N” zawiera przerzutniki „N”. Poniżej przedstawiono cztery typy rejestrów przesuwnych oparte na stosowaniu danych wejściowych i uzyskiwaniu dostępu do wyjść.

  • Serial In - Rejestr przesuwny szeregowego wyjścia
  • Szeregowe wejście - rejestr przesuwny równoległego wyjścia
  • Równoległe wejście - rejestr przesuwny szeregowego wyjścia
  • Równoległe wejście - rejestr przesuwny równoległego wyjścia

Wejście szeregowe - rejestr przesuwny wyjścia szeregowego (SISO)

Rejestr przesuwny, który umożliwia wejście szeregowe i generuje wyjście szeregowe, jest znany jako Serial In - Serial Out (SISO)rejestr przesuwny. Plikblock diagram 3-bitowego rejestru przesuwnego SISO pokazano na poniższym rysunku.

Ten schemat blokowy składa się z trzech przerzutników typu D. cascaded. Oznacza to, że wyjście jednego przerzutnika D jest dołączane jako wejście następnego przerzutnika D. Wszystkie te przerzutniki są ze sobą synchroniczne, ponieważ do każdego z nich podawany jest ten sam sygnał zegarowy.

W tym rejestrze przesuwnym możemy przesyłać bity szeregowo z wejścia przerzutnika D znajdującego się najbardziej po lewej stronie. Stąd to wejście jest również nazywane jakoserial input. Przy każdym wyzwalaniu zboczem dodatnim sygnału zegarowego dane przesuwają się z jednego stopnia na drugi. Możemy więc otrzymywać bity szeregowo z wyjścia przerzutnika D znajdującego się najbardziej po prawej stronie. Dlatego ten wynik jest również nazywany jakoserial output.

Przykład

Zobaczmy działanie 3-bitowego rejestru przesuwnego SISO, wysyłając informacje binarne “011” z LSB do MSB szeregowo na wejściu.

Załóżmy, że początkowy stan przerzutników D od lewej do prawej to $Q_{2}Q_{1}Q_{0}=000$. Możemy zrozumiećworking of 3-bit SISO shift register z poniższej tabeli.

Brak dodatniej krawędzi zegara Wejście szeregowe Pytanie 2 Pytanie 1 Pytanie 0
0 - 0 0 0
1 1 (LSB) 1 0 0
2 1 1 1 0
3 0 (MSB) 0 1 1 (LSB)
4 - - 0 1
5 - - - 0 (MSB)

Stan początkowy przerzutników D przy braku sygnału zegara to $Q_{2}Q_{1}Q_{0}=000$. Tutaj wyjście szeregowe pochodzi z$Q_{0}$. Tak więc, LSB (1) jest odbierany w 3 -cim dodatniego zbocza zegara i MSB (0) jest odbierany w 5 th dodatniego zbocza zegara.

Dlatego 3-bitowy rejestr przesuwny SISO wymaga pięciu impulsów zegarowych, aby wytworzyć prawidłowe wyjście. PodobnieN-bit SISO shift register wymaga 2N-1 impulsy zegara w celu przesunięcia informacji o bitach „N”.

Szeregowe wejście - wyjście równoległe (SIPO) Rejestr przesuwny

Rejestr przesuwny, który umożliwia wejście szeregowe i wytwarza wyjście równoległe, jest znany jako szeregowe wejście - wyjście równoległe (SIPO)rejestr przesuwny. Plikblock diagram 3-bitowego rejestru przesuwnego SIPO pokazano na poniższym rysunku.

Ten obwód składa się z trzech przerzutników typu D, które są połączone kaskadowo. Oznacza to, że wyjście jednego przerzutnika D jest dołączane jako wejście następnego przerzutnika D. Wszystkie te przerzutniki są ze sobą synchroniczne, ponieważ do każdego z nich podawany jest ten sam sygnał zegarowy.

W tym rejestrze przesuwnym możemy przesyłać bity szeregowo z wejścia przerzutnika D znajdującego się najbardziej po lewej stronie. Stąd to wejście jest również nazywane jakoserial input. Przy każdym wyzwalaniu zboczem dodatnim sygnału zegarowego dane przesuwają się z jednego stopnia na drugi. W takim przypadku możemy uzyskać dostęp do wyjść każdego przerzutnika D równolegle. Więc dostaniemyparallel outputs z tego rejestru przesuwnego.

Przykład

Zobaczmy działanie 3-bitowego rejestru przesuwnego SIPO, wysyłając informacje binarne “011” z LSB do MSB szeregowo na wejściu.

Załóżmy, że początkowy stan przerzutników D od lewej do prawej to $Q_{2}Q_{1}Q_{0}=000$. Tutaj,$Q_{2}$ & $Q_{0}$są odpowiednio MSB i LSB. Możemy zrozumiećworking of 3-bit SIPO shift register z poniższej tabeli.

Brak dodatniej krawędzi zegara Wejście szeregowe Q 2 (MSB) Pytanie 1 Q 0 (LSB)
0 - 0 0 0
1 1 (LSB) 1 0 0
2 1 1 1 0
3 0 (MSB) 0 1 1

Stan początkowy przerzutników D przy braku sygnału zegara to $Q_{2}Q_{1}Q_{0}=000$. Informacje binarne“011” jest uzyskiwany równolegle na wyjściach przerzutników D dla trzeciego dodatniego zbocza zegara.

Tak więc 3-bitowy rejestr przesuwny SIPO wymaga trzech impulsów zegarowych, aby wygenerować prawidłowe wyjście. PodobnieN-bit SIPO shift register wymaga N impulsy zegara w celu przesunięcia informacji o bitach „N”.

Rejestr przesuwny równoległego wejścia - wyjścia szeregowego (PISO)

Rejestr przesuwny, który umożliwia równoległe wejście i generuje wyjście szeregowe, jest znany jako Parallel In - Serial Out (PISO)rejestr przesuwny. Plikblock diagram 3-bitowego rejestru przesuwnego PISO pokazano na poniższym rysunku.

Ten obwód składa się z trzech przerzutników typu D, które są połączone kaskadowo. Oznacza to, że wyjście jednego przerzutnika D jest dołączane jako wejście następnego przerzutnika D. Wszystkie te przerzutniki są ze sobą synchroniczne, ponieważ do każdego z nich podawany jest ten sam sygnał zegarowy.

W tym rejestrze przesuwnym możemy zastosować rozszerzenie parallel inputsdo każdego przerzutnika D, ustawiając Preset Enable na 1. Dla każdego wyzwolenia zbocza dodatniego sygnału zegarowego, dane przesuwają się z jednego stopnia do drugiego. Więc otrzymamyserial output od prawej strony przerzutnik D.

Przykład

Zobaczmy działanie 3-bitowego rejestru przesuwnego PISO poprzez zastosowanie informacji binarnych “011” równolegle przez wstępnie ustawione wejścia.

Ponieważ wstępnie ustawione wejścia są stosowane przed dodatnim zboczem zegara, początkowy stan przerzutników D od skrajnej lewej do prawej będzie $Q_{2}Q_{1}Q_{0}=011$. Możemy zrozumiećworking of 3-bit PISO shift register z poniższej tabeli.

Brak dodatniej krawędzi zegara Pytanie 2 Pytanie 1 Pytanie 0
0 0 1 1 (LSB)
1 - 0 1
2 - - 0 (LSB)

Tutaj wyjście szeregowe pochodzi z $Q_{0}$. Tak więc, LSB (1) jest odbierany przed zastosowaniem dodatniego zbocza zegara i MSB (0) jest otrzymana na 2 nd zbocze zegara.

Dlatego 3-bitowy rejestr przesuwny PISO wymaga dwóch impulsów zegarowych, aby wygenerować prawidłowe wyjście. PodobnieN-bit PISO shift register wymaga N-1 impulsy zegara w celu przesunięcia informacji o bitach „N”.

Rejestr przesuwny równoległego wejścia - wyjścia równoległego (PIPO)

Rejestr przesuwny, który umożliwia równoległe wejście i generuje równoległe wyjście, jest znany jako Parallel In - Parallel Out (PIPO)rejestr przesuwny. Plikblock diagram 3-bitowego rejestru przesuwnego PIPO pokazano na poniższym rysunku.

Ten obwód składa się z trzech przerzutników typu D, które są połączone kaskadowo. Oznacza to, że wyjście jednego przerzutnika D jest dołączane jako wejście następnego przerzutnika D. Wszystkie te przerzutniki są ze sobą synchroniczne, ponieważ do każdego z nich podawany jest ten sam sygnał zegarowy.

W tym rejestrze przesuwnym możemy zastosować rozszerzenie parallel inputsdo każdego przerzutnika D, ustawiając Preset Enable na 1. Możemy zastosować równoległe wejścia poprzez preset lub wyczyść. Te dwa są wejściami asynchronicznymi. Oznacza to, że przerzutniki generują odpowiednie wyjścia w oparciu o wartości wejść asynchronicznych. W tym przypadku efekt wyjść jest niezależny od przejścia zegara. Więc otrzymamyparallel outputs z każdego przerzutnika D.

Przykład

Zobaczmy działanie 3-bitowego rejestru przesuwnego PIPO, stosując informacje binarne “011” równolegle przez wstępnie ustawione wejścia.

Ponieważ wstępnie ustawione wejścia są stosowane przed dodatnim zboczem zegara, początkowy stan przerzutników D od skrajnej lewej do prawej będzie $Q_{2}Q_{1}Q_{0}=011$. A więc informacje binarne“011” uzyskuje się równolegle na wyjściach przerzutników D przed zastosowaniem dodatniego zbocza zegara.

Dlatego 3-bitowy rejestr przesuwny PIPO wymaga zerowych impulsów zegarowych w celu wytworzenia prawidłowego wyjścia. PodobnieN-bit PIPO shift register nie wymaga żadnego impulsu zegarowego w celu przesunięcia informacji „N” bitowej.

W poprzednim rozdziale omówiliśmy cztery typy rejestrów przesuwnych. W oparciu o wymaganie możemy użyć jednego z tych rejestrów przesuwnych. Poniżej przedstawiono zastosowania rejestrów przesuwnych.

  • Rejestr przesuwny jest używany jako Parallel to serial converter, który konwertuje dane równoległe na dane szeregowe. Jest on używany w sekcji nadajnika po bloku przetwornika analogowo-cyfrowego (ADC).

  • Rejestr przesuwny jest używany jako Serial to parallel converter, który konwertuje dane szeregowe na dane równoległe. Jest używany w sekcji odbiornika przed blokiem przetwornika cyfrowo-analogowego (DAC).

  • Rejestr przesuwny wraz z dodatkowymi bramkami generuje sekwencję zer i jedynek. Dlatego jest używany jakosequence generator.

  • Rejestry przesuwające są również używane jako counters. Istnieją dwa rodzaje liczników w zależności od typu wyjścia z prawego przerzutnika D podłączonego do wejścia szeregowego. To jest licznik pierścienia i licznik pierścienia Johnson.

W tym rozdziale omówimy kolejno te dwa liczniki.

Licznik dzwonków

W poprzednim rozdziale omówiliśmy działanie szeregowego wejścia - wyjścia równoległego (SIPO)rejestr przesuwny. Akceptuje dane z zewnątrz w postaci szeregowej i wymaga impulsów zegara „N” w celu przesunięcia danych „N” bitowych.

Podobnie, ‘N’ bit Ring counterwykonuje podobną operację. Ale jedyną różnicą jest to, że wyjście przerzutnika D znajdującego się najbardziej po prawej stronie jest podawane jako wejście przerzutnika D znajdującego się najbardziej po lewej stronie zamiast stosowania danych z zewnątrz. Dlatego licznik pierścienia tworzy sekwencję stanów (wzór zer i jedynek) i powtarza się dla każdego‘N’ clock cycles.

Plik block diagram 3-bitowego licznika pierścieniowego pokazano na poniższym rysunku.

3-bitowy licznik pierścieniowy zawiera tylko 3-bitowy rejestr przesuwny SIPO. Wyjście przerzutnika D znajdującego się najbardziej po prawej stronie jest podłączone do wejścia szeregowego przerzutnika D znajdującego się najbardziej po lewej stronie.

Załóżmy, że początkowy stan przerzutników D od lewej do prawej to $Q_{2}Q_{1}Q_{0}=001$. Tutaj,$Q_{2}$ & $Q_{0}$są odpowiednio MSB i LSB. Możemy zrozumiećworking of Ring counter z poniższej tabeli.

Brak dodatniej krawędzi zegara Wejście szeregowe = Q 0 Q 2 (MSB) Pytanie 1 Q 0 (LSB)
0 - 0 0 1
1 1 1 0 0
2 0 0 1 0
3 0 0 0 1

Stan początkowy przerzutników D przy braku sygnału zegara to $Q_{2}Q_{1}Q_{0}=001$. Ten stan powtarza się dla każdych trzech dodatnich zmian zboczy sygnału zegarowego.

Dlatego następujące operations mają miejsce dla każdego dodatniego zbocza sygnału zegarowego.

  • Szeregowe wejście pierwszego przerzutnika D pobiera poprzednie wyjście trzeciego przerzutnika. Zatem obecne wyjście pierwszego przerzutnika D jest równe poprzedniemu wyjściu trzeciego przerzutnika.

  • Poprzednie wyjścia pierwszego i drugiego przerzutnika D są przesunięte w prawo o jeden bit. Oznacza to, że obecne wyjścia drugiego i trzeciego przerzutnika D są równe poprzednim wyjściom pierwszego i drugiego przerzutnika D.

Johnson Ring Counter

Działanie Johnson Ring counterjest podobny do licznika pierścieni. Ale jedyną różnicą jest to, że uzupełnione wyjście przerzutnika D znajdującego się najbardziej po prawej stronie jest podawane jako wejście przerzutnika D znajdującego się najbardziej po lewej stronie zamiast normalnego wyjścia. Dlatego licznik `` N '' bitowego pierścienia Johnsona generuje sekwencję stanów (wzór zer i jedynek) i powtarza się co‘2N’ clock cycles.

Licznik Johnson Ring jest również nazywany jako Twisted Ring counteri przełącz licznik pierścienia ogonowego. Plikblock diagram 3-bitowego licznika Johnson Ring pokazano na poniższym rysunku.

3-bitowy licznik pierścienia Johnsona zawiera również tylko 3-bitowy rejestr przesuwny SIPO. Uzupełnione wyjście przerzutnika D znajdującego się najbardziej po prawej stronie jest podłączone do wejścia szeregowego przerzutnika D znajdującego się najbardziej po lewej stronie.

Załóżmy, że początkowo wszystkie przerzutniki D są wyczyszczone. Więc,$Q_{2}Q_{1}Q_{0}=000$. Tutaj,$Q_{2}$ & $Q_{0}$są odpowiednio MSB i LSB. Możemy zrozumiećworking licznika Johnson Ring z poniższej tabeli.

Brak dodatniej krawędzi zegara Wejście szeregowe = Q 0 Q 2 (MSB) Pytanie 1 Q 0 (LSB)
0 - 0 0 0
1 1 1 0 0
2 1 1 1 0
3 1 1 1 1
4 0 0 1 1
5 0 0 0 1
6 0 0 0 0

Stan początkowy przerzutników D przy braku sygnału zegara to $Q_{2}Q_{1}Q_{0}=000$. Ten stan powtarza się co sześć dodatnich przejść sygnału zegarowego.

Dlatego następujące operations mają miejsce dla każdego dodatniego zbocza sygnału zegarowego.

  • Szeregowe wejście pierwszego przerzutnika D pobiera poprzednie uzupełnione wyjście trzeciego przerzutnika. Zatem obecny sygnał wyjściowy pierwszego przerzutnika D jest równy poprzedniemu uzupełnionemu sygnałowi wyjściowemu trzeciego przerzutnika.

  • Poprzednie wyjścia pierwszego i drugiego przerzutnika D są przesunięte w prawo o jeden bit. Oznacza to, że obecne wyjścia drugiego i trzeciego przerzutnika D są równe poprzednim wyjściom pierwszego i drugiego przerzutnika D.

W poprzednich dwóch rozdziałach omówiliśmy różne rejestry przesuwne i counters using D flipflops. Omówmy teraz różne liczniki z przerzutnikami T. Wiemy, że przerzutnik T przełącza wyjście albo dla każdego dodatniego zbocza sygnału zegarowego, albo dla ujemnego zbocza sygnału zegarowego.

Licznik binarny „N” bitowy składa się z przerzutników „N” T. Jeśli licznik liczy od 0 do 2 - 1, to nazywa się to binarnym up counter. Podobnie, jeśli licznik odlicza od 2 - 1 do 0, wtedy nazywa się to binarnym down counter.

Istnieją dwa types of counters w oparciu o przerzutniki, które są połączone synchronicznie lub nie.

  • Liczniki asynchroniczne
  • Liczniki synchroniczne

Liczniki asynchroniczne

Jeśli przerzutniki nie otrzymają tego samego sygnału zegara, wówczas licznik ten nazywany jest as Asynchronous counter. Wyjście zegara systemowego jest stosowane jako sygnał zegarowy tylko do pierwszego przerzutnika. Pozostałe przerzutniki odbierają sygnał zegarowy z wyjścia przerzutnika poprzedniego stopnia. Stąd wyjścia wszystkich przerzutników nie zmieniają się (nie wpływają) w tym samym czasie.

Omówmy teraz po kolei następujące dwa liczniki.

  • Asynchroniczny licznik binarny w górę
  • Asynchroniczny licznik binarny w dół

Asynchroniczny licznik binarny w górę

Asynchroniczny binarny licznik w górę „N” składa się z przerzutników „N” T. Liczy od 0 do 2 - 1. The block diagram 3-bitowego asynchronicznego binarnego licznika w górę pokazano na poniższym rysunku.

3-bitowy asynchroniczny binarny licznik w górę zawiera trzy przerzutniki typu T, a wejście T wszystkich przerzutników jest podłączone do „1”. Wszystkie te przerzutniki są wyzwalane zboczem ujemnym, ale wyjścia zmieniają się asynchronicznie. Sygnał zegarowy jest podawany bezpośrednio na pierwszy przerzutnik T. Tak więc wyjście pierwszego przerzutnika T.toggles dla każdego ujemnego zbocza sygnału zegarowego.

Wyjście pierwszego przerzutnika T jest stosowane jako sygnał zegarowy dla drugiego przerzutnika T. Tak więc wyjście drugiego przerzutnika T przełącza się dla każdego ujemnego zbocza wyjścia pierwszego przerzutnika T. Podobnie, wyjście trzeciego przerzutnika T jest przełączane dla każdego ujemnego zbocza wyjścia drugiego przerzutnika T, ponieważ wyjście drugiego przerzutnika T działa jako sygnał zegarowy dla trzeciego przerzutnika T.

Załóżmy, że początkowy stan przerzutników T od prawej do lewej strony to $Q_{2}Q_{1}Q_{0}=000$. Tutaj,$Q_{2}$ & $Q_{0}$są odpowiednio MSB i LSB. Możemy zrozumiećworking 3-bitowego asynchronicznego licznika binarnego z poniższej tabeli.

Brak ujemnego zbocza zegara Q 0 (LSB) Pytanie 1 Q 2 (MSB)
0 0 0 0
1 1 0 0
2 0 1 0
3 1 1 0
4 0 0 1
5 1 0 1
6 0 1 1
7 1 1 1

Tutaj $Q_{0}$ przełączane dla każdego ujemnego zbocza sygnału zegara. $Q_{1}$ przełączane dla każdego $Q_{0}$która przechodzi od 1 do 0, w przeciwnym razie pozostała w poprzednim stanie. Podobnie,$Q_{2}$ przełączane dla każdego $Q_{1}$ która przechodzi od 1 do 0, w przeciwnym razie pozostała w poprzednim stanie.

Stan początkowy przerzutników T przy braku sygnału zegara to $Q_{2}Q_{1}Q_{0}=000$. Jest zwiększany o jeden przy każdym opadającym zboczu sygnału zegarowego, osiągając wartość maksymalną w 7 th krawędzi ujemnego sygnału zegarowego. Ten wzór powtarza się, gdy stosowane są dalsze ujemne zbocza sygnału zegarowego.

Asynchroniczny licznik binarny w dół

Asynchroniczny binarny licznik w dół typu „N” składa się z przerzutników „N”. Odlicza się od 2 - 1 do 0. Plik block diagram 3-bitowego asynchronicznego binarnego licznika w dół pokazano na poniższym rysunku.

Schemat blokowy 3-bitowego asynchronicznego binarnego licznika w dół jest podobny do schematu blokowego 3-bitowego asynchronicznego binarnego licznika w górę. Ale jedyną różnicą jest to, że zamiast podłączać normalne wyjścia przerzutnika jednostopniowego jako sygnał zegarowy dla przerzutnika następnego stopnia, podłączcomplemented outputsprzerzutnika jednostopniowego jako sygnału zegarowego dla przerzutnika następnego stopnia. Uzupełnione wyjście przechodzi od 1 do 0 jest takie samo jak normalne wyjście od 0 do 1.

Załóżmy, że początkowy stan przerzutników T od prawej do lewej strony to $Q_{2}Q_{1}Q_{0}=000$. Tutaj,$Q_{2}$ & $Q_{0}$są odpowiednio MSB i LSB. Możemy zrozumiećworking 3-bitowego asynchronicznego licznika binarnego w dół z poniższej tabeli.

Brak ujemnego zbocza zegara Q 0 (LSB) Pytanie 1 Q 2 (MSB)
0 0 0 0
1 1 1 1
2 0 1 1
3 1 0 1
4 0 0 1
5 1 1 0
6 0 1 0
7 1 0 0

Tutaj $Q_{0}$ przełączane dla każdego ujemnego zbocza sygnału zegara. $Q_{1}$ przełączane dla każdego $Q_{0}$która przechodzi od 0 do 1, w przeciwnym razie pozostała w poprzednim stanie. Podobnie,$Q_{2}$ przełączane dla każdego $Q_{1}$ która przechodzi od 0 do 1, w przeciwnym razie pozostała w poprzednim stanie.

Stan początkowy przerzutników T przy braku sygnału zegara to $Q_{2}Q_{1}Q_{0}=000$. To jest zmniejszany o jeden przy każdej krawędzi ujemnego sygnału zegarowego i dochodzi do tej samej wartości co 8 th opadającym zboczu sygnału zegarowego. Ten wzór powtarza się, gdy stosowane są dalsze ujemne zbocza sygnału zegarowego.

Liczniki synchroniczne

Jeśli wszystkie przerzutniki otrzymają ten sam sygnał zegarowy, wówczas licznik ten nazywany jest jako Synchronous counter. W związku z tym wyjścia wszystkich przerzutników zmieniają się (wpływają) w tym samym czasie.

Omówmy teraz po kolei następujące dwa liczniki.

  • Synchroniczny licznik binarny w górę
  • Synchroniczny licznik binarny w dół

Synchroniczny licznik binarny w górę

Synchroniczny licznik binarny w górę „N” składa się z przerzutników „N” T. Liczy od 0 do 2 - 1. The block diagram 3-bitowego, synchronicznego binarnego licznika w górę pokazano na poniższym rysunku.

3-bitowy synchroniczny licznik binarny w górę zawiera trzy przerzutniki T i jedną 2-wejściową bramkę AND. Wszystkie te przerzutniki są wyzwalane zboczem ujemnym, a wyjścia przerzutników zmieniają się (wpływają) synchronicznie. Wejścia T pierwszego, drugiego i trzeciego przerzutnika to 1,$Q_{0}$ & $Q_{1}Q_{0}$ odpowiednio.

Wyjście pierwszego przerzutnika T. togglesdla każdego ujemnego zbocza sygnału zegarowego. Wyjście drugiego przerzutnika T przełącza się dla każdego ujemnego zbocza sygnału zegarowego, jeśli$Q_{0}$ wynosi 1. Wyjście trzeciego przerzutnika T przełącza się dla każdego ujemnego zbocza sygnału zegara, jeśli oba $Q_{0}$ & $Q_{1}$ są 1.

Synchroniczny licznik binarny w dół

Licznik „N”-bitowy Synchroniczny licznik binarny w dół składa się z przerzutników „N” T. Odlicza się od 2 - 1 do 0. Plik block diagram 3-bitowego synchronicznego binarnego licznika w dół pokazano na poniższym rysunku.

3-bitowy synchroniczny binarny licznik w dół zawiera trzy przerzutniki T i jedną 2-wejściową bramkę AND. Wszystkie te przerzutniki są wyzwalane zboczem ujemnym, a wyjścia przerzutników zmieniają się (wpływają) synchronicznie. Wejścia T pierwszego, drugiego i trzeciego przerzutnika to 1,${Q_{0}}'$ & ' ${Q_{1}}'$${Q_ {0}} '$ odpowiednio.

Wyjście pierwszego przerzutnika T. togglesdla każdego ujemnego zbocza sygnału zegarowego. Wyjście drugiego przerzutnika T przełącza się dla każdego ujemnego zbocza sygnału zegarowego, jeśli $ {Q_ {0}} '$ is 1. The output of third T flip-flop toggles for every negative edge of clock signal if both ${Q_ {1}} '$ & ${Q_ {0}} '$ to 1.

Wiemy, że synchroniczne układy sekwencyjne zmieniają (wpływają) na swoje stany przy każdym dodatnim (lub ujemnym) przejściu sygnału zegarowego na podstawie wejścia. Tak więc to zachowanie synchronicznych obwodów sekwencyjnych można przedstawić w formie graficznej i jest znane jakostate diagram.

Synchroniczny obwód sekwencyjny jest również nazywany jako Finite State Machine(FSM), jeśli ma skończoną liczbę stanów. Są dwa rodzaje FSM.

  • Mealy State Machine
  • Maszyna stanu Moore'a

Omówmy teraz kolejno te dwa automaty stanowe.

Mealy State Machine

O skończonej maszynie stanów mówi się, że jest maszyną stanu Mealy'ego, jeśli dane wyjściowe zależą zarówno od obecnych wejść, jak i obecnych stanów. Plikblock diagram maszyny stanu Mealy pokazano na poniższym rysunku.

Jak pokazano na rysunku, w maszynie stanu Mealy występują dwie części. To jest logika kombinacyjna i pamięć. Pamięć jest przydatna, aby zapewnić część lub część poprzednich wyników(present states) jako wejścia logiki kombinacyjnej.

Tak więc, w oparciu o obecne dane wejściowe i obecne stany, maszyna stanu Mealy wytwarza dane wyjściowe. Dlatego wyjścia będą działać tylko przy dodatnim (lub ujemnym) przejściu sygnału zegarowego.

Plik state diagram maszyny stanu Mealy pokazano na poniższym rysunku.

Na powyższym rysunku są trzy stany, a mianowicie A, B i C. Stany te są oznaczone wewnątrz okręgów, a każdy okrąg odpowiada jednemu stanowi. Przejścia między tymi stanami są przedstawiane za pomocą skierowanych linii. Tutaj 0/0, 1/0 i 1/1 oznaczainput / output. Na powyższym rysunku są dwa przejścia z każdego stanu na podstawie wartości wejścia x.

Ogólnie liczba stanów wymaganych w automacie stanu Mealy jest mniejsza lub równa liczbie stanów wymaganych w automacie stanu Moore'a. Dla każdej maszyny stanu Mealy istnieje odpowiednik maszyny stanu Moore'a.

Maszyna stanu Moore'a

O skończonej maszynie stanów mówi się, że jest maszyną stanu Moore'a, jeśli dane wyjściowe zależą tylko od aktualnych stanów. Plikblock diagram maszyny stanu Moore'a pokazano na poniższym rysunku.

Jak pokazano na rysunku, w maszynie stanu Moore'a występują dwie części. To jest logika kombinacyjna i pamięć. W tym przypadku obecne wejścia i obecne stany określają następne stany. Tak więc, w oparciu o kolejne stany, maszyna stanu Moore'a wytwarza dane wyjściowe. Dlatego wyjścia będą działać dopiero po przejściu stanu.

Plik state diagram maszyny stanu Moore'a pokazano na poniższym rysunku.

Na powyższym rysunku są cztery stany, a mianowicie A, B, C i D. Te stany i odpowiednie wyjścia są oznaczone wewnątrz kółek. Tutaj tylko wartość wejściowa jest oznaczona na każdym przejściu. Na powyższym rysunku są dwa przejścia z każdego stanu na podstawie wartości wejścia x.

Ogólnie rzecz biorąc, liczba stanów wymaganych w automacie stanu Moore'a jest większa lub równa liczbie stanów wymaganych w automacie stanowym Mealy'ego. Dla każdego automatu stanu Moore'a istnieje odpowiednik maszyny stanu Mealy. Tak więc w oparciu o wymaganie możemy użyć jednego z nich.

Każdy digital systemmożna podzielić na dwie części. Są to obwody ścieżki danych (cyfrowe) i obwody sterujące. Obwody ścieżki danych pełnią takie funkcje, jak przechowywanie informacji binarnych (danych) i przesyłanie danych z jednego systemu do drugiego. Natomiast obwody sterujące determinują przepływ operacji układów cyfrowych.

Trudno jest opisać zachowanie dużych maszyn stanowych za pomocą diagramów stanów. Aby przezwyciężyć tę trudność, można zastosować wykresy algorytmicznej maszyny stanów (ASM).ASM chartssą podobne do schematów blokowych. Są używane do reprezentowania przepływu zadań do wykonania przez obwody ścieżki danych i obwody sterujące.

Podstawowe składniki wykresów ASM

Poniżej przedstawiono trzy podstawowe składniki wykresów ASM.

  • Pole stanu
  • Pole decyzyjne
  • Warunkowe pole wyjściowe

Pole stanu

Pole stanu jest przedstawione w kształcie prostokąta. Każde pole stanu reprezentuje jeden stan obwodu sekwencyjnego. Pliksymbol pola stanu pokazano na poniższym rysunku.

Ma jeden punkt wejścia i jeden punkt wyjścia. Nazwa stanu jest umieszczana po lewej stronie pola stanu. Bezwarunkowe wyjścia odpowiadające temu stanowi mogą być umieszczone wewnątrz skrzynki stanu.Moore wyjścia automatu stanowego mogą być również umieszczone w skrzynce stanów.

Pole decyzyjne

Ramka decyzyjna jest przedstawiona w kształcie rombu. Pliksymbol pola decyzyjnego pokazano na poniższym rysunku.

Ma jeden punkt wejścia i dwie ścieżki wyjścia. Wejścia lub wyrażenia boolowskie można umieścić w polu decyzyjnym, które należy sprawdzić, czy są prawdziwe, czy fałszywe. Jeśli warunek jest prawdziwy, preferuje path1. W przeciwnym razie będzie preferować path2.

Warunkowe pole wyjściowe

Warunkowe pole wyjściowe jest przedstawione w kształcie owalu. Pliksymbol warunkowego pola wyjściowego pokazano na poniższym rysunku.

Ma również jeden punkt wejścia i jeden punkt wyjścia podobny do skrzynki stanu. Wyjścia warunkowe można umieścić w skrzynce stanu. Ogólnie,Mealywyjścia maszyny stanu są reprezentowane wewnątrz warunkowego pola wyjściowego. Tak więc, w oparciu o wymaganie, możemy prawidłowo używać powyższych komponentów do rysowania wykresów ASM.