Thiết kế một mạch theo yêu cầu đề bài.. Chú ý việc thiết kế mạch hiển thị số BCD có hai chữ số được thực hiện như mạch sau: Trong đó: Mạch dồn kênh MUX2-1 sẽ dựa vào đầu ra z của mạch Co
Trang 2ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
Trang 3
- -Bài 5 THIẾT KẾ MẠCH HIỂN THỊ 2 SỐ BCD
1.1 Nội dung thực hành
Sử dụng mạch giải mã LED 7 đoạn và 1 số mạch Comparator, mạch A và mạch Mux2-1 để thực hiện mạch hiển thị số BCD có hai chữ số (từ 0 đến 15) Hiển thị số hàng chục lên HEX1 và hàng đơn vị lên HEX0
1.1.1 Thiết kế mạch hiển thị số BCD có 2 chữ số
1 Tạo một project Quartus mới, đặt tên: E/lab5/lab5_MSSV
2 Thiết kế một mạch theo yêu cầu đề bài Chú ý việc thiết kế mạch hiển thị số BCD có hai chữ số được thực hiện như mạch sau:
Trong đó:
Mạch dồn kênh MUX2-1 sẽ dựa vào đầu ra z của mạch Comparator để chọn kênh
v3v2v1v0 hoặc m2m1m0
Mạch Comparator để kiểm tra số lớn hơn 9:
Trang 4 nếu số nhỏ hơn 9 thì mạch chọn sẽ chọn cổng số 0 tức là v3v2v1v0 sẽ được đưa
ra HEX0 để hiển thị lên d0, và d1 sẽ hiển thị số 0
Nếu số lớn hơn 9 thì d1 sẽ hiển thị số 1, và d0 sẽ hiển thị số m2m1m0 từ Circuit
A
Mạch Circuit A hoạt động theo bảng sau:
1010 (số 10) 000 (số 0 ở d0 và số 1 ở d1)
3 Gán pin cho mạch trên
4 Biên dịch để phân tích, tổng hợp và tạo ra file sof
5 Mô phỏng mạch trên wareform
6 Nạp file thực thi lên FPGA Kiểm tra hoạt động của mạch
1.2 Thực hành.
1 Tạo một project mới
2 Thiết kế mạch
Trang 5Dựa vào mạch đã cho:
Xét mạch Comparator ta thấy:
Mạch Comparator có 4 input là v0, v1, v2, v3 và output là z
Mạch Comparator kiểm tra xem input đầu vào có lơn hơn 9 không, nếu lớn hơn thì trả
về giá trị là 1 còn nhỏ hơn thì trả về giá trị là 0
Ta có bảng sự thật
AB
F(A,B,C,D) = AB + AC
Xét mạch Criscuit A:
Mạch Circuit hoạt động theo bảng sau:
v4v2v1v0 m2m1m0
1010 (số 10) 000 (số 0 ở d0 và số 1 ở d1)
Ta thấy mạch có input là v0, v1, v2 và output là m0, m1, m2
Trang 6+ Xét cổng m2:
Ta có bảng sự thật:
V2 V1V0
=> M2 = v2v1
+ Xét cổng m1:
Ta có bảng sự thật:
V2 V1V0
M1 = v2v1’
+ Xét cổng m0:
Trang 7100 0
Ta có bảng sự thật:
V2
M0 = v0
Tiến hành tạo Symbol cho mạch Circuit A:
Vẽ mạch Circuit A
Kết quả biên dịch mạch trên:
Trang 8-Tạo Symbol mạch Circuit A
Ta được Symbol của mạch Circuit A
Trang 9Tiếp theo ta tạo symbol cho mạch dồn kênh MUX2-1
Vì Mạch dồn kênh MUX2-1 sẽ dựa vào đầu ra z của mạch Comparator để chọn kênh v3v2v1v0 hoặc m2m1m0
Cụ thể là nếu Z = 0 thì đầu ra sẽ là v3v2v1 còn Z = 1 thì đầu ra sẽ là m2m1m0
F = Zm + Z’v
Ta có mạch là:
Trang 10Kết quả biên dịch
Tạo symbol:
Symbol khi tạo xong:
Trang 11-Tạo Symbol của mach hiển thị led 7 đoạn ở bài trước.
Trang 12Mach sau khi tạo symbol:
Vậy từ cách cổng đã được tạo ở trên ta có mạch hiển thị 2 số BCD là
Trang 13Sau khi gán pin.
Kết quả biên dịch
Trang 14Mô phỏng mạch trên Wareform
Ta có mạch wareform như sau:
Trang 15-Từ mạch wareform trên ta thấy mạch chạy đúng với sự thât:
+ VD: số 6 (0110) ta thấy ở phần Input là :SW[0] -> SW[3] là (0110)
Và ở HEX1 hiển thị số hàng chục là số 0 ứng với HEX1[0] -> HEX1[6] là (000001)
Trang 16Còn ở HEX0 hiển thị số hàng đơn vị là số 6 ứng với HEX1[0] -> HEX1[6] là (010000).
+VD : số 13 (1101) ta thấy ở phần Input là :SW[0] -> SW[3] là (1101)
Và ở HEX1 hiển thị số hàng chục là số 1 ứng với HEX1[0] -> HEX1[6] là (100111)
Còn ở HEX0 hiển thị số hàng đơn vị là số 6 ứng với HEX1[0] -> HEX1[6] là (0000110)
Giải thích nguyên lý hoạt động của mạch hiển thị 2 số BCD là:
TH1: đầu vào là số nhỏ hơn 9:
Dữ liệu đầu vào sao khi qua mạch Comperator sẽ đưa ra kết quả là 0
Đầu ra từ mạch Comperator được đưa tới HEX1 với đầu vào là 0000 để hiển thị số 0 (HEX1 hiển thị số hàng chục)
Tiếp đó đầu ra của mạch Comperator lại đi qua các mạch dồn kênh MUX2-1 vì đầu ra bằng 0 nên các cổng MUX2-1 sẽ chọn đầu ra là v3v2v1v0 để đưa tới HEX0 hiển thị số hang đơn vị Ta thấy ở TH số nhỏ hơn 9 thì mạch sẽ hiển thị được số 0 ở hàng chục và số chính nó ở hàng đơn vị
TH2: đầu vào là số lớn hơn 9:
Dữ liệu đầu vào sao khi qua mạch Comperator sẽ đưa ra kết quả là 1
Đầu ra từ mạch Comperator được đưa tới HEX1 với đầu vào là 0001 để hiển thị số 1 (HEX1 hiển thị số hàng chục)
Tiếp đó đầu ra đi qua mạch dồn kênh MUX2-1 và chọn đầu ra chình là đầu ra của mạch Circuit A mà mạch Circuit A có nhiên vụ chuyễn đổi dữ liệu của v0v1v2 sao cho phug hợp để đưa vào mạch hiển thị led HEX0 Như vậy thì đầu vào của HEX0 ở TH sẽ khác với trường hợp trên VD số 12 (1100)=>số 2 (0010)