PHẦN MỞ ĐẦU
Trong thời đại công nghệ số ngày nay, việc thiết kế và xây dựng các hệ thống số đóng vai trò quan trọng trong nhiều lĩnh vực từ điện tử tiêu dùng đến các hệ thống tự động hóa công nghiệp Rất nhiều chip điện tử (vi mạch số) đã được nghiên cứu và sản xuất để phục vụ cho những vấn đề trên Trong đó không thể không kể đến những khối cơ bản và thiết yếu của hệ thống số như mạch cộng, trừ, nhân, so sánh… Các mạch này không chỉ hỗ trợ các phép toán cơ bản mà còn là nền tảng cho việc thực hiện các thuật toán phức tạp hơn trong xử lý số liệu và logic máy tính
Vì những lí do trên, nhóm em muốn thiết kế một hệ thống bao gồm các khối mạch cộng, trừ, nhân và so sánh Các mạch cơ bản này mặc dù đã quá quen thuộc đối với chúng ta, tuy nhiên việc thiết kế mạch có thể sẽ gặp phải nhiều thách thức như: tối ưu hóa kích thước, tốc độ xử lý, tính chính xác,… Để giải quyết những vấn đề này, việc sử dụng ngôn ngữ mô tả phần cứng như Verilog trở nên cần thiết, cho phép mô phỏng và kiểm tra mạch trước khi thực hiện sản xuất thực tế
Trong bài báo cáo này, chúng em sẽ trình bày ngắn gọn về quá trình thiết kế, mô phỏng, kiểm tra một vi mạch số có khả năng thực hiện các phép cộng, trừ, nhân và so sánh hai số nhị phân 4 bit sử dụng Verilog Sau đó khám phá cách thức tối ưu hóa mạch để đạt được hiệu suất cao, đồng thời đảm bảo tính chính xác và độ tin cậy của hệ thống khi được hoạt động theo nhiều yêu cầu khác nhau
PHẦN NỘI DUNG
Tổng quan về mạch cộng, trừ, nhân, so sánh 2 số nhị phân có thể chuyển chế độ
Mạch được cấu tạo cơ bản bao gồm 5 khối chính như sau :
• Khối mạch cộng hai số A và B (4 bit)
• Khối mạch trừ số A cho số B (4 bit)
• Khối mạch nhân 2 số A và B (4 bit)
• Khối mạch so sánh 2 số A và B (4 bit)
• Khối mạch đếm vòng 4 bit dùng để chuyển chế độ
Sau khi thực hiện ghép các khối con (submodule) trên ta sẽ được một khối lớn (topmodule) có 4 ngõ vào (2 ngõ vào A, B 4bit, ngõ vào nút BTN và RES) và 5 ngõ ra (ngõ ra O 8bit, 1 ngõ ra bit dấu, 3 ngõ ra so sánh: A>B, Ab
• Ngõ ra G: sẽ lên 1 nếu 2 bit được so sánh a=b
• Ngõ ra I: sẽ lên 1 nếu 2 bit được so sánh aB nên ngõ ra ở greater sẽ lên mức 1 và các ngõ ra còn lại xuất ra mức 0
Testcase 2: ngõ vào E vẫn ở mức 1, lúc này ta cho A= 11 và B để AB) lên mức 1 các ngõ ra khác ở mức 0
Testcase 6: vẫn ở chế độ so sánh, ta lại cho A, B để giá trị của A bằng B lúc này ngõ ra equal (A=B) lên 1 và các ngõ ra khác là 0
Testcase 7: vẫn trong chế độ so sánh nên khi cho A=3 và B=8 khi này A nhỏ hơn B, ngõ ra less (A