Mạch kỹ thuật số - Hướng dẫn nhanh

Nếu cơ số hoặc cơ số của một hệ thống số là 'r', thì các số hiện diện trong hệ thống số đó nằm trong khoảng từ 0 đến r-1. Tổng số có trong hệ thống số đó là 'r'. Vì vậy, chúng ta sẽ nhận được các hệ thống số khác nhau, bằng cách chọn các giá trị của cơ số lớn hơn hoặc bằng hai.

Trong chương này, chúng ta hãy thảo luận về popular number systemsvà cách biểu diễn một số trong hệ thống số tương ứng. Các hệ thống số sau đây được sử dụng phổ biến nhất.

  • Hệ thống số thập phân
  • Hệ thống số nhị phân
  • Hệ thống số bát phân
  • Hệ thống số thập lục phân

Hệ thống số thập phân

Các base hoặc cơ số của hệ thống số thập phân là 10. Vì vậy, các số từ 0 đến 9 được sử dụng trong hệ thống số này. Phần của số nằm ở bên trái củadecimal pointđược gọi là phần nguyên. Tương tự, một phần của số nằm ở bên phải của dấu thập phân được gọi là phần phân số.

Trong hệ thống số này, các vị trí liên tiếp ở bên trái của dấu thập phân có trọng số là 10 0 , 10 1 , 10 2 , 10 3 , v.v. Tương tự, các vị trí liên tiếp ở bên phải của dấu thập phân có trọng số là 10 -1 , 10 -2 , 10 -3 , v.v. Điều đó có nghĩa là, mỗi vị trí có trọng lượng cụ thể, đó làpower of base 10

Thí dụ

Xem xét decimal number 1358.246. Phần nguyên của số này là 1358 và phần thập phân của số này là 0,246. Các chữ số 8, 5, 3, 1 có trọng số lần lượt là 100, 101, 10 2 và 10 3 . Tương tự, các chữ số 2, 4, 6 có trọng số lần lượt là 10 -1 , 10 -2 và 10 -3 .

Mathematically, chúng ta có thể viết nó là

1358.246 = (1 × 10 3 ) + (3 × 10 2 ) + (5 × 10 1 ) + (8 × 10 0 ) + (2 × 10 -1 ) +

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

Sau khi đơn giản hóa các số hạng bên phải, chúng ta sẽ nhận được số thập phân, nằm ở bên trái.

Hệ thống số nhị phân

Tất cả các mạch và hệ thống kỹ thuật số đều sử dụng hệ thống số nhị phân này. Cácbase hoặc cơ số của hệ thống số này là 2. Vì vậy, các số 0 và 1 được sử dụng trong hệ thống số này.

Một phần của con số, nằm ở bên trái của binary pointđược gọi là phần nguyên. Tương tự, một phần của số, nằm ở bên phải của điểm nhị phân được gọi là phần phân số.

Trong hệ thống số này, các vị trí liên tiếp ở bên trái của điểm nhị phân có trọng số là 2 0 , 2 1 , 2 2 , 2 3 , v.v. Tương tự, các vị trí liên tiếp ở bên phải của điểm nhị phân có trọng số là 2 -1 , 2 -2 , 2 -3 , v.v. Điều đó có nghĩa là, mỗi vị trí có trọng lượng cụ thể, đó làpower of base 2.

Thí dụ

Xem xét binary number 1101.011. Phần nguyên của số này là 1101 và phần thập phân của số này là 0,011. Các chữ số 1, 0, 1 và 1 của phần nguyên có trọng số lần lượt là 2 0 , 2 1 , 2 2 , 2 3 . Tương tự, các chữ số 0, 1 và 1 của phần phân số có trọng số lần lượt là 2 -1 , 2 -2 , 2 -3 .

Mathematically, chúng ta có thể viết nó là

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

(1 × 2 -2 ) + (1 × 2 -3 )

Sau khi đơn giản hóa các thuật ngữ bên tay phải, chúng ta sẽ nhận được một số thập phân, tương đương với số nhị phân ở bên tay trái.

Hệ thống số bát phân

Các base hoặc cơ số của hệ thống số bát phân là 8. Vì vậy, các số từ 0 đến 7 được sử dụng trong hệ thống số này. Phần của số nằm ở bên trái củaoctal pointđược gọi là phần nguyên. Tương tự, phần của số nằm ở bên phải của dấu bát phân được gọi là phần phân số.

Trong hệ thống số này, các vị trí liên tiếp bên trái của dấu bát phân có trọng số là 8 0 , 8 1 , 8 2 , 8 3 , v.v. Tương tự, các vị trí liên tiếp bên phải của bát phân có trọng số là 8 -1 , 8 -2 , 8 -3 , v.v. Điều đó có nghĩa là, mỗi vị trí có trọng lượng cụ thể, đó làpower of base 8.

Thí dụ

Xem xét octal number 1457.236. Phần nguyên của số này là 1457 và phần thập phân của số này là 0,236. Các chữ số 7, 5, 4, 1 có trọng số lần lượt là 8 0 , 8 1 , 8 2 và 8 3 . Tương tự, các chữ số 2, 3, 6 có trọng số lần lượt là 8 -1 , 8 -2 , 8 -3 .

Mathematically, chúng ta có thể viết nó là

1457.236 = (1 × 8 3 ) + (4 × 8 2 ) + (5 × 8 1 ) + (7 × 8 0 ) + (2 × 8 -1 ) +

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

Sau khi đơn giản hóa các thuật ngữ bên tay phải, chúng ta sẽ nhận được một số thập phân, tương đương với số bát phân ở bên tay trái.

Hệ thống số thập lục phân

Các base hoặc cơ số của hệ thống số thập phân Hexa là 16. Vì vậy, các số từ 0 đến 9 và các chữ cái từ A đến F được sử dụng trong hệ thống số này. Tương đương thập phân của các chữ số thập lục phân từ A đến F là 10 đến 15.

Một phần của con số, nằm ở bên trái của hexadecimal pointđược gọi là phần nguyên. Tương tự, một phần của số nằm ở bên phải của dấu thập phân Hexa được gọi là phần phân số.

Trong hệ thống số này, các vị trí liên tiếp ở bên trái của dấu phẩy thập lục phân có trọng số là 16 0 , 16 1 , 16 2 , 16 3 , v.v. Tương tự, các vị trí liên tiếp ở bên phải của dấu thập lục phân có trọng số là 16 -1 , 16 -2 , 16 -3 , v.v. Điều đó có nghĩa là, mỗi vị trí có trọng lượng cụ thể, đó làpower of base 16.

Thí dụ

Xem xét Hexa-decimal number 1A05.2C4. Phần nguyên của số này là 1A05 và phần thập phân của số này là 0,2C4. Các chữ số 5, 0, A và 1 có trọng số lần lượt là 16 0 , 16 1 , 16 2 và 16 3 . Tương tự, các chữ số 2, C, 4 có trọng số lần lượt là 16 -1 , 16 -2 và 16 -3 .

Mathematically, chúng ta có thể viết nó là

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

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

Sau khi đơn giản hóa các thuật ngữ bên tay phải, chúng ta sẽ nhận được một số thập phân, tương đương với số thập phân Hexa ở bên tay trái.

Trong chương trước, chúng ta đã thấy bốn hệ thống số nổi bật. Trong chương này, chúng ta hãy chuyển đổi các số từ hệ thống số này sang hệ thống số khác để tìm giá trị tương đương.

Chuyển đổi số thập phân sang các cơ sở khác

Nếu số thập phân chứa cả phần nguyên và phần phân số, thì chuyển đổi riêng lẻ cả hai phần của số thập phân thành cơ số khác. Làm theo các bước sau để chuyển đổi số thập phân thành số tương đương của bất kỳ cơ số 'r' nào.

  • Làm division phần nguyên của số thập phân và successive quotientsvới cơ số 'r' và ghi lại các phần còn lại cho đến khi thương số bằng 0. Xem xét các phần dư theo thứ tự ngược lại để nhận phần nguyên của số tương đương của cơ số 'r'. Điều đó có nghĩa là, phần dư đầu tiên và cuối cùng biểu thị chữ số có nghĩa nhỏ nhất và chữ số có nghĩa nhất tương ứng.

  • Làm multiplication phần thập phân của số thập phân và successive fractionsvới cơ số 'r' và ghi lại giá trị thực hiện cho đến khi kết quả bằng 0 hoặc số chữ số tương đương mong muốn đạt được. Hãy xem xét chuỗi thực hiện bình thường để nhận được phần phân số của số cơ sở 'r' tương đương.

Chuyển đổi thập phân sang nhị phân

Hai loại hoạt động sau đây diễn ra, trong khi chuyển đổi số thập phân thành số nhị phân tương đương của nó.

  • Phép chia phần nguyên và các thương liên tiếp với cơ số 2.
  • Phép nhân một phần phân số và liên tiếp các phân số với cơ số 2.

Example

Xem xét decimal number 58.25. Ở đây, phần nguyên là 58 và phần phân số là 0,25.

Step 1 - Phép chia 58 và các thương liên tiếp với cơ số 2.

Hoạt động Thương số Phần còn lại
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

Do đó, integer part của số nhị phân tương đương là 111010.

Step 2 - Phép nhân 0,25 và các phân số liên tiếp với cơ số 2.

Hoạt động Kết quả Mang
0,25 x 2 0,5 0
0,5 x 2 1,0 1
- 0,0 -

⇒ (.25) 10 = (.01) 2

Do đó, fractional part của số nhị phân tương đương là .01

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

Do đó, binary equivalent của số thập phân 58,25 là 111010,01.

Chuyển đổi thập phân sang bát phân

Hai loại hoạt động sau đây diễn ra, trong khi chuyển đổi số thập phân thành số bát phân tương đương của nó.

  • Phép chia phần nguyên và các thương liên tiếp với cơ số 8.

  • Phép nhân một phần phân số và các phân số liên tiếp với cơ số 8.

Example

Xem xét decimal number 58.25. Ở đây, phần nguyên là 58 và phần phân số là 0,25.

Step 1 - Phép chia 58 và các thương liên tiếp với cơ số 8.

Hoạt động Thương số Phần còn lại
58/8 7 2
7/8 0 7

⇒ (58) 10 = (72) 8

Do đó, integer part của số bát phân tương đương là 72.

Step 2 - Phép nhân 0,25 và các phân số liên tiếp với cơ số 8.

Hoạt động Kết quả Mang
0,25 x 8 2,00 2
- 0,00 -

⇒ (.25) 10 = (.2) 8

Do đó, fractional part của số bát phân tương đương là .2

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

Do đó, octal equivalent của số thập phân 58,25 là 72,2.

Chuyển đổi thập phân sang thập lục phân

Hai loại hoạt động sau đây diễn ra, trong khi chuyển đổi số thập phân thành số thập lục phân tương đương của nó.

  • Phép chia phần nguyên và các thương liên tiếp với cơ số 16.
  • Phép nhân một phần phân số và các phân số liên tiếp với cơ số 16.

Example

Xem xét decimal number 58.25. Ở đây, phần nguyên là 58 và phần thập phân là 0,25.

Step 1 - Phép chia 58 và các thương liên tiếp với cơ số 16.

Hoạt động Thương số Phần còn lại
58/16 3 10 = A
16/3 0 3

⇒ (58) 10 = (3A) 16

Do đó, integer part của số thập phân Hexa tương đương là 3A.

Step 2 - Nhân 0,25 và các phân số liên tiếp với cơ số 16.

Hoạt động Kết quả Mang
0,25 x 16 4,00 4
- 0,00 -

⇒ (.25) 10 = (.4) 16

Do đó, fractional part của số thập phân Hexa tương đương là .4.

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

Do đó, Hexa-decimal equivalent của số thập phân 58,25 là 3A,4.

Số nhị phân sang chuyển đổi cơ sở khác

Quá trình chuyển đổi một số từ hệ nhị phân sang hệ thập phân khác với quá trình chuyển đổi một số nhị phân sang các cơ số khác. Bây giờ, chúng ta hãy thảo luận về việc chuyển đổi lần lượt một số nhị phân sang hệ thập phân, bát phân và hệ thập phân Hexa.

Chuyển đổi nhị phân sang thập phân

Để chuyển một số nhị phân thành số thập phân tương đương của nó, trước tiên hãy nhân các bit của số nhị phân với trọng số vị trí tương ứng và sau đó cộng tất cả các tích đó.

Example

Xem xét binary number 1101.11.

Mathematically, chúng ta có thể viết nó là

