Ý tưởng thực thi thiết kế - Việc đầu tiên là hình thành sơ đồ khối của thiết kế - Viết các khối xử lý đơn giản add_1bit, and_1bit, or_1bit, xor_1bit... - Phần bên trái là các biến của th
Trang 1KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ
-o0o -QUY TRÌNH THIẾT KẾ
CÁO LAB 1 THIẾT KẾ BỘ ALU
GVHD: PGS.TS Hoàng TrangTGHD: Đỗ Quang Thịnh NTH: Nhóm 9
TPHCM, THÁNG 9 NĂM 2021
Trang 2DANH SÁCH THÀNH VIÊN NHÓM 9
1 Nguyễn Thái Nguyên (Nhóm trưởng) 1712386 nguyen.nguyen29091999@hcmut.edu.vn 0977331297
Trang 3MỤC LỤC
1 Tổng quan lý thuyết 5
1.1 Thiết kế cấp độ Speccification 5
2 Thực hiện thiết kế 6
2.1 Mạch thiết kế cấp cổng dùng Verilog 6
2.2 Môi trường làm việc 10
2.2.1 File set_env.bash: 10
2.2.2 File lab_rtl.flist: 10
2.2.3 File lab_ben.flist: 10
2.2.4 File Makefile: 11
2.3 Kiểm định RTL 11
2.3.1 File testtop.v 11
2.3.2 Kết quả hiển thị ở terminal sau khi make 12
2.3.3 Dạng sóng của thiết kế 12
2.4 Synthesis 13
2.4.1 File dc_command.src 13
2.4.2 File ALU sau khi Synthesis 15
2.4.3 File reports 16
3 Kết luận 19
3.1 Nhận xét 19
3.2 Kết luận 19
4 Phục lục 19
5 Tài liệu tham khảo 19
6 Câu hỏi lý thuyết 19
6.1 Phân biệt các tool trong RTL 19
6.2 Giải thích ý nghĩa 20
6.3 Bonus 21
6.4 Đầu vào và đầu ra của Synthesis 21
Trang 4DANH SÁCH HÌNH ẢNH
Hình 1-1: Sơ đồ khối bộ ALU 5
Hình 2-1: Khối ALU 4 bit 7
Hình 2-2: Khối ADD 4 bit 7
Hình 2-3: Khối ADD 1 bit 7
Hình 2-4: Khối AND 4 bit 8
Hình 2-5: Khối AND 1 bit 8
Hình 2-6: Khối OR 4 bit 9
Hình 2-7: Khối OR 1 bit 9
Hình 2-8: Khối XOR 4 bit 9
Hình 2-9: Khối XOR 1 bit 10
Hình 2-10: Khối control 10
Hình 2-11: Fie lab_rtl.flist 10
Hình 2-12: File lab_ben.flist 10
Hình 2-13: File Makefile 11
Hình 2-14: File testtop.v 11
Hình 2-15: Kết quả ở terminal sau khi make 12
Hình 2-16: Kết quả dạng sóng của thiết kế 12
Hình 2-17: File dc_command.src 13
Hình 2-18: File report.area 16
Hình 2-19: File report.timing 16
Hình 6-1: Nơi chứa lệnh vlogan & vcs 21
Trang 51 Tổng quan lý thuyết
1.1 Thiết kế cấp độ Speccification
a Sơ đồ khối bộ ALU
Hình 1-1: Sơ đồ khối bộ ALU
Trang 6b Cách thức hoạt động của bộ ALU - Khối input:
o A, B: 2 dữ liệu đầu vào 4 bit
o Cmd: Tín hiệu control 2 bit,
- Khối xử lý:
o Khối cộng 4 bit
o Khối and 4 bit
o Khối or 4 bit o Khối xor 4 bit
c Ý tưởng thực thi thiết kế
- Việc đầu tiên là hình thành sơ đồ khối của thiết kế
- Viết các khối xử lý đơn giản add_1bit, and_1bit, or_1bit, xor_1bit
- Viết các khối xử lý lớn add_4bit, and_4bit, or_4bit, xor_4bit từ các khối
Trang 7Module ALU (TOP)
Các module tính toán
Chọn output theo tín hiện cmd
Hình 2-1: Khối ALU 4 bit
- Khối tính toán ADD: bằng cách ghép 4 khối adder_1bit lại với nhau
Module add
4 bitModule add
1 bit
Hình 2-2: Khối ADD 4 bit
Hình 2-3: Khối ADD 1 bit
Trang 8- Khối tính toán AND: bằng cách ghét 4 khối and_1bit lại với nhau (chú thích tương
tự khối ADD)
Hình 2-4: Khối AND 4 bit
Hình 2-5: Khối AND 1 bit
- Khối xử lý OR: bằng cách ghét 4 khối or_1bit lại với nhau (chú thích tương tự khối ADD)
Trang 10Hình 2-9: Khối XOR 1 bit
- Khối control: chúng ta assign để chọn giá trị đầu ra phù hợp
Trang 11Hình 2-13: File Makefile
2.3 Kiểm định RTL
2.3.1 File testtop.v
Hình 2-14: File testtop.v
- Set input, gọi module alu_4bit
- Test đầy đủ các trường hợp bằng cách thay đổi biến cmd từ 00 01 10 11
Trang 122.3.2 Kết quả hiển thị ở terminal sau khi make
Hình 2-15: Kết quả ở terminal sau khi make
- Cột đầu tiên là delay của từng trường hợp
hiện phép OR o Cmd: 11 thực hiện phép XOR
- Kết quả mô phỏng được thể hiện ở hình bên dưới
- Phần bên trái là các biến của thiết kế: input, output, biến tạm, …
- Phần bên trái kết quả dạng sóng thể hiện ở dạng nhị phân
Hình 2-16: Kết quả dạng sóng của thiết kế
Trang 132.4.1 File dc_command.src
Hình 2-17: File dc_command.src
Giải thích file dc_command.src [1]
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,
Target_library Chọn 1 thư viện để thực thi cho thiết kế (Công nghệ
65mn, Vth: high voltage threshold, Process: fastfast, Voltage: 1.32V, Temperature: 0oC) và chọnfile dạng mã hóa nhị phân
Trang 14Analyse –format Phân tích các khối verilog cụ thể vừa tạo và trả về(định dạng file kiểu kết quả mẫu vào thư viện cụ thể có dạng specializeverilog or vhdl) và alaborate có khả năng kết hợp của toàn thiết kế
Elaborate Tạo thiết kế từ định dạng trung gian của moduledesign_name Verilog, thực thể và kiến trúc VHDL hoặc VHDL
hiện tạiReport_timing Hiển thị thông tin timing cho thiết kế hiện tạiReport_constraint Hiển thị các ràng buộc của thiết kế
Reprort_qor Hiển thị thông tin QoR và statistics của design
(timing path groups, DRV, tổng cell, area,constrains,
Trang 15Tổng thể khối ALU:
tên, input, output
Trang 162.4.3 File reports
2.4.3.1 Report.area
Thư viện được sử dụng
Tổng diện tích cổng tổ hợp Tổng diện tích của inverter/buffer
………
Hình 2-18: File report.area
2.4.3.2 Report.timing
Điểm đầu, điểm cuối của 1 timing path
Path group: Nhóm clock
Path type: max (tính setup), min (hold)
Tên của cell trong design
Total delay: cell delay + net delay
Lib_cell
Hình 2-19: File report.timing
Delay cộng dồn qua từng phần tử Rise or Fall
Trang 1721 22
-23
24 Cell Count
25
Trang 1843 Buf/Inv Area: 10.080000
58 59
70 Overall Compile Wall Clock Time: 10.86
Trang 19- 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
3.2 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
4 Phục lục
5 Tài liệu tham khảo
- Synthesis Tool Commands (DC_Tool_Commands) [1]
- Tài liệu hướng dẫn thí nghiệm Quy trình thiết kế vi mạch số
6 Câu hỏi lý thuyết
6.1 Phân biệt các tool trong RTL
Trang 206.2 Giải thích ý nghĩa
Vlogan - VCS cung cấp cho chúng ta các tập lệnh vlogan để phân tích
code thiết kế VHDL và Verilog Vlogan phân tích thiết kế vàlưu trữ các tệp trung gian trong thiết kế hoặc thư viện làmviệc
o –full64: Phân tích thiết kế với mô phỏng 64bit
o –work library: ánh xạ tên thư viện thiết kế vào tên thư
viện logic WORK Library là đường dẫn vật lý tưngứng với tên thư viện logic được xác định trong setupfile
o –f filename: xác định file chứa danh sách các file
verilog
o –l filename: xác định log file nơi là VCS ghi lại các
lịch sử các dòng lệnh và kết quả dòng lệnh đã đượcthực thi
o –full64: Phân tích thiết kế với mô phỏng 64bit
o –R: RIG options
o –debug_access: cho phép gỡ lỗi sau quá trình
o –f filename: chỉ định một tệp chưa danh sách tên
đường dẫn đến các tệp nguồn và các tùy chọn thời gianbiên dịch
o –l filename: xác định log file nơi là VCS ghi lại cáclịch sử các dòng lệnh và kết quả dòng lệnh đã đượcthực thi
Trang 21- Những lệnh này nằm ở SP2/bin
/home/albert/MyPrograms/synopsys/M-2017.03-Hình 6-1: Nơi chứa lệnh vlogan & vcs
- Một số lệnh Synopsys hỗ trợ: vmmgen, plato, vcat, rvmgen …
6.4 Đầu vào và đầu ra của Synthesis
- Đầu vào: thư viện (<file>.db), RTL verilog code (<file> v), constrains (<file>.txt)
- Đầu ra: Verilog primitive (<file> v), Timing information (<file>.sdf), DC compiler report (<file>.log), Synthesis database (<file> ddc)