Tải bản đầy đủ (.pdf) (21 trang)

QUY TRÌNH THIẾT KẾ & SẢN XUẤT VI MẠCH BÁO CÁO LAB 1 THIẾT KẾ BỘ ALU

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.12 MB, 21 trang )

ĐẠ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Ộ 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 Hồng Trang
TGHD: Đỗ Quang Thịnh
NTH: Nhóm 9

TPHCM, THÁNG 9 NĂM 2021


2

Quy trình thiết kế và sản xuất vi mạch

Lab1:Thiết kế bộ ALU

DANH SÁCH THÀNH VIÊN NHÓM 9
Stt

Họ và tên

MSSV

Email



Sdt

1

Nguyễn Thái Nguyên (Nhóm trưởng)

1712386

0977331297

2

Phạm Đăng Long

1812930



0905439867

3

Trần Văn Thành

1814035



0375688146



3

Quy trình thiết kế và sản xuất vi mạch

Lab1:Thiết kế bộ ALU

MỤC LỤC
1

Tổng quan lý thuyết ..................................................................................................... 5
1.1

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

3


Thiết kế cấp độ Speccification ......................................................................................... 5

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

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


4

Quy trình thiết kế và sản xuất vi mạch

Lab1:Thiết kế bộ ALU


DANH 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


5

Quy trình thiết kế và sản xuất vi mạch

1 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

Lab1:Thiết kế bộ ALU


6

Quy trình thiết kế và sản xuất vi mạch

Lab1:Thiết kế bộ ALU

b. 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

-


Khối output:
o Cmd = 00: Ngõ ra là phép cộng A + B.
o Cmd = 01: Ngõ ra là phép A AND B (A&B)
o Cmd = 10: Ngõ ra là phép A OR B (A|B)
o Cmd = 11: Ngõ ra là phép A XOR B (A^B)

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.

2 Thực hiện thiết kế
2.1 Mạch thiết kế cấp cổng dùng Verilog
-

Khối ALU tổng thể:
o Input:

 X, Y: 4 bit
 Cmd: 2 bit
o Output:
 S: 4 bit
 ol (overlow) 1 bit.
o Biến tạm: S_add; S_and; S_or; S_xor cho 4 khối tính tốn.
o S cuối cùng dựa vào giá trị cmd để assign.


7

Quy trình thiết kế và sản xuất vi mạch

Lab1:Thiết kế bộ ALU

Module ALU (TOP)

Các module tính tốn

Chọn output theo tín hiện cmd

Hình 2-1: Khối ALU 4 bit

-

Khối tính tốn ADD: bằng cách ghép 4 khối adder_1bit lại với nhau.
Module add
4 bit
Module add
1 bit


Hình 2-2: Khối ADD 4 bit

Hình 2-3: Khối ADD 1 bit


8

Quy trình thiết kế và sản xuất vi mạch

-

Lab1:Thiết kế bộ ALU

Khối tính tố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)


9

Quy trình thiết kế và sản xuất vi mạch


Lab1:Thiết kế bộ ALU

Hình 2-6: Khối OR 4 bit

Hình 2-7: Khối OR 1 bit

-

Khối tính tốn XOR: bằng cách ghét 4 khối xor_1bit lại với nhau (chú thích
tương tự khối ADD)

Hình 2-8: Khối XOR 4 bit


10

Quy trình thiết kế và sản xuất vi mạch

Hình 2-9: Khối XOR 1 bit

-

Khối control: chúng ta assign để chọn giá trị đầu ra phù hợp.

Hình 2-10: Khối control

2.2 Mơi trường làm việc
2.2.1


File set_env.bash:

export WORKAREA="/home/albert/Desktop/Lab1_HW"
2.2.2

File lab_rtl.flist:

Hình 2-11: Fie lab_rtl.flist

2.2.3

File lab_ben.flist:

Hình 2-12: File lab_ben.flist

Lab1:Thiết kế bộ ALU