(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

Do đó, decimal equivalent của số nhị phân 1101.11 là 13,75.

Chuyển đổi nhị phân sang bát phân

Chúng ta biết rằng cơ số của hệ số nhị phân và bát phân lần lượt là 2 và 8. Ba bit của số nhị phân tương đương với một chữ số bát phân, vì 2 3 = 8.

Làm theo hai bước sau để chuyển đổi một số nhị phân thành số bát phân tương đương của nó.

  • Bắt đầu từ điểm nhị phân và tạo các nhóm 3 bit ở cả hai phía của điểm nhị phân. Nếu một hoặc hai bit ít hơn trong khi tạo nhóm 3 bit, thì hãy bao gồm số lượng không cần thiết ở các cạnh cực.

  • Viết các chữ số bát phân tương ứng với mỗi nhóm 3 bit.

Example

Xem xét binary number 101110.01101.

Step 1 - Lập nhóm 3 bit ở cả hai phía của điểm nhị phân.

101 110.011 01

Ở đây, ở phía bên phải của điểm nhị phân, nhóm cuối cùng chỉ có 2 bit. Vì vậy, hãy bao gồm một số 0 ở phía cực để làm cho nó thành nhóm 3 bit.

⇒ 101 110.011 010

Step 2 - Viết các chữ số bát phân tương ứng với mỗi nhóm 3 bit.

⇒ (101 110.011 010) 2 = (56.32) 8

Do đó, octal equivalent của số nhị phân 101110.01101 là 56,32.

Chuyển đổi từ nhị phân sang thập lục phân

Chúng ta biết rằng cơ số của hệ số nhị phân và hệ thập phân Hexa lần lượt là 2 và 16. Bốn bit của số nhị phân tương đương với một chữ số thập phân Hexa, vì 2 4 = 16.

Làm theo hai bước sau để chuyển đổi một số nhị phân thành số thập phân Hexa tương đương của nó.

  • Bắt đầu từ điểm nhị phân và tạo các nhóm 4 bit ở cả hai phía của điểm nhị phân. Nếu một số bit ít hơn trong khi tạo nhóm 4 bit, thì hãy bao gồm số lượng không cần thiết ở các cạnh cực.

  • Viết các chữ số thập phân Hexa tương ứng với mỗi nhóm 4 bit.

Example

Xem xét binary number 101110.01101

Step 1 - Lập nhóm 4 bit ở cả hai phía của điểm nhị phân.

10 1110.0110 1

Ở đây, nhóm đầu tiên chỉ có 2 bit. Vì vậy, hãy bao gồm hai số không ở bên cực để làm cho nó thành nhóm 4 bit. Tương tự, bao gồm ba số không ở bên cực để làm cho nhóm cuối cùng cũng là nhóm 4 bit.

⇒ 0010 1110.0110 1000

Step 2 - Viết các chữ số thập lục phân tương ứng với mỗi nhóm 4 bit.

⇒ (0010 1110.0110 1000) 2 = (2E.68) 16

Do đó, Hexa-decimal equivalent của số nhị phân 101110.01101 là (2E.68).

Chuyển đổi số bát phân sang các cơ sở khác

Quá trình chuyển đổi một số từ bát phân sang thập phân khác với quá trình chuyển đổi một số bát phân sang các cơ số khác. Bây giờ, chúng ta hãy thảo luận về việc chuyển đổi lần lượt một số bát phân sang hệ thập phân, nhị phân và hệ thập phân Hexa.

Chuyển đổi từ bát phân sang thập phân

Để chuyển một số bát phân thành số thập phân tương đương của nó, trước tiên hãy nhân các chữ số của số bát phân với trọng số vị trí tương ứng rồi cộng tất cả các tích đó.

Example

Xem xét octal number 145.23.

Mathematically, chúng ta có thể viết nó là

(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

Do đó, decimal equivalent của số bát phân 145,23 là 101,3.

Chuyển đổi bát phân sang nhị phân

Quá trình chuyển đổi một số bát phân sang một số nhị phân tương đương hoàn toàn ngược lại với quá trình chuyển đổi từ nhị phân sang bát phân. Bằng cách biểu diễn mỗi chữ số bát phân với 3 bit, chúng ta sẽ nhận được số nhị phân tương đương.

Example

Xem xét octal number 145.23.

Biểu diễn mỗi chữ số bát phân với 3 bit.

(145,23) 8 = (001 100 101.010 011) 2

Giá trị không thay đổi bằng cách loại bỏ các số không ở phía cực đoan.

⇒ (145,23) 8 = (1100101.010011) 2

Do đó, binary equivalent của số bát phân 145,23 là 1100101.010011.

Chuyển đổi từ bát phân sang thập lục phân

Làm theo hai bước sau để chuyển đổi một số bát phân thành số thập phân Hexa tương đương của nó.

  • Chuyển đổi số bát phân thành số nhị phân tương đương của nó.
  • Chuyển số nhị phân ở trên thành số thập phân Hexa tương đương của nó.

Example

Xem xét octal number 145.23

Trong ví dụ trước, chúng tôi nhận được tương đương nhị phân của số bát phân 145,23 là 1100101.010011.

Bằng cách làm theo quy trình chuyển đổi từ nhị phân sang thập lục phân, chúng ta sẽ nhận được

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

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

Do đó, Hexa-decimal equivalentcủa bát phân số 145,23 là 65,4 C .

Số thập phân-thập phân sang chuyển đổi cơ sở khác

Quá trình chuyển đổi một số từ hệ thập phân sang hệ thập phân khác với quá trình chuyển đổi số thập phân thành các cơ số khác. Bây giờ, chúng ta hãy thảo luận về việc chuyển đổi từng hệ thống số thập phân Hexa sang hệ thập phân, nhị phân và bát phân.

Chuyển đổi thập lục phân sang thập phân

Để chuyển đổi số thập phân Hexa thành số thập phân tương đương của nó, trước tiên, nhân các chữ số của số thập phân Hexa với trọng số vị trí tương ứng và sau đó cộng tất cả các tích đó.

Example

Xem xét Hexa-decimal number 1A5.2

Mathematically, chúng ta có thể viết nó là

(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

Do đó, decimal equivalent của số thập phân 1A5.2 là 421.125.

Chuyển đổi thập lục phân sang nhị phân

Quá trình chuyển đổi số thập phân Hexa thành số nhị phân tương đương của nó hoàn toàn ngược lại với quá trình chuyển đổi từ nhị phân sang hệ thập phân. Bằng cách biểu diễn mỗi chữ số thập phân Hexa với 4 bit, chúng ta sẽ nhận được số nhị phân tương đương.

Example

Xem xét Hexa-decimal number 65.4C

Biểu diễn mỗi chữ số thập phân Hexa với 4 bit.

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

Giá trị không thay đổi bằng cách loại bỏ các số không ở hai cạnh cực.

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

Do đó, binary equivalent của số thập lục phân 65,4C là 1100101.010011.

Chuyển đổi thập lục phân sang bát phân

Hãy làm theo hai bước sau để chuyển đổi số thập phân Hexa thành số bát phân tương đương của nó.

  • Chuyển đổi số thập phân Hexa thành số nhị phân tương đương của nó.
  • Chuyển số nhị phân trên thành số bát phân tương đương của nó.

Example

Xem xét Hexa-decimal number 65.4C

Trong ví dụ trước, chúng tôi nhận được số tương đương nhị phân của số thập phân 65,4C là 1100101.010011.

Bằng cách làm theo quy trình chuyển đổi từ nhị phân sang bát phân, chúng ta sẽ nhận được

(1100101.010011) 2 = (145,23) 8

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

Do đó, octal equivalentcủa số thập lục phân 65,4 C là 145,23.

Chúng ta có thể chia các số nhị phân thành hai nhóm sau: Unsigned numbersSigned numbers.

Số chưa ký

Các số không có dấu chỉ chứa độ lớn của số. Họ không có bất kỳ dấu hiệu nào. Điều đó có nghĩa là tất cả các số nhị phân không dấu đều dương. Như trong hệ thống số thập phân, việc đặt dấu dương trước số là tùy chọn để biểu diễn số dương. Do đó, tất cả các số dương bao gồm cả số 0 có thể được coi là số không có dấu nếu dấu dương không được gán trước số đó.

Số đã ký

Các số có dấu chứa cả dấu và độ lớn của số. Nói chung, dấu hiệu được đặt trước số. Vì vậy, chúng ta phải xét dấu dương cho số dương và dấu âm cho số âm. Do đó, tất cả các số có thể được coi là số có dấu nếu dấu tương ứng được gán trước số đó.

Nếu bit dấu bằng 0, cho biết số nhị phân là số dương. Tương tự, nếu bit dấu là một, cho biết số nhị phân là số âm.

Biểu diễn các số nhị phân chưa ký

Các bit có trong số nhị phân chưa ký giữ magnitudecủa một số. Điều đó có nghĩa là, nếu số nhị phân chưa ký có chứa‘N’ bit, sau đó là tất cả N bit đại diện cho độ lớn của số, vì nó không có bất kỳ bit dấu nào.

Example

Xem xét decimal number 108. Số tương đương nhị phân của số này là1101100. Đây là đại diện của số nhị phân không dấu.

(108) 10 = (1101100) 2

Nó có 7 bit. 7 bit này đại diện cho độ lớn của số 108.

Biểu diễn các số nhị phân đã ký

Bit quan trọng nhất (MSB) của số nhị phân có dấu được sử dụng để chỉ ra dấu của các số. Do đó, nó còn được gọi làsign bit. Dấu tích cực được biểu diễn bằng cách đặt '0' vào bit dấu. Tương tự, dấu âm được biểu diễn bằng cách đặt '1' vào bit dấu.

Nếu số nhị phân có dấu chứa các bit 'N', thì các bit (N-1) chỉ thể hiện độ lớn của số vì một bit (MSB) được dành riêng để biểu diễn dấu của số.

Có ba types of representations cho các số nhị phân có dấu

  • Biểu mẫu độ lớn dấu hiệu
  • Hình thức bổ sung của 1
  • Hình thức bổ sung của 2

Biểu diễn một số dương ở cả 3 dạng này đều giống nhau. Tuy nhiên, chỉ biểu diễn số âm sẽ khác nhau ở mỗi dạng.

Example

Xem xét positive decimal number +108. Tương đương nhị phân về độ lớn của số này là 1101100. 7 bit này đại diện cho độ lớn của số 108. Vì nó là số dương, hãy coi bit dấu là 0, được đặt ở bên trái hầu hết độ lớn.

(+108) 10 = (01101100) 2

Do đó, signed binary representationcủa số thập phân dương +108 là. Vì vậy, biểu diễn tương tự có giá trị ở dạng dấu hiệu, dạng phần bù của 1 và dạng phần bù của 2 cho số thập phân dương +108.

Biểu mẫu độ lớn dấu hiệu

Ở dạng cường độ dấu hiệu, MSB được sử dụng để biểu diễn sign của số và các bit còn lại đại diện cho magnitudecủa số. Vì vậy, chỉ cần bao gồm bit dấu ở phía ngoài cùng bên trái của số nhị phân không dấu. Biểu diễn này tương tự như biểu diễn số thập phân có dấu.

Example

Xem xét negative decimal number -108. Độ lớn của con số này là 108. Chúng ta biết biểu diễn nhị phân không dấu của 108 là 1101100. Nó có 7 bit. Tất cả các bit này đại diện cho độ lớn.

Vì số đã cho là số âm, hãy coi bit dấu là một, được đặt ở bên trái hầu hết độ lớn.

(−108) 10 = (11101100) 2

Do đó, biểu diễn độ lớn dấu của -108 là 11101100.

Hình thức bổ sung của 1

Phần bù 1 của một số nhận được bằng complementing all the bitscủa số nhị phân có dấu. Vì vậy, phần bù của 1 của số dương cho một số âm. Tương tự, phần bù 1 của số âm cho một số dương.

Điều đó có nghĩa là, nếu bạn thực hiện hai lần phần bù 1 của một số nhị phân bao gồm cả bit dấu, thì bạn sẽ nhận được số nhị phân có dấu ban đầu.

Example

Xem xét negative decimal number -108. Độ lớn của số này là 108. Chúng ta biết biểu diễn nhị phân có dấu của 108 là 01101100.

Nó có 8 bit. MSB của số này là số 0, cho biết số dương. Phần bù của số 0 là một và ngược lại. Vì vậy, hãy thay thế các số không bằng một và một bằng các số không để nhận được số âm.

(−108) 10 = (10010011) 2

Do đó, 1’s complement of (108)10(10010011)2.

Hình thức bổ sung của 2

Phần bù 2 của một số nhị phân thu được bằng adding one to the 1’s complementcủa số nhị phân có dấu. Vì vậy, phần bù của 2 của số dương cho một số âm. Tương tự, phần bù của 2 của số âm cho một số dương.

Điều đó có nghĩa là, nếu bạn thực hiện hai lần bù 2 của một số nhị phân bao gồm cả bit dấu, thì bạn sẽ nhận được số nhị phân có dấu ban đầu.

Example

Xem xét negative decimal number -108.

Chúng tôi biết phần bổ sung số 1 của (108)10 Là (10010011)2

2 lời khen của (108) 10 = 1 lời khen của (108) 10 + 1.

= 10010011 + 1

= 10010100

Do đó, 2’s complement of (108)10(10010100)2.

Trong chương này, chúng ta hãy thảo luận về các phép toán số học cơ bản, có thể được thực hiện trên bất kỳ số nhị phân có hai dấu nào bằng cách sử dụng phương pháp bù của 2. Cácbasic arithmetic operations là phép cộng và phép trừ.

Phép cộng hai số nhị phân có dấu

Hãy xem xét hai số nhị phân có dấu A & B, được biểu diễn dưới dạng phần bù của 2. Chúng tôi có thể thực hiệnadditioncủa hai số này, tương tự như phép cộng hai số nhị phân không dấu. Nhưng, nếu tổng kết quả chứa thực hiện từ bit dấu, thì loại bỏ (bỏ qua) nó để nhận giá trị chính xác.

Nếu tổng kết quả là số dương, bạn có thể tìm trực tiếp độ lớn của nó. Nhưng, nếu tổng kết quả là số âm, thì lấy phần bù 2 của nó để có được độ lớn.

ví dụ 1

Hãy để chúng tôi thực hiện addition của hai số thập phân +7 and +4 sử dụng phương pháp bổ sung của 2.

Các 2’s complement biểu diễn +7 và +4 với mỗi bit 5 được hiển thị bên dưới.

(+7) 10 = (00111) 2

(+4) 10 = (00100) 2

Phép cộng của hai số này là

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

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

Tổng kết quả chứa 5 bit. Vì vậy, không có thực hiện từ bit dấu. Bit dấu '0' chỉ ra rằng tổng kết quả làpositive. Vì vậy, độ lớn của tổng là 11 trong hệ thống số thập phân. Do đó, phép cộng hai số dương sẽ cho một số dương khác.

Ví dụ 2

Hãy để chúng tôi thực hiện addition của hai số thập phân -7-4 sử dụng phương pháp bổ sung của 2.

Các 2’s complement biểu diễn -7 và -4 với mỗi bit 5 được hiển thị bên dưới.

(−7) 10 = (11001) 2

(−4) 10 = (11100) 2

Phép cộng của hai số này là

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

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

Tổng kết quả chứa 6 bit. Trong trường hợp này, carry thu được từ bit dấu. Vì vậy, chúng tôi có thể xóa nó

Tổng kết quả sau khi loại bỏ mang là (−7) 10 + (−4) 10 =(10101)2.

Bit dấu '1' chỉ ra rằng tổng kết quả là negative. Vì vậy, bằng cách lấy phần bù 2 của nó, chúng ta sẽ nhận được độ lớn của tổng kết quả là 11 trong hệ thống số thập phân. Do đó, phép cộng hai số âm sẽ cho một số âm khác.

Phép trừ hai số nhị phân có dấu

Hãy xem xét hai số nhị phân có dấu A & B, được biểu diễn dưới dạng phần bù của 2. Chúng ta biết rằng phần bù của 2 số dương cho một số âm. Vì vậy, bất cứ khi nào chúng ta phải trừ một số B cho số A, sau đó lấy phần bù 2 của B và cộng nó với A. Vì vậy,mathematically chúng ta có thể viết nó là

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

Tương tự, nếu chúng ta phải trừ số A với số B, thì lấy phần bù 2 của A và cộng với B. Vì vậy, mathematically chúng ta có thể viết nó là

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

Vì vậy, phép trừ hai số nhị phân có dấu cũng tương tự như phép cộng hai số nhị phân có dấu. Nhưng, chúng ta phải lấy phần bù của 2 của số, được cho là số bị trừ. Đây làadvantagecủa kỹ thuật bổ sung của 2. Thực hiện theo, các quy tắc tương tự của phép cộng hai số nhị phân có dấu.

Ví dụ 3

Hãy để chúng tôi thực hiện subtraction của hai số thập phân +7 and +4 sử dụng phương pháp bổ sung của 2.

Phép trừ hai số này là

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

Các 2’s complement biểu diễn +7 và -4 với mỗi bit 5 được hiển thị bên dưới.

(+7) 10 = (00111) 2

(+4) 10 = (11100) 2

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

Ở đây, thực hiện thu được từ bit dấu. Vì vậy, chúng ta có thể loại bỏ nó. Tổng kết quả sau khi loại bỏ mang là

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

Bit dấu '0' chỉ ra rằng tổng kết quả là positive. Vì vậy, độ lớn của nó là 3 trong hệ thống số thập phân. Do đó, phép trừ hai số thập phân +7 và +4 là +3.

Ví dụ 4

Hãy để chúng tôi thực hiện subtraction of hai số thập phân +4+7 sử dụng phương pháp bổ sung của 2.

Phép trừ hai số này là

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

Các 2’s complement biểu diễn của +4 và -7 với mỗi bit 5 được hiển thị bên dưới.

(+4) 10 = (00100) 2

(-7) 10 = (11001) 2

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

Ở đây, carry không thu được từ bit dấu. Bit dấu '1' chỉ ra rằng tổng kết quả lànegative. Vì vậy, bằng cách lấy phần bù 2 của nó, chúng ta sẽ nhận được độ lớn của tổng kết quả là 3 trong hệ thống số thập phân. Do đó, phép trừ hai số thập phân +4 và +7 là -3.

Trong mã hóa, khi số hoặc chữ cái được biểu thị bằng một nhóm ký hiệu cụ thể, nó được cho là số hoặc chữ cái đó đang được mã hóa. Nhóm ký hiệu được gọi làcode. Dữ liệu kỹ thuật số được biểu diễn, lưu trữ và truyền dưới dạng nhóm bit. Nhóm bit này còn được gọi làbinary code.

Mã nhị phân có thể được phân thành hai loại.

  • Mã trọng số
  • Mã không trọng số

Nếu mã có trọng số vị trí, thì nó được cho là weighted code. Nếu không, nó là một mã không có trọng số. Mã có trọng số có thể được phân loại thêm thành mã có trọng số dương và mã có trọng số âm.

Mã nhị phân cho chữ số thập phân

Bảng sau đây cho thấy các mã nhị phân khác nhau cho các chữ số thập phân từ 0 đến 9.

Chữ số thập phân 8421 Mã 2421 Mã 84-2-1 Mã Quá 3 mã
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
số 8 1000 1110 1000 1011
9 1001 1111 1111 1100

Chúng tôi có 10 chữ số trong hệ thống số thập phân. Để biểu diễn 10 chữ số này dưới dạng nhị phân, chúng tôi yêu cầu tối thiểu 4 bit. Tuy nhiên, với 4 bit sẽ có 16 sự kết hợp duy nhất của số không và số một. Vì chúng ta chỉ có 10 chữ số thập phân, 6 tổ hợp số không và đơn vị khác là không bắt buộc.

8 4 2 1 mã

  • Các trọng số của mã này là 8, 4, 2 và 1.

  • Mã này có tất cả các trọng số dương. Vì vậy, nó là mộtpositively weighted code.

  • Mã này còn được gọi là natural BCD (Số thập phân được mã nhị phân) code.

Example

Hãy tìm BCD tương đương của số thập phân 786. Số này có 3 chữ số thập phân là 7, 8 và 6. Từ bảng này ta viết được mã BCD (8421) của 7, 8 và 6 lần lượt là 0111, 1000 và 0110 .

∴ (786)10 = (011110000110)BCD

Có 12 bit trong biểu diễn BCD, vì mỗi mã BCD của chữ số thập phân có 4 bit.

2 4 2 1 mã

  • Các trọng số của mã này là 2, 4, 2 và 1.

  • Mã này có tất cả các trọng số dương. Vì vậy, nó là mộtpositively weighted code.

  • Nó là một unnatural BCDmã. Tổng trọng số của mã BCD không tự nhiên bằng 9.

  • Nó là một self-complementingmã. Các mã tự bổ sung cung cấp phần bù của số 9 của một số thập phân, chỉ bằng cách hoán đổi số 1 và số 0 trong biểu diễn 2421 tương đương của nó.

Example

Hãy tìm 2421 tương đương của số thập phân 786. Số này có 3 chữ số thập phân 7, 8 và 6. Từ bảng, ta có thể viết 2421 mã của 7, 8 và 6 lần lượt là 1101, 1110 và 1100.

Do đó, 2421 tương đương với số thập phân 786 là 110111101100.

8 4 -2 -1 mã

  • Các trọng số của mã này là 8, 4, -2 và -1.

  • Mã này có trọng số âm cùng với trọng số dương. Vì vậy, nó là mộtnegatively weighted code.

  • Nó là một unnatural BCD mã.

  • Nó là một self-complementing mã.

Example

Hãy tìm 8 4-2-1 tương đương của số thập phân 786. Số này có 3 chữ số thập phân là 7, 8 và 6. Từ bảng, ta có thể viết các mã 8 4 -2 -1 của 7, 8 và 6 lần lượt là 1001, 1000 và 1010.

Do đó, 8 4 -2 -1 tương đương của số thập phân 786 là 100110001010.

Thừa 3 mã

  • Mã này không có bất kỳ trọng số nào. Vì vậy, nó là mộtun-weighted code.

  • Chúng ta sẽ nhận được mã thừa 3 của một số thập phân bằng cách thêm ba (0011) vào mã nhị phân tương đương của số thập phân đó. Do đó, nó được gọi là mã thừa 3.

  • Nó là một self-complementing mã.

Example

Ta tìm số dư 3 tương đương với số thập phân 786. Số này có 3 chữ số thập phân là 7, 8 và 6. Từ bảng, ta có thể viết 3 thừa của số 7, 8 và 6 lần lượt là 1010, 1011 và 1001.

Do đó, phần dư 3 tương đương của số thập phân 786 là 101010111001

Mã màu xám

Bảng sau đây cho thấy các mã Xám 4 bit tương ứng với mỗi mã nhị phân 4 bit.

Số thập phân Mã nhị phân Mã màu xám
0 0000 0000
1 0001 0001
2 0010 0011
3 0011 0010
4 0100 0110
5 0101 0111
6 0110 0101
7 0111 0100
số 8 1000 1100
9 1001 1101
10 1010 1111
11 1011 1110
12 1100 1010
13 1101 1011
14 1110 1001
15 1111 1000
  • Mã này không có bất kỳ trọng số nào. Vì vậy, nó là mộtun-weighted code.

  • Trong bảng trên, các mã Xám kế tiếp chỉ khác nhau ở một vị trí bit. Do đó, mã này được gọi làunit distance mã.

Mã nhị phân thành Chuyển đổi mã màu xám

Làm theo các bước sau để chuyển đổi mã nhị phân thành mã Xám tương đương.

  • Xem xét mã nhị phân đã cho và đặt số 0 ở bên trái MSB.

  • So sánh hai bit liên tiếp bắt đầu từ số không. Nếu 2 bit giống nhau, thì đầu ra bằng không. Nếu không, đầu ra là một.

  • Lặp lại bước trên cho đến khi nhận được mã LSB of Grey.

Example

Từ bảng, chúng ta biết rằng mã Xám tương ứng với mã nhị phân 1000 là 1100. Bây giờ, chúng ta hãy xác minh nó bằng cách sử dụng quy trình trên.

Đã cho, mã nhị phân là 1000.

Step 1 - Đặt số 0 bên trái MSB, mã nhị phân sẽ là 01000.

Step 2 - Bằng cách so sánh hai bit liên tiếp của mã nhị phân mới, chúng ta sẽ nhận được mã màu xám là 1100.

Chúng ta biết rằng các bit 0 và 1 tương ứng với hai dải điện áp tương tự khác nhau. Vì vậy, trong quá trình truyền dữ liệu nhị phân từ hệ thống này sang hệ thống khác, nhiễu cũng có thể được thêm vào. Do đó, dữ liệu nhận được ở hệ thống khác có thể bị lỗi.

Điều đó có nghĩa là một bit 0 có thể thay đổi thành 1 hoặc một bit 1 có thể thay đổi thành 0. Chúng ta không thể tránh được sự can thiệp của nhiễu. Tuy nhiên, chúng tôi có thể lấy lại dữ liệu ban đầu trước tiên bằng cách phát hiện xem có bất kỳ lỗi nào hay không và sau đó sửa các lỗi đó. Với mục đích này, chúng tôi có thể sử dụng các mã sau.

  • Mã phát hiện lỗi
  • Mã sửa lỗi

Error detection codes- được sử dụng để phát hiện (các) lỗi có trong dữ liệu nhận được (luồng bit). Những mã này chứa (các) bit, được bao gồm (nối thêm) vào dòng bit gốc. Các mã này phát hiện lỗi, nếu nó xảy ra trong quá trình truyền dữ liệu gốc (luồng bit).Example - Mã chẵn lẻ, mã Hamming.

Error correction codes- được sử dụng để sửa (các) lỗi có trong dữ liệu đã nhận (dòng bit) để chúng ta lấy dữ liệu gốc. Mã sửa lỗi cũng sử dụng chiến lược tương tự của mã phát hiện lỗi.Example - Mã Hamming.

Do đó, để phát hiện và sửa lỗi, (các) bit bổ sung được nối vào các bit dữ liệu tại thời điểm truyền.

Mã chẵn lẻ

Có thể dễ dàng bao gồm (nối thêm) một bit chẵn lẻ ở bên trái MSB hoặc bên phải LSB của dòng bit gốc. Có hai loại mã chẵn lẻ, đó là mã chẵn lẻ và mã chẵn lẻ dựa trên loại chẵn lẻ được chọn.

Mã chẵn lẻ

Giá trị của bit chẵn lẻ phải bằng 0, nếu số bit chẵn có trong mã nhị phân. Nếu không, nó phải là một. Vì vậy, số lượng chẵn có trongeven parity code. Mã chẵn lẻ chứa các bit dữ liệu và bit chẵn lẻ.

Bảng sau đây cho thấy even parity codestương ứng với mỗi mã nhị phân 3 bit. Ở đây, bit chẵn lẻ được đưa vào bên phải LSB của mã nhị phân.

Mã nhị phân Bit chẵn lẻ Mã chẵn lẻ
000 0 0000
001 1 0011
010 1 0101
011 0 0110
100 1 1001
101 0 1010
110 0 1100
111 1 1111

Ở đây, số bit có trong mã chẵn lẻ là 4. Vì vậy, số bit chẵn có thể có trong các mã chẵn lẻ này là 0, 2 & 4.

  • Nếu hệ thống khác nhận được một trong các mã chẵn lẻ này, thì dữ liệu nhận được sẽ không có lỗi. Các bit khác với bit chẵn lẻ giống như bit của mã nhị phân.

  • Nếu hệ thống khác nhận được không phải là mã chẵn lẻ, thì sẽ có (các) lỗi trong dữ liệu đã nhận. Trong trường hợp này, chúng tôi không thể dự đoán mã nhị phân ban đầu vì chúng tôi không biết (các) vị trí bit bị lỗi.

Do đó, bit chẵn lẻ chỉ hữu ích để phát hiện lỗi trong mã chẵn lẻ nhận được. Nhưng, nó không đủ để sửa lỗi.

Mã chẵn lẻ lẻ

Giá trị của bit chẵn lẻ lẻ phải bằng 0, nếu có số lẻ trong mã nhị phân. Nếu không, nó phải là một. Vì vậy, số lẻ của những người có trongodd parity code. Mã chẵn lẻ lẻ chứa các bit dữ liệu và bit chẵn lẻ lẻ.

Bảng sau đây cho thấy odd parity codestương ứng với mỗi mã nhị phân 3 bit. Ở đây, bit chẵn lẻ lẻ được đưa vào bên phải LSB của mã nhị phân.

Mã nhị phân Bit chẵn lẻ lẻ Mã chẵn lẻ lẻ
000 1 0001
001 0 0010
010 0 0100
011 1 0111
100 0 1000
101 1 1011
110 1 1101
111 0 1110

Ở đây, số bit có trong các mã chẵn lẻ lẻ là 4. Vì vậy, số bit lẻ có thể có trong các mã chẵn lẻ lẻ này là 1 & 3.

  • Nếu hệ thống khác nhận được một trong các mã chẵn lẻ lẻ này, thì dữ liệu nhận được sẽ không có lỗi. Các bit khác với bit chẵn lẻ lẻ giống như bit của mã nhị phân.

  • Nếu hệ thống khác nhận được không phải là mã chẵn lẻ lẻ, thì có một lỗi trong dữ liệu nhận được. Trong trường hợp này, chúng tôi không thể dự đoán mã nhị phân ban đầu vì chúng tôi không biết (các) vị trí bit bị lỗi.

Do đó, bit chẵn lẻ lẻ chỉ hữu ích để phát hiện lỗi trong mã chẵn lẻ nhận được. Nhưng, nó không đủ để sửa lỗi.

Mã Hamming

Mã Hamming hữu ích cho cả việc phát hiện và sửa lỗi có trong dữ liệu nhận được. Mã này sử dụng nhiều bit chẵn lẻ và chúng ta phải đặt các bit chẵn lẻ này vào vị trí lũy thừa của 2.

Các minimum value of 'k' mà quan hệ sau là đúng (hợp lệ) không là gì ngoài số bit chẵn lẻ cần thiết.

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

Ở đâu,

'n' là số bit trong mã nhị phân (thông tin)

'k' là số bit chẵn lẻ

Do đó, số bit trong mã Hamming bằng n + k.

Hãy để Hamming code Là $b_{n+k}b_{n+k-1}.....b_{3}b_{2}b_{1}$ & bit chẵn lẻ $p_{k}, p_{k-1}, ....p_{1}$. Chúng ta chỉ có thể đặt các bit chẵn lẻ 'k' theo lũy thừa của 2 vị trí. Ở các vị trí bit còn lại, chúng ta có thể đặt các bit 'n' của mã nhị phân.

Dựa trên yêu cầu, chúng ta có thể sử dụng chẵn lẻ hoặc chẵn lẻ trong khi tạo mã Hamming. Tuy nhiên, kỹ thuật chẵn lẻ tương tự nên được sử dụng để tìm xem có lỗi nào xuất hiện trong dữ liệu đã nhận hay không.

Làm theo quy trình này để tìm parity bits.

  • Tìm giá trị của p1, dựa trên số lượng đơn vị có mặt ở các vị trí bit b 3 , b 5 , b 7 , v.v. Tất cả các vị trí bit này (hậu tố) trong hệ nhị phân tương đương của chúng có giá trị '1' ở vị trí là 2 0 .

  • Tìm giá trị của p2, dựa trên số lượng đơn vị có ở các vị trí bit b 3 , b 6 , b 7 , v.v. Tất cả các vị trí bit này (hậu tố) trong hệ nhị phân tương đương của chúng có giá trị '1' ở vị trí là 2 1 .

  • Tìm giá trị của p3, dựa trên số lượng đơn vị có ở các vị trí bit b 5 , b 6 , b 7 , v.v. Tất cả các vị trí bit này (hậu tố) trong hệ nhị phân tương đương của chúng có giá trị '1' ở vị trí là 2 2 .

  • Tương tự, tìm các giá trị khác của bit chẵn lẻ.

Làm theo quy trình này để tìm check bits.

  • Tìm giá trị của c 1 , dựa trên số đơn vị có ở các vị trí bit b 1 , b 3 , b 5 , b 7 , v.v. Tất cả các vị trí bit này (hậu tố) trong hệ nhị phân tương đương của chúng có giá trị '1' ở vị trí là 2 0 .

  • Tìm giá trị của c 2 , dựa trên số lượng đơn vị có mặt ở các vị trí bit b 2 , b 3 , b 6 , b 7 , v.v. Tất cả các vị trí bit này (hậu tố) trong hệ nhị phân tương đương của chúng có giá trị '1' ở vị trí là 2 1 .

  • Tìm giá trị của c 3 , dựa trên số lượng đơn vị có ở các vị trí bit b 4 , b 5 , b 6 , b 7 , v.v. Tất cả các vị trí bit này (hậu tố) trong hệ nhị phân tương đương của chúng có giá trị '1' ở vị trí là 2 2 .

  • Tương tự, tìm các giá trị khác của các bit kiểm tra.

Tương đương thập phân của các bit kiểm tra trong dữ liệu nhận được cung cấp giá trị của vị trí bit, nơi có lỗi. Chỉ cần bổ sung giá trị có trong vị trí bit đó. Do đó, chúng ta sẽ nhận được mã nhị phân ban đầu sau khi loại bỏ các bit chẵn lẻ.

ví dụ 1

Hãy để chúng tôi tìm mã Hamming cho mã nhị phân, d 4 d 3 d 2 d 1 = 1000. Xét các bit chẵn lẻ.

Số bit trong mã nhị phân đã cho là n = 4.

Chúng ta có thể tìm số lượng bit chẵn lẻ cần thiết bằng cách sử dụng quan hệ toán học sau.

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

Thay thế, n = 4 trong quan hệ toán học trên.

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

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

Giá trị nhỏ nhất của k thỏa mãn quan hệ trên là 3. Do đó, chúng ta yêu cầu 3 bit chẵn lẻ p 1 , p 2 và p 3 . Do đó, số bit trong mã Hamming sẽ là 7, vì có 4 bit trong mã nhị phân và 3 bit chẵn lẻ. Chúng ta phải đặt các bit chẵn lẻ và các bit của mã nhị phân trong mã Hamming như hình dưới đây.

Các 7-bit Hamming code Là $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}$

Bằng cách thay thế các bit của mã nhị phân, mã Hamming sẽ là $b_{7}b_{6}b_{5}b_{4}b_{3}b_{2}b_{1} = 100p_{3}Op_{2}p_{1}$. Bây giờ, chúng ta hãy tìm các bit chẵn lẻ.

$$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$$

Bằng cách thay thế các bit chẵn lẻ này, Hamming code sẽ là $b_{7}b_{6}b_{5}b_{4}b_{3}b_{2}b_{1}= 1001011$.

Ví dụ 2

Trong ví dụ trên, chúng ta có mã Hamming là $b_{7}b_{6}b_{5}b_{4}b_{3}b_{2}b_{1}= 1001011$. Bây giờ, chúng ta hãy tìm vị trí lỗi khi mã nhận được là$b_{7}b_{6}b_{5}b_{4}b_{3}b_{2}b_{1}= 1001111$.

Bây giờ, chúng ta hãy tìm các bit kiểm tra.

$$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$$

Giá trị thập phân của các bit kiểm tra cho biết vị trí của lỗi trong mã Hamming nhận được.

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

Do đó, lỗi xuất hiện ở bit thứ ba (b 3 ) của mã Hamming. Chỉ cần bổ sung giá trị có trong bit đó và loại bỏ các bit chẵn lẻ để có được mã nhị phân ban đầu.

Boolean Algebralà một đại số, xử lý các số nhị phân và các biến nhị phân. Do đó, nó còn được gọi là Đại số nhị phân hoặc Đại số lôgic. Một nhà toán học, tên là George Boole đã phát triển đại số này vào năm 1854. Các biến được sử dụng trong đại số này còn được gọi là biến Boolean.

Phạm vi điện áp tương ứng với logic 'Cao' được biểu thị bằng '1' và phạm vi điện áp tương ứng với logic 'Thấp' được biểu thị bằng '0'.

Định đề và luật cơ bản của đại số Boolean

Trong phần này, chúng ta hãy thảo luận về các định đề Boolean và các định luật cơ bản được sử dụng trong đại số Boolean. Chúng hữu ích trong việc giảm thiểu các hàm Boolean.

Định đề Boolean

Xét các số nhị phân 0 và 1, biến Boolean (x) và phần bù của nó (x '). Biến Boolean hoặc phần bổ sung của nó được gọi làliteral. Bốn khả thilogical OR các phép toán giữa các chữ và số nhị phân này được hiển thị bên dưới.

x + 0 = x

x + 1 = 1

x + x = x

x + x '= 1

Tương tự, bốn điều có thể logical AND các phép toán giữa các chữ và số nhị phân đó được hiển thị bên dưới.

x.1 = x

x.0 = 0

xx = x

x.x '= 0

Đây là những định đề Boolean đơn giản. Chúng tôi có thể xác minh những định đề này một cách dễ dàng, bằng cách thay thế biến Boolean bằng '0' hoặc '1'.

Note- Phần bù của phần bù của bất kỳ biến Boolean nào cũng bằng chính biến đó. tức là, (x ')' = x.

Luật cơ bản của đại số Boolean

Sau đây là ba định luật cơ bản của Đại số Boolean.

  • Luật thay thế
  • Luật kết hợp
  • Luật phân phối

Luật thay thế

Nếu bất kỳ phép toán logic nào của hai biến Boolean cho cùng một kết quả bất kể thứ tự của hai biến đó, thì phép toán logic đó được cho là Commutative. Các phép toán logic OR & logic AND của hai biến Boolean x & y được hiển thị bên dưới

x + y = y + x

xy = yx

Biểu tượng '+' cho biết phép toán HOẶC logic. Tương tự, ký hiệu '.' chỉ ra hoạt động logic AND và nó là tùy chọn để đại diện. Luật giao hoán tuân theo các phép toán logic OR & logic AND.

Luật kết hợp

Nếu một phép toán logic của hai biến Boolean bất kỳ được thực hiện trước và sau đó phép toán tương tự được thực hiện với biến còn lại cho cùng một kết quả, thì phép toán logic đó được cho là Associative. Các phép toán logic OR & logic AND của ba biến Boolean x, y & z được hiển thị bên dưới.

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

x. (yz) = (xy) .z

Luật kết hợp tuân theo các phép toán logic OR & logic AND.

Luật phân phối

Nếu bất kỳ phép toán logic nào có thể được phân phối cho tất cả các điều khoản có trong hàm Boolean, thì phép toán logic đó được cho là Distributive. Sự phân bố các phép toán OR & logic AND của ba biến Boolean x, y & z được hiển thị bên dưới.

x. (y + z) = xy + xz

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

Luật phân phối tuân theo các phép toán logic OR và logic AND.

Đây là những luật cơ bản của đại số Boolean. Chúng ta có thể xác minh các luật này một cách dễ dàng bằng cách thay các biến Boolean bằng '0' hoặc '1'.

Định lý của Đại số Boolean

Hai định lý sau được sử dụng trong đại số Boolean.

  • Định lý đối ngẫu
  • Định lý DeMorgan

Định lý Đối ngẫu

Định lý này phát biểu rằng dualcủa hàm Boolean thu được bằng cách hoán đổi toán tử logic AND với toán tử OR logic và các số không với các toán tử. Với mỗi hàm Boolean, sẽ có một hàm Dual tương ứng.

Chúng ta hãy lập các phương trình Boolean (quan hệ) mà chúng ta đã thảo luận trong phần các định đề Boolean và các định luật cơ bản thành hai nhóm. Bảng sau đây cho thấy hai nhóm này.

Nhóm 1 Nhóm 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)

Trong mỗi hàng, có hai phương trình Boolean và chúng là đối ngẫu với nhau. Chúng ta có thể xác minh tất cả các phương trình Boolean này của Nhóm1 và Nhóm2 bằng cách sử dụng định lý đối ngẫu.

Định lý DeMorgan

Định lý này rất hữu ích trong việc tìm kiếm complement of Boolean function. Nó nói rằng phần bù của OR logic của ít nhất hai biến Boolean bằng AND logic của mỗi biến bổ sung.

Định lý DeMorgan với 2 biến Boolean x và y có thể được biểu diễn dưới dạng

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

Đối ngẫu của hàm Boolean ở trên là

(xy) '= x' + y '

Do đó, phần bù của AND logic của hai biến Boolean bằng OR logic của mỗi biến bổ sung. Tương tự, chúng ta cũng có thể áp dụng định lý DeMorgan cho nhiều hơn 2 biến Boolean.

Đơn giản hóa các hàm Boolean

Cho đến bây giờ, chúng ta đã thảo luận về các định đề, định luật cơ bản và định lý của đại số Boolean. Bây giờ, chúng ta hãy đơn giản hóa một số hàm Boolean.

ví dụ 1

Hãy để chúng tôi simplify hàm Boolean, f = p'qr + pq'r + pqr '+ pqr

Chúng ta có thể đơn giản hóa hàm này bằng hai phương pháp.

Method 1

Cho hàm Boolean, f = p'qr + pq'r + pqr '+ pqr.

Step 1- Trong số hạng thứ nhất và số hạng thứ hai, r là chung và ở số hạng thứ ba và thứ tư, pq là chung. Vì vậy, hãy sử dụng các thuật ngữ chung bằng cách sử dụngDistributive law.

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

Step 2- Các thuật ngữ có trong ngoặc đơn đầu tiên có thể được đơn giản hóa thành phép toán Ex-OR. Các thuật ngữ trong ngoặc đơn thứ hai có thể được đơn giản hóa thành '1' bằng cách sử dụngBoolean postulate

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

Step 3- Thuật ngữ đầu tiên không thể được đơn giản hóa hơn nữa. Tuy nhiên, thuật ngữ thứ hai có thể được đơn giản hóa thành pq bằng cách sử dụngBoolean postulate.

⇒ f = (p ⊕q) r + pq

Do đó, hàm Boolean được đơn giản hóa là f = (p⊕q)r + pq

Method 2

Cho hàm Boolean, f = p'qr + pq'r + pqr '+ pqr.

Step 1 - Sử dụng Boolean postulate, x + x = x. Điều đó có nghĩa là, phép toán logic OR với bất kỳ biến Boolean nào 'n' lần sẽ bằng cùng một biến. Vì vậy, chúng ta có thể viết pqr số hạng cuối cùng hai lần nữa.

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

Step 2 - Sử dụng Distributive lawcho 1 st và 4 thứ về, 2 nd và 5 ngày điều khoản, 3 thứ 6 ngày về.

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

Step 3 - Sử dụng Boolean postulate, x + x '= 1 để đơn giản hóa các thuật ngữ có trong mỗi dấu ngoặc đơn.

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

Step 4 - Sử dụng Boolean postulate, x.1 = x để đơn giản hóa ba số hạng trên.

⇒ f = qr + pr + pq

⇒ f = pq + qr + pr

Do đó, hàm Boolean được đơn giản hóa là f = pq + qr + pr.

Vì vậy, chúng ta có hai hàm Boolean khác nhau sau khi đơn giản hóa hàm Boolean đã cho trong mỗi phương thức. Về mặt chức năng, hai hàm Boolean đó giống nhau. Vì vậy, dựa trên yêu cầu, chúng ta có thể chọn một trong hai hàm Boolean đó.

Ví dụ 2

Hãy để chúng tôi tìm complement của hàm Boolean, f = p'q + pq '.

Phần bù của hàm Boolean là f '= (p'q + pq') '.

Step 1 - Sử dụng định lý DeMorgan, (x + y) '= x'.y'.

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

Step 2 - Sử dụng định lý DeMorgan, (xy) '= x' + y '

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

Step3 - Sử dụng định đề Boolean, (x ')' = x.

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

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

Step 4 - Sử dụng định đề Boolean, xx '= 0.

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

⇒ f = pq + p'q '

Do đó, complement của hàm Boolean, p'q + pq 'là pq + p’q’.

Chúng ta sẽ nhận được bốn số hạng tích số Boolean bằng cách kết hợp hai biến x và y với phép toán logic AND. Các thuật ngữ sản phẩm Boolean này được gọi làmin terms hoặc là standard product terms. Các số hạng tối thiểu là x'y ', x'y, xy' và xy.

Tương tự, chúng ta sẽ nhận được bốn số hạng tổng Boolean bằng cách kết hợp hai biến x và y với phép toán OR logic. Các số hạng tổng Boolean này được gọi làMax terms hoặc là standard sum terms. Các số hạng Max là x + y, x + y ', x' + y và x '+ y'.

Bảng sau đây cho thấy sự biểu diễn của số hạng min và số hạng MAX cho 2 biến.

x y Điều khoản tối thiểu Điều khoản tối đa
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'

Nếu biến nhị phân là '0', thì nó được biểu diễn dưới dạng phần bù của biến trong số hạng min và như chính biến đó trong số hạng Max. Tương tự, nếu biến nhị phân là '1', thì nó được biểu diễn dưới dạng phần bù của biến trong số hạng Max và như chính biến đó trong số hạng min.

Từ bảng trên, chúng ta có thể dễ dàng nhận thấy rằng các số hạng min và số hạng Max là bổ sung cho nhau. Nếu có 'n' biến Boolean, thì sẽ có 2 n số hạng min và 2 n số hạng Max.

Các dạng SoP và PoS chuẩn

Một bảng sự thật bao gồm một tập hợp các đầu vào và đầu ra. Nếu có 'n' biến đầu vào, thì sẽ có 2 n kết hợp có thể có với số không và số một. Vì vậy giá trị của mỗi biến đầu ra phụ thuộc vào sự kết hợp của các biến đầu vào. Vì vậy, mỗi biến đầu ra sẽ có '1' cho một số kết hợp của các biến đầu vào và '0' cho một số kết hợp khác của các biến đầu vào.

Do đó, chúng ta có thể biểu diễn mỗi biến đầu ra theo hai cách sau.

  • Biểu mẫu SoP chuẩn
  • Biểu mẫu PoS chuẩn

Biểu mẫu SoP chuẩn

Biểu mẫu SoP hợp quy có nghĩa là biểu mẫu Tổng sản phẩm hợp quy. Ở dạng này, mỗi thuật ngữ sản phẩm chứa tất cả các chữ. Vì vậy, các điều khoản sản phẩm này không là gì ngoài các điều khoản tối thiểu. Do đó, dạng SoP chuẩn còn được gọi làsum of min terms hình thức.

Đầu tiên, xác định các số hạng min mà biến đầu ra là một và sau đó thực hiện OR logic của các số hạng min đó để nhận được biểu thức Boolean (hàm) tương ứng với biến đầu ra đó. Hàm Boolean này sẽ ở dạng tổng các số hạng nhỏ nhất.

Cũng thực hiện theo quy trình tương tự cho các biến đầu ra khác, nếu có nhiều hơn một biến đầu ra.

Thí dụ

Hãy xem xét những điều sau truth table.

Đầu vào Đầu ra
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

Ở đây, đầu ra (f) là '1' cho bốn kết hợp đầu vào. Các số hạng tối thiểu tương ứng là p'qr, pq'r, pqr ', pqr. Bằng cách thực hiện logic OR của bốn số hạng nhỏ nhất này, chúng ta sẽ nhận được hàm Boolean của đầu ra (f).

Do đó, hàm Boolean của đầu ra là, f = p'qr + pq'r + pqr '+ pqr. Đây làcanonical SoP formđầu ra, f. Chúng ta cũng có thể biểu diễn hàm này bằng hai ký hiệu sau.

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

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

Trong một phương trình, chúng tôi biểu diễn hàm dưới dạng tổng các số hạng nhỏ nhất tương ứng. Trong phương trình khác, chúng tôi sử dụng ký hiệu để tính tổng các số hạng tối thiểu đó.

Biểu mẫu PoS chuẩn

Dạng Canonical PoS nghĩa là Sản phẩm Canonical của dạng Sums. Ở dạng này, mỗi số hạng tổng chứa tất cả các chữ. Vì vậy, các điều khoản tổng này không là gì khác ngoài các điều khoản Max. Do đó, biểu mẫu PoS chuẩn còn được gọi làproduct of Max terms hình thức.

Đầu tiên, xác định các số hạng Max mà biến đầu ra là 0 và sau đó thực hiện phép logic AND của các số hạng Max đó để nhận được biểu thức Boolean (hàm) tương ứng với biến đầu ra đó. Hàm Boolean này sẽ ở dạng tích các số hạng Max.

Cũng thực hiện theo quy trình tương tự cho các biến đầu ra khác, nếu có nhiều hơn một biến đầu ra.

Example

Hãy xem xét cùng một bảng sự thật của ví dụ trước. Ở đây, đầu ra (f) là '0' cho bốn kết hợp đầu vào. Các số hạng Max tương ứng là p + q + r, p + q + r ', p + q' + r, p '+ q + r. Bằng cách thực hiện logic AND của bốn số hạng Max này, chúng ta sẽ nhận được hàm Boolean của đầu ra (f).

Do đó, hàm Boolean của đầu ra là, f = (p + q + r). (P + q + r '). (P + q' + r). (P '+ q + r). Đây làcanonical PoS formđầu ra, f. Chúng ta cũng có thể biểu diễn hàm này bằng hai ký hiệu sau.

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

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

Trong một phương trình, chúng tôi biểu diễn hàm dưới dạng tích của các số hạng Max tương ứng. Trong phương trình khác, chúng tôi sử dụng ký hiệu để nhân các số hạng Max đó.

Hàm Boolean, f = (p + q + r). (P + q + r '). (P + q' + r). (P '+ q + r) là đối ngẫu của hàm Boolean, f = p'qr + pq'r + pqr '+ pqr.

Do đó, cả hai dạng SoP chuẩn và PoS chuẩn đều Dualcho nhau. Về mặt chức năng, hai hình thức này giống nhau. Căn cứ vào yêu cầu, chúng ta có thể sử dụng một trong hai hình thức này.

Các dạng SoP và PoS tiêu chuẩn

Chúng tôi đã thảo luận về hai dạng chính tắc biểu diễn (các) đầu ra Boolean. Tương tự, có hai dạng tiêu chuẩn biểu thị (các) đầu ra Boolean. Đây là phiên bản đơn giản hóa của các biểu mẫu chuẩn.

  • Mẫu SoP tiêu chuẩn
  • Mẫu PoS tiêu chuẩn

Chúng ta sẽ thảo luận về cổng Logic trong các chương sau. Chínhadvantagecủa các dạng tiêu chuẩn là số lượng đầu vào áp dụng cho các cổng logic có thể được giảm thiểu. Đôi khi, tổng số cổng logic được yêu cầu sẽ giảm.

Mẫu SoP tiêu chuẩn

Mẫu SoP tiêu chuẩn có nghĩa là Standard Sum of Productshình thức. Ở dạng này, mỗi thuật ngữ sản phẩm không cần chứa tất cả các chữ. Vì vậy, điều khoản sản phẩm có thể là điều khoản tối thiểu hoặc không. Do đó, biểu mẫu SoP chuẩn là dạng đơn giản hóa của biểu mẫu SoP chuẩn.

Chúng ta sẽ nhận được dạng SoP chuẩn của biến đầu ra trong hai bước.

  • Nhận dạng SoP chuẩn của biến đầu ra
  • Đơn giản hóa hàm Boolean ở trên, ở dạng SoP chính tắc.

Cũng thực hiện theo quy trình tương tự cho các biến đầu ra khác, nếu có nhiều hơn một biến đầu ra. Đôi khi, không thể đơn giản hóa biểu mẫu SoP chuẩn. Trong trường hợp đó, cả hai dạng SoP chuẩn và chuẩn đều giống nhau.

Example

Chuyển đổi hàm Boolean sau đây thành dạng SoP chuẩn.

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

Hàm Boolean đã cho ở dạng SoP chính tắc. Bây giờ, chúng ta phải đơn giản hóa hàm Boolean này để có được dạng SoP chuẩn.

Step 1 - Sử dụng Boolean postulate, x + x = x. Điều đó có nghĩa là, phép toán logic OR với bất kỳ biến Boolean nào 'n' lần sẽ bằng cùng một biến. Vì vậy, chúng ta có thể viết pqr số hạng cuối cùng hai lần nữa.

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

Step 2 - Sử dụng Distributive lawcho 1 st và 4 thứ về, 2 nd và 5 ngày điều khoản, 3 thứ 6 ngày về.

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

Step 3 - Sử dụng Boolean postulate, x + x '= 1 để đơn giản hóa các thuật ngữ có trong mỗi dấu ngoặc đơn.

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

Step 4 - Sử dụng Boolean postulate, x.1 = x để đơn giản hóa ba số hạng trên.

⇒ f = qr + pr + pq

⇒ f = pq + qr + pr

Đây là hàm Boolean đơn giản hóa. Do đó,standard SoP form tương ứng với dạng SoP chuẩn đã cho là f = pq + qr + pr

Mẫu PoS tiêu chuẩn

Biểu mẫu PoS tiêu chuẩn có nghĩa là Standard Product of Sumshình thức. Ở dạng này, mỗi thuật ngữ tổng không cần chứa tất cả các chữ. Vì vậy, các điều khoản tổng có thể có hoặc không phải là các điều khoản Max. Do đó, biểu mẫu PoS chuẩn là dạng đơn giản hóa của biểu mẫu PoS chuẩn.

Chúng ta sẽ nhận được dạng chuẩn PoS của biến đầu ra trong hai bước.

  • Nhận dạng PoS chuẩn của biến đầu ra
  • Đơn giản hóa hàm Boolean ở trên, ở dạng PoS chính tắc.

Cũng thực hiện theo quy trình tương tự cho các biến đầu ra khác, nếu có nhiều hơn một biến đầu ra. Đôi khi, không thể đơn giản hóa biểu mẫu PoS chuẩn. Trong trường hợp đó, cả hai dạng PoS chuẩn và chuẩn đều giống nhau.

Example

Chuyển đổi hàm Boolean sau đây thành dạng PoS chuẩn.

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

Hàm Boolean đã cho ở dạng PoS chính tắc. Bây giờ, chúng ta phải đơn giản hóa hàm Boolean này để có được biểu mẫu PoS chuẩn.

Step 1 - Sử dụng Boolean postulate, xx = x. Điều đó có nghĩa là, phép toán logic AND với bất kỳ biến Boolean nào 'n' lần sẽ bằng cùng một biến. Vì vậy, chúng ta có thể viết số hạng đầu tiên p + q + r thêm hai lần nữa.

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

Step 2 - Sử dụng Distributive law,x + (yz) = (x + y). (x + z) cho 1 st và 4 thứ ngoặc, 2 nd và 5 thứ ngoặc, 3 thứ và 6 thứ ngoặc.

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

Step 3 - Sử dụng Boolean postulate, x.x '= 0 để đơn giản hóa các thuật ngữ có trong mỗi dấu ngoặc đơn.

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

Step 4 - Sử dụng Boolean postulate, x + 0 = x để đơn giản hóa các thuật ngữ có trong mỗi dấu ngoặc đơn

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

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

Đây là hàm Boolean đơn giản hóa. Do đó,standard PoS form tương ứng với biểu mẫu PoS chuẩn nhất định là f = (p + q).(q + r).(p + r). Đây làdual của hàm Boolean, f = pq + qr + pr.

Do đó, cả hai dạng Chuẩn SoP và PoS Chuẩn là Kép với nhau.

Trong các chương trước, chúng ta đã đơn giản hóa các hàm Boolean bằng cách sử dụng các định đề và định lý Boolean. Đây là một quá trình tốn thời gian và chúng ta phải viết lại các biểu thức đã đơn giản hóa sau mỗi bước.

Để vượt qua khó khăn này, Karnaughđã giới thiệu một phương pháp đơn giản hóa các hàm Boolean một cách dễ dàng. Phương pháp này được gọi là phương pháp bản đồ Karnaugh hoặc phương pháp bản đồ K. Nó là một phương pháp đồ họa, bao gồm 2 n ô cho các biến 'n'. Các ô liền kề chỉ khác nhau ở vị trí bit đơn.

K-Maps cho 2 đến 5 biến

Phương pháp K-Map phù hợp nhất để giảm thiểu các hàm Boolean của 2 biến thành 5 biến. Bây giờ, chúng ta hãy thảo luận về K-Maps cho 2 đến 5 biến từng biến một.

2 Bản đồ K biến

Số ô trong bản đồ K 2 biến là bốn, vì số biến là hai. Hình sau cho thấy2 variable K-Map.

  • Chỉ có một khả năng nhóm 4 số hạng min liền kề.

  • Các tổ hợp có thể có của nhóm 2 số hạng nhỏ nhất liền kề là {(m 0 , m 1 ), (m 2 , m 3 ), (m 0 , m 2 ) và (m 1 , m 3 )}.

3 Bản đồ K biến

Số ô trong 3 biến K-map là tám, vì số biến là ba. Hình sau cho thấy3 variable K-Map.

  • Chỉ có một khả năng nhóm 8 số hạng min liền kề.

  • Các tổ hợp có thể có của nhóm 4 số hạng nhỏ nhất liền kề là {(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 ) và (m 2 , m 0 , m 6 , m 4 )}.

  • Các tổ hợp có thể có của nhóm 2 số hạng nhỏ nhất liền kề là {(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 ) và ( m 2 , m 6 )}.

  • Nếu x = 0 thì ánh xạ K 3 biến trở thành ánh xạ K 2 biến.

4 Bản đồ K biến

Số ô trong 4 biến K-map là mười sáu, vì số biến là bốn. Hình sau cho thấy4 variable K-Map.

  • Chỉ có một khả năng nhóm 16 số hạng min liền kề.

  • Gọi R 1 , R 2 , R 3 và R 4 lần lượt đại diện cho các số hạng tối thiểu của hàng đầu tiên, hàng thứ hai, hàng thứ ba và hàng thứ tư. Tương tự, C 1 , C 2 , C 3 và C 4 lần lượt thể hiện các số hạng tối thiểu của cột đầu tiên, cột thứ hai, cột thứ ba và cột thứ tư. Các kết hợp có thể có của nhóm 8 số hạng tối thiểu liền kề là {(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 )}.

  • Nếu w = 0, thì bản đồ K 4 biến trở thành bản đồ K 3 biến.

5 Bản đồ K biến

Số ô trong 5 biến K-map là ba mươi hai, vì số biến là 5. Hình sau cho thấy 5 variable K-Map.

  • Chỉ có một khả năng nhóm 32 số hạng min liền kề.

  • Có hai khả năng nhóm 16 số hạng nhỏ nhất liền kề. tức là, nhóm các số hạng nhỏ nhất từ ​​m 0 đến m 15 và m 16 đến m 31 .

  • Nếu v = 0, thì bản đồ K 5 biến trở thành bản đồ K 4 biến.

Trong tất cả các bản đồ K ở trên, chúng tôi chỉ sử dụng ký hiệu thuật ngữ tối thiểu. Tương tự, bạn có thể sử dụng riêng ký hiệu điều khoản Max.

Giảm thiểu các hàm Boolean bằng K-Maps

Nếu chúng ta xem xét sự kết hợp của các đầu vào mà hàm Boolean là '1', thì chúng ta sẽ nhận được hàm Boolean, trong đó standard sum of products sau khi đơn giản hóa K-map.

Tương tự, nếu chúng ta xem xét sự kết hợp của các đầu vào mà hàm Boolean là '0', thì chúng ta sẽ nhận được hàm Boolean, trong đó standard product of sums sau khi đơn giản hóa K-map.

Làm theo những rules for simplifying K-maps để có được dạng tổng sản phẩm tiêu chuẩn.

  • Chọn K-map tương ứng dựa trên số lượng biến có trong hàm Boolean.

  • Nếu hàm Boolean được cho dưới dạng tổng của các số hạng min, thì hãy đặt chúng tại các ô số hạng min tương ứng trong K-map. Nếu hàm Boolean được cho dưới dạng tổng của các sản phẩm, thì hãy đặt các sản phẩm đó vào tất cả các ô có thể có của bản đồ K mà các điều khoản sản phẩm đã cho là hợp lệ.

  • Kiểm tra khả năng nhóm số lượng tối đa những cái liền kề. Nó phải là quyền hạn của hai. Bắt đầu từ công suất cao nhất của hai và tối đa là công suất nhỏ nhất của hai. Công suất cao nhất bằng số biến được xem xét trong bản đồ K và công suất nhỏ nhất bằng không.

  • Mỗi nhóm sẽ cung cấp một thuật ngữ theo nghĩa đen hoặc một sản phẩm. Nó được biết đến nhưprime implicant. Hàm ý chính được cho làessential prime implicant, nếu ít nhất đơn '1' không được bao phủ bởi bất kỳ nhóm nào khác mà chỉ bao gồm nhóm đó.

  • Ghi lại tất cả các hàm nguyên tố và hàm ý nguyên tố cần thiết. Hàm Boolean đơn giản chứa tất cả các hàm nguyên tố cần thiết và chỉ các hàm nguyên tố bắt buộc.

Note 1 - Nếu đầu ra không được xác định cho một số kết hợp đầu vào, thì các giá trị đầu ra đó sẽ được biểu diễn bằng don’t care symbol ‘x’. Điều đó có nghĩa là, chúng ta có thể coi chúng là '0' hoặc '1'.

Note 2- Nếu thuật ngữ không quan tâm cũng xuất hiện, thì địa điểm không quan tâm 'x' trong các ô tương ứng của K-map. Chỉ xem xét dấu 'x' không quan tâm hữu ích cho việc nhóm số lượng tối đa những cái liền kề. Trong những trường hợp đó, hãy coi giá trị không quan tâm là '1'.

Thí dụ

Hãy để chúng tôi simplify hàm Boolean sau đây, f(W, X, Y, Z)= WX’Y’ + WY + W’YZ’ sử dụng K-map.

Hàm Boolean đã cho có dạng tổng các sản phẩm. Nó có 4 biến W, X, Y & Z. Vì vậy, chúng tôi yêu cầu4 variable K-map. Các4 variable K-map với những người tương ứng với các điều khoản sản phẩm nhất định được hiển thị trong hình sau.

Ở đây, 1s được đặt trong các ô sau đây của K-map.

  • Các ô chung cho giao điểm của Hàng 4 và cột 1 & 2 tương ứng với cụm từ sản phẩm, WX’Y’.

  • Các ô chung cho giao điểm của Hàng 3 & 4 và cột 3 & 4 tương ứng với thuật ngữ sản phẩm, WY.

  • Các ô chung cho giao điểm của Hàng 1 & 2 và cột 4 tương ứng với thuật ngữ sản phẩm, W’YZ’.

Không có khả năng nhóm 16 cái liền kề hoặc 8 cái liền kề. Có ba khả năng nhóm 4 cái liền nhau. Sau ba nhóm này, không còn một nhóm nào là chưa được nhóm. Vì vậy, chúng ta không cần phải kiểm tra nhóm của 2 cái liền kề. Các4 variable K-map với ba cái này groupings được hiển thị trong hình sau.

Ở đây, chúng tôi có ba hàm ý chính WX ', WY & YZ'. Tất cả những hàm ý chính làessential bởi vì những lý do sau đây.

  • Hai cái (m8 & m9)của nhóm hàng thứ tư không được bao phủ bởi bất kỳ nhóm nào khác. Chỉ nhóm hàng thứ tư bao gồm hai hàng đó.

  • Người độc thân (m15)của nhóm hình vuông không bị bao phủ bởi bất kỳ nhóm nào khác. Chỉ nhóm hình vuông mới bao gồm nhóm đó.

  • Hai cái (m2 & m6)của nhóm cột thứ tư không được bao gồm bởi bất kỳ nhóm nào khác. Chỉ nhóm cột thứ tư bao gồm hai nhóm đó.

Do đó, simplified Boolean function

f = WX’ + WY + YZ’

Làm theo những rules for simplifying K-maps để có được sản phẩm tiêu chuẩn của dạng tổng.

  • Chọn K-map tương ứng dựa trên số lượng biến có trong hàm Boolean.

  • Nếu hàm Boolean được đưa ra dưới dạng tích của dạng số hạng Max, thì hãy đặt các số 0 tại các ô số hạng Max tương ứng trong K-map. Nếu hàm Boolean được cho dưới dạng tích của dạng tổng, thì hãy đặt các số 0 trong tất cả các ô có thể có của ánh xạ K mà các số hạng tổng đã cho là hợp lệ.

  • Kiểm tra khả năng nhóm số lượng số 0 liền kề tối đa. Nó phải là quyền hạn của hai. Bắt đầu từ công suất cao nhất của hai và công suất nhỏ nhất là hai. Công suất cao nhất bằng số biến được xem xét trong bản đồ K và công suất nhỏ nhất bằng không.

  • Mỗi nhóm sẽ cung cấp một thuật ngữ theo nghĩa đen hoặc một tổng. Nó được biết đến nhưprime implicant. Hàm ý chính được cho làessential prime implicant, nếu ít nhất đơn '0' không được bao phủ bởi bất kỳ nhóm nào khác mà chỉ bao gồm nhóm đó.

  • Ghi lại tất cả các hàm nguyên tố và hàm ý nguyên tố cần thiết. Hàm Boolean đơn giản chứa tất cả các hàm nguyên tố cần thiết và chỉ các hàm nguyên tố bắt buộc.

Note- Nếu thuật ngữ không quan tâm cũng xuất hiện, thì địa điểm không quan tâm 'x' trong các ô tương ứng của K-map. Chỉ xem xét dấu 'x' không quan tâm hữu ích cho việc nhóm số lượng tối đa các số 0 liền kề. Trong những trường hợp đó, hãy coi giá trị không quan tâm là '0'.

Thí dụ

Hãy để chúng tôi simplify hàm Boolean sau đây, $f\left ( X,Y,Z \right )=\prod M\left ( 0,1,2,4 \right )$ sử dụng K-map.

Hàm Boolean đã cho là sản phẩm của dạng số hạng Max. Nó có 3 biến X, Y & Z. Vì vậy, chúng tôi yêu cầu 3 biến K-map. Các số hạng Max đã cho là M 0 , M 1 , M 2 & M 4 . 3variable K-map với các số 0 tương ứng với các số hạng Max đã cho được thể hiện trong hình sau.

Không có khả năng nhóm 8 số 0 liền kề hoặc 4 số 0 liền kề. Có ba khả năng nhóm 2 số 0 liền kề. Sau ba nhóm này, không còn số 0 nào là chưa được nhóm. Các3 variable K-map với ba cái này groupings được hiển thị trong hình sau.

Ở đây, chúng tôi có ba hàm số nguyên tố X + Y, Y + Z & Z + X. Tất cả các hàm số nguyên tố này là essential bởi vì một số 0 trong mỗi nhóm không được bao gồm bởi bất kỳ nhóm nào khác ngoại trừ các nhóm riêng lẻ của chúng.

Do đó, simplified Boolean function

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

Bằng cách này, chúng ta có thể dễ dàng đơn giản hóa các hàm Boolean lên đến 5 biến bằng phương pháp K-map. Đối với nhiều hơn 5 biến, rất khó để đơn giản hóa các hàm bằng K-Maps. Bởi vì, số lượngcells trong K-map được doubled bằng cách bao gồm một biến mới.

Do đó, việc kiểm tra và nhóm các số liền kề (số hạng tối thiểu) hoặc số không liền kề (số hạng tối đa) sẽ phức tạp. Chúng ta sẽ thảo luậnTabular method trong chương tiếp theo để khắc phục những khó khăn của phương pháp K-map.

Trong chương trước, chúng ta đã thảo luận về phương pháp K-map, đây là một phương pháp thuận tiện để tối thiểu hóa các hàm Boolean lên đến 5 biến. Tuy nhiên, rất khó để đơn giản hóa các hàm Boolean có nhiều hơn 5 biến bằng cách sử dụng phương pháp này.

Phương pháp bảng Quine-McClukey là một phương pháp dạng bảng dựa trên khái niệm hàm ý nguyên tố. Chúng ta biết rằngprime implicant là một số hạng tích (hoặc tổng), không thể giảm thêm bằng cách kết hợp với bất kỳ số hạng tích (hoặc tổng) nào khác của hàm Boolean đã cho.

Phương pháp dạng bảng này rất hữu ích để lấy các hàm số nguyên tố bằng cách sử dụng lặp lại nhận dạng Boolean sau đây.

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

Quy trình của Phương pháp bảng Quine-McCluskey

Hãy làm theo các bước sau để đơn giản hóa các hàm Boolean bằng phương pháp bảng Quine-McClukey.

Step 1 - Sắp xếp các số hạng tối thiểu đã cho trong một ascending ordervà tạo các nhóm dựa trên số lượng nhóm có trong biểu diễn nhị phân của chúng. Vì vậy, sẽ cóat most ‘n+1’ groups nếu có 'n' biến Boolean trong một hàm Boolean hoặc 'n' bit trong hàm nhị phân tương đương với số hạng min.

Step 2 - So sánh các điều khoản tối thiểu có trong successive groups. Nếu chỉ có một thay đổi ở vị trí một bit, thì lấy cặp của hai số hạng min đó. Đặt ký hiệu '_' này ở vị trí bit khác nhau và giữ nguyên các bit còn lại.

Step 3 - Lặp lại bước 2 với các thuật ngữ mới được hình thành cho đến khi chúng ta hiểu hết prime implicants.

Step 4 - Lập công thức prime implicant table. Nó bao gồm tập hợp các hàng và cột. Hàm nguyên tố có thể được đặt trong hàng khôn ngoan và số hạng nhỏ nhất có thể được đặt trong cột khôn ngoan. Đặt '1' vào các ô tương ứng với các số hạng tối thiểu được bao hàm trong mỗi hàm ý nguyên tố.

Step 5- Tìm hàm số nguyên tố cần thiết bằng cách quan sát từng cột. Nếu số hạng tối thiểu chỉ được bao hàm bởi một hàm ý nguyên tố, thì nó làessential prime implicant. Các hàm số nguyên tố cần thiết đó sẽ là một phần của hàm Boolean đơn giản hóa.

Step 6- Giảm bảng hàm ý nguyên tố bằng cách loại bỏ hàng của mỗi hàm số nguyên tố cơ bản và các cột tương ứng với các số hạng tối thiểu được bao hàm trong hàm ý nguyên tố cần thiết đó. Lặp lại bước 5 cho bảng hàm ý nguyên tố rút gọn. Dừng quá trình này khi tất cả các số hạng tối thiểu của hàm Boolean đã cho kết thúc.

Thí dụ

Hãy để chúng tôi simplify hàm Boolean sau đây, $f\left ( W,X,Y,Z \right )=\sum m\left ( 2,6,8,9,10,11,14,15 \right )$ sử dụng phương pháp bảng Quine-McClukey.

Hàm Boolean đã cho nằm trong sum of min termshình thức. Nó có 4 biến W, X, Y & Z. Các số hạng tối thiểu đã cho là 2, 6, 8, 9, 10, 11, 14 và 15. Thứ tự tăng dần của các số hạng tối thiểu này dựa trên số hạng tử có trong chúng tương đương nhị phân là 2, 8, 6, 9, 10, 11, 14 và 15. Bảng sau đây cho thấy nhữngmin terms and their equivalent binary các đại diện.

GA3
Tên nhóm Điều khoản tối thiểu W X Y Z
GA1 2 0 0 1 0
số 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

Các số hạng tối thiểu đã cho được sắp xếp thành 4 nhóm dựa trên số lượng các số hạng có trong số tương đương nhị phân của chúng. Bảng sau đây cho thấymerging of min terms từ các nhóm liền kề.

GB3
Tên nhóm Điều khoản tối thiểu 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 -

Các số hạng min, chỉ khác ở vị trí một bit so với các nhóm liền kề được hợp nhất. Bit khác biệt đó được biểu diễn bằng ký hiệu này, '-'. Trong trường hợp này, có ba nhóm và mỗi nhóm chứa kết hợp của hai số hạng nhỏ nhất. Bảng sau đây cho thấymerging of min term pairs từ các nhóm liền kề.

Tên nhóm Điều khoản tối thiểu 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 -

Các nhóm liên tiếp của các cặp số hạng min, chỉ khác nhau ở vị trí một bit được hợp nhất. Bit khác biệt đó được biểu diễn bằng ký hiệu này, '-'. Trong trường hợp này, có hai nhóm và mỗi nhóm chứa các kết hợp của bốn số hạng nhỏ nhất. Ở đây, các kết hợp 4 số hạng tối thiểu này có sẵn trong hai hàng. Vì vậy, chúng ta có thể loại bỏ các hàng lặp lại. Bảng thu gọn sau khi loại bỏ các hàng thừa được hiển thị bên dưới.

Tên nhóm Điều khoản tối thiểu W X Y Z
GC1 2,6,10,14 - - 1 0
8,9,10,11 1 0 - -
GC2 10,11,14,15 1 - 1 -

Việc hợp nhất thêm các tổ hợp số hạng min từ các nhóm liền kề là không thể, vì chúng khác nhau ở vị trí nhiều hơn một bit. Có ba hàng trong bảng trên. Vì vậy, mỗi hàng sẽ cho một hàm ý nguyên tố. Do đó,prime implicants là YZ ', WX' & WY.

Các prime implicant table được hiển thị bên dưới.

Điều khoản tối thiểu / Hàm ý chính 2 6 số 8 9 10 11 14 15
YZ’ 1 1 1 1
WX’ 1 1 1 1
WY 1 1 1 1

Hàm nguyên tố được đặt trong hàng khôn ngoan và số hạng nhỏ nhất được đặt trong cột khôn ngoan. 1s được đặt trong các ô chung của các hàng hàm ý nguyên tố và các cột số hạng tối thiểu tương ứng.

Các số hạng tối thiểu 2 và 6 chỉ được bao hàm bởi một hàm ý nguyên tố YZ’. Vì vậy, nó là mộtessential prime implicant. Đây sẽ là một phần của hàm Boolean đơn giản hóa. Bây giờ, hãy xóa hàng hàm ý nguyên tố này và các cột số hạng tối thiểu tương ứng. Bảng hàm ý nguyên tố rút gọn được hiển thị bên dưới.

Điều khoản tối thiểu / Hàm ý chính số 8 9 11 15
WX’ 1 1 1
WY 1 1

Các số hạng tối thiểu 8 và 9 chỉ được bao hàm bởi một hàm ý chính WX’. Vì vậy, nó là mộtessential prime implicant. Đây sẽ là một phần của hàm Boolean đơn giản hóa. Bây giờ, hãy xóa hàng hàm ý nguyên tố này và các cột số hạng tối thiểu tương ứng. Bảng hàm ý nguyên tố rút gọn được hiển thị bên dưới.

Điều khoản tối thiểu / Hàm ý chính 15
WY 1

Thuật ngữ tối thiểu 15 chỉ được bao hàm bởi một hàm ý chính WY. Vì vậy, nó là mộtessential prime implicant. Đây sẽ là một phần của hàm Boolean đơn giản hóa.

Trong bài toán ví dụ này, chúng ta có ba hàm số nguyên tố và cả ba hàm ý đều cần thiết. Do đó,simplified Boolean function

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

Các mạch điện tử kỹ thuật số hoạt động với điện áp của two logic levelscụ thể là Logic Low và Logic High. Phạm vi điện áp tương ứng với Logic Low được biểu thị bằng '0'. Tương tự, phạm vi điện áp tương ứng với Cao Logic được biểu thị bằng '1'.

Mạch điện tử kỹ thuật số cơ bản có một hoặc nhiều đầu vào và đầu ra duy nhất được gọi là Logic gate. Do đó, cổng Logic là khối xây dựng của bất kỳ hệ thống kỹ thuật số nào. Chúng ta có thể phân loại các cổng Logic này thành ba loại sau.

  • Cổng cơ bản
  • Cổng chung
  • Cổng đặc biệt

Bây giờ, chúng ta hãy thảo luận về các cổng Logic theo từng loại một.

Cổng cơ bản

Trong các chương trước, chúng ta đã biết rằng các hàm Boolean có thể được biểu diễn ở dạng tổng của sản phẩm hoặc dạng tích của dạng tổng dựa trên yêu cầu. Vì vậy, chúng ta có thể thực hiện các hàm Boolean này bằng cách sử dụng các cổng cơ bản. Các cổng cơ bản là cổng VÀ, HOẶC & KHÔNG.

Và cổng

Cổng AND là một mạch kỹ thuật số có hai hoặc nhiều đầu vào và tạo ra một đầu ra, là logical ANDcủa tất cả các đầu vào đó. Nó là tùy chọn để đại diện choLogical AND với ký hiệu '.'.

Bảng sau đây cho thấy truth table cổng AND 2 đầu vào.

A B Y = AB
0 0 0
0 1 0
1 0 0
1 1 1

Ở đây A, B là đầu vào và Y là đầu ra của hai cổng AND đầu vào. Nếu cả hai đầu vào là '1', thì chỉ có đầu ra, Y là '1'. Đối với các kết hợp đầu vào còn lại, đầu ra, Y là '0'.

Hình sau cho thấy symbol của một cổng AND, có hai đầu vào A, B và một đầu ra, Y.

Cổng AND này tạo ra một đầu ra (Y), là logical ANDcủa hai đầu vào A, B. Tương tự, nếu có 'n' đầu vào, thì cổng AND tạo ra một đầu ra, là AND logic của tất cả các đầu vào đó. Điều đó có nghĩa là, đầu ra của cổng AND sẽ là '1', khi tất cả các đầu vào là '1'.

Cổng HOẶC

Cổng OR là một mạch kỹ thuật số có hai hoặc nhiều đầu vào và tạo ra một đầu ra, là OR logic của tất cả các đầu vào đó. Điều nàylogical OR được biểu diễn bằng ký hiệu '+'.

Bảng sau đây cho thấy truth table cổng OR 2 đầu vào.

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

Ở đây A, B là đầu vào và Y là đầu ra của hai cổng OR đầu vào. Nếu cả hai đầu vào là '0', thì chỉ có đầu ra, Y là '0'. Đối với các kết hợp đầu vào còn lại, đầu ra, Y là '1'.

Hình sau cho thấy symbol của một cổng OR, có hai đầu vào A, B và một đầu ra, Y.

Cổng OR này tạo ra một đầu ra (Y), là logical ORcủa hai đầu vào A, B. Tương tự, nếu có 'n' đầu vào, thì cổng OR tạo ra một đầu ra, là OR logic của tất cả các đầu vào đó. Điều đó có nghĩa là, đầu ra của cổng OR sẽ là '1', khi ít nhất một trong những đầu vào đó là '1'.

Cổng KHÔNG

Cổng NOT là một mạch kỹ thuật số có một đầu vào và một đầu ra. Đầu ra của cổng NOT làlogical inversioncủa đầu vào. Do đó, cổng NOT còn được gọi là biến tần.

Bảng sau đây cho thấy truth table của cổng NOT.

A Y = A '
0 1
1 0

Ở đây A và Y lần lượt là đầu vào và đầu ra của cổng NOT. Nếu đầu vào, A là '0', thì đầu ra, Y là '1'. Tương tự, nếu đầu vào, A là '1', thì đầu ra, Y là '0'.

Hình sau cho thấy symbol của cổng NOT, có một đầu vào, A và một đầu ra, Y.

Cổng NOT này tạo ra một đầu ra (Y), là complement của đầu vào, A.

Cổng chung

Cổng NAND & NOR được gọi là universal gates. Bởi vì chúng ta có thể triển khai bất kỳ hàm Boolean nào, có dạng tổng hợp các sản phẩm bằng cách sử dụng cổng NAND một mình. Tương tự, chúng ta có thể triển khai bất kỳ hàm Boolean nào, ở dạng tích số bằng cách sử dụng cổng NOR một mình.

Cổng NAND

Cổng NAND là một mạch kỹ thuật số có hai hoặc nhiều đầu vào và tạo ra một đầu ra, là inversion of logical AND của tất cả các đầu vào đó.

Bảng sau đây cho thấy truth table cổng NAND 2 đầu vào.

A B Y = (AB) '
0 0 1
0 1 1
1 0 1
1 1 0

Ở đây A, B là đầu vào và Y là đầu ra của hai cổng NAND đầu vào. Khi cả hai đầu vào là '1', đầu ra, Y là '0'. Nếu ít nhất một trong các đầu vào là 0, thì đầu ra, Y là '1'. Điều này hoàn toàn ngược lại với hoạt động của hai cổng AND đầu vào.

Hình ảnh sau đây cho thấy symbol của cổng NAND, có hai đầu vào A, B và một đầu ra, Y.

Hoạt động của cổng NAND giống như hoạt động của cổng AND theo sau bởi một biến tần. Đó là lý do tại sao biểu tượng cổng NAND được biểu diễn như vậy.

Cổng NOR

Cổng NOR là một mạch kỹ thuật số có hai đầu vào trở lên và tạo ra một đầu ra, là inversion of logical OR của tất cả các đầu vào đó.

Bảng sau đây cho thấy truth table cổng NOR 2 đầu vào

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

Ở đây A, B là đầu vào và Y là đầu ra. Nếu cả hai đầu vào là '0', thì đầu ra, Y là '1'. Nếu ít nhất một trong các đầu vào là '1', thì đầu ra, Y là '0'. Điều này trái ngược với hoạt động của hai cổng OR đầu vào.

Hình sau cho thấy symbol của cổng NOR, có hai đầu vào A, B và một đầu ra, Y.

Hoạt động của cổng NOR cũng giống như hoạt động của cổng OR theo sau bởi một biến tần. Đó là lý do tại sao biểu tượng cổng NOR được biểu diễn như vậy.

Cổng đặc biệt

Cổng Ex-OR & Ex-NOR được gọi là cổng đặc biệt. Bởi vì, hai cửa này là trường hợp đặc biệt của cửa OR & NOR.

Cổng Ex-OR

Dạng đầy đủ của cổng Ex-OR là Exclusive-ORcánh cổng. Chức năng của nó giống như chức năng của cổng OR ngoại trừ một số trường hợp, khi các đầu vào có số lượng chẵn.

Bảng sau đây cho thấy truth table cổng Ex-OR 2 đầu vào.

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

Ở đây A, B là đầu vào và Y là đầu ra của hai cổng Ex-OR đầu vào. Bảng sự thật của cổng Ex-OR giống như bảng của cổng OR cho ba hàng đầu tiên. Sửa đổi duy nhất là ở hàng thứ tư. Điều đó có nghĩa là, đầu ra (Y) bằng 0 thay vì một, khi cả hai đầu vào là một, vì các đầu vào có số chẵn.

Do đó, đầu ra của cổng Ex-OR là '1', khi chỉ một trong hai đầu vào là '1'. Và nó bằng không, khi cả hai đầu vào đều giống nhau.

Hình dưới đây cho thấy symbol của cổng Ex-OR, có hai đầu vào A, B và một đầu ra, Y.

Hoạt động của cổng Ex-OR tương tự như hoạt động của cổng OR, ngoại trừ một số kết hợp đầu vào. Đó là lý do tại sao ký hiệu cổng Ex-OR được biểu diễn như vậy. Đầu ra của cổng Ex-OR là '1', khi số lẻ xuất hiện ở đầu vào. Do đó, đầu ra của cổng Ex-OR còn được gọi làodd function.

Cổng Ex-NOR

Dạng đầy đủ của cổng Ex-NOR là Exclusive-NORcánh cổng. Chức năng của nó giống như chức năng của cổng NOR ngoại trừ một số trường hợp, khi các đầu vào có số chẵn.

Bảng sau đây cho thấy truth table cổng Ex-NOR 2 đầu vào.

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

Ở đây A, B là đầu vào và Y là đầu ra. Bảng sự thật của cổng Ex-NOR giống như bảng của cổng NOR cho ba hàng đầu tiên. Sửa đổi duy nhất là ở hàng thứ tư. Điều đó có nghĩa là, đầu ra là một thay vì bằng 0, khi cả hai đầu vào là một.

Do đó, đầu ra của cổng Ex-NOR là '1', khi cả hai đầu vào đều giống nhau. Và nó bằng không, khi cả hai đầu vào khác nhau.

Hình sau cho thấy symbol của cổng Ex-NOR, có hai đầu vào A, B và một đầu ra, Y.

Hoạt động của cổng ex-NOR tương tự như hoạt động của cổng NOR, ngoại trừ một số kết hợp đầu vào. Đó là lý do tại sao biểu tượng cổng Ex-NOR được biểu diễn như vậy. Đầu ra của cổng Ex-NOR là '1', khi số lượng chẵn xuất hiện ở đầu vào. Do đó, đầu ra của cổng Ex-NOR còn được gọi làeven function.

Từ bảng sự thật trên của cổng logic Ex-OR & Ex-NOR, chúng ta có thể dễ dàng nhận thấy rằng phép toán Ex-NOR chỉ là phép nghịch đảo logic của phép toán Ex-OR.

Số mức tối đa có giữa đầu vào và đầu ra là hai trong two level logic. Điều đó có nghĩa là, bất kể tổng số cổng logic, số lượng cổng Logic tối đa hiện có (xếp tầng) giữa bất kỳ đầu vào và đầu ra nào là hai trong logic hai mức. Ở đây, các đầu ra của cổng Logic cấp một được kết nối như là đầu vào của (các) cổng Logic cấp hai.

Hãy xem xét bốn cổng Logic AND, OR, NAND & NOR. Vì có 4 cổng Logic, chúng ta sẽ có 16 cách khả thi để nhận ra logic hai cấp. Đó là 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-HOẶC, NOR-NAND, NOR-NOR.

Các nhận thức logic hai cấp độ này có thể được phân thành hai loại sau.

  • Dạng thoái hóa
  • Dạng không thoái hóa

Dạng thoái hóa

Nếu đầu ra của nhận thức logic hai mức có thể đạt được bằng cách sử dụng cổng Logic đơn, thì nó được gọi là degenerative form. Rõ ràng, số lượng đầu vào của cổng Logic đơn lẻ tăng lên. Do đó, lượng người hâm mộ của cổng Logic tăng lên. Đây là một ưu điểm của dạng thoái hóa.

Chỉ có 6 combinationsthực hiện logic hai cấp trong số 16 tổ hợp có dạng suy biến. Đó là AND-AND, AND-NAND, OR-OR, OR-NOR, NAND-NOR, NORNAND.

Trong phần này, chúng ta hãy thảo luận về một số nhận thức. Giả sử, A, B, C & D là các đầu vào và Y là đầu ra trong mỗi hiện thực logic.

AND-AND logic

Trong hiện thực logic này, cổng AND có ở cả hai cấp độ. Hình dưới đây cho thấy một ví dụ choAND-AND logic hiện thực hóa.

Chúng ta sẽ nhận được kết quả đầu ra của các cổng logic cấp một như $Y_{1}=AB$ và $Y_{2}=CD$

Những kết quả đầu ra, $Y_{1}$ và $Y_{2}$được áp dụng làm đầu vào của cổng AND có ở mức thứ hai. Vì vậy, đầu ra của cổng AND này là

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

Người thay thế $Y_{1}$ và $Y_{2}$ các giá trị trong phương trình trên.

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

$\Rightarrow Y=ABCD$

Do đó, đầu ra của hiện thực logic AND-AND này là ABCD. Hàm Boolean này có thể được thực hiện bằng cách sử dụng cổng AND 4 đầu vào. Do đó, nó làdegenerative form.

Logic AND-NAND

Trong nhận thức logic này, các cổng AND có mặt ở mức đầu tiên và (các) cổng NAND có mặt ở mức thứ hai. Hình sau cho thấy một ví dụ choAND-NAND logic hiện thực hóa.

Trước đây, chúng tôi nhận được kết quả đầu ra của các cổng logic cấp một là $Y_{1} = AB$ và $Y_{2} = CD$

Những kết quả đầu ra,$Y_{1}$ và $Y_{2}$được áp dụng làm đầu vào của cổng NAND có mặt ở mức thứ hai. Vì vậy, đầu ra của cổng NAND này là

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

Người thay thế $Y_{1}$ and $Y_{2}$ values in the above equation.

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

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

Therefore, the output of this AND-NAND logic realization is ${\left ( ABCD \right )}'$. This Boolean function can be implemented by using a 4 input NAND gate. Hence, it is degenerative form.

OR-OR Logic

In this logic realization, OR gates are present in both levels. The following figure shows an example for OR-OR logic realization.

We will get the outputs of first level logic gates as $Y_{1}=A+B$ and $Y_{2}=C+D$.

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

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

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

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

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

Therefore, the output of this OR-OR logic realization is A+B+C+D. This Boolean function can be implemented by using a 4 input OR gate. Hence, it is degenerative form.

Similarly, you can verify whether the remaining realizations belong to this category or not.

Non-degenerative Form

If the output of two level logic realization can’t be obtained by using single logic gate, then it is called as non-degenerative form.

The remaining 10 combinations of two level logic realizations come under nondegenerative form. Those are AND-OR, AND-NOR, OR-AND, OR-NAND, NAND-AND, NANDOR, NAND-NAND, NOR-AND, NOR-OR, NOR-NOR.

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

AND-OR Logic

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

Previously, we got the outputs of first level logic gates as $Y_{1} = AB$ and $Y_{2} = CD$.

These outputs, Y1 and Y2 are applied as inputs of OR gate that is present in second level. So, the output of this OR gate is

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

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

$$Y=AB+CD$$

Therefore, the output of this AND-OR logic realization is AB+CD. This Boolean function is in Sum of Products form. Since, we can’t implement it by using single logic gate, this AND-OR logic realization is a non-degenerative form.

AND-NOR Logic

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

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

These outputs, Y1 and Y2 are applied as inputs of NOR gate that is present in second level. So, the output of this NOR gate is

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

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

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

Therefore, the output of this AND-NOR logic realization is ${\left ( AB+CD \right )}'$. This Boolean function is in AND-OR-Invert form. Since, we can’t implement it by using single logic gate, this AND-NOR logic realization is a non-degenerative form

OR-AND Logic

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

Previously, we got the outputs of first level logic gates as $Y_{1}=A+B$ and $Y_{2}=C+D$.

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 ( A+B \right )\left ( C+D \right )$$

Therefore, the output of this OR-AND logic realization is (A + B) (C + D). This Boolean function is in Product of Sums form. Since, we can’t implement it by using single logic gate, this OR-AND logic realization is a non-degenerative form.

Similarly, you can verify whether the remaining realizations belong to this category or not.

Combinational circuits consist of Logic gates. These circuits operate with binary values. The output(s) of combinational circuit depends on the combination of present inputs. The following figure shows the block diagram of combinational circuit.

This combinational circuit has ‘n’ input variables and ‘m’ outputs. Each combination of input variables will affect the output(s).

Design procedure of Combinational circuits

  • Find the required number of input variables and outputs from given specifications.

  • Formulate the Truth table. If there are ‘n’ input variables, then there will be 2n possible combinations. For each combination of input, find the output values.

  • Find the Boolean expressions for each output. If necessary, simplify those expressions.

  • Implement the above Boolean expressions corresponding to each output by using Logic gates.

Code Converters

We have discussed various codes in the chapter named codes. The converters, which convert one code to other code are called as code converters. These code converters basically consist of Logic gates.

Example

Binary code to Gray code converter

Let us implement a converter, which converts a 4-bit binary code WXYZ into its equivalent Gray code ABCD.

The following table shows the Truth table of a 4-bit binary code to Gray code converter.

Binary code WXYZ WXYZ Gray code 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

From Truth table, we can write the Boolean functions for each output bit of Gray code as below.

$$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 )$$

Let us simplify the above functions using 4 variable K-Maps.

The following figure shows the 4 variable K-Map for simplifying Boolean function, A.

By grouping 8 adjacent ones, we got $A=W$.

The following figure shows the 4 variable K-Map for simplifying Boolean function, B.

There are two groups of 4 adjacent ones. After grouping, we will get B as

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

Similarly, we will get the following Boolean functions for C & D after simplifying.

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

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

The following figure shows the circuit diagram of 4-bit binary code to Gray code converter.

Since the outputs depend only on the present inputs, this 4-bit Binary code to Gray code converter is a combinational circuit. Similarly, you can implement other code converters.

Parity Bit Generator

There are two types of parity bit generators based on the type of parity bit being generated. Even parity generator generates an even parity bit. Similarly, odd parity generator generates an odd parity bit.

Even Parity Generator

Now, let us implement an even parity generator for a 3-bit binary input, WXY. It generates an even parity bit, P. If odd number of ones present in the input, then even parity bit, P should be ‘1’ so that the resultant word contains even number of ones. For other combinations of input, even parity bit, P should be ‘0’. The following table shows the Truth table of even parity generator.

Binary Input WXY Even Parity bit P
000 0
001 1
010 1
011 0
100 1
101 0
110 0
111 1

From the above Truth table, we can write the Boolean function for even parity bit as

$$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$

The following figure shows the circuit diagram of even parity generator.

This circuit consists of two Exclusive-OR gates having two inputs each. First ExclusiveOR gate having two inputs W & X and produces an output W ⊕ X. This output is given as one input of second Exclusive-OR gate. The other input of this second Exclusive-OR gate is Y and produces an output of W ⊕ X ⊕ Y.

Odd Parity Generator

If even number of ones present in the input, then odd parity bit, P should be ‘1’ so that the resultant word contains odd number of ones. For other combinations of input, odd parity bit, P should be ‘0’.

Follow the same procedure of even parity generator for implementing odd parity generator. The circuit diagram of odd parity generator is shown in the following figure.

The above circuit diagram consists of Ex-OR gate in first level and Ex-NOR gate in second level. Since the odd parity is just opposite to even parity, we can place an inverter at the output of even parity generator. In that case, the first and second levels contain an ExOR gate in each level and third level consist of an inverter.

Parity Checker

There are two types of parity checkers based on the type of parity has to be checked. Even parity checker checks error in the transmitted data, which contains message bits along with even parity. Similarly, odd parity checker checks error in the transmitted data, which contains message bits along with odd parity.

Even parity checker

Now, let us implement an even parity checker circuit. Assume a 3-bit binary input, WXY is transmitted along with an even parity bit, P. So, the resultant word (data) contains 4 bits, which will be received as the input of even parity checker.

It generates an even parity check bit, E. This bit will be zero, if the received data contains an even number of ones. That means, there is no error in the received data. This even parity check bit will be one, if the received data contains an odd number of ones. That means, there is an error in the received data.

The following table shows the Truth table of an even parity checker.

4-bit Received Data WXYP Even Parity Check bit 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

From the above Truth table, we can observe that the even parity check bit value is ‘1’, when odd number of ones present in the received data. That means the Boolean function of even parity check bit is an odd function. Exclusive-OR function satisfies this condition. Hence, we can directly write the Boolean function of even parity check bit as

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

The following figure shows the circuit diagram of even parity checker.

This circuit consists of three Exclusive-OR gates having two inputs each. The first level gates produce outputs of $W \oplus X$ & $Y \oplus P$. The Exclusive-OR gate, which is in second level produces an output of $W \oplus X \oplus Y \oplus P$

Odd Parity Checker

Assume a 3-bit binary input, WXY is transmitted along with odd parity bit, P. So, the resultant word (data) contains 4 bits, which will be received as the input of odd parity checker.

It generates an odd parity check bit, E. This bit will be zero, if the received data contains an odd number of ones. That means, there is no error in the received data. This odd parity check bit will be one, if the received data contains even number of ones. That means, there is an error in the received data.

Follow the same procedure of an even parity checker for implementing an odd parity checker. The circuit diagram of odd parity checker is shown in the following figure.

The above circuit diagram consists of Ex-OR gates in first level and Ex-NOR gate in second level. Since the odd parity is just opposite to even parity, we can place an inverter at the output of even parity checker. In that case, the first, second and third levels contain two Ex-OR gates, one Ex-OR gate and one inverter respectively.

Binary Adder

The most basic arithmetic operation is addition. The circuit, which performs the addition of two binary numbers is known as Binary adder. First, let us implement an adder, which performs the addition of two bits.

Half Adder

Half adder is a combinational circuit, which performs the addition of two binary numbers A and B are of single bit. It produces two outputs sum, S & carry, C.

The Truth table of Half adder is shown below.

Inputs Outputs
A B C S
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0

When we do the addition of two bits, the resultant sum can have the values ranging from 0 to 2 in decimal. We can represent the decimal digits 0 and 1 with single bit in binary. But, we can’t represent decimal digit 2 with single bit in binary. So, we require two bits for representing it in binary.

Let, sum, S is the Least significant bit and carry, C is the Most significant bit of the resultant sum. For first three combinations of inputs, carry, C is zero and the value of S will be either zero or one based on the number of ones present at the inputs. But, for last combination of inputs, carry, C is one and sum, S is zero, since the resultant sum is two.

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

$$S=A \oplus B$$

$C=AB$

We can implement the above functions with 2-input Ex-OR gate & 2-input AND gate. The circuit diagram of Half adder is shown in the following figure.

In the above circuit, a two input Ex-OR gate & two input AND gate produces sum, S & carry, C respectively. Therefore, Half-adder performs the addition of two bits.

Full Adder

Full adder is a combinational circuit, which performs the addition of three bits A, B and Cin. Where, A & B are the two parallel significant bits and Cin is the carry bit, which is generated from previous stage. This Full adder also produces two outputs sum, S & carry, Cout, which are similar to Half adder.

The Truth table of Full adder is shown below.

Inputs Outputs
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

When we do the addition of three bits, the resultant sum can have the values ranging from 0 to 3 in decimal. We can represent the decimal digits 0 and 1 with single bit in binary. But, we can’t represent the decimal digits 2 and 3 with single bit in binary. So, we require two bits for representing those two decimal digits in binary.

Let, sum, S is the Least significant bit and carry, Cout is the Most significant bit of resultant sum. It is easy to fill the values of outputs for all combinations of inputs in the truth table. Just count the number of ones present at the inputs and write the equivalent binary number at outputs. If Cin is equal to zero, then Full adder truth table is same as that of Half adder truth table.

We will get the following Boolean functions for each output after simplification.

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

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

The sum, S is equal to one, when odd number of ones present at the inputs. We know that Ex-OR gate produces an output, which is an odd function. So, we can use either two 2input Ex-OR gates or one 3-input Ex-OR gate in order to produce sum, S. We can implement carry, Cout using two 2-input AND gates & one OR gate. The circuit diagram of Full adder is shown in the following figure.

This adder is called as Full adder because for implementing one Full adder, we require two Half adders and one OR gate. If Cin is zero, then Full adder becomes Half adder. We can verify it easily from the above circuit diagram or from the Boolean functions of outputs of Full adder.

4-bit Binary Adder

The 4-bit binary adder performs the addition of two 4-bit numbers. Let the 4-bit binary numbers, $A=A_{3}A_{2}A_{1}A_{0}$ and $B= B_{3}B_{2}B_{1}B_{0}$. We can implement 4-bit binary adder in one of the two following ways.

  • Use one Half adder for doing the addition of two Least significant bits and three Full adders for doing the addition of three higher significant bits.

  • Use four Full adders for uniformity. Since, initial carry Cin is zero, the Full adder which is used for adding the least significant bits becomes Half adder.

For the time being, we considered second approach. The block diagram of 4-bit binary adder is shown in the following figure.

Here, the 4 Full adders are cascaded. Each Full adder is getting the respective bits of two parallel inputs A & B. The carry output of one Full adder will be the carry input of subsequent higher order Full adder. This 4-bit binary adder produces the resultant sum having at most 5 bits. So, carry out of last stage Full adder will be the MSB.

In this way, we can implement any higher order binary adder just by cascading the required number of Full adders. This binary adder is also called as ripple carry (binary) adder because the carry propagates (ripples) from one stage to the next stage.

Binary Subtractor

The circuit, which performs the subtraction of two binary numbers is known as Binary subtractor. We can implement Binary subtractor in following two methods.

  • Cascade Full subtractors
  • 2’s complement method

In first method, we will get an n-bit binary subtractor by cascading ‘n’ Full subtractors. So, first you can implement Half subtractor and Full subtractor, similar to Half adder & Full adder. Then, you can implement an n-bit binary subtractor, by cascading ‘n’ Full subtractors. So, we will be having two separate circuits for binary addition and subtraction of two binary numbers.

In second method, we can use same binary adder for subtracting two binary numbers just by doing some modifications in the second input. So, internally binary addition operation takes place but, the output is resultant subtraction.

We know that the subtraction of two binary numbers A & B can be written as,

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

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

4-bit Binary Subtractor

The 4-bit binary subtractor produces the subtraction of two 4-bit numbers. Let the 4bit binary numbers, $A=A_{3}A_{2}A_{1}A_{0}$ and $B= B_{3}B_{2}B_{1}B_{0}$. Internally, the operation of 4-bit Binary subtractor is similar to that of 4-bit Binary adder. If the normal bits of binary number A, complemented bits of binary number B and initial carry (borrow), Cin as one are applied to 4-bit Binary adder, then it becomes 4-bit Binary subtractor. The block diagram of 4-bit binary subtractor is shown in the following figure.

This 4-bit binary subtractor produces an output, which is having at most 5 bits. If Binary number A is greater than Binary number B, then MSB of the output is zero and the remaining bits hold the magnitude of A-B. If Binary number A is less than Binary number B, then MSB of the output is one. So, take the 2’s complement of output in order to get the magnitude of A-B.

In this way, we can implement any higher order binary subtractor just by cascading the required number of Full adders with necessary modifications.

Binary Adder / Subtractor

The circuit, which can be used to perform either addition or subtraction of two binary numbers at any time is known as Binary Adder / subtractor. Both, Binary adder and Binary subtractor contain a set of Full adders, which are cascaded. The input bits of binary number A are directly applied in both Binary adder and Binary subtractor.

There are two differences in the inputs of Full adders that are present in Binary adder and Binary subtractor.

  • The input bits of binary number B are directly applied to Full adders in Binary adder, whereas the complemented bits of binary number B are applied to Full adders in Binary subtractor.

  • The initial carry, C0 = 0 is applied in 4-bit Binary adder, whereas the initial carry (borrow), C0 = 1 is applied in 4-bit Binary subtractor.

We know that a 2-input Ex-OR gate produces an output, which is same as that of first input when other input is zero. Similarly, it produces an output, which is complement of first input when other input is one.

Therefore, we can apply the input bits of binary number B, to 2-input Ex-OR gates. The other input to all these Ex-OR gates is C0. So, based on the value of C0, the Ex-OR gates produce either the normal or complemented bits of binary number B.

4-bit Binary Adder / Subtractor

The 4-bit binary adder / subtractor produces either the addition or the subtraction of two 4-bit numbers based on the value of initial carry or borrow, 0. Let the 4-bit binary numbers, $A=A_{3}A_{2}A_{1}A_{0}$ and $B= B_{3}B_{2}B_{1}B_{0}$. The operation of 4-bit Binary adder / subtractor is similar to that of 4-bit Binary adder and 4-bit Binary subtractor.

Apply the normal bits of binary numbers A and B & initial carry or borrow, C0 from externally to a 4-bit binary adder. The block diagram of 4-bit binary adder / subtractor is shown in the following figure.

If initial carry, 0 is zero, then each full adder gets the normal bits of binary numbers A & B. So, the 4-bit binary adder / subtractor produces an output, which is the addition of two binary numbers A & B.

If initial borrow, 0 is one, then each full adder gets the normal bits of binary number A & complemented bits of binary number B. So, the 4-bit binary adder / subtractor produces an output, which is the subtraction of two binary numbers A & B.

Therefore, with the help of additional Ex-OR gates, the same circuit can be used for both addition and subtraction of two binary numbers.

Decoder is a combinational circuit that has ‘n’ input lines and maximum of 2n output lines. One of these outputs will be active High based on the combination of inputs present, when the decoder is enabled. That means decoder detects a particular code. The outputs of the decoder are nothing but the min terms of ‘n’ input variables (lines), when it is enabled.

2 to 4 Decoder

Let 2 to 4 Decoder has two inputs A1 & A0 and four outputs Y3, Y2, Y1 & Y0. The block diagram of 2 to 4 decoder is shown in the following figure.

One of these four outputs will be ‘1’ for each combination of inputs when enable, E is ‘1’. The Truth table of 2 to 4 decoder is shown below.

Enable Inputs Outputs
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

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

$$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}}'$$

Each output is having one product term. So, there are four product terms in total. We can implement these four product terms by using four AND gates having three inputs each & two inverters. The circuit diagram of 2 to 4 decoder is shown in the following figure.

Therefore, the outputs of 2 to 4 decoder are nothing but the min terms of two input variables A1 & A0, when enable, E is equal to one. If enable, E is zero, then all the outputs of decoder will be equal to zero.

Similarly, 3 to 8 decoder produces eight min terms of three input variables A2, A1 & A0 and 4 to 16 decoder produces sixteen min terms of four input variables A3, A2, A1 & A0.

Implementation of Higher-order Decoders

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

  • 3 to 8 decoder
  • 4 to 16 decoder

3 to 8 Decoder

In this section, let us implement 3 to 8 decoder using 2 to 4 decoders. We know that 2 to 4 Decoder has two inputs, A1 & A0 and four outputs, Y3 to Y0. Whereas, 3 to 8 Decoder has three inputs A2, A1 & A0 and eight outputs, Y7 to Y0.

We can find the number of lower order decoders required for implementing higher order decoder using the following formula.

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

Where,

$m_{1}$ is the number of outputs of lower order decoder.

$m_{2}$ is the number of outputs of higher order decoder.

Here, $m_{1}$ = 4 and $m_{2}$ = 8. Substitute, these two values in the above formula.

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

Therefore, we require two 2 to 4 decoders for implementing one 3 to 8 decoder. The block diagram of 3 to 8 decoder using 2 to 4 decoders is shown in the following figure.

The parallel inputs A1 & A0 are applied to each 2 to 4 decoder. The complement of input A2 is connected to Enable, E of lower 2 to 4 decoder in order to get the outputs, Y3 to Y0. These are the lower four min terms. The input, A2 is directly connected to Enable, E of upper 2 to 4 decoder in order to get the outputs, Y7 to Y4. These are the higher four min terms.

4 to 16 Decoder

In this section, let us implement 4 to 16 decoder using 3 to 8 decoders. We know that 3 to 8 Decoder has three inputs A2, A1 & A0 and eight outputs, Y7 to Y0. Whereas, 4 to 16 Decoder has four inputs A3, A2, A1 & A0 and sixteen outputs, Y15 to Y0

We know the following formula for finding the number of lower order decoders required.

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

Substitute, $m_{1}$ = 8 and $m_{2}$ = 16 in the above formula.

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

Therefore, we require two 3 to 8 decoders for implementing one 4 to 16 decoder. The block diagram of 4 to 16 decoder using 3 to 8 decoders is shown in the following figure.

The parallel inputs A2, A1 & A0 are applied to each 3 to 8 decoder. The complement of input, A3 is connected to Enable, E of lower 3 to 8 decoder in order to get the outputs, Y7 to Y0. These are the lower eight min terms. The input, A3 is directly connected to Enable, E of upper 3 to 8 decoder in order to get the outputs, Y15 to Y8. These are the higher eight min terms.

An Encoder is a combinational circuit that performs the reverse operation of Decoder. It has maximum of 2n input lines and ‘n’ output lines. It will produce a binary code equivalent to the input, which is active High. Therefore, the encoder encodes 2n input lines with ‘n’ bits. It is optional to represent the enable signal in encoders.

4 to 2 Encoder

Let 4 to 2 Encoder has four inputs Y3, Y2, Y1 & Y0 and two outputs A1 & A0. The block diagram of 4 to 2 Encoder is shown in the following figure.

At any time, only one of these 4 inputs can be ‘1’ in order to get the respective binary code at the output. The Truth table of 4 to 2 encoder is shown below.

Inputs Outputs
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

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

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

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

We can implement the above two Boolean functions by using two input OR gates. The circuit diagram of 4 to 2 encoder is shown in the following figure.

The above circuit diagram contains two OR gates. These OR gates encode the four inputs with two bits

Octal to Binary Encoder

Octal to binary Encoder has eight inputs, Y7 to Y0 and three outputs A2, A1 & A0. Octal to binary encoder is nothing but 8 to 3 encoder. The block diagram of octal to binary Encoder is shown in the following figure.

At any time, only one of these eight inputs can be ‘1’ in order to get the respective binary code. The Truth table of octal to binary encoder is shown below.

Inputs Outputs
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

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

$$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}$$

We can implement the above Boolean functions by using four input OR gates. The circuit diagram of octal to binary encoder is shown in the following figure.

The above circuit diagram contains three 4-input OR gates. These OR gates encode the eight inputs with three bits.

Drawbacks of Encoder

Following are the drawbacks of normal encoder.

  • There is an ambiguity, when all outputs of encoder are equal to zero. Because, it could be the code corresponding to the inputs, when only least significant input is one or when all inputs are zero.

  • If more than one input is active High, then the encoder produces an output, which may not be the correct code. For example, if both Y3 and Y6 are ‘1’, then the encoder produces 111 at the output. This is neither equivalent code corresponding to Y3, when it is ‘1’ nor the equivalent code corresponding to Y6, when it is ‘1’.

So, to overcome these difficulties, we should assign priorities to each input of encoder. Then, the output of encoder will be the (binary) code corresponding to the active High input(s), which has higher priority. This encoder is called as priority encoder.

Priority Encoder

A 4 to 2 priority encoder has four inputs Y3, Y2, Y1 & Y0 and two outputs A1 & A0. Here, the input, Y3 has the highest priority, whereas the input, Y0 has the lowest priority. In this case, even if more than one input is ‘1’ at the same time, the output will be the (binary) code corresponding to the input, which is having higher priority.

We considered one more output, V in order to know, whether the code available at outputs is valid or not.

  • If at least one input of the encoder is ‘1’, then the code available at outputs is a valid one. In this case, the output, V will be equal to 1.

  • If all the inputs of encoder are ‘0’, then the code available at outputs is not a valid one. In this case, the output, V will be equal to 0.

The Truth table of 4 to 2 priority encoder is shown below.

Inputs Outputs
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

Use 4 variable K-maps for getting simplified expressions for each output.

The simplified Boolean functions are

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

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

Similarly, we will get the Boolean function of output, V as

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

We can implement the above Boolean functions using logic gates. The circuit diagram of 4 to 2 priority encoder is shown in the following figure.

The above circuit diagram contains two 2-input OR gates, one 4-input OR gate, one 2input AND gate & an inverter. Here AND gate & inverter combination are used for producing a valid code at the outputs, even when multiple inputs are equal to ‘1’ at the same time. Hence, this circuit encodes the four inputs with two bits based on the priority assigned to each input.

Multiplexer is a combinational circuit that has maximum of 2n data inputs, ‘n’ selection lines and single output line. One of these data inputs will be connected to the output 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 will select only one data input. Multiplexer is also called as Mux.

4x1 Multiplexer

4x1 Multiplexer has four data inputs I3, I2, I1 & I0, two selection lines s1 & s0 and one output Y. The block diagram of 4x1 Multiplexer is shown in the following figure.

One of these 4 inputs will be connected to the output based on the combination of inputs present at these two selection lines. Truth table of 4x1 Multiplexer is shown below.

Selection Lines Output
S1 S0 Y
0 0 I0
0 1 I1
1 0 I2
1 1 I3

From Truth table, we can directly write the Boolean function for output, Y as

$$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}$$

We can implement this Boolean function using Inverters, AND gates & OR gate. The circuit diagram of 4x1 multiplexer is shown in the following figure.

We can easily understand the operation of the above circuit. Similarly, you can implement 8x1 Multiplexer and 16x1 multiplexer by following the same procedure.

Implementation of Higher-order Multiplexers.

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

  • 8x1 Multiplexer
  • 16x1 Multiplexer

8x1 Multiplexer

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

So, we require two 4x1 Multiplexers in first stage in order to get the 8 data inputs. Since, each 4x1 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 8x1 Multiplexer has eight data inputs I7 to I0, three selection lines s2, s1 & s0 and one output Y. The Truth table of 8x1 Multiplexer is shown below.

Selection Inputs Output
S2 S1 S0 Y
0 0 0 I0
0 0 1 I1
0 1 0 I2
0 1 1 I3
1 0 0 I4
1 0 1 I5
1 1 0 I6
1 1 1 I7

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.

Cai khac selection line, s3được áp dụng cho Bộ ghép kênh 1x2. Nếu s 3 bằng 0, thì một trong tám đầu ra của Bộ ghép kênh 1x8 thấp hơn sẽ bằng với đầu vào, tôi dựa trên giá trị của các dòng lựa chọn s 2 , s 1 & s 0 . Tương tự, nếu s3 là một, thì một trong 8 đầu ra của Bộ ghép kênh 1x8 trên sẽ bằng với đầu vào, tôi dựa trên giá trị của các dòng lựa chọn s 2 , s 1 & s 0 .

Thiết bị logic có thể lập trình (PLDs)là các mạch tích hợp. Chúng chứa một mảng cổng VÀ & một mảng cổng OR khác. Có ba loại PLD dựa trên loại (các) mảng, có tính năng lập trình được.

  • Bộ nhớ chỉ đọc được lập trình
  • Logic mảng có thể lập trình
  • Mảng logic có thể lập trình

Quá trình nhập thông tin vào các thiết bị này được gọi là programming. Về cơ bản, người dùng có thể lập trình các thiết bị hoặc IC này bằng điện để thực hiện các chức năng Boolean dựa trên yêu cầu. Ở đây, thuật ngữ lập trình đề cập đến lập trình phần cứng nhưng không phải lập trình phần mềm.

Bộ nhớ chỉ đọc có thể lập trình (PROM)

Bộ nhớ chỉ đọc (ROM) là một thiết bị nhớ, lưu trữ thông tin nhị phân vĩnh viễn. Điều đó có nghĩa là sau này chúng tôi không thể thay đổi thông tin đã lưu trữ đó. Nếu ROM có tính năng có thể lập trình, thì nó được gọi làProgrammable ROM (PROM). Người dùng có thể linh hoạt để lập trình thông tin nhị phân bằng điện một lần bằng cách sử dụng bộ lập trình PROM.

PROM là một thiết bị logic có thể lập trình được có mảng AND cố định & mảng OR có thể lập trình. Cácblock diagram của PROM được hiển thị trong hình sau.

Ở đây, đầu vào của cổng AND không thuộc loại có thể lập trình được. Vì vậy, chúng ta phải tạo ra 2 n số hạng sản phẩm bằng cách sử dụng 2 n cổng AND có n đầu vào mỗi cổng. Chúng tôi có thể triển khai các điều khoản sản phẩm này bằng cách sử dụng bộ giải mã nx2 n . Vì vậy, bộ giải mã này tạo ra 'n'min terms.

Ở đây, các đầu vào của cổng OR có thể lập trình được. Điều đó có nghĩa là, chúng tôi có thể lập trình bất kỳ số lượng điều khoản sản phẩm bắt buộc nào, vì tất cả các đầu ra của cổng AND được áp dụng làm đầu vào cho mỗi cổng OR. Do đó, kết quả đầu ra của PROM sẽ ở dạngsum of min terms.

Thí dụ

Hãy để chúng tôi thực hiện những điều sau Boolean functions bằng cách sử dụng PROM.

$$A(X,Y,Z)=\sum m\left ( 5,6,7 \right )$$

$$B(X,Y,Z)=\sum m\left ( 3,5,6,7 \right )$$

Hai hàm đã cho có dạng tổng số hạng min và mỗi hàm có ba biến X, Y & Z. Vì vậy, chúng tôi yêu cầu một bộ giải mã từ 3 đến 8 và hai cổng OR có thể lập trình để tạo ra hai hàm này. Tương ứngPROM được hiển thị trong hình sau.

Ở đây, bộ giải mã 3 đến 8 tạo ra tám số hạng tối thiểu. Hai cổng OR có thể lập trình có quyền truy cập tất cả các điều khoản tối thiểu này. Tuy nhiên, chỉ các điều khoản tối thiểu bắt buộc mới được lập trình để tạo ra các hàm Boolean tương ứng bởi mỗi cổng OR. Ký hiệu 'X' được sử dụng cho các kết nối có thể lập trình được.

Logic mảng có thể lập trình (PAL)

PAL là một thiết bị logic có thể lập trình được có mảng AND có thể lập trình và mảng OR cố định. Ưu điểm của PAL là chúng ta chỉ có thể tạo các điều khoản sản phẩm bắt buộc của hàm Boolean thay vì tạo tất cả các điều khoản tối thiểu bằng cách sử dụng cổng AND có thể lập trình. Cácblock diagram của PAL được thể hiện trong hình sau.

Ở đây, các đầu vào của cổng AND có thể lập trình được. Điều đó có nghĩa là mỗi cổng AND có cả đầu vào bình thường và đầu vào bổ sung của các biến. Vì vậy, dựa trên yêu cầu, chúng tôi có thể lập trình bất kỳ đầu vào nào trong số đó. Vì vậy, chúng tôi chỉ có thể tạoproduct terms bằng cách sử dụng các cổng AND này.

Ở đây, các đầu vào của cổng OR không thuộc loại có thể lập trình được. Vì vậy, số lượng đầu vào cho mỗi cổng OR sẽ là loại cố định. Do đó, hãy áp dụng các điều khoản sản phẩm bắt buộc đó cho từng cổng HOẶC làm đầu vào. Do đó, kết quả đầu ra của PAL sẽ có dạngsum of products form.

Thí dụ

Hãy để chúng tôi thực hiện những điều sau Boolean functions sử dụng PAL.

$$A=XY+X{Z}'$$

$$A=X{Y}'+Y{Z}'$$

Hai hàm đã cho có dạng tổng của sản phẩm. Có hai thuật ngữ sản phẩm hiện diện trong mỗi hàm Boolean. Vì vậy, chúng tôi yêu cầu bốn cổng VÀ có thể lập trình và hai cổng OR cố định để tạo ra hai chức năng đó. Tương ứngPAL được hiển thị trong hình sau.

Các programmable AND gatescó quyền truy cập của cả đầu vào bình thường và đầu vào bổ sung của các biến. Trong hình trên, các đầu vào X,${X}'$, Y, ${Y}'$, Z & ${Z}'$, có sẵn ở đầu vào của mỗi cổng AND. Vì vậy, chỉ lập trình các ký tự bắt buộc để tạo ra một thuật ngữ sản phẩm theo mỗi cổng AND. Ký hiệu 'X' được sử dụng cho các kết nối có thể lập trình được.

Ở đây, đầu vào của cổng OR là loại cố định. Vì vậy, các điều khoản sản phẩm cần thiết được kết nối với đầu vào của mỗiOR gate. Để các cổng OR tạo ra các hàm Boolean tương ứng. Biểu tượng '.' được sử dụng cho các kết nối cố định.

Mảng logic có thể lập trình (PLA)

PLA là một thiết bị logic có thể lập trình được có cả mảng AND có thể lập trình và mảng OR có thể lập trình được. Do đó, nó là PLD linh hoạt nhất. Cácblock diagram của PLA được thể hiện trong hình sau.

Ở đây, các đầu vào của cổng AND có thể lập trình được. Điều đó có nghĩa là mỗi cổng AND có cả đầu vào bình thường và đầu vào bổ sung của các biến. Vì vậy, dựa trên yêu cầu, chúng tôi có thể lập trình bất kỳ đầu vào nào trong số đó. Vì vậy, chúng tôi chỉ có thể tạoproduct terms bằng cách sử dụng các cổng AND này.

Ở đây, các đầu vào của cổng OR cũng có thể lập trình được. Vì vậy, chúng ta có thể lập trình bất kỳ số lượng điều khoản sản phẩm bắt buộc nào, vì tất cả các đầu ra của cổng AND được áp dụng làm đầu vào cho mỗi cổng OR. Do đó, kết quả đầu ra của PAL sẽ có dạngsum of products form.

Thí dụ

Hãy để chúng tôi thực hiện những điều sau Boolean functions sử dụng PLA.

$$A=XY+X{Z}'$$

$$B=X{Y}'+YZ+X{Z}'$$

Hai hàm đã cho có dạng tổng của sản phẩm. Số hạng tử có trong các hàm Boolean A & B đã cho tương ứng là hai và ba. Một điều khoản sản phẩm,${Z}'X$ là phổ biến trong mỗi chức năng.

Vì vậy, chúng tôi yêu cầu bốn cổng VÀ có thể lập trình và hai cổng HOẶC có thể lập trình để tạo ra hai chức năng đó. Tương ứngPLA được hiển thị trong hình sau.

Các programmable AND gatescó quyền truy cập của cả đầu vào bình thường và đầu vào bổ sung của các biến. Trong hình trên, các đầu vào X,${X}'$, Y, ${Y}'$, Z & ${Z}'$, có sẵn ở đầu vào của mỗi cổng AND. Vì vậy, chỉ lập trình các ký tự bắt buộc để tạo ra một thuật ngữ sản phẩm cho mỗi cổng AND.

Tất cả các điều khoản sản phẩm này có sẵn ở đầu vào của mỗi programmable OR gate. Tuy nhiên, chỉ lập trình các điều khoản sản phẩm bắt buộc để tạo ra các hàm Boolean tương ứng theo từng cổng OR. Ký hiệu 'X' được sử dụng cho các kết nối có thể lập trình được.

Trong các chương trước, chúng ta đã thực hiện các mạch tổ hợp khác nhau bằng cách sử dụng các cổng logic. Ngoại trừ cổng NOT, tất cả các cổng logic còn lại có ít nhất hai đầu vào và đầu ra duy nhất. Tương tự,threshold gate cũng chứa ít nhất một đầu vào và chỉ một đầu ra.

Ngoài ra, nó chứa các trọng số tương ứng cho mỗi đầu vào và một giá trị ngưỡng. Giá trị của các trọng số và ngưỡng này có thể là một số thực hữu hạn bất kỳ.

Khái niệm cơ bản về cổng ngưỡng

Cho các đầu vào của cổng ngưỡng là X 1 , X 2 , X 3 ,…, X n . Trọng số tương ứng của các đầu vào này là W 1 , W 2 , W 3 ,…, W n . Cácsymbol của cổng Threshold được hiển thị trong hình sau.

Threshold gateđược biểu diễn bằng một vòng tròn và nó có đầu vào 'n', X 1 đến X n và đầu ra duy nhất, Y. Vòng tròn này được làm thành hai phần. Một phần đại diện cho trọng số tương ứng với các đầu vào và phần khác đại diện cho giá trị Ngưỡng, T.

Tổng sản phẩm của các đầu vào có trọng số tương ứng được gọi là weighted sum. Nếu tổng trọng số này lớn hơn hoặc bằng giá trị Ngưỡng, T thì chỉ đầu ra, Y sẽ bằng một. Nếu không, đầu ra, Y sẽ bằng không.

Mathematically, chúng ta có thể viết mối quan hệ này giữa đầu vào và đầu ra của cổng Threshold như bên dưới.

$$Y=1, if \: \: W_{1}X_{1}+W_{2}X_{2}+W_{3}X_{3}+...W_{n}X_{n}\geq T$$

= 0, ngược lại.

Do đó, chúng ta có thể triển khai các cổng logic khác nhau và các hàm Boolean chỉ bằng cách thay đổi các giá trị của trọng số và / hoặc giá trị Ngưỡng, T.

Thí dụ

Hãy để chúng tôi tìm simplified Boolean function cho cổng Threshold sau.

Cổng Threshold này có ba đầu vào X 1 , X 2 , X 3 và một đầu ra Y.

Trọng số tương ứng với các đầu vào X 1 , X 2 & X 3 lần lượt là W 1 = 2, W 2 = 1 & W 3 = -4.

Giá trị của cổng Threshold là T = -1.

Các weighted sum của cổng Threshold là

$$W=W_{1}X_{1}+W_{2}X_{2}+W_{3}X_{3}$$

Thay các trọng số đã cho vào phương trình trên.

$$\Rightarrow W=2X_{1}+X_{2}-4X_{3}$$

Đầu ra của cổng Threshold, Y sẽ là '1' nếu W ≥ −1, ngược lại sẽ là '0'.

Sau table cho thấy mối quan hệ giữa đầu vào và đầu ra cho tất cả các kết hợp đầu vào có thể có.

Đầu vào Tổng trọng lượng Đầu ra
$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

Từ bảng trên, chúng ta có thể viết Boolean function cho đầu ra, Y là

$$Y= \sum m\left ( 0,2,4,6,7 \right )$$

Việc đơn giản hóa hàm Boolean này bằng cách sử dụng 3 variable K-Map được hiển thị trong hình sau.

Do đó, simplified Boolean function cho cổng Ngưỡng đã cho là $Y={X_{3}'}+X_{1}X_{2}$.

Tổng hợp các chức năng ngưỡng

Cổng ngưỡng còn được gọi là universal gatebởi vì chúng ta có thể triển khai bất kỳ hàm Boolean nào bằng cách sử dụng (các) cổng Threshold. Đôi khi, có thể không thực hiện được một số cổng logic và các hàm Boolean bằng cách sử dụng cổng Threshold duy nhất. Trong trường hợp đó, chúng tôi có thể yêu cầu nhiều cổng Ngưỡng.

Làm theo những steps để triển khai một hàm Boolean bằng cách sử dụng cổng Threshold duy nhất.

Step 1 - Lập công thức Truth table cho hàm Boolean đã cho.

Step 2 - Trong bảng Sự thật ở trên, hãy thêm (bao gồm) một cột nữa, cho biết mối quan hệ giữa weighted sumsThreshold value.

Step 3 - Viết mối quan hệ giữa tổng trọng số và ngưỡng cho mỗi tổ hợp đầu vào như đề cập bên dưới.

  • Nếu đầu ra của hàm Boolean là 1, thì tổng có trọng số sẽ lớn hơn hoặc bằng giá trị Ngưỡng cho các kết hợp đầu vào đó.

  • Nếu đầu ra của hàm Boolean là 0, thì tổng có trọng số sẽ nhỏ hơn giá trị Ngưỡng cho các kết hợp đầu vào đó.

Step 4 - Chọn các giá trị của trọng số & Ngưỡng sao cho chúng phải thỏa mãn tất cả các quan hệ có trong cột cuối cùng của bảng trên.

step 5 - Vẽ symbol của cổng Threshold với các trọng số đó và giá trị Ngưỡng.

Thí dụ

Hãy để chúng tôi thực hiện những điều sau Boolean function sử dụng cổng Threshold duy nhất.

$$Y\left ( X_{1},X_{2},X_{3} \right )=\sum m\left ( 0,2,4,6,7 \right )$$

Hàm Boolean đã cho là một hàm ba biến, được biểu diễn dưới dạng tổng của số hạng min. CácTruth table của chức năng này được hiển thị bên dưới.

Đầu vào Đầu ra
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

Bây giờ, chúng ta hãy thêm (bao gồm) một cột nữa vào bảng Sự thật ở trên. Cột cuối cùng này chứa các mối quan hệ giữaweighted sums (W) and Threshold giá trị (T) cho mỗi sự kết hợp của các yếu tố đầu vào.

Đầu vào Đầu ra Mối quan hệ giữa 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

Sau đây là kết luận từ bảng trên.

  • Giá trị của Threshold phải bằng 0 hoặc âm dựa trên quan hệ đầu tiên.

  • Giá trị của W 3 phải là số âm dựa trên quan hệ thứ nhất và thứ hai.

  • Giá trị của W 1 và W 2 phải lớn hơn hoặc bằng giá trị Ngưỡng dựa trên quan hệ thứ năm và thứ ba.

  • W 2 phải lớn hơn W 3 dựa trên quan hệ thứ tư.

Chúng ta có thể chọn các giá trị sau cho trọng số và Ngưỡng dựa trên các kết luận trên.

W 1 = 2, W 2 = 1, W 3 = -4 & T = -1

Các symbol của cổng Threshold với các giá trị trên được hiển thị bên dưới.

Do đó, cổng Threshold này thực hiện Boolean function, $Y\left ( X_{1}, X_{2},X_{3} \right )=\sum m\left ( 0,2,4,6,7 \right )$.

Chúng ta đã thảo luận về các mạch tổ hợp khác nhau trong các chương trước. Tất cả các mạch này có một tập hợp (các) đầu ra, chỉ phụ thuộc vào sự kết hợp của các đầu vào hiện tại. Hình sau cho thấyblock diagram của mạch tuần tự.

Mạch tuần tự này chứa một tập hợp các đầu vào và đầu ra. (Các) đầu ra của mạch tuần tự không chỉ phụ thuộc vào sự kết hợp của các đầu vào hiện tại mà còn phụ thuộc vào (các) đầu ra trước đó. Đầu ra trước đó không có gì khác ngoàipresent state. Do đó, các mạch tuần tự chứa các mạch tổ hợp cùng với các phần tử bộ nhớ (lưu trữ). Một số mạch tuần tự có thể không chứa mạch tổ hợp mà chỉ chứa các phần tử nhớ.

Bảng sau cho thấy differences giữa mạch tổ hợp và mạch tuần tự.

Mạch kết hợp Mạch tuần tự
Đầu ra chỉ phụ thuộc vào đầu vào hiện tại. Đầu ra phụ thuộc vào cả đầu vào hiện tại và trạng thái hiện tại.
Đường dẫn phản hồi không có. Đường dẫn phản hồi hiện có.
Phần tử bộ nhớ không bắt buộc. Yếu tố bộ nhớ là bắt buộc.
Tín hiệu đồng hồ là không cần thiết. Tín hiệu đồng hồ là bắt buộc.
Dễ dàng thiết kế. Khó thiết kế.

Các loại mạch tuần tự

Sau đây là hai loại mạch tuần tự:

  • Mạch tuần tự không đồng bộ
  • Mạch tuần tự đồng bộ

Mạch tuần tự không đồng bộ

Nếu một số hoặc tất cả các đầu ra của mạch tuần tự không thay đổi (ảnh hưởng) đối với quá trình chuyển đổi tích cực của tín hiệu đồng hồ, thì mạch tuần tự đó được gọi là Asynchronous sequential circuit. Điều đó có nghĩa là, tất cả các đầu ra của mạch tuần tự không đồng bộ không thay đổi (ảnh hưởng) cùng một lúc. Do đó, hầu hết các đầu ra của mạch tuần tự không đồng bộ lànot in synchronous chỉ với các cạnh dương hoặc chỉ các cạnh âm của tín hiệu đồng hồ.

Mạch tuần tự đồng bộ

Nếu tất cả các đầu ra của mạch tuần tự thay đổi (ảnh hưởng) đối với quá trình chuyển đổi tích cực của tín hiệu đồng hồ, thì mạch tuần tự đó được gọi là Synchronous sequential circuit. Điều đó có nghĩa là, tất cả các đầu ra của mạch tuần tự đồng bộ thay đổi (ảnh hưởng) cùng một lúc. Do đó, các đầu ra của mạch tuần tự đồng bộ là đồng bộ với hoặc chỉ các cạnh dương hoặc chỉ các cạnh âm của tín hiệu đồng hồ.

Tín hiệu đồng hồ và kích hoạt

Trong phần này, chúng ta hãy thảo luận về tín hiệu đồng hồ và các loại kích hoạt từng cái một.

Tín hiệu đồng hồ

Tín hiệu đồng hồ là tín hiệu tuần hoàn và thời gian BẬT và thời gian TẮT của nó không cần giống nhau. Chúng ta có thể biểu diễn tín hiệu đồng hồ dưới dạngsquare wave, khi cả thời gian BẬT và thời gian TẮT của nó đều giống nhau. Tín hiệu đồng hồ này được thể hiện trong hình sau.

n hình trên, sóng vuông được coi là tín hiệu đồng hồ. Tín hiệu này ở mức logic Cao (5V) trong một thời gian và ở mức logic Thấp (0V) trong khoảng thời gian bằng nhau. Mô hình này lặp lại với một số khoảng thời gian. Trong trường hợp này,time period sẽ bằng hai lần thời gian BẬT hoặc hai lần thời gian TẮT.

Chúng ta có thể biểu diễn tín hiệu đồng hồ là train of pulses, khi thời gian BẬT và thời gian TẮT không giống nhau. Tín hiệu đồng hồ này được thể hiện trong hình sau.

Trong hình trên, tập các xung được coi là tín hiệu đồng hồ. Tín hiệu này ở mức logic Cao (5V) trong một thời gian và ở mức logic Thấp (0V) trong một thời gian khác. Mô hình này lặp lại với một số khoảng thời gian. Trong trường hợp này,time period sẽ bằng tổng thời gian BẬT và thời gian TẮT.

Nghịch đảo của khoảng thời gian của tín hiệu đồng hồ được gọi là frequencycủa tín hiệu đồng hồ. Tất cả các mạch tuần tự được vận hành với tín hiệu đồng hồ. Vì vậy, tần số mà tại đó các mạch tuần tự có thể hoạt động tương ứng với tần số tín hiệu đồng hồ đã được chọn.

Các loại kích hoạt

Sau đây là hai loại kích hoạt có thể được sử dụng trong các mạch tuần tự.

  • Kích hoạt cấp độ
  • Kích hoạt cạnh

Kích hoạt cấp độ

Có hai mức, đó là mức logic Cao và mức logic Thấp trong tín hiệu đồng hồ. Sau đây là haitypes of level triggering.

  • Kích hoạt mức tích cực
  • Kích hoạt mức tiêu cực

Nếu mạch tuần tự được vận hành với tín hiệu đồng hồ khi nó ở Logic High, thì kiểu kích hoạt đó được gọi là Positive level triggering. Nó được đánh dấu trong hình dưới đây.

Nếu mạch tuần tự được vận hành với tín hiệu đồng hồ khi nó ở Logic Low, thì kiểu kích hoạt đó được gọi là Negative level triggering. Nó được đánh dấu trong hình sau.

Kích hoạt cạnh

Có hai loại chuyển đổi xảy ra trong tín hiệu đồng hồ. Điều đó có nghĩa là, tín hiệu đồng hồ chuyển từ Logic Thấp sang Logic Cao hoặc Logic Cao thành Logic Thấp.

Sau đây là hai types of edge triggering dựa trên sự chuyển đổi của tín hiệu đồng hồ.

  • Kích hoạt cạnh tích cực
  • Kích hoạt cạnh tiêu cực

Nếu mạch tuần tự được vận hành với tín hiệu đồng hồ đang chuyển đổi từ Mức Logic Thấp sang Mức Logic Cao, thì kiểu kích hoạt đó được gọi là Positive edge triggering. Nó còn được gọi là kích hoạt cạnh tăng. Nó được hiển thị trong hình sau.

Nếu mạch tuần tự được vận hành với tín hiệu đồng hồ đang chuyển từ Mức Logic Cao sang Mức Logic Thấp, thì kiểu kích hoạt đó được gọi là Negative edge triggering. Nó còn được gọi là kích hoạt cạnh rơi. Nó được hiển thị trong hình sau.

Trong các chương tới, chúng ta sẽ thảo luận về các mạch tuần tự khác nhau dựa trên loại kích hoạt có thể được sử dụng trong đó.

Có hai loại phần tử bộ nhớ dựa trên loại kích hoạt phù hợp để vận hành nó.

  • Latches
  • Flip-flops

Chốt hoạt động với tín hiệu cho phép, đó là level sensitive. Trong khi đó, dép xỏ ngón rất nhạy cảm. Chúng ta sẽ thảo luận về flip-flops trong chương sau. Bây giờ, chúng ta hãy thảo luận về SR Latch & D Latch từng cái một.

Chốt SR

SR Latch còn được gọi là Set Reset Latch. Chốt này ảnh hưởng đến kết quả đầu ra miễn là kích hoạt, E được duy trì ở '1'. Cáccircuit diagram của SR Latch được hiển thị trong hình sau.

Mạch này có hai đầu vào S & R và hai đầu ra Q (t) & Q (t) '. Cácupper NOR gate có hai đầu vào R & phần bổ sung của trạng thái hiện tại, Q (t) 'và tạo ra trạng thái tiếp theo, Q (t + 1) khi kích hoạt, E là' 1 '.

Tương tự, lower NOR gate có hai đầu vào S & trạng thái hiện tại, Q (t) và tạo ra phần bù của trạng thái tiếp theo, Q (t + 1) 'khi kích hoạt, E là' 1 '.

Chúng tôi biết rằng một 2-input NOR gatetạo ra một đầu ra, là phần bổ sung của một đầu vào khác khi một trong những đầu vào là '0'. Tương tự, nó tạo ra đầu ra '0', khi một trong các đầu vào là '1'.

  • Nếu S = 1, thì trạng thái tiếp theo Q (t + 1) sẽ bằng '1' bất kể trạng thái hiện tại, giá trị Q (t).

  • Nếu R = 1, thì trạng thái tiếp theo Q (t + 1) sẽ bằng '0' bất kể trạng thái hiện tại, giá trị Q (t).

Tại bất kỳ thời điểm nào, chỉ trong hai đầu vào đó phải là '1'. Nếu cả hai đầu vào là '1', thì giá trị trạng thái tiếp theo Q (t + 1) là không xác định.

Bảng sau đây cho thấy state table của chốt SR.

S R Q (t + 1)
0 0 Q (t)
0 1 0
1 0 1
1 1 -

Do đó, SR Latch thực hiện ba loại chức năng như Hold, Set & Reset dựa trên các điều kiện đầu vào.

D Chốt

Có một nhược điểm của SR Latch. Đó là giá trị trạng thái tiếp theo không thể được dự đoán khi cả hai đầu vào S & R là một. Vì vậy, chúng ta có thể vượt qua khó khăn này bằng D Latch. Nó còn được gọi là Data Latch. Cáccircuit diagram của D Latch được hiển thị trong hình sau.

Mạch này có một đầu vào D và hai đầu ra Q (t) & Q (t) '. D Latch nhận được từ SR Latch bằng cách đặt một biến tần giữa đầu vào S amp; & R và kết nối đầu vào D với S. Điều đó có nghĩa là chúng tôi đã loại bỏ các kết hợp của S & R có cùng giá trị.

  • Nếu D = 0 → S = 0 & R = 1, thì trạng thái tiếp theo Q (t + 1) sẽ bằng '0' bất kể trạng thái hiện tại, giá trị Q (t). Điều này tương ứng với hàng thứ hai của bảng trạng thái SR Latch.

  • Nếu D = 1 → S = 1 & R = 0, thì trạng thái tiếp theo Q (t + 1) sẽ bằng '1' bất kể trạng thái hiện tại, giá trị Q (t). Điều này tương ứng với hàng thứ ba của bảng trạng thái SR Latch.

Bảng sau đây cho thấy state table của chốt D.

D Q (t + 1)
0 0
1 1

Do đó, D Latch Giữ thông tin có sẵn trên đầu vào dữ liệu, D. Điều đó có nghĩa là đầu ra của D Latch nhạy cảm với những thay đổi trong đầu vào, D miễn là kích hoạt ở mức Cao.

Trong chương này, chúng tôi đã triển khai các Latch khác nhau bằng cách cung cấp khớp nối chéo giữa các cổng NOR. Tương tự, bạn có thể triển khai các Latch này bằng cổng NAND.

Trong chương trước, chúng ta đã thảo luận về Chốt. Đó là những nền tảng cơ bản của dép xỏ ngón. Chúng ta có thể thực hiện flip-flops theo hai phương pháp.

Trong phương pháp đầu tiên, cascade two latchestheo cách mà chốt đầu tiên được bật cho mọi xung đồng hồ dương và chốt thứ hai được bật cho mọi xung đồng hồ âm. Sao cho sự kết hợp của hai chốt này trở thành một chiếc chốt lật.

Trong phương pháp thứ hai, chúng ta có thể thực hiện trực tiếp flip-flop, nó nhạy cảm với cạnh. Trong chương này, chúng ta hãy thảo luận về những điều sauflip-flops sử dụng phương pháp thứ hai.

  • SR Flip-Flop
  • D Flip-Flop
  • JK Flip-Flop
  • T Flip-Flop

SR Flip-Flop

SR flip-flop chỉ hoạt động với các chuyển đổi đồng hồ tích cực hoặc chuyển đổi đồng hồ âm. Trong khi đó, chốt SR hoạt động với tín hiệu cho phép. Cáccircuit diagram của SR flip-flop được hiển thị trong hình sau.

Mạch này có hai đầu vào S & R và hai đầu ra Q (t) & Q (t) '. Hoạt động của SR flipflop tương tự như SR Latch. Tuy nhiên, flip-flop này chỉ ảnh hưởng đến đầu ra khi áp dụng chuyển tiếp tích cực của tín hiệu đồng hồ thay vì kích hoạt hoạt động.

Bảng sau đây cho thấy state table của SR flip-flop.

S R Q (t + 1)
0 0 Q (t)
0 1 0
1 0 1
1 1 -

Ở đây, Q (t) & Q (t + 1) lần lượt là trạng thái hiện tại và trạng thái tiếp theo. Vì vậy, bảng lật SR có thể được sử dụng cho một trong ba chức năng này như Giữ, Đặt lại & Đặt dựa trên các điều kiện đầu vào, khi áp dụng chuyển tiếp tích cực của tín hiệu đồng hồ. Bảng sau đây cho thấycharacteristic table của SR flip-flop.

Trình bày đầu vào Trạng thái hiện tại Trạng thái tiếp theo
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

Bằng cách sử dụng K-Map ba biến, chúng ta có thể nhận được biểu thức đơn giản hóa cho trạng thái tiếp theo, Q (t + 1). Cácthree variable K-Map đối với trạng thái tiếp theo, Q (t + 1) được thể hiện trong hình sau.

Nhóm tối đa có thể có của những cái liền kề đã được thể hiện trong hình. Do đó,simplified expression đối với trạng thái tiếp theo Q (t + 1) là

$Q\left ( t+1 \right )=S+{R}'Q\left ( t \right )$

D Flip-Flop

D flip-flop chỉ hoạt động với quá trình chuyển đổi đồng hồ tích cực hoặc chuyển đổi đồng hồ âm. Trong khi đó, chốt D hoạt động với tín hiệu cho phép. Điều đó có nghĩa là, đầu ra của flip-flop D không nhạy cảm với những thay đổi trong đầu vào, D ngoại trừ quá trình chuyển đổi tích cực của tín hiệu đồng hồ. Cáccircuit diagram của D flip-flop được hiển thị trong hình sau.

Mạch này có một đầu vào D và hai đầu ra Q (t) & Q (t) '. Hoạt động của D flip-flop tương tự như D Latch. Tuy nhiên, flip-flop này chỉ ảnh hưởng đến đầu ra khi áp dụng chuyển tiếp tích cực của tín hiệu đồng hồ thay vì kích hoạt hoạt động.

Bảng sau đây cho thấy state table của D flip-flop.

D Qt + 1t + 1
0 0
1 1

Do đó, D flip-flop luôn Giữ thông tin có sẵn trên đầu vào dữ liệu, D của tín hiệu đồng hồ chuyển tiếp tích cực trước đó. Từ bảng trạng thái trên, chúng ta có thể viết trực tiếp phương trình trạng thái tiếp theo dưới dạng

Q (t + 1) = D

Trạng thái tiếp theo của flip-flop D luôn bằng với đầu vào dữ liệu, D cho mọi chuyển đổi tích cực của tín hiệu đồng hồ. Do đó, D flip-flops có thể được sử dụng trong thanh ghi,shift registers và một số quầy.

JK Flip-Flop

JK flip-flop là phiên bản sửa đổi của flip-flop SR. Nó chỉ hoạt động với các chuyển đổi đồng hồ tích cực hoặc chuyển đổi đồng hồ âm. Cáccircuit diagram của JK flip-flop được thể hiện trong hình sau.

Mạch này có hai đầu vào J & K và hai đầu ra Q (t) & Q (t) '. Hoạt động của flip-flop JK tương tự như flip-flop SR. Ở đây, chúng tôi coi các đầu vào của flip-flop SR làS = J Q(t)’R = KQ(t) để sử dụng flip-flop SR đã sửa đổi cho 4 kết hợp đầu vào.

Bảng sau đây cho thấy state table của JK flip-flop.

J K Q (t + 1)
0 0 Q (t)
0 1 0
1 0 1
1 1 Q (t) '

Ở đây, Q (t) & Q (t + 1) lần lượt là trạng thái hiện tại và trạng thái tiếp theo. Vì vậy, JK flip-flop có thể được sử dụng cho một trong bốn chức năng này như Giữ, Đặt lại, Đặt & Bổ sung trạng thái hiện tại dựa trên các điều kiện đầu vào, khi áp dụng chuyển tiếp tích cực của tín hiệu đồng hồ. Bảng sau đây cho thấycharacteristic table của JK flip-flop.

Trình bày đầu vào Trạng thái hiện tại Trạng thái tiếp theo
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

Bằng cách sử dụng K-Map ba biến, chúng ta có thể nhận được biểu thức đơn giản hóa cho trạng thái tiếp theo, Q (t + 1). Three variable K-Map đối với trạng thái tiếp theo, Q (t + 1) được thể hiện trong hình sau.

Nhóm tối đa có thể có của những cái liền kề đã được thể hiện trong hình. Do đó,simplified expression đối với trạng thái tiếp theo Q (t + 1) là

$$Q\left ( t+1 \right )=J{Q\left ( t \right )}'+{K}'Q\left ( t \right )$$

T Flip-Flop

T flip-flop là phiên bản đơn giản hóa của flip-flop JK. Nó có được bằng cách kết nối cùng một đầu vào 'T' với cả hai đầu vào của flip-flop JK. Nó chỉ hoạt động với các chuyển đổi đồng hồ tích cực hoặc chuyển đổi đồng hồ âm. Cáccircuit diagram của T flip-flop được hiển thị trong hình sau.

Mạch này có một đầu vào T và hai đầu ra Q (t) & Q (t) '. Hoạt động của flip-flop T giống như của flip-flop JK. Ở đây, chúng tôi coi các đầu vào của flip-flop JK làJ = TK = Tđể sử dụng flip-flop JK đã sửa đổi cho 2 kết hợp đầu vào. Vì vậy, chúng tôi đã loại bỏ hai kết hợp J & K khác, mà hai giá trị đó bổ sung cho nhau trong T flip-flop.

Bảng sau đây cho thấy state table của T flip-flop.

D Q (t + 1)
0 Q (t)
1 Q (t) '

Ở đây, Q (t) & Q (t + 1) lần lượt là trạng thái hiện tại và trạng thái tiếp theo. Vì vậy, T flip-flop có thể được sử dụng cho một trong hai chức năng này như Giữ, & Bổ sung trạng thái hiện tại dựa trên các điều kiện đầu vào, khi áp dụng chuyển tiếp tích cực của tín hiệu đồng hồ. Bảng sau đây cho thấycharacteristic table của T flip-flop.

Đầu vào Trạng thái hiện tại Trạng thái tiếp theo
T Q(t) Q(t + 1)
0 0 0
0 1 1
1 0 1
1 1 0

Từ bảng đặc tính trên, chúng ta có thể viết trực tiếp next state equation như

$$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 )$$

Đầu ra của flip-flop T luôn chuyển đổi cho mọi chuyển đổi tích cực của tín hiệu đồng hồ, khi đầu vào T vẫn ở mức logic Cao (1). Do đó, T flip-flop có thể được sử dụng trongcounters.

Trong chương này, chúng tôi đã thực hiện các bước lật khác nhau bằng cách cung cấp khớp nối chéo giữa các cổng NOR. Tương tự như vậy, bạn có thể thực hiện các flip-flops này bằng cách sử dụng cổng NAND.

Trong chương trước, chúng ta đã thảo luận về bốn flip-flop, đó là flip-flop SR, flip-flop D, flip-flop JK & T flip-flop. Chúng ta có thể chuyển một flip-flop thành ba flip-flop còn lại bằng cách bao gồm một số logic bổ sung. Vì vậy, sẽ có tổng cộng mười haiflip-flop conversions.

Làm theo những steps để chuyển đổi flip-flop này sang flip-flop khác.

  • Xem xét characteristic table trong số flip-flop mong muốn.

  • Điền các giá trị kích thích (đầu vào) của flip-flop nhất định cho mỗi sự kết hợp của trạng thái hiện tại và trạng thái tiếp theo. Cácexcitation table cho tất cả dép xỏ ngón được hiển thị bên dưới.

Trạng thái hiện tại Trạng thái tiếp theo Đầu vào bảng lật SR Đầu vào flip-flop D Đầu vào flip-flop JK T đầu vào 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
  • Nhận được simplified expressionscho mỗi đầu vào kích thích. Nếu cần, hãy sử dụng Kmaps để đơn giản hóa.

  • Vẽ circuit diagram của flip-flop mong muốn theo các biểu thức đơn giản sử dụng flip-flop đã cho và các cổng logic cần thiết.

Bây giờ, chúng ta hãy chuyển đổi một vài flip-flops thành khác. Thực hiện theo quy trình tương tự cho các chuyển đổi flipflop còn lại.

SR Flip-Flop sang các Chuyển đổi Flip-Flop khác

Sau đây là ba cách chuyển đổi có thể có của flip-flop SR sang flip-flop khác.

  • Từ lật SR sang lật lật D
  • Ván lật SR sang ván lật JK
  • Từ lật SR sang lật lật T

Chuyển đổi từ lật SR sang lật lật D

Ở đây, ván lật đã cho là ván lật SR và ván lật mong muốn là ván lật D. Do đó, hãy xem xét những điều saucharacteristic table của D flip-flop.

Đầu vào flip-flop D Trạng thái hiện tại Trạng thái tiếp theo
D Q(t) Q(t + 1)
0 0 0
0 1 0
1 0 1
1 1 1

Chúng ta biết rằng flip-flop SR có hai đầu vào S & R. Vì vậy, hãy viết ra các giá trị kích thích của flip-flop SR cho mỗi sự kết hợp của giá trị trạng thái hiện tại và trạng thái tiếp theo. Bảng sau đây cho thấy bảng đặc tính của flip-flop D cùng vớiexcitation inputs của SR flip-flop.

Đầu vào flip-flop D Trạng thái hiện tại Trạng thái tiếp theo Đầu vào bảng lật 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

Từ bảng trên, chúng ta có thể viết Boolean functions cho mỗi đầu vào như bên dưới.

$$S=m_{2}+d_{3}$$

$$R=m_{1}+d_{0}$$

Chúng ta có thể sử dụng K-Maps 2 biến để nhận các biểu thức đơn giản hóa cho các đầu vào này. Cáck-Maps cho S & R được hiển thị bên dưới.

Vì vậy, chúng tôi có S = D & R = D 'sau khi đơn giản hóa. Cáccircuit diagram của D flip-flop được hiển thị trong hình sau.

Mạch này bao gồm flip-flop SR và một biến tần. Biến tần này tạo ra một đầu ra, đó là phần bổ sung của đầu vào D. Vì vậy, mạch tổng thể có một đầu vào duy nhất, D và hai đầu ra Q (t) & Q (t) '. Do đó, nó là mộtD flip-flop. Tương tự, bạn có thể thực hiện hai chuyển đổi khác.

D Flip-Flop để chuyển đổi Flip-Flop khác

Sau đây là ba cách chuyển đổi có thể có của D flip-flop sang flip-flop khác.

  • D flip-flop đến T flip-flop
  • D flip-flop sang SR flip-flop
  • D flip-flop sang JK flip-flop

Chuyển đổi flip-flop sang T flip-flop

Ở đây, ván lật đã cho là D lật và ván lật mong muốn là T lật. Do đó, hãy xem xét những điều saucharacteristic table của T flip-flop.

T đầu vào flip-flop Trạng thái hiện tại Trạng thái tiếp theo
T Q(t) Q(t + 1)
0 0 0
0 1 1
1 0 1
1 1 0

Chúng ta biết rằng flip-flop D có đầu vào duy nhất D. Vì vậy, hãy viết ra các giá trị kích thích của flip-flop D cho mỗi sự kết hợp của giá trị trạng thái hiện tại và trạng thái tiếp theo. Bảng sau đây cho thấy bảng đặc tính của flip-flop T cùng vớiexcitation input của D flip-flop.

T đầu vào flip-flop Trạng thái hiện tại Trạng thái tiếp theo Đầu vào flip-flop D
T Q(t) Q(t + 1) D
0 0 0 0
0 1 1 1
1 0 1 1
1 1 0 0

Từ bảng trên, chúng ta có thể viết trực tiếp Boolean function của D như bên dưới.

$$D=T\oplus Q\left ( t \right )$$

Vì vậy, chúng tôi yêu cầu một cổng Exclusive-OR hai đầu vào cùng với D flip-flop. Cáccircuit diagram của T flip-flop được hiển thị trong hình sau.

Mạch này bao gồm D flip-flop và một cổng Exclusive-OR. Cổng Exclusive-OR này tạo ra một đầu ra, là Ex-OR của T và Q (t). Vì vậy, mạch tổng thể có đầu vào duy nhất, T và hai đầu ra Q (t) & Q (t) '. Do đó, nó là mộtT flip-flop. Tương tự, bạn có thể thực hiện hai chuyển đổi khác.

JK Flip-Flop sang các chuyển đổi Flip-Flop khác

Sau đây là ba cách chuyển đổi có thể có của flip-flop JK sang các flip-flop khác.

  • JK flip-flop sang T flip-flop
  • JK flip-flop sang D flip-flop
  • JK flip-flop sang SR flip-flop

Chuyển đổi JK flip-flop sang T flip-flop

Ở đây, ván lật đã cho là ván lật JK và ván lật mong muốn là ván lật T. Do đó, hãy xem xét những điều saucharacteristic table của T flip-flop.

T đầu vào flip-flop Trạng thái hiện tại Trạng thái tiếp theo
T Q(t) Q(t + 1)
0 0 0
0 1 1
1 0 1
1 1 0

Chúng ta biết rằng flip-flop JK có hai đầu vào J & K. Vì vậy, hãy viết ra các giá trị kích thích của flip-flop JK cho mỗi sự kết hợp của giá trị trạng thái hiện tại và trạng thái tiếp theo. Bảng sau đây cho thấy bảng đặc tính của flip-flop T cùng vớiexcitation inputs của JK flipflop.

T đầu vào flip-flop Trạng thái hiện tại Trạng thái tiếp theo Đầu vào flip-flop 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

Từ bảng trên, chúng ta có thể viết Boolean functions cho mỗi đầu vào như bên dưới.

$$J=m_{2}+d_{1}+d_{3}$$

$$K=m_{3}+d_{0}+d_{2}$$

Chúng ta có thể sử dụng 2 K-Maps biến đổi để nhận được các biểu thức đơn giản hóa cho hai đầu vào này. Cáck-Maps cho J & K được hiển thị bên dưới.

Vì vậy, chúng tôi có, J = T & K = T sau khi đơn giản hóa. Cáccircuit diagram của T flip-flop được hiển thị trong hình sau.

Mạch này chỉ bao gồm flip-flop JK. Nó không yêu cầu bất kỳ cổng nào khác. Chỉ cần kết nối cùng một đầu vào T với cả J & K. Vì vậy, mạch tổng thể có đầu vào duy nhất, T và hai đầu ra Q (t) & Q (t) '. Do đó, nó là mộtT flip-flop. Tương tự, bạn có thể thực hiện hai chuyển đổi khác.

T Flip-Flop sang các Chuyển đổi Flip-Flop khác

Sau đây là ba chuyển đổi có thể có của flip-flop T sang flip-flop khác.

  • T flip-flop sang D flip-flop
  • T flip-flop sang SR flip-flop
  • T flip-flop sang JK flip-flop

Chuyển đổi flip-flop sang D flip-flop

Ở đây, ván lật đã cho là T lật và ván lật mong muốn là D lật. Do đó, hãy xem xét bảng đặc tính của flip-flop D và viết ra các giá trị kích thích của flip-flop T cho mỗi sự kết hợp của giá trị trạng thái hiện tại và trạng thái tiếp theo. Bảng sau đây cho thấycharacteristic table của D flip-flop cùng với excitation input của T flip-flop.

Đầu vào flip-flop D Trạng thái hiện tại Trạng thái tiếp theo T đầu vào 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

Từ bảng trên, chúng ta có thể viết trực tiếp hàm Boolean của T như dưới đây.

$$T=D\oplus Q\left ( t \right )$$

Vì vậy, chúng tôi yêu cầu một cổng Exclusive-OR hai đầu vào cùng với T flip-flop. Cáccircuit diagram của D flip-flop được hiển thị trong hình sau.

Mạch này bao gồm T flip-flop và một cổng Exclusive-OR. Cổng Exclusive-OR này tạo ra một đầu ra, là Ex-OR của D và Q (t). Vì vậy, mạch tổng thể có đầu vào duy nhất, D và hai đầu ra Q (t) & Q (t) '. Do đó, nó là mộtD flip-flop. Tương tự, bạn có thể thực hiện hai chuyển đổi khác.

Chúng tôi biết rằng một chiếc flip-flop có thể lưu trữ một bit thông tin. Để lưu trữ nhiều bit thông tin, chúng tôi yêu cầu nhiều flip-flop. Nhóm flip-flops, được sử dụng để lưu trữ (lưu trữ) dữ liệu nhị phân được gọi làregister.

Nếu thanh ghi có khả năng dịch chuyển các bit về phía bên phải hoặc về phía bên trái được gọi là shift register. Một thanh ghi dịch chuyển bit 'N' chứa các bước lật 'N'. Sau đây là bốn loại thanh ghi dịch chuyển dựa trên việc áp dụng đầu vào và truy cập đầu ra.

  • Serial In - Serial Out shift register
  • Serial In - Thanh ghi dịch chuyển song song Out
  • Thanh ghi dịch chuyển Parallel In - Serial Out
  • Thanh ghi dịch chuyển song song In - Parallel Out

Đăng ký dịch chuyển Serial In - Serial Out (SISO)

Thanh ghi dịch chuyển, cho phép đầu vào nối tiếp và tạo ra đầu ra nối tiếp được gọi là Serial In - Serial Out (SISO)đăng kí ca. Cácblock diagram của thanh ghi dịch chuyển SISO 3-bit được thể hiện trong hình sau.

Sơ đồ khối này bao gồm ba flip-flops D, là cascaded. Điều đó có nghĩa là, đầu ra của một flip-flop D được kết nối như đầu vào của flip-flop D tiếp theo. Tất cả các flip-flops này đều đồng bộ với nhau vì tín hiệu đồng hồ giống nhau được áp dụng cho mỗi chiếc.

Trong thanh ghi dịch chuyển này, chúng ta có thể gửi các bit nối tiếp nhau từ đầu vào của flip-flop bên trái hầu hết D. Do đó, đầu vào này còn được gọi làserial input. Đối với mỗi cạnh tích cực kích hoạt tín hiệu đồng hồ, dữ liệu sẽ chuyển từ giai đoạn này sang giai đoạn tiếp theo. Vì vậy, chúng ta có thể nhận các bit nối tiếp nhau từ đầu ra của flip-flop bên phải hầu hết D. Do đó, đầu ra này còn được gọi làserial output.

Thí dụ

Hãy để chúng tôi xem hoạt động của thanh ghi dịch chuyển SISO 3 bit bằng cách gửi thông tin nhị phân “011” từ LSB đến MSB nối tiếp nhau ở đầu vào.

Giả sử, trạng thái ban đầu của dép xỏ ngón D từ ngoài cùng bên trái sang ngoài cùng bên phải là $Q_{2}Q_{1}Q_{0}=000$. Chúng tôi có thể hiểuworking of 3-bit SISO shift register từ bảng sau.

Không có cạnh tích cực của Đồng hồ Đầu vào nối tiếp Q 2 Q 1 Q 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)

