intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Giáo trình kỹ thuật xung- số phần 8

Chia sẻ: Nguyễn Thị Hồng Ngọc | Ngày: | Loại File: PDF | Số trang:20

148
lượt xem
19
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Hình 4.33: Thực hiện so sánh nhiều bit trực tiếp 4.4.3.2. Phương pháp xây dựng trên cơ sở mạch so sánh 1 bit Để mạch so sánh hai số nhị phân 1 bit có thể thực hiện công việc xây dựng mạch so sánh hai số nhị phân nhiều bit ta cải tiến lại mạch

Chủ đề:
Lưu

Nội dung Text: Giáo trình kỹ thuật xung- số phần 8

  1. Hình 4.33: Thực hiện so sánh nhiều bit trực tiếp 4.4.3.2. Phương pháp xây dựng trên cơ sở mạch so sánh 1 bit Để mạch so sánh hai số nhị phân 1 bit có thể thực hiện công việc xây dựng mạch so sánh hai số nhị phân nhiều bit ta cải tiến lại mạch so sánh 1 bit như sau: ngoài các đầu vào và đầu ra giống như mạch so sánh 1 bit ta đã khảo sát ở trên, còn có các đầu vào điều khiển ab, a = b, với sơ đồ mạch như sau: 178
  2. Bảng trạng thái mô tả hoạt động của mạch so sánh nhị phân 1 bit đầy đủ như sau: Phương trình logic: Dựa vào vi mạch so sánh đầy đủ này, người ta thực hiện mạch so sánh hai số nhị phân 4 bit bằng cách sử dụng các vi mạch so sánh 1 bit đầy đủ này giữa a3 với b3, a2 với b2, a1 với b1, a0 với b0 với cách nối theo sơ đồ hình 4.35. Lưu ý: Trên hình 4.35 mạch có 3 đầu vào điều khiển (A>B), (A
  3. 4.5. MẠCH SỐ HỌC 4.5.1. Đại cương Mạch số học là mạch có chức năng thực hiện các phép toán số học +, -, x, / các số nhị phân. Đây là cơ sở để xây dựng đơn vị luận lý và số học (ALU) trong các bộ vi xử lý hoặc CPU. 4.5.2. Bộ cộng (Adder) 4.5.2.1. Bộ bán tổng (HA – Half Adder) Bộ bán tổng thực hiện cộng 2 số nhị phân 1 bit Quy tác cộng như sau: 180
  4. Trong đó a, b là số cộng, s là tổng, c là số nhớ. Bảng trạng thái mô tả hoạt động của mạch và phương trình logic : Mạch cộng này chỉ cho phép cộng hai số nhị phân 1 bit mà không thực hiện cộng hai số nhị phân nhiều bit. 4.5.2.2. Bộ tổng (Bộ cộng toàn phần FA: Full Adder) Sơ đồ khối: 181
  5. Trong đó: Cn-1: Số nhớ của lần cộng trước đó - Cn: Số nhớ của lần cộng hiện tại - Sn: Tổng hiện tại - Từ bảng trạng thái mô tả hoạt động của mạch ta viết được phương trình logic: Lập bảng karnaugh và tối thiểu hoá, ta có: 182
  6. Hoặc sử dụng HA để thực hiện FA: 4.5.3. Bộ trừ (Subtractor) 4.5.3.1. Bộ bán trừ (Bộ trừ bán phần – HS: Half subtractor) Bộ bán trừ thực hiện trừ 2 số nhị phân 1 bit. Quy tắc trừ như sau: Trong đó a là số bị trừ, b là số trừ, D là hiệu, B là só mượn. Bảng trạng thái: Phương trình logic: Mạch này chỉ cho phép trừ hai số nhị phân 1 bit mà không thực hiện việc trừ hai số nhị phân nhiều bit. 183
  7. 4.5.3.2. Bộ trừ toàn phần (FS – Full subtractor) Mạch có sơ đồ khối và bảng trạng thái mô tả hoạt động như sau: Trong đó: Bn-1: Số mượn của lần trừ trước đó Bn: Số mượn của lần trừ hiện tại Dn: Hiệu số hiện tại Lập bảng Karnaugh và tối thiểu hoá, ta có: Có hai cách thực hiện bộ trừ toàn phần theo biểu thức logic đã tìm được: hoặc thực hiện trực tiếp (hình 4.44) hoặc sử dụng HS để thực hiện FS (hình 4.45). 184
  8. Từ bộ cộng toàn phần, ta xây dựng mạch cộng hai số nhị phân nhiều bit bằng hai phương pháp: Nối tiếp và Song song. Phương pháp nối tiếp: 185
  9. Thanh ghi A chứa số A: a3, a2, a1, a0 Thanh ghi B chứa số B: b3, b2, b1, b0 Thanh ghi S chứa số S: s3, s2, s1, s0 Nhược điểm của phương pháp này là thời gian thực hiện lâu. Phương pháp song song: Để khắc phục nhược điểm đó, người ta dùng phương pháp cộng song song. Do tín hiệu điều khiển Ck (điều khiển cộng) đồng thời nên thời gian thực hiện phép cộng nhanh hơn phương pháp nối tiếp, song do số nhớ vẫn phải chuyển nối tiếp nên sẽ ảnh hưởng tốc độ xử lý. Vì vậy người ta cải tiến mạch trên thành mạch cộng song song với số nhớ nhìn thấy trước (mạch cộng nhớ nhanh) Bằng cách dựa vào sự phân tích mạch cộng toàn phần như sau: Ta có: Suy ra: Trong đó Khi n = 0: Khi n = 1: 186
  10. Khi n = 2: Khi n = 3: Đây chính là cơ sở tính toán để tạo ra số nhớ c1, c2 , c3 tuỳ thuộc an, bn nên lúc đó sẽ tìm được Sn. Trên thực tế người ta đã chế tạo ra các vi mạch cộng nhớ nhanh, ví dụ IC 7483. 187
  11. CHƯƠNG V HỆ TUẦN TỰ 5.1. KHÁI NIỆM CHUNG Mạch số được chia làm 2 loại chính: Hệ tổ hợp và hệ tuần tự. Đổi với hệ tổ hợp: tín hiệu đầu ra ở trạng thái kế tiếp chỉ phụ thuộc vào trạng thái hiện tại của đầu vào, mà không quan tâm trạng thái hiện tại của đầu ra. Như vậy, khi các đầu vào thay đổi trạng thái thì lập tức đầu ra cũng thay đổi trạng thái. Đối với hệ tuần tự: Các đầu ra ở trạng thái kế tiếp vừa phụ thuộc vào trạng thái hiện tại của đầu vào, đồng thời còn phụ thuộc trạng thái hiện tại của đầu ra. Do đó, vấn đề thiết kế hệ tuần tự sẽ khác so với hệ tổ hợp và cơ sở của thiết kế hệ tuần tự là dựa trên các FF. Mặt khác, đối với hệ tuần tự, khi các đầu vào thay đổi trạng thái thì các đầu ra không thay đổi trạng thái ngay mà chờ cho đến khi có một xung điều khiển thì lúc đó các đầu ra mới thay đổi trạng thái theo các đầu vào. Như vậy, hệ tuần tự còn có tính đồng bộ và tính nhớ nên hệ tuần tự là cơ sở để thiết kế các bộ nhớ. 5.2. MẠCH ĐẾM Lợi dụng tính đảo trạng thái của FF JK khi J=K=1, người ta thực hiện các mạch đếm. Chức năng của mạch đếm là đếm số xung CK đưa vào đầu vào hoặc thể hiện số trạng thái có thể có của các đầu ra. Nếu xét khía cạnh tần số của tín hiệu thì mạch đếm có chức năng chia tần, nghĩa là tần số của tín hiệu ở đầu ra là kết quả của phép chia tần số của tín hiệu C K ở đầu vào cho số đếm của mạch. Ta có các loại: mạch đếm đồng bộ, không đồng bộ và đếm vòng. 5.2.1 Mạch đếm đồng bộ Trong mạch đếm đồng bộ các FF chịu tác động đồng thời của xung đếm CK. 5.2.1.1 Mạch đếm đồng bộ n tầng, đếm lên Để thiết kế mạch đếm đồng bộ n tầng (lấy thí dụ n=4), trước tiên lập bảng trạng thái, quan sát bảng trạng thái suy ra cách mắc các đầu vào JK của các FF sao cho mạch giao hoán tạo các đầu ra đúng như bảng đã lập. Giả sử ta dùng FF tác động 188
  12. bởi cạnh xuống của xung CK (Thật ra, kết quả thiết kế không phụ thuộc vào chiều tác động của xung CK, tuy nhiên điều này phải được thể hiện trên mạch nên ta cũng cần lưu ý). Với 4 FF mạch đếm được 24=16 trạng thái và số đếm được từ 0 đến 15. Ta có bảng trạng thái: Nhận thấy: - FF A đổi trạng thái sau từng xung CK, vậy: TA = JA = KA = 1 - FF B đổi trạng thái nếu trước đó QA = 1, vậy TB = JB = KB = QA - FF C đổi trạng thái nếu trước đó QA = QB = 1, vậy: TC = JC = KC = QA.QB - FF D đổi trạng thái nếu trước đó QA=QB=QC=1, vậy: TD = JD = KD = QA.QB.QC = TC.QC Ta được kết quả ở (hình 5.1) 189
  13. Hình 5.1 5.2.1.2 Mạch đếm đồng bộ n tầng, đếm xuống Bảng trạng thái: Nhận thấy: - FF A đổi trạng thái sau từng xung CK, vậy: TA = JA = KA = 1 - FF B đổi trạng thái nếu trước đó QA = 0, vậy: TB = JB = KB = QA - FF C đổi trạng thái nếu trước đó QA=QB=0, vậy: TC = JC = KC = QA . QB - FF D đổi trạng thái nếu trước đó QA = QB = QC= 0, vậy: TD = JD = KD = QA . QB . QC = TC. QC 190
  14. Ta được kết quả ở (Hình 5.2) Hình 5.2 5.2.1.3 Mạch đếm đồng bộ n tầng, đếm lên/ xuống Để có mạch đếm n tầng, đếm lên hoặc xuống ta dùng một đa hợp 2→1 có đầu vào điều khiển C để chọn Q hoặc Q đưa vào tầng sau qua các cổng AND. Trong mạch (Hình 5.3) dưới đây khi C=1 mạch đếm lên và khi C=0 mạch đếm xuống. Hình 5.3 5.2.1.4 Tần số hoạt động lớn nhất của mạch đếm đồng bộ n tầng: Trong mạch (Hình 5.4) ta cần 2 cổng AND. Trong trường hợp tổng quát cho n tầng, số cổng AND là (n-2) như vậy thời gian tối thiểu để tín hiệu truyền qua mạch là: Tần số cực đại xác định bởi: 191
  15. Để gia tăng tần số làm việc của mạch, thay vì dùng các cổng AND 2 đầu vào ta phải dùng cổng AND nhiều đầu vào và mắc theo kiểu: Như vậy tần số làm việc không phụ thuộc vào n và bằng: 5.2.1.5 Mạch đếm đồng bộ Modulo - N (N ≠ 2n) Để thiết kế mạch đếm modulo - N, trước nhất ta phải chọn số tầng. Số tầng n phải thỏa điều kiện: 2n-1 < N < 2n Thí dụ thiết kế mạch đếm 10 (N = 10). 24-1 < 10 < 24 Vậy số tầng là 4. Có nhiều phương pháp thiết kế mạch đếm đồng bộ modulo-N. Sau đây ta khảo sát hai phương pháp: dùng hàm Chuyển và MARCUS ể Phh h ng pháp dùng hàm Chuyưn (Transfer function) ơể Hàm Chuyển là hàm cho thấy có sự thay đổi trạng thái của FF. Mỗi loại FF có một hàm Chuyển riêng của nó. Hàm Chuyển được định nghĩa như sau: hàm có trị 1 khi có sự thay đổi trạng thái của FF (Q+ ≠ Q) và trị 0 khi trạng thái FF không đổi (Q+ = Q). Chúng ta chỉ thiết kế mạch đếm dùng FF JK do đó ta chỉ xác định hàm Chuyển của loại FF này. Bảng trạng thái của FF JK: 192
  16. Dùng Bảng Karnaugh ta suy ra được biểu thức của H: Để thiết kế mạch đếm cụ thể ta sẽ xác định hàm H cho từng FF trong mạch, so sánh với biểu thức của hàm H suy ra J, K của các FF. Dưới đây là một thí dụ. Thiết kế mạch đếm 10 đồng bộ dùng FF JK Bảng trạng thái của mạch đếm 10 và giá trị của các hàm H tương ứng: Từ bảng trên ta thấy: Để xác định HB, HC và HD ta phải vẽ bảng Karnaugh. 193
  17. Ghi chú: Trong kết quả của hàm H ta muốn có chứa Q và Q tương ứng để suy ra ngay các trị J và K nên ta đã chia bảng Karnaugh ra làm 2 phần chứa Q và Q và nhóm riêng từng phần này. Từ các kết quả này, ta vẽ được mạch (Hình 5.4) Hình 5.4 Bây giờ ta có thể kiểm tra xem nếu như vì một lý do nào đó, số đếm rơi vào các trạng thái không sử dụng (tương ứng với số từ 10 đến 15) thì khi có xung đồng hồ trạng thái tiếp theo sẽ như thế nào? Mạch có quay về để đếm tiếp? Áp dụng các hàm chuyển có được, ứng với mỗi trạng thái Q của từng FF trong các tổ hợp không sử dụng, ta tìm trị H tương ứng rồi suy ra Q+, ta được bảng kết quả sau: 194
  18. Từ bảng kết quả ta có kết luận: - Khi đầu ra rơi vào trạng thái 1010 (1010), nó sẽ nhảy tiếp vào trạng thái 1110 (1011) rồi sau đó nhảy về 610 (0110) (Dòng 1 và 2) - Khi đầu ra rơi vào trạng thái 1210 (1100), nó sẽ nhảy tiếp vào trạng thái 1310 (11 01) rồi sau đó nhảy về 410 (0100) (Dòng 3 và 4) - Khi đầu ra rơi vào trạng thái 1410 (1110), nó sẽ nhảy tiếp vào trạng thái 1510 (1111) rồi sau đó nhảy về 210 (0010) (Dòng 5 và 6). Tóm lại, nếu có một sự cố xảy ra làm cho số đếm rơi vào các trạng thái không sử dụng thì sau 1 hoặc 2 số đếm nó tự động quay về một trong các số đếm từ 0 đến 9 rồi tiếp tục đếm bình thường. Phương pháp MARCUS Phương pháp MARCUS cho phép xác định các biểu thức của J và K dựa vào sự thay đổi của Q+ so với Q Từ bảng trạng thái của FF JK ta có thể viết lại như sau: Để thiết kế mạch, ta so sánh Q+ và Q để có được bảng sự thật cho J, K của từng FF, sau đó xác định J và K. Thí dụ thiết kế lại mạch đếm 10 bằng phương pháp MARCUS Bảng sự thật cho J, K của từng FF: 195
  19. Ghi chú: Trong bảng trên, không có các cột cho Q+, tuy nhiên ta có thể thấy ngay là dòng bên dưới chính là Q+ của dòng bên trên, như vậy kết quả có được từ sự so sánh dòng trên và dòng ngay dưới nó. Ta thấy ngay JA = KA = 1 Dùng bảng Karnaugh để xác định các hàm còn lại. Nhận thấy các FF B và C có thể xác định chung cho J và K (cùng vị trí 1 và x), FF D được xác định J và K riêng Ta được lại kết quả trên. Trên thị trường có khá nhiều IC đếm: - 4 bit BCD: 74160, 74162, 74190, 74192, 4192, 4510, 4518. . .. - 4 bit nhị phân: 74161, 74163, 74191, 74193, 4193, 4516, 4520. . .. - 8 bit nhị phân: 74269, 74579, 74779. . .. 5.2.2 Mạch đếm không đồng bộ Là các mạch đếm mà các FF không chịu tác động đồng thời của xung CK. Khi thiết kế mạch đếm không đồng bộ ta phải quan tâm tới chiều tác động của xung đồng hồ CK. 5.3.2.1. Mạch đếm không đồng bộ, n tầng, đếm lên (n=4): 196
  20. Từ bảng trạng thái của mạch đếm 4 bit, ta thấy nếu dùng FF JK tác động bởi cạnh xuống của xung đồng hồ thì có thể lấy đầu ra của tầng trước làm xung đồng hồ CK cho tầng sau, với điều kiện các đầu vào JK của các FF đều được đưa lên mức cao. Ta được mạch đếm không đồng bộ, 4 bít, đếm lên (Hình 5.5). Hình 5.5 Hình 5.6 là dạng tín hiệu xung CK và các ngã ra của các FF: Hình 5.6 Tổ hợp các số tạo bởi các ngã ra các FF D, C, B, A là số nhị phân từ 0 đến 15 5.2.2.2. Mạch đếm không đồng bộ, n tầng, đếm xuống (n=4): Để có mạch đếm xuống ta nối Q (thay vì Q) của tầng trước vào đầu vào CK của tầng sau. (Hình 5.7) là mạch đếm xuống 4 tầng. Dạng sóng ở đầu ra các FF và số đếm tương ứng cho ở (Hình 5.8) 197
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2