11

Quy trình thiết kế và sản xuất vi mạch
2.2.4

Lab1:Thiết kế bộ ALU

File Makefile:

Hì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.


12

Quy trình thiết kế và sản xuất vi mạch
2.3.2

Lab1:Thiết kế bộ ALU

Kết quả hiển thị ở terminal sau khi make

Hình 2-15: Kết quả ở terminal sau khi make

-

2.3.3

-

Cột đầu tiên là delay của từng trường hợp.

Cột thứ 2:
o Cmd: 00 thực hiện phép ADD.
o Cmd: 01 thực hiện phép AND.
o Cmd: 10 thực hiện phép OR.
o 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).
Cột thứ 6: giá trị output S.
Dạng sóng của thiết kế

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ế


13

Quy trình thiết kế và sản xuất vi mạch

Lab1:Thiết kế bộ ALU

2.4 Synthesis
2.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,
….

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.


14

Quy trình thiết kế và sản xuất vi mạch

Lab1:Thiết kế bộ ALU

Analyse –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 specialize

verilog or vhdl)

và alaborate có khả năng kết hợp của tồn thiết kế.

Elaborate

Tạo thiết kế từ định dạng trung gian của module

design_name

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à

Command

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,


15

Quy trình thiết kế và sản xuất vi mạch
2.4.2

Lab1:Thiết kế bộ ALU

File ALU sau khi Synthesis

Tổng thể khối ALU:
tên, input, output



16

Quy trình thiết kế và sản xuất vi mạch
2.4.3

Lab1:Thiết kế bộ ALU

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)

Total delay: cell
delay + net delay

Delay cộng dồn
qua từng phần tử


Rise or Fall
Lib_cell

Tên của cell
trong design

Hình 2-19: File report.timing


17

Quy trình thiết kế và sản xuất vi mạch
2.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

Lab1:Thiết kế bộ ALU


18

Quy trình thiết kế và sản xuất vi mạch
43
44
45
46
47
48
49
50
51
52
53
54

55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79

Buf/Inv Area:
10.080000
Total Buffer Area:
0.00

Total Inverter Area:
10.08
Macro/Black Box Area:
0.000000
Net Area:
0.000000
----------------------------------Cell Area:
93.599999
Design Area:
93.599999

Design Rules
----------------------------------Total Number of Nets:
49
Nets With Violations:
0
Max Trans Violations:
0
-----------------------------------

Hostname: localhost.localdomain
Compile CPU Statistics
----------------------------------------Resource Sharing:
0.01
Logic Optimization:
0.11
Mapping Optimization:
1.30
----------------------------------------Overall Compile Time:
8.07

Overall Compile Wall Clock Time: 10.86
-------------------------------------------------------------------Design WNS: 0.00 TNS: 0.00 Number of Violating Paths: 0

Design (Hold) WNS: 0.00 TNS: 0.00 Number of Violating Paths: 0
--------------------------------------------------------------------

Lab1:Thiết kế bộ ALU


19

Quy trình thiết kế và sản xuất vi mạch

Lab1:Thiết kế bộ ALU

3 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 tố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
Chức năng
Mơ phỏng RTL
Xem dạng sóng RTL
Synthesis RTL

Tool
VCS
DVE
DC


20


Quy trình thiết kế và sản xuất vi mạch

Lab1:Thiết kế bộ ALU

6.2 Giải thích ý nghĩa
Commands

Giải thích [2]

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.

Vcs


-

Fsdg
o
o
o
o

o

–full64: Phân tích thiết kế với mô phỏng 64bit
–R: RIG options.
–debug_access: cho phép gỡ lỗi sau quá trình
–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.
–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


21

Quy trình thiết kế và sản xuất vi mạch

Lab1:Thiết kế bộ ALU

6.3 Bonus
-


Những lệnh này nằm ở /home/albert/MyPrograms/synopsys/M-2017.03SP2/bin

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-------------------



×