Trạng thái ban đầu của dép xỏ ngón D khi không có tín hiệu đồng hồ là $Q_{2}Q_{1}Q_{0}=000$. Ở đây, đầu ra nối tiếp đến từ$Q_{0}$. Vì vậy, LSB (1) được nhận ở cạnh dương thứ 3 của đồng hồ và MSB (0) được nhận ở cạnh dương thứ 5 của đồng hồ.

Do đó, thanh ghi dịch chuyển SISO 3-bit yêu cầu năm xung đồng hồ để tạo ra đầu ra hợp lệ. Tương tự,N-bit SISO shift register đòi hỏi 2N-1 xung đồng hồ để chuyển thông tin bit 'N'.

Thanh ghi dịch chuyển Serial In - Parallel Out (SIPO)

Thanh ghi dịch chuyển, cho phép đầu vào nối tiếp và tạo ra đầu ra song song được gọi là Serial In - Parallel Out (SIPO)đăng kí ca. Cácblock diagram của thanh ghi dịch chuyển SIPO 3-bit được thể hiện trong hình sau.

Mạch này bao gồm ba flip-flops D, được xếp tầng. Điều đó có nghĩa là, đầu ra của một flip-flop D được kết nối như đầu vào của flip-flop D tiếp theo. Tất cả các flip-flops này đều đồng bộ với nhau vì tín hiệu đồng hồ giống nhau được áp dụng cho mỗi chiếc.

Trong thanh ghi dịch chuyển này, chúng ta có thể gửi các bit nối tiếp nhau từ đầu vào của flip-flop bên trái hầu hết D. Do đó, đầu vào này còn được gọi làserial input. Đối với mỗi cạnh tích cực kích hoạt tín hiệu đồng hồ, dữ liệu sẽ chuyển từ giai đoạn này sang giai đoạn tiếp theo. Trong trường hợp này, chúng ta có thể truy cập song song các đầu ra của mỗi flip-flop D. Vì vậy, chúng tôi sẽ nhận đượcparallel outputs từ sổ đăng ký ca này.

Thí dụ

Hãy để chúng tôi xem hoạt động của thanh ghi dịch chuyển SIPO 3 bit bằng cách gửi thông tin nhị phân “011” từ LSB đến MSB nối tiếp nhau ở đầu vào.

Giả sử, trạng thái ban đầu của dép xỏ ngón D từ ngoài cùng bên trái sang ngoài cùng bên phải là $Q_{2}Q_{1}Q_{0}=000$. Đây,$Q_{2}$ & $Q_{0}$lần lượt là MSB & LSB. Chúng tôi có thể hiểuworking of 3-bit SIPO shift register từ bảng sau.

Không có cạnh tích cực của Đồng hồ Đầu vào nối tiếp Q 2 (MSB) Q 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

