QUY TRÌNH THIẾT KẾ & SẢN XUẤT VI MẠCH BÁO CÁO LAB 1 THIẾT KẾ BỘ ALU đề tài QUY TRÌNH THIẾT KẾ & SẢN XUẤT VI MẠCH BÁO CÁO LAB 1 THIẾT KẾ BỘ ALU
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ
-o0o -
QUY TRÌNH THIẾT KẾ
& SẢN XUẤT VI MẠCH BÁO CÁO LAB 1 THIẾT KẾ BỘ ALU
GVHD: PGS.TS Hoàng Trang TGHD: Đỗ 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
2 Phạm Đăng Long 1812930 long.phambkforever@hcmut.edu.vn 0905439867
3 Trần Văn Thành 1814035 thanh.tran.432@hcmut.edu.vn 0375688146
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,
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 đơn giản
- Viết khối ALU dựa vào input và chọn output từ tín hiệu điều khiển cmd
o Biến tạm: S_add; S_and; S_or; S_xor cho 4 khối tính toán
o S cuối cùng dựa vào giá trị cmd để assign
Trang 7Hì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
Hình 2-2: Khối ADD 4 bit
Hình 2-3: Khối ADD 1 bit
Các module tính toán Module ALU (TOP)
Chọn output theo tín hiện cmd
Module add
4 bit Module 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 11- 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
- 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 13Search_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: fast fast, Voltage: 1.32V, Temperature: 0oC) và chọn file dạng mã hóa nhị phân
Trang 14Command
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ế
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
Current_design Thiết kế hiện tại Compile_ultra Cpmpile: 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) Report_area Hiển thị thông tin area cho design hoặc instance
hiện tại Report_timing Hiển thị thông tin timing cho thiết kế hiện tại Report_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 152.4.2 File ALU sau khi Synthesis
Tổng thể khối ALU:
tên, input, output
Trang 16………
Đ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)
Total delay: cell delay + net delay
Delay cộng dồn qua từng phần tử
Rise or Fall
Tên của cell trong design
Lib_cell
Trang 172.4.3.3 Report.qor
1
2 ****************************************
3 Report : qor
4 Design : alu_4bit
5 Version: L-2016.03-SP1
6 Date : Sat Oct 9 09:56:41 2021
7 ****************************************
8
9
10 Timing Path Group (none)
11 -
12 Levels of Logic: 7.00 13 Critical Path Length: 0.36 14 Critical Path Slack: uninit 15 Critical Path Clk Period: n/a 16 Total Negative Slack: 0.00 17 No of Violating Paths: 0.00 18 Worst Hold Violation: 0.00 19 Total Hold Violation: 0.00 20 No of Hold Violations: 0.00 21 -
22 23 24 Cell Count 25 -
26 Hierarchical Cell Count: 0
27 Hierarchical Port Count: 0
28 Leaf Cell Count: 39
29 Buf/Inv Cell Count: 7
30 Buf Cell Count: 0
31 Inv Cell Count: 7
32 CT Buf/Inv Cell Count: 0
33 Combinational Cell Count: 39
34 Sequential Cell Count: 0
35 Macro Count: 0
36 -
37 38 39 Area 40 -
41 Combinational Area: 93.599999
42 Noncombinational Area: 0.000000
Trang 1843 Buf/Inv Area: 10.080000
44 Total Buffer Area: 0.00
45 Total Inverter Area: 10.08
46 Macro/Black Box Area: 0.000000
47 Net Area: 0.000000
48 -
49 Cell Area: 93.599999 50 Design Area: 93.599999 51 52 53 Design Rules 54 -
55 Total Number of Nets: 49
56 Nets With Violations: 0
57 Max Trans Violations: 0
58 -
59 60 61 Hostname: localhost.localdomain 62 63 Compile CPU Statistics 64 -
65 Resource Sharing: 0.01 66 Logic Optimization: 0.11 67 Mapping Optimization: 1.30 68 -
69 Overall Compile Time: 8.07 70 Overall Compile Wall Clock Time: 10.86 71 72 -
73 74 Design WNS: 0.00 TNS: 0.00 Number of Violating Paths: 0 75 76 77 Design (Hold) WNS: 0.00 TNS: 0.00 Number of Violating Paths: 0 78 79 -
Trang 193 Kết luận
3.1 Nhận xét
- 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
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]
- VCS® MX/VCS MXi™ User Guide [2]
- 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àm việ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 setup file
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 đã được thự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 gian biên dịch
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 đã được thực thi
Trang 216.3 Bonus
- 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)
-Hết -