Báo cáo thực hành lab chương một theo chuẩn đại học bách khoa thành phố hồ chí minh Bộ xử lý logic về toán học (ALU Arithmetic and Logic Unit) là một mạch tổ hợp để xử lý các tác vụ về logic và toán học dựa trên hai số hạng. Các tác vụ cho ALU thực hiện được điều khiển bằng các ngõ nhập functionselect cụ thể ở đâu dùng tín hiệu “cmd”.
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
◄ KHOA ĐIỆN-ĐIỆN TỬ ►
BÁO CÁO THỰC HÀNH
LAB CHƯƠNG 1
Giảng viên hướng dẫn: Trương Quang Vinh
Hoàng Văn Doanh 1912858
Nguyễn Tiến Dũng 1912959
Võ Minh Duy 1910099
Huỳnh Khả Giang 1913184
TP.Hồ Chí Minh, 28 tháng 05 năm 2022
Trang 2THIẾT KẾ KHỐI ALU 4 BIT
Sinh viên thực hiện: Võ Minh Duy
1 Tổng Quan Lý Thuyết
1.1 Giới thiệu
Bộ xử lý logic về toán học (ALU - Arithmetic and Logic Unit) là một mạch tổ hợp để xử lý các tác vụ về logic và toán học dựa trên hai số hạng Các tác vụ cho ALU thực hiện được điều khiển bằng các ngõ nhập function-select cụ thể ở đâu dùng tín hiệu “cmd”
1.2 Thiết kế cấp độ Specification
A Sơ đồ khối
B Giới thiệu chung về cách thức hoạt động
- Khối input:
+ A, B: 2 dữ liệu đầu vào 4 bit
+ Cmd: Tín hiệu control 2 bit,
- Khối xử lý:
Trang 3+ Khối cộng 4 bit
+ Khối and 4 bit
+ Khối or 4 bit
+ Khối xor 4 bit
- Khối output:
+ Cmd = 00: Ngõ ra là phép cộng A + B
+ Cmd = 01: Ngõ ra là phép A AND B (A&B)
+ Cmd = 10: Ngõ ra là phép A OR B (A|B)
+ Cmd = 11: Ngõ ra là phép A XOR B (A^B)
C Lên ý tưởng thiết kế
- Việc đầu tiên là hình thành sơ đồ giải thuật dẫn đến hình thành khối thiết kế
- Hình thành các khối cấp cổng: add_1bit, and_1bit, or_1bit, xor_1bit
- Hình thành các khối cấp cổng: add_4bit, and_4bit, or_4bit, xor_4bit từ những khối 1bit
- Hình thành khối ALU từ những khối trên
-Kết hợp các tín hiệu ngõ vào, ngõ ra kèm điều kiện của “cmd”
2 Thực hiện thiết kế
2.1 Mạch thiết kế cấp cổng dùng Verilog
2.1.1 Khối adder_4bit được hình thành từ 4 khối adder_1bit:
Khối add 1 bit
Trang 4Khối add 4 bit
2.1.2 Khối and_4bit được hình thành từ 4 khối and_1bit:
Khối and 1 bit
Trang 5Khối and 4 bit
2.1.3 Khối or_4bit được hình thành từ 4 khối or_1bit:
Khối or 1 bit
Trang 6Khối or 4 bit
2.1.4 Khối xor_4bit được hình thành từ 4 khối xor_1bit:
Khối xor 1 bit
Trang 7Khối xor 4 bit
2.1.5 File lab_rtl.flist
File lab_rtl.flist
Trang 82.2 Kiểm định RTL
A Testtop
File testtop.v
Trang 9File lab_ben.flist
B File makefile
File Makefile
Trang 10Sau khi chạy makefile:
- Cột đầu tiên là delay của từng trường hợp “cmd”
- Cột thứ 2:
+ Cmd: 00 thực hiện phép ADD
+ Cmd: 01 thực hiện phép AND
+ Cmd: 10 thực hiện phép OR
+ Cmd: 11 thực hiện phép XOR
- Cột thứ 3: giá trị input X
- Cột thứ 4: giá trị input Y
- Cột thứ 5: giá trị output ol (x: giá trị không xác định)
- Cuối cùng: giá trị output S
Trang 11C Quan sát dạng sóng bằng phần mềm DVE
Quan sát dạng sóng bằng phần mềm DVE
2.3 Synthesis (Tổng hợp)
A File dc_command.src
-set search_path:Đường dẫn trỏ tới file library cho thiết kế: thông tin của các standard cell, unit attributes, process, voltage, temperature operation, Vth, delay of cell, …
-set target_library: Chọn 1 thư viện để thực thi cho thiết kế (Công nghệ 65mn, Vth: high
voltage threshold, Process: fast fast, Voltage: 1.32V, Temperature: 0oC) và chọn file dạng mã hóa nhị phân
- Command Analyse –format (định dạng file kiểu verilog or vhdl): Phân tích các khối
verilog cụ thể vừa tạo và trả về kết quả mẫu vào thư viện cụ thể có dạng specialize và
alaborate có khả năng kết hợp của toàn thiết kế
- Command Elaborate design_name: Tạo thiết kế từ định dạng trung gian của module
Verilog, thực thể và kiến trúc VHDL hoặc VHDL cấu hình
- Command current_design: Thiết kế hiện tại
- Command compile_ultra:
+ Compile: Biểu diễn toonge hợp logic_level và gate_logic và optimization trên thiết
kế hiện tại
+ Compile_ultra: Biểu diễn high-effort trên thiết kế hiện tại cho chất lượng kết quả tốt hơn (QoR)
Trang 12- Command ceport_area: Hiển thị thông tin area cho design hoặc instance hiện tại
- Command ceport_timing: Hiển thị thông tin timing cho thiết kế hiện tại
- Command ceport_constraint: Hiển thị các ràng buộc của thiết kế
- Command ceprort_qor: Hiển thị thông tin QoR và statistics của design (timing path
groups, DRV, tổng cell, area, constrains,…)
File dc_command.src
B Sau khi Synthesis
Trang 13File lab_synth.netlist.v
C.File report.timing
File report.timing
Trang 14File report.por
2.4 Kiểm định netlist
Sử dụng tool Formality:
Đang thực hiện LoadFile các file thành phần
A Capture màn hình thông báo của Formality sau khi chạy Matching
Trang 15B Capture màn hình thông báo của Formality sau khi chạy Verify
3 Kết luận
- Sau khi thực hiện khối ALU 4 chức năng giúp sinh viên ôn lại kiến thức code verilog và biết được môi trường làm việc sau này sẽ như thế nào
- Giúp sinh viên hiểu được những bước đầu trong quá trình thiết kế vi mạch
- Giúp sinh viên nắm được cơ bản các tool trong các bước thiết kế vi mạch
- Nắm được cách sử dụng Linux là một lợi thế lớn để xin việc sau này
Trang 16- Mạch thiết kế ALU này là dạng cơ bản của một khối ALU, các chức năng ở dạng đơn giản, không có nhiều chế độ tính toán, tuy nhiên với một số cá nhân không nhớ syntax của verilog
là 1 trở ngại
- Việc xây dựng khối ALU này được dựa trên các khối cơ bản khác nhau
- Sinh viên chưa làm quen với Linux và đặt biệt là flow của thiết kế sẽ gặp
nhiều khó khăn
4 Phụ lục
➔ Link drive chứa video và file tài nguyên:
https://drive.google.com/drive/folders/1wSKtdwAZvsw0LREqqmU2fMnMHocDT-AD?usp=sharing
5 Tài liệu tham khảo (nếu có)
[1] Tài liệu hướng dẫn thí nghiệm Quy trình thiết kế vi mạch số
[2] Thiết kế khối ALU 4 bit đơn giản và môi trường self test, random test sử dụng UVM [3] Verilog code for Arithmetic Logic Unit (ALU)