Trạng thái ban đầu của dép xỏ ngón D khi không có tín hiệu đồng hồ là $Q_{2}Q_{1}Q_{0}=000$. Thông tin nhị phân“011” thu được song song tại các đầu ra của D flip-flops cho cạnh dương thứ ba của đồng hồ.

Vì vậy, thanh ghi dịch chuyển SIPO 3-bit yêu cầu ba xung đồng hồ để tạo ra đầu ra hợp lệ. Tương tự,N-bit SIPO shift register đòi hỏi N xung đồng hồ để chuyển thông tin bit 'N'.

Thanh ghi dịch chuyển song song In - Serial Out (PISO)

Thanh ghi dịch chuyển, cho phép đầu vào song song và tạo ra đầu ra nối tiếp được gọi là Parallel In - Serial Out (PISO)đăng kí ca. Cácblock diagram của thanh ghi dịch chuyển PISO 3-bit được thể hiện trong hình sau.

Mạch này bao gồm ba flip-flops D, được xếp tầng. Điều đó có nghĩa là, đầu ra của một flip-flop D được kết nối như đầu vào của flip-flop D tiếp theo. Tất cả các flip-flops này đều đồng bộ với nhau vì tín hiệu đồng hồ giống nhau được áp dụng cho mỗi chiếc.

Trong sổ đăng ký ca này, chúng tôi có thể áp dụng parallel inputsđến mỗi flip-flop D bằng cách đặt Preset Enable thành 1. Đối với mỗi cạnh tích cực kích hoạt tín hiệu đồng hồ, dữ liệu sẽ chuyển từ giai đoạn này sang giai đoạn tiếp theo. Vì vậy, chúng tôi sẽ nhận đượcserial output từ bên phải D flip-flop.

Thí dụ

Hãy để chúng tôi xem hoạt động của thanh ghi dịch chuyển PISO 3-bit bằng cách áp dụng thông tin nhị phân “011” song song thông qua các đầu vào đặt trước.

Vì các đầu vào đặt trước được áp dụng trước cạnh dương của Đồng hồ, trạng thái ban đầu của dép xỏ ngón D từ ngoài cùng bên trái sang ngoài cùng bên phải sẽ là $Q_{2}Q_{1}Q_{0}=011$. Chúng tôi có thể hiểuworking of 3-bit PISO shift register từ bảng sau.

Không có cạnh tích cực của Đồng hồ Q 2 Q 1 Q 0
0 0 1 1 (LSB)
1 - 0 1
2 - - 0 (LSB)

Ở đây, đầu ra nối tiếp đến từ $Q_{0}$. Vì vậy, LSB (1) được nhận trước khi áp dụng cạnh dương của đồng hồ và MSB (0) được nhận ở cạnh dương thứ 2 của đồng hồ.

Do đó, thanh ghi dịch chuyển PISO 3 bit yêu cầu hai xung đồng hồ để tạo ra đầu ra hợp lệ. Tương tự,N-bit PISO shift register đòi hỏi N-1 xung đồng hồ để chuyển thông tin bit 'N'.

Thanh ghi dịch chuyển song song vào - song song (PIPO)

Thanh ghi dịch chuyển, cho phép đầu vào song song và tạo ra đầu ra song song được gọi là Parallel In - Parallel Out (PIPO)đăng kí ca. Cácblock diagram của thanh ghi dịch chuyển PIPO 3-bit được thể hiện trong hình sau.

Mạch này bao gồm ba flip-flops D, được xếp tầng. Điều đó có nghĩa là, đầu ra của một flip-flop D được kết nối như đầu vào của flip-flop D tiếp theo. Tất cả các flip-flops này đều đồng bộ với nhau vì tín hiệu đồng hồ giống nhau được áp dụng cho mỗi chiếc.

Trong sổ đăng ký ca này, chúng tôi có thể áp dụng parallel inputscho mỗi flip-flop D bằng cách đặt Preset Enable thành 1. Chúng ta có thể áp dụng các đầu vào song song thông qua cài đặt trước hoặc xóa. Hai là đầu vào không đồng bộ. Điều đó có nghĩa là, flip-flops tạo ra các đầu ra tương ứng, dựa trên các giá trị của đầu vào không đồng bộ. Trong trường hợp này, ảnh hưởng của các đầu ra độc lập với quá trình chuyển đổi xung nhịp. Vì vậy, chúng tôi sẽ nhận đượcparallel outputs từ mỗi D flip-flop.

Thí dụ

Hãy để chúng tôi xem hoạt động của thanh ghi dịch chuyển PIPO 3 bit bằng cách áp dụng thông tin nhị phân “011” song song thông qua các đầu vào đặt trước.

Vì các đầu vào đặt trước được áp dụng trước cạnh dương của Đồng hồ, trạng thái ban đầu của dép xỏ ngón D từ ngoài cùng bên trái sang ngoài cùng bên phải sẽ là $Q_{2}Q_{1}Q_{0}=011$. Vì vậy, thông tin nhị phân“011” thu được song song tại các đầu ra của D flip-flops trước khi áp dụng cạnh tích cực của đồng hồ.

Do đó, thanh ghi dịch chuyển PIPO 3 bit yêu cầu không có xung clock để tạo ra đầu ra hợp lệ. Tương tự,N-bit PIPO shift register không yêu cầu bất kỳ xung đồng hồ nào để chuyển thông tin bit 'N'.

Trong chương trước, chúng ta đã thảo luận về bốn loại thanh ghi dịch chuyển. Dựa trên yêu cầu, chúng ta có thể sử dụng một trong các thanh ghi dịch chuyển đó. Sau đây là các ứng dụng của thanh ghi dịch chuyển.

  • Thanh ghi Shift được sử dụng làm Parallel to serial converter, chuyển đổi dữ liệu song song thành dữ liệu nối tiếp. Nó được sử dụng ở phần máy phát sau khối Bộ chuyển đổi từ Analog sang Digital (ADC).

  • Thanh ghi Shift được sử dụng làm Serial to parallel converter, chuyển đổi dữ liệu nối tiếp thành dữ liệu song song. Nó được sử dụng ở phần receiver trước khối Digital to Analog Converter (DAC).

  • Thanh ghi Shift cùng với một số cổng bổ sung tạo ra chuỗi các số không và số một. Do đó, nó được sử dụng nhưsequence generator.

  • Thanh ghi dịch chuyển cũng được sử dụng như counters. Có hai loại bộ đếm dựa trên loại đầu ra từ bên phải hầu hết D flip-flop được kết nối với đầu vào nối tiếp. Đó là bộ đếm Ring và bộ đếm Johnson Ring.

Trong chương này, chúng ta hãy thảo luận về hai bộ đếm này từng cái một.

Bộ đếm vòng

Trong chương trước, chúng ta đã thảo luận về hoạt động của Serial In - Parallel Out (SIPO)đăng kí ca. Nó chấp nhận dữ liệu từ bên ngoài ở dạng nối tiếp và nó yêu cầu xung đồng hồ 'N' để chuyển dữ liệu bit 'N'.

Tương tự, ‘N’ bit Ring counterthực hiện các hoạt động tương tự. Nhưng, sự khác biệt duy nhất là đầu ra của flip-flop D ngoài cùng bên phải được đưa ra làm đầu vào của flip-flop D ngoài cùng bên trái thay vì áp dụng dữ liệu từ bên ngoài. Do đó, bộ đếm Vòng tạo ra một chuỗi các trạng thái (mẫu số không và số một) và nó lặp lại cho mọi‘N’ clock cycles.

Các block diagram của bộ đếm Ring 3 bit được hiển thị trong hình sau.

Bộ đếm Ring 3 bit chỉ chứa một thanh ghi dịch chuyển SIPO 3 bit. Đầu ra của flip-flop D ngoài cùng bên phải được kết nối với đầu vào nối tiếp của flip-flop D ngoài cùng bên trái.

Giả sử, trạng thái ban đầu của dép xỏ ngón D từ ngoài cùng bên trái sang ngoài cùng bên phải là $Q_{2}Q_{1}Q_{0}=001$. Đây,$Q_{2}$ & $Q_{0}$lần lượt là MSB & LSB. Chúng tôi có thể hiểuworking of Ring counter từ bảng sau.

Không có cạnh tích cực của Đồng hồ Đầu vào nối tiếp = Q 0 Q 2 (MSB) Q 1 Q 0 (LSB)
0 - 0 0 1
1 1 1 0 0
2 0 0 1 0
3 0 0 0 1

Trạng thái ban đầu của dép xỏ ngón D khi không có tín hiệu đồng hồ là $Q_{2}Q_{1}Q_{0}=001$. Trạng thái này lặp lại cho mỗi ba lần chuyển tiếp cạnh tích cực của tín hiệu đồng hồ.

Do đó, sau operations diễn ra cho mọi cạnh tích cực của tín hiệu đồng hồ.

  • Đầu vào nối tiếp của flip-flop đầu tiên D nhận được đầu ra trước đó của flip-flop thứ ba. Vì vậy, đầu ra hiện tại của con lật ngửa D đầu tiên bằng với đầu ra trước đó của con lật thứ ba.

  • Các đầu ra trước đó của flip-flops D thứ nhất và thứ hai được dịch sang phải một bit. Điều đó có nghĩa là, kết quả đầu ra hiện tại của dép xỏ ngón D thứ hai và thứ ba bằng với kết quả đầu ra trước đó của dép xỏ ngón D thứ nhất và thứ hai.

Johnson Ring Counter

Hoạt động của Johnson Ring countertương tự như của bộ đếm Ring. Nhưng, sự khác biệt duy nhất là đầu ra bổ sung của flip-flop D ngoài cùng bên phải được đưa ra làm đầu vào của flip-flop D ngoài cùng bên trái thay vì đầu ra bình thường. Do đó, bộ đếm Vòng Johnson 'N' tạo ra một chuỗi các trạng thái (mẫu số không và số một) và nó lặp lại cho mọi‘2N’ clock cycles.

Bộ đếm Johnson Ring còn được gọi là Twisted Ring countervà chuyển đổi bộ đếm Ring đuôi. Cácblock diagram của bộ đếm Johnson Ring 3-bit được hiển thị trong hình sau.

Bộ đếm Johnson Ring 3 bit cũng chỉ chứa một thanh ghi dịch chuyển SIPO 3 bit. Đầu ra bổ sung của flip-flop D ngoài cùng bên phải được kết nối với đầu vào nối tiếp của flip-flop D bên trái nhất.

Giả sử, ban đầu tất cả D flip-flops được xóa. Vì thế,$Q_{2}Q_{1}Q_{0}=000$. Đây,$Q_{2}$ & $Q_{0}$lần lượt là MSB & LSB. Chúng tôi có thể hiểuworking của bộ đếm Johnson Ring từ bảng sau.

Không có cạnh tích cực của Đồng hồ Đầu vào nối tiếp = Q 0 Q 2 (MSB) Q 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

Trạng thái ban đầu của dép xỏ ngón D khi không có tín hiệu đồng hồ là $Q_{2}Q_{1}Q_{0}=000$. Trạng thái này lặp lại cho mỗi sáu lần chuyển đổi cạnh tích cực của tín hiệu đồng hồ.

Do đó, sau operations diễn ra cho mọi cạnh tích cực của tín hiệu đồng hồ.

  • Đầu vào nối tiếp của flip-flop D đầu tiên nhận được đầu ra bổ sung trước đó của flip-flop thứ ba. Vì vậy, đầu ra hiện tại của con lật ngửa D đầu tiên bằng với đầu ra bổ sung trước đó của con lật thứ ba.

  • Các đầu ra trước đó của flip-flops D thứ nhất và thứ hai được dịch sang phải một bit. Điều đó có nghĩa là, kết quả đầu ra hiện tại của dép xỏ ngón D thứ hai và thứ ba bằng với kết quả đầu ra trước đó của dép xỏ ngón D thứ nhất và thứ hai.

Trong hai chương trước, chúng ta đã thảo luận về các thanh ghi dịch chuyển khác nhau & counters using D flipflops. Bây giờ, chúng ta hãy thảo luận về các bộ đếm khác nhau sử dụng dép xỏ ngón T. Chúng ta biết rằng flip-flop T chuyển đổi đầu ra cho mọi cạnh dương của tín hiệu đồng hồ hoặc cho cạnh âm của tín hiệu đồng hồ.

Bộ đếm nhị phân bit 'N' bao gồm các flip-flops 'N' T. Nếu bộ đếm đếm từ 0 đến 2 - 1, sau đó nó được gọi là nhị phân up counter. Tương tự, nếu bộ đếm đếm ngược từ 2 - 1 đến 0, sau đó nó được gọi là nhị phân down counter.

Có hai types of counters dựa trên flip-flops có được kết nối đồng bộ hay không.

  • Bộ đếm không đồng bộ
  • Bộ đếm đồng bộ

Bộ đếm không đồng bộ

Nếu flip-flops không nhận được cùng một tín hiệu đồng hồ, thì bộ đếm đó được gọi là Asynchronous counter. Đầu ra của đồng hồ hệ thống chỉ được áp dụng làm tín hiệu đồng hồ cho lần lật đầu tiên. Các flip-flop còn lại nhận tín hiệu đồng hồ từ đầu ra của flip-flop giai đoạn trước của nó. Do đó, kết quả đầu ra của tất cả các flip-flop không thay đổi (ảnh hưởng) cùng một lúc.

Bây giờ, chúng ta hãy lần lượt thảo luận về hai quầy sau.

  • Bộ đếm lên nhị phân không đồng bộ
  • Bộ đếm xuống nhị phân không đồng bộ

Bộ đếm lên nhị phân không đồng bộ

Bộ đếm lên nhị phân không đồng bộ bit 'N' bao gồm các flip-flops 'N' T. Nó được tính từ 0 đến 2 - 1. Sự block diagram bộ đếm lên nhị phân không đồng bộ 3 bit được hiển thị trong hình sau.

Bộ đếm lên nhị phân không đồng bộ 3 bit chứa ba flip-flop T và đầu vào T của tất cả các flip-flop được kết nối với '1'. Tất cả các flip-flops này đều được kích hoạt cạnh âm nhưng các đầu ra thay đổi không đồng bộ. Tín hiệu đồng hồ được đưa trực tiếp vào con lật đật T đầu tiên. Vì vậy, đầu ra của lật đầu tiên Ttoggles cho mọi cạnh âm của tín hiệu đồng hồ.

Đầu ra của ván lật T đầu tiên được áp dụng làm tín hiệu đồng hồ cho ván lật T thứ hai. Vì vậy, đầu ra của lật lật T thứ hai chuyển đổi cho mọi cạnh âm của đầu ra của lật lật T đầu tiên. Tương tự, đầu ra của con lật thứ ba T chuyển đổi cho mọi cạnh âm của đầu ra của con lật thứ T thứ hai, vì đầu ra của con lật thứ T thứ hai hoạt động như tín hiệu đồng hồ cho con lật thứ ba.

Giả sử trạng thái ban đầu của T flip-flops từ ngoài cùng bên phải sang ngoài cùng bên trái là $Q_{2}Q_{1}Q_{0}=000$. Đây,$Q_{2}$ & $Q_{0}$lần lượt là MSB & LSB. Chúng tôi có thể hiểuworking của bộ đếm nhị phân không đồng bộ 3 bit từ bảng sau.

Không có cạnh âm của Đồng hồ Q 0 (LSB) Q 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

Đây $Q_{0}$ bật tắt cho mọi cạnh âm của tín hiệu đồng hồ. $Q_{1}$ bật tắt cho mọi $Q_{0}$chuyển từ 1 đến 0, nếu không thì vẫn ở trạng thái trước đó. Tương tự,$Q_{2}$ bật tắt cho mọi $Q_{1}$ chuyển từ 1 đến 0, nếu không thì vẫn ở trạng thái trước đó.

Trạng thái ban đầu của flip-flops T khi không có tín hiệu đồng hồ là $Q_{2}Q_{1}Q_{0}=000$. Giá trị này được tăng thêm một cho mỗi cạnh âm của tín hiệu đồng hồ và đạt đến giá trị lớn nhất ở cạnh âm thứ 7 của tín hiệu đồng hồ. Mô hình này lặp lại khi các cạnh âm của tín hiệu đồng hồ được áp dụng.

Bộ đếm xuống nhị phân không đồng bộ

Bộ đếm xuống nhị phân không đồng bộ bit 'N' bao gồm các flip-flops 'N' T. Nó được tính từ 2 - 1 đến 0. block diagram của bộ đếm xuống nhị phân không đồng bộ 3 bit được hiển thị trong hình sau.

Sơ đồ khối của bộ đếm xuống nhị phân không đồng bộ 3 bit tương tự như sơ đồ khối của bộ đếm lên nhị phân không đồng bộ 3 bit. Nhưng, sự khác biệt duy nhất là thay vì kết nối các đầu ra bình thường của một flip-flop một giai đoạn làm tín hiệu đồng hồ cho flip-flop giai đoạn tiếp theo, hãy kết nốicomplemented outputscủa một lần lật màn như tín hiệu đồng hồ cho lần lật màn tiếp theo. Đầu ra bổ sung đi từ 1 đến 0 giống như đầu ra bình thường đi từ 0 đến 1.

Giả sử trạng thái ban đầu của T flip-flops từ ngoài cùng bên phải sang ngoài cùng bên trái là $Q_{2}Q_{1}Q_{0}=000$. Đây,$Q_{2}$ & $Q_{0}$lần lượt là MSB & LSB. Chúng tôi có thể hiểuworking của bộ đếm xuống nhị phân không đồng bộ 3 bit từ bảng sau.

Không có cạnh âm của Đồng hồ Q 0 (LSB) Q 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

Đây $Q_{0}$ bật tắt cho mọi cạnh âm của tín hiệu đồng hồ. $Q_{1}$ bật tắt cho mọi $Q_{0}$chuyển từ 0 đến 1, nếu không thì vẫn ở trạng thái trước đó. Tương tự,$Q_{2}$ bật tắt cho mọi $Q_{1}$ chuyển từ 0 đến 1, nếu không thì vẫn ở trạng thái trước đó.

Trạng thái ban đầu của flip-flops T khi không có tín hiệu đồng hồ là $Q_{2}Q_{1}Q_{0}=000$. Điều này được giảm đi một đối với mỗi cạnh âm của tín hiệu đồng hồ và đạt đến cùng giá trị tại cạnh âm thứ 8 của tín hiệu đồng hồ. Mô hình này lặp lại khi các cạnh âm của tín hiệu đồng hồ được áp dụng.

Bộ đếm đồng bộ

Nếu tất cả các flip-flops nhận được cùng một tín hiệu đồng hồ, thì bộ đếm đó được gọi là Synchronous counter. Do đó, kết quả đầu ra của tất cả flip-flops thay đổi (ảnh hưởng) cùng một lúc.

Bây giờ, chúng ta hãy lần lượt thảo luận về hai quầy sau.

  • Bộ đếm lên nhị phân đồng bộ
  • Bộ đếm xuống nhị phân đồng bộ

Bộ đếm lên nhị phân đồng bộ

Bộ đếm lên nhị phân đồng bộ 'N' bit bao gồm các flip-flops 'N' T. Nó đếm từ 0 đến 2 - 1. Sự block diagram bộ đếm lên nhị phân đồng bộ 3-bit được hiển thị trong hình sau.

Bộ đếm lên nhị phân đồng bộ 3 bit chứa ba flip-flops T & một cổng AND 2 đầu vào. Tất cả các flip-flops này đều được kích hoạt cạnh âm và đầu ra của flip-flops thay đổi (ảnh hưởng) một cách đồng bộ. Đầu vào T của flip-flops thứ nhất, thứ hai và thứ ba là 1,$Q_{0}$ & $Q_{1}Q_{0}$ tương ứng.

Đầu ra của lật đầu tiên T togglescho mọi cạnh âm của tín hiệu đồng hồ. Đầu ra của flip-flop T thứ hai chuyển đổi cho mọi cạnh âm của tín hiệu đồng hồ nếu$Q_{0}$ là 1. Đầu ra của flip-flop T thứ ba bật tắt cho mọi cạnh âm của tín hiệu đồng hồ nếu cả hai $Q_{0}$ & $Q_{1}$ là 1.

Bộ đếm xuống nhị phân đồng bộ

Bộ đếm xuống nhị phân đồng bộ 'N' bit bao gồm các flip-flops 'N' T. Nó được tính từ 2 - 1 đến 0. block diagram bộ đếm xuống nhị phân đồng bộ 3-bit được hiển thị trong hình sau.

Bộ đếm xuống nhị phân đồng bộ 3 bit chứa ba flip-flops T & một cổng AND 2 đầu vào. Tất cả các flip-flops này đều được kích hoạt cạnh âm và đầu ra của flip-flops thay đổi (ảnh hưởng) một cách đồng bộ. Đầu vào T của flip-flops thứ nhất, thứ hai và thứ ba là 1,${Q_{0}}'$ & ' ${Q_{1}}'$${Q_ {0}} '$ tương ứng.

Đầu ra của lật đầu tiên T togglescho mọi cạnh âm của tín hiệu đồng hồ. Đầu ra của flip-flop T thứ hai chuyển đổi cho mọi cạnh âm của tín hiệu đồng hồ nếu $ {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}} '$ là 1.

Chúng ta biết rằng các mạch tuần tự đồng bộ thay đổi (ảnh hưởng) trạng thái của chúng đối với mọi chuyển đổi tích cực (hoặc tiêu cực) của tín hiệu đồng hồ dựa trên đầu vào. Vì vậy, hành vi này của các mạch tuần tự đồng bộ có thể được biểu diễn dưới dạng đồ thị và nó được gọi làstate diagram.

Mạch tuần tự đồng bộ còn được gọi là Finite State Machine(FSM), nếu nó có số trạng thái hữu hạn. Có hai loại FSM.

  • Máy trạng thái Mealy
  • Máy trạng thái Moore

Bây giờ, chúng ta hãy thảo luận về hai máy trạng thái này từng cái một.

Máy trạng thái Mealy

Máy trạng thái hữu hạn được cho là máy trạng thái Mealy, nếu đầu ra phụ thuộc vào cả đầu vào hiện tại và trạng thái hiện tại. Cácblock diagram của máy trạng thái Mealy được hiển thị trong hình sau.

Như trong hình, có hai bộ phận hiện diện trong máy trạng thái Mealy. Đó là logic tổ hợp và trí nhớ. Bộ nhớ rất hữu ích để cung cấp một số hoặc một phần các kết quả đầu ra trước đó(present states) là đầu vào của logic tổ hợp.

Vì vậy, dựa trên đầu vào hiện tại và trạng thái hiện tại, máy trạng thái Mealy tạo ra đầu ra. Do đó, các đầu ra sẽ chỉ có giá trị khi chuyển tiếp tích cực (hoặc tiêu cực) của tín hiệu đồng hồ.

Các state diagram của máy trạng thái Mealy được hiển thị trong hình sau.

Trong hình trên, có ba trạng thái, đó là A, B & C. Các trạng thái này được gắn nhãn bên trong các vòng tròn & mỗi vòng tròn tương ứng với một trạng thái. Sự chuyển đổi giữa các trạng thái này được biểu diễn bằng các đường có hướng. Ở đây, 0/0, 1/0 & 1/1 biểu thịinput / output. Trong hình trên, có hai chuyển đổi từ mỗi trạng thái dựa trên giá trị của đầu vào, x.

Nói chung, số trạng thái được yêu cầu trong máy trạng thái Mealy nhỏ hơn hoặc bằng số trạng thái được yêu cầu trong máy trạng thái Moore. Có một máy trạng thái Moore tương đương cho mỗi máy trạng thái Mealy.

Máy trạng thái Moore

Máy trạng thái hữu hạn được cho là máy trạng thái Moore, nếu đầu ra chỉ phụ thuộc vào trạng thái hiện tại. Cácblock diagram của máy trạng thái Moore được thể hiện trong hình sau.

Như trong hình, có hai bộ phận hiện diện trong máy trạng thái Moore. Đó là logic tổ hợp và trí nhớ. Trong trường hợp này, các đầu vào hiện tại và trạng thái hiện tại xác định các trạng thái tiếp theo. Vì vậy, dựa trên các trạng thái tiếp theo, máy trạng thái Moore tạo ra các đầu ra. Do đó, các đầu ra sẽ chỉ có giá trị sau khi chuyển đổi trạng thái.

Các state diagram của máy trạng thái Moore được thể hiện trong hình sau.

Trong hình trên, có bốn trạng thái, đó là A, B, C & D. Các trạng thái này và các đầu ra tương ứng được gắn nhãn bên trong các vòng tròn. Ở đây, chỉ giá trị đầu vào được gắn nhãn trên mỗi lần chuyển đổi. Trong hình trên, có hai chuyển đổi từ mỗi trạng thái dựa trên giá trị của đầu vào, x.

Nói chung, số trạng thái được yêu cầu trong máy trạng thái Moore nhiều hơn hoặc bằng số trạng thái được yêu cầu trong máy trạng thái Mealy. Có một máy trạng thái Mealy tương đương cho mỗi máy trạng thái Moore. Vì vậy, dựa trên yêu cầu, chúng ta có thể sử dụng một trong số chúng.

Mỗi digital systemcó thể được chia thành hai phần. Đó là các mạch đường dẫn dữ liệu (số) và mạch điều khiển. Các mạch đường dẫn dữ liệu thực hiện các chức năng như lưu trữ thông tin nhị phân (dữ liệu) và chuyển dữ liệu từ hệ thống này sang hệ thống kia. Trong khi, mạch điều khiển quyết định luồng hoạt động của mạch kỹ thuật số.

Rất khó để mô tả hoạt động của các máy trạng thái lớn bằng cách sử dụng biểu đồ trạng thái. Để khắc phục khó khăn này, có thể sử dụng biểu đồ Máy trạng thái thuật toán (ASM).ASM chartstương tự như lưu đồ. Chúng được sử dụng để biểu diễn luồng tác vụ được thực hiện bởi các mạch đường dẫn dữ liệu và mạch điều khiển.

Các thành phần cơ bản của biểu đồ ASM

Sau đây là ba thành phần cơ bản của biểu đồ ASM.

  • Hộp trạng thái
  • Hộp quyết định
  • Hộp đầu ra có điều kiện

Hộp trạng thái

Hộp trạng thái được biểu diễn dưới dạng hình chữ nhật. Mỗi hộp trạng thái đại diện cho một trạng thái của mạch tuần tự. Cácsymbol của hộp trạng thái được hiển thị trong hình sau.

Nó đang có một điểm vào và một điểm ra. Tên của tiểu bang được đặt ở bên trái của hộp trạng thái. Các đầu ra không điều kiện tương ứng với trạng thái đó có thể được đặt bên trong hộp trạng thái.Moore đầu ra máy trạng thái cũng có thể được đặt bên trong hộp trạng thái.

Hộp quyết định

Hộp quyết định được biểu diễn dưới dạng hình thoi. Cácsymbol của hộp quyết định được hiển thị trong hình sau.

Nó có một điểm vào và hai lối ra. Các đầu vào hoặc biểu thức Boolean có thể được đặt bên trong hộp quyết định, chúng sẽ được kiểm tra xem chúng đúng hay sai. Nếu điều kiện là đúng, thì nó sẽ thích path1 hơn. Nếu không, nó sẽ thích path2 hơn.

Hộp đầu ra có điều kiện

Hộp đầu ra có điều kiện được biểu diễn bằng hình bầu dục. Cácsymbol của hộp đầu ra có điều kiện được hiển thị trong hình sau.

Nó cũng có một điểm vào và một điểm thoát tương tự như hộp trạng thái. Các đầu ra có điều kiện có thể được đặt bên trong hộp trạng thái. Nói chung,Mealyđầu ra máy trạng thái được biểu diễn bên trong hộp đầu ra có điều kiện. Vì vậy, dựa trên yêu cầu, chúng ta có thể sử dụng các thành phần trên một cách hợp lý để vẽ biểu đồ ASM.