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

Tự động hóa việc ra các bộ tính toán số học trong việc prototype với công nghệ FPGA

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 (7.46 MB, 197 trang )

Đại Học Quốc Gia Tp. Hồ Chí Minh
TRƯỜNG ĐẠI HỌC BÁCH KHOA

VÕ MINH VINH

TỰ ĐỘNG HÓA VIỆC TẠO RA CÁC BỘ
TÍNH TỐN SỐ HỌC TRONG VIỆC
PROTOTYPE VỚI CƠNG NGHỆ FPGA
Chun ngành KHOA HỌC MÁY TÍNH

LUẬN VĂN THẠC SĨ

TP. HỒ CHÍ MINH, tháng 11 năm 2008


2

CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI
TRƯỜNG ĐẠI HỌC BÁCH KHOA
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
Các bộ hướng dẫn khoa học : TS. ĐINH ĐỨC ANH VŨ / Đại học Bách
Khoa Tp.HCM
Cán bộ chấm nhận xét 1 : TS. TRẦN VĂN HỒI / Khoa KH & KT Máy
tính, Đại học Bách Khoa Tp.HCM
Cán bộ chấm nhận xét 2 : TS. NGUYỄN VŨ LƯU / Giám đốc kỹ thuật Cty
TNHH ALTERA Việt Nam

Luận văn thạc sĩ được bảo vệ tại HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN
THẠC SĨ
TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày 21 tháng 02 năm 2009



3

TRƯỜNG ĐẠI HỌC BÁCH KHOA
PHÒNG ĐÀO TẠO SĐH
------------------------------

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
ĐỘC LẬP – TỰ DO – HẠNH PHÚC
----------------------------------------

Tp. HCM, ngày

tháng

năm 2008

NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: VÕ MINH VINH
Ngày, tháng, năm sinh: 21/08/1968
Chuyên ngành: Khoa Học Máy Tính

Phái: nam
Nơi sinh: Tp Hồ Chí Minh
MSHV: 00706732

I. TÊN ĐỀ TÀI:
Tự động hóa việc tạo ra các bộ tính tốn số học trong việc prototype với
cơng nghệ FPGA
II. NHIỆM VỤ VÀ NỘI DUNG:

Xây dựng chương trình tạo ra các bộ tính tốn số học (adder, substractor,
multiplier, divider) có cấu trúc, tham số và kích thước theo yêu cầu.
Module tạo ra sử dụng hiệu quả tài nguyên FPGA. Tham số đầu vào là kích
thước các tốn hạng, cấu trúc bộ tính tốn số học,... Module tạo ra có thể là
netlist hoặc Verilog code có khả năng tổng hợp để có thể tích hợp vào các EDA
tools.
III. NGÀY GIAO NHIỆM VỤ: 21/01/2008
IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 30/11/2008

V. CÁN BỘ HƯỚNG DẪN: TS. ĐINH ĐỨC ANH VŨ
CÁN BỘ HƯỚNG DẪN

CN BỘ MÔN
QL CHUYÊN NGÀNH

Nội dung và đề cương luận văn thạc sĩ đã được Hội đồng chuyên ngành thơng qua.
TRƯỞNG PHỊNG ĐT-SĐH

Ngày
tháng
năm 2008
TRƯỞNG KHOA QL NGÀNH


4

LỜI CẢM ƠN
Trước tiên tơi xin được bày tỏ lịng biết ơn sâu sắc về sự giúp đỡ của
TS. Đinh Đức Anh Vũ. Trong suốt quá trình nghiên cứu và thực hiện
luận văn, tôi luôn nhận được sự hướng dẫn tận tình của thầy.

Tơi xin chân thành cảm ơn các thầy cơ trong Khoa Khoa Học và Kỹ
Thuật Máy Tính đã giảng dạy trong suốt khóa học cao học giúp tơi mở
rộng kiến thức và nâng cao trình độ chun mơn.
Bên cạnh đó, tơi cảm ơn sự trợ giúp, động viên to lớn về mặt vật chất
cũng như tinh thần của gia đình, người thân, bạn bè và đồng nghiệp.
Thành Phố Hồ Chí Minh, tháng 11 năm 2008
Võ Minh Vinh


5

TÓM TẮT LUẬN VĂN THẠC SĨ
Mật độ và số lượng các cổng logic trong IC ngày càng cao và vượt qua mức độ khai
thác sử dụng chúng. Để có thể theo kịp, tận dụng được tốc độ phát triển của sự co
rút hình học ngày càng nhỏ của vi mạch và đẩy nhanh thiết kế, rút ngắn đáng kể
thời gian từ thiết kế ra thị trường của sản phẩm, giải pháp sử dụng FPGA cho
prototyping như là một giai đoạn quan trọng của phương pháp luận kiểm tra và thiết
kế vi mạch tự động ngày nay. Giải pháp này hiệu quả vì làm giảm các rủi ro do chi
phí phát triển thiết kế ngày càng tăng, giảm các rủi ro do đặc tính sản phẩm và sự
chấp nhận của thị trường.
Ngoài ra, các vật dụng, thiết bị quen thuộc hàng ngày có xu hướng được tích hợp
thêm các khả năng thông minh, hoặc tự điều khiển, xử lý (như là các thiết bị nghe
nhạc MP3). Các chip IC xử lý được lắp vào chúng và các bộ tính tốn số học là
phần cốt lõi của các chip này.
Luận văn nghiên cứu phương pháp thiết kế prototype với công nghệ FPGA trong
thiết kế vi mạch tự động. Đó là phương pháp thiết kế vi mạch semicustom trên các
FPGA ở các bước thiết kế mô tả cấp cao, mô tả chức năng và thực hiện tổng hợp
cấp cao, tổng hợp logic, ánh xạ công nghệ và thiết kế vật lý trên FPGA.
Mục tiêu của đề tài là xây dựng chương trình tạo ra các bộ tính tốn số học (adder,
substractor, multiplier, divider) có cấu trúc, tham số và kích thước theo u cầu.

Các module tạo ra phải đạt yêu cầu sử dụng hiệu quả tài nguyên FPGA. Tham số
đầu vào của chương trình là kích thước các tốn hạng, cấu trúc bộ tính tốn số
học,... Module tạo ra có thể là các đặc tả dạng netlist hoặc Verilog code mà có khả
năng tổng hợp để có thể tích hợp vào các EDA tools.
Các thiết kế do chương trình tạo ra được biên dịch (tổng hợp) thành mạch và giả lập
kiểm tra chức năng trên các FPGA.
Phương pháp chủ yếu bao gồm việc nghiên cứu và xây dựng một cách tự động các
đặc tả Verilog của các bộ tính tốn số học mà xét đến nhiều kiểu cấu trúc khác nhau
và với nhiều tham số. Các cấu trúc này có hiệu suất cao, tận dụng tốt tài nguyên,
thời gian trễ thấp, độ mềm dẻo cao và sử dụng hợp lý các đặc trưng cấu trúc của các
FPGA.
Kết quả của luận văn rất có ý nghĩa cho những người thiết kế vi mạch. Nó giới
thiệu, trình bày một qui trình thiết kế vi mạch hiệu quả và sáng sủa hiện nay và các
thiết kế của bộ tính tốn số học được tạo ra từ chương trình là có ý nghĩa thực tiễn.
Chúng có thể được sử dụng làm các mô đun cho các ứng dụng quan trọng khác. Các
bộ tính tốn số học là bộ phận cốt lõi của các bộ vi xử lý.


6

MỤC LỤC
Mở đầu

10

1. Đặt vấn đề
2. Mục tiêu của đề tài

Những nghiên cứu lý thuyết


13

KIỂU THIẾT KẾ PROTOTYPE VỚI CÔNG NGHỆ FPGA 14
1. Qui trình thiết kế vi mạch
1.1 Các kỹ thuật bán dẫn, nguyên tắc phân loại mạch
1.2 Các sản phẩm IC
1.3 Vi mạch tích hợp chuyên dụng (ASIC)
1.4 Phân loại ASIC
1.5 Các loại thiết kế vi mạch & phương pháp luận thiết kế
1.6 Các pha trong việc chế tạo chip
1.7 Các bước thiết kế IC
1.8 Thiết kế full custom
1.9 Thiết kế ASIC
1.10 Tối ưu hố mạch
1.11 Các mơ hình mạch
1.12 Sự tổng hợp (synthesis)

2. Prototype với cơng nghệ FPGA
2.1 Giới thiệu FPGA
2.2 Các kỹ thuật FPGA
2.3 Tóm tắt FPGA và complex PLD
2.4 FPGA làm việc như thế nào
2.5 Rapid Prototyping với Verilog và FPGA

3. Tổng quan các công trình có liên quan

14
14
14
14

15
17
18
18
19
19
20
21
22
24
24
25
26
26
29
31

3.1 Sử dụng ASIC prototyping để giảm các rủi ro [Ou05]
31
3.1.1 Các phạm vi rủi ro
32
3.1.2 Các lợi thế của ASIC Prototyping với FPGA
32
3.1.3 Các trở ngại trong quá khứ và các tiến bộ lớn khắc phục được 33
3.1.4 Phương pháp ba pha cho prototyping
33
3.2 Số học trên FPGA [CCL04]
34
3.2.1 Các thiết kế các bộ số học trên FPGA
34

3.2.2 Field-Programmable Gate Array (FPGA)
35
3.3 Prototyping trên PC với phần cứng lập trình [ON97]
35
Bộ cộng 2k-block 16-bit trên FPGA
36
3.4 Thực hiện bộ cộng digit-serial trên XC4000 FPGA
37
3.4.1 Số học digit-serial (Digit-Serial Arithmetic)
37
3.4.2 Các thực hiện bộ cộng/trừ trên FPGA
37


7

CÁC BỘ TÍNH TỐN SỐ HỌC

40

1. BỘ CỘNG / BỘ TRỪ

40
40
40
40
41
41
43


1.1 Ripple-carry
1.1.1 Bộ cộng bán phần (HA)

1.1.2 Bộ cộng toàn phần (FA)
1.1.3 Bộ cộng ripple-carry (RCA)
1.1.4 Delay trong mạch số
1.1.5 Condition và exception
1.1.6 Sự dị tìm đầy đủ carry (carry completion detection)
1.2 Carry-lookahead
1.2.1 Khai triển truy hồi carry (carry recurrence)
1.2.2 Carry-lookahead đa mức
1.2.3 Latency của bộ cộng carry-lookahead đa mức
1.3 Parallel Prefix Networks
1.3.1 Kết hợp các tín hiệu khối g và p
1.3.2 Prefix Computation
1.3.3 Lập cơng thức bài tốn Prefix Computation
1.3.4 Alternative Parallel Prefix Networks
1.3.5 Cấu trúc đệ qui Brent-Kung
1.3.6 Brent-Kung carry network (8-bit adder)
1.3.7 Kogge-Stone carry network (16-bit adder)
1.3.8 Speed-Cost Tradeoff trong các carry network
1.3.9 Carry Network là cần thiết cho bộ cộng nhanh
1.4 Các biến thể trong các bộ cộng nhanh
1.4.1 Simple Carry-Skip
1.4.2 Carry-Skip đa mức
1.4.3 Carry-Select
1.3.4 Conditional Sum
1.5 Các thiết kế bộ cộng lai (hybrid adder)
1.5.1 Carry-lookahead và carry-select
1.5.2 Ripple-carry và carry-lookahead

1.6 Tối ưu hoá trong các bộ cộng nhanh
1.7 Phép cộng nhiều toán hạng
1.7.1 Thực hiện song song bằng bộ cộng cây
1.7.2 Bộ cộng carry-save
1.7.3 Phép cộng nhiều toán hạng sử dụng bộ cộng carry-save
1.7.4 Phép cộng nhiều toán hạng – Wallace tree và Dadda tree
1.7.5 Phép cộng nhiều số có dấu
1.8 Phép cộng trong hệ thống số bù 2 (nhắc lại)
1.8.1 Sự biểu diễn số bù 2
1.8.2 Phép cộng trong hệ thống số bù 2

44

45
45
46
47
48
48
48
49
49
50
50
51
51
52
52
52
54

54
56
57
57
58
58
59
59
60
60
60
62
62
62
63


8

1.8.3 Tại sao số bù 2 là lựa chọn phổ biến
1.8.4 Sự mở rộng phạm vi và độ chính xác trong số bù 2

2. BỘ NHÂN
2.1 Giải thuật nhân Shift/Add cơ số 2
2.2 Các bộ nhân phần cứng cơ bản
2.3 Phép nhân của các số có dấu
2.4 Giải thuật nhân Shift/Add cơ số r
2.5 BỘ NHÂN CÂY VÀ MẢNG
2.5.1 Bộ nhân cây toàn phần
2.5.2 Bộ nhân cây cho các số có dấu

2.5.3 Bộ nhân mảng

3. BỘ CHIA
3.1 Giải thuật chia shift/subtract
3.2 Bộ chia mảng

Trình bày, đánh giá, bàn luận các kết quả
1. Giới thiệu chương trình tạo các bộ tính tốn số học
1.1 Chức năng chương trình
1.2 Các loại cấu trúc bộ cộng và bộ trừ
1.2.1 Các loại cấu trúc bộ cộng, bộ trừ và phạm vi kích thước
1.2.2 Giải thích các cổng và các tham số của bộ cộng, bộ trừ
1.3 Các loại cấu trúc bộ nhân và bộ chia
1.3.1 Các loại cấu trúc bộ nhân, bộ chia và phạm vi kích thước
1.3.2 Giải thích các cổng và các tham số của bộ nhân, bộ chia
1.4 Cơ chế hoạt động của chương trình tạo bộ tính tốn số học
1.5 Chạy chương trình, giao diện và thao tác

2. Xây dựng view cấu trúc của các bộ tính tốn số học
2.1 Bộ cộng cây nhiều toán hạng
2.2 Bộ nhân cây
2.3 Bộ nhân mảng
2.4 Các xây dựng phát triển của bộ cộng

3. Verilog code, RTL view của các bộ tính tốn số học
3.1 Bộ cộng ripple-carry
3.2 Bộ cộng carry-lookahead
3.3 Bộ cộng Brent-Kung
3.4 Bộ cộng Kogge-Stone
3.5 Bộ cộng carry-skip

3.6 Bộ cộng carry-select
3.7 Bộ cộng conditional-sum

63
63
64
64
65
66
68
70
70
73
75
77
77
80
81
82
82
82
82
83
84
84
84
85
85
91
91

94
97
97
99
99
101
113
118
121
124
128


9

3.8 Bộ cộng Hybrid carry-lookahead / carry-select
3.9 Bộ cộng Hybrid ripple-carry / carry-lookahead
3.10 Bộ cộng cây 3 tốn hạng khơng dấu
3.11 Bộ cộng cây 3 tốn hạng có dấu bù 2
3.12 Bộ cộng cây 4/5/6/7 tốn hạng khơng dấu
3.13. Bộ cộng/trừ với các thanh ghi
3.14. Bộ nhân mảng không dấu và có dấu bù 2
3.15. Bộ nhân cây 9x9 khơng dấu và có dấu bù 2
3.16. Bộ chia tuần tự (shift/subtract) khơng dấu restoring
3.17. Các mơ đun trích từ Altera (phụ lục)

4. Giả lập kiểm tra chức năng với các FPGA
4.1 Bộ cộng hai toán hạng
4.2 Bộ cộng cây nhiều toán hạng
4.3 Bộ nhân cây và mảng

4.4 Bộ chia

5. Kết quả tiết kiệm tài nguyên khi dùng tham số FPGA

Kết luận và hướng phát triển
Danh mục tài liệu tham khảo
Phụ lục
1. Các họ FPGA của Altera Corporation
1.1 Cyclone III
1.1.1 Các đặc trưng thiết bị
1.1.2 Kiến trúc thiết bị
1.1.3 Các phần tử logic (Logic Element)
1.1.4 Các khối logic array
1.2 Stratix III
1.2.1 Các đặc trưng thiết bị
1.2.2 Các đặc trưng kiến trúc
1.2.3 Adaptive Logic Modules và các mode hoạt động của ALM
1.2.4 Các khối DSP

2. Ngôn ngữ mô tả phần cứng VERILOG HDL
2.1 Verilog là gì ?
2.2 Tại sao dùng Verilog HDL ?
2.3 Verilog HDL mô tả cấu trúc và hành vi của mạch

3. Giới thiệu Quartus II cho người sử dụng Verilog
3.1 Tạo mới một project
3.2 Setting window (cửa sổ cài đặt)
3.3 Biên dịch & tạo netlist view
3.4 Chạy giả lập (simulation)


130
134
141
143
144
148
149
154
159
161
164
164
166
167
168
168
169
171
173
174
174
174
174
175
178
180
180
180
183
187

189
189
190
191
192
193
195
196
196


10

MỞ ĐẦU


11

1. Đặt vấn đề
Thiết kế vi mạch tự động là một lãnh vực mới mẻ, phát triển nhanh chóng, nhiều
thách thức là mũi nhọn công nghệ cực kỳ chiến lược trong nền công nghiệp hiện
đại của thế giới. Sản phẩm IC có mặt trong hầu hết các vật dụng, thiết bị điện,
điện tử. Nó đóng vai trị chủ yếu trong sự phát triển công nghệ thông tin, truyền
thông, đo lường, điều khiển tự động, hàng không, giao thông vận tải,.... Ngày
nay, cơng nghệ mạch tích hợp ngày càng có những tiến bộ nhanh chóng trong
việc nâng cao tốc độ hoạt động và mật độ cổng logic của thiết bị. Độ tích hợp
ngày càng cao, tạo ra nhiều cơ hội mới để tích hợp nhiều tính năng hơn, mạnh
hơn, nhanh hơn vào trong thiết bị nhỏ hơn nhưng giá thành lại thấp hơn. Kích
thước thiết bị càng bé, hiệu suất hoạt động càng cao và năng lượng tiêu thụ càng
thấp.

Mật độ và số lượng các cổng logic trong IC ngày càng cao và vượt qua mức độ
khai thác sử dụng chúng. Để có thể theo kịp, tận dụng được tốc độ phát triển của
sự co rút hình học ngày càng nhỏ của vi mạch và đẩy nhanh thiết kế, rút ngắn
đáng kể thời gian từ thiết kế ra thị trường của sản phẩm, giải pháp sử dụng
FPGA cho prototyping như là một giai đoạn quan trọng của phương pháp luận
kiểm tra và thiết kế vi mạch tự động ngày nay. Giải pháp này hiệu quả vì làm
giảm các rủi ro do chi phí phát triển thiết kế ngày càng tăng, giảm các rủi ro do
đặc tính sản phẩm và sự chấp nhận của thị trường.
Luận văn nghiên cứu phương pháp thiết kế prototype với công nghệ FPGA trong
thiết kế vi mạch tự động. Đồng thời xây dựng chương trình tạo ra các thiết kế
của các bộ tính tốn số học đang sử dụng hiện nay. Chương trình này phải đáp
ứng được trong một phạm vi rộng nhiều tham số đầu vào. Các thiết kế do
chương trình tạo ra sẽ được biên dịch thành mạch và giả lập kiểm tra chức năng
trên các FPGA. Phương pháp chủ yếu bao gồm việc nghiên cứu và xây dựng các
đặc tả Verilog của các bộ tính tốn số học với nhiều cấu trúc khác nhau. Các cấu
trúc này có hiệu suất cao, tận dụng tốt tài nguyên, thời gian trễ thấp, độ mềm dẻo
cao và sử dụng hợp lý các đặc trưng cấu trúc của các FPGA.
Kết quả của luận văn rất có ý nghĩa cho những người thiết kế vi mạch. Vì nó
giới thiệu, trình bày một qui trình thiết kế vi mạch hiệu quả và sáng sủa hiện nay
và các thiết kế của bộ tính tốn số học được tạo ra từ chương trình là có ý nghĩa
thực tiễn. Chúng có thể được sử dụng làm các mô đun cho các ứng dụng quan
trọng khác. Trong các bộ vi xử lý luôn xuất hiện các bộ tính tốn số học.

2. Mục tiêu của đề tài
Mục tiêu của đề tài là xây dựng chương trình tạo ra các bộ tính tốn số học
(adder, substractor, multiplier, divider) có cấu trúc, tham số và kích thước theo
yêu cầu.


12


Các module tạo ra phải đạt yêu cầu sử dụng hiệu quả tài nguyên FPGA. Tham số
đầu vào của chương trình là kích thước các tốn hạng, cấu trúc bộ tính tốn số
học,... Module tạo ra có thể là các đặc tả dạng netlist hoặc Verilog code mà có
khả năng tổng hợp để có thể tích hợp vào các EDA tools.
Các công việc chủ yếu cụ thể như sau :
- Nghiên cứu qui trình thiết kế phần cứng và phương pháp prototyping FPGA.
- Nghiên cứu và phân tích các cấu trúc của các bộ tính tốn số học được sử
dụng hiện nay.
- Sử dụng ngôn ngữ mô tả phần cứng Verilog HDL để đặc tả các module tạo
ra các bộ tính tốn số học và ứng dụng hiệu quả tài nguyên của FPGA.
- Xây dựng chương trình tạo ra các thiết kế của các bộ tính tốn số học dưới
dạng Verilog HDL code với nhiều tham số khác nhau.
- Sử dụng phần mềm QuartusII để prototyping các thiết kế vi mạch trên các
FPGA một cách mô phỏng (gồm các họ Cyclone, Stratix của Altera) để tạo
ra các sơ đồ netlist và chạy giả lập chức năng.
Các kiến thức cần thiết :
- Ngôn ngữ mô tả phần cứng Verilog HDL
- Phần mềm thiết kế phần cứng Quartus II trên các FPGA.
- Kiến trúc các họ FPGA của hãng Altera.
-oOo-


13

NHỮNG NGHIÊN CỨU LÝ THUYẾT


14


KIỂU THIẾT KẾ PROTOTYPE VỚI FPGA
1. QUI TRÌNH THIẾT KẾ VI MẠCH
1.1 Các kỹ thuật bán dẫn, nguyên tắc phân loại mạch
-

-

-

Các vi mạch điện tử khai thác các đặc tính của vật liệu bán dẫn. Q trình
chế tạo rất phức tạp, sử dụng các loại vật liệu bán dẫn (Silicon, GalliumArsenide). Các họ kỹ thuật mạch chất nền silicon: CMOS (Complementary
Metal Oxide Semiconductor), Bipolar, BiCMOS.
Mạch điện tử phân ra thành mạch analog (tương tự) và mạch digital (số).
Mạch digital phân ra theo chế độ hoạt động: mạch đồng bộ và mạch khơng
đồng bộ.
Vi mạch tích hợp chun dụng ASIC (Application Specific Integrated
Circuits)
Kỹ thuật CAD đóng vai trị làm giảm thời gian thiết kế và tối ưu hoá chất
lượng mạch.

1.2 Các sản phẩm IC
-

Processor: CPU, DSP, Controller.
Memory chip: RAM, ROM, EEPROM.
Analog: dùng trong truyền thông di động, xử lý âm thanh và hình ảnh video.
Programmable (có thể lập trình): PLA, FPGA.
Embedded system (hệ thống nhúng): sử dụng trong xe hơi, network card.
System-on-chip (SoC) (cả hệ thống trên một chip)


1.3 Vi mạch tích hợp chuyên dụng (ASIC)
ASIC (application-specific integrated circuit), là một thuật ngữ chỉ các vi mạch
tích hợp chuyên dụng.
ASIC là một vi mạch được thiết kế dành cho một ứng dụng cụ thể. ASIC ngày
nay được ứng dụng hầu như khắp mọi nơi, ví dụ như vi xử lý của điện thoại di
động, hay chip xử lý trong các máy móc tự động, các phương tiện truyền thơng,
xe cộ, tàu vũ trụ, các hệ thống xử lý, các dây chuyền công nghiệp...
Đối lập với ASIC là các vi mạch tích hợp cho mục đích chung như 7400 series
và 4000 series những vi mạch này có thể liên kết để tạo ra nhiều ứng dụng khác
nhau. Ngồi ra vì tính tương đối của việc phân loại theo mục đích sử dụng mà
cịn có thêm khái niệm application specific standard product (ASSP) – thiết bị
chuẩn cho ứng dụng đặc biệt, chỉ đến những vi mạch nằm giữa hai khái niệm
ASIC và vi mạch tích hợp cho mục đích chung.
ASIC được chế tạo trên miếng silicon trịn, mỏng có nhiều lớp (10 ~ 15 lớp),
một nửa số lớp dùng cho việc xác định các transistor và các lớp còn lại xác định
việc đi dây giữa các transistor (interconnect).


15

1.4 Phân loại ASIC
Full custom ASIC : Bao gồm một số logic cell đặc chế (customized) và tất cả
mask layer đặc chế.
Cơng nghệ sản xuất ASIC đặc chế hồn tồn bào hàm tồn bộ các q trình
sản xuất IC, kể cả giai đoạn in khắc bán dẫn quang học (photo lithographic).
Ưu điểm của sản phẩm dạng này là tính tối ưu về diện tích, tăng hiệu suất
làm việc của IC, khả năng tích hợp với các thiết bị tương tự hay các phần tử
thiết kế sẵn khác. Bù lại thì quy trình thiết kế tốn nhiều thời gian, địi hỏi đầu
tư cơ sở vật chất tốn kém cũng như nhân lực với kỹ năng cao.
Semi-custom ASIC : Tất cả logic cell được thiết kế sẵn (predesigned) và một số

mask layer đặc chế.
+ Cell library
Nếu như thư viện logic thường được nhà sản xuất bán dẫn cung cấp miễn
phí thì IP-core (intellectual property core) là các phần tử hoặc của nhà sản
xuất hoặc của bên thứ ba cung cấp mà người dùng phải trả tiền, các phần
thiết kế có thể tồn tại ở dạng “mềm” tức là chỉ có mã HDL mức cao, hay ở
dạng “cứng” tức là toàn bộ sơ đồ thiết kế chi tiết trên một thư viện cụ thể và
sẵn sàng đưa trực tiếp vào quá trình sản xuất bán dẫn.
Tương tự như phần mềm thì với phần cứng cũng xuất hiện cộng đồng mở,
là nơi xây dựng và phổ biến những IP-core miễn phí.
Ví dụ về IP-cores như nhân của bộ vi xử lý, USB module, Ethernet, RAM,
ROM…
+ Standard-cell-based ASIC
Thư viện phần tử logic chuẩn (standard cell library) là thư viện tất cả các
phần tử cơ bản tạo thành vi mạch như logic AND, OR, XOR… kèm theo
các thông số vật lý như thời gian trễ, điện cảm, điện dung… Thư viện này
được định dạng chuẩn cho phép các cơng cụ thiết kế có thể đọc, sau đó sẽ
biên dịch bản thiết kế ra dạng mơ tả chi tiết sử dụng các phần tử của thư
viện chuẩn, gọi là netlist.
Vào cuối thập niên 1980 thì những phần mềm thiết kế dạng như design
compiler của Synopsys được đưa vào sử dụng. Sở dĩ có tên gọi compiler là
do phần mềm này làm việc về nguyên tắc không khác gì một trình biên dịch
thơng thường trên máy tính, thay vì mã viết bằng C, Pascal... thì vi mạch
được viết bằng HDL, cịn thư viện phần tử logic đóng vai trò như tập lệnh
của bộ vi xử lý.
+ Gate-array-based ASIC
Sử dụng mảng logic (gate array) là một phương pháp thiết kế IC. Ở đây
“gate” dùng như một đơn vị để đo khả năng chứa các phần tử logic của vi
mạch bán dẫn.
Một vi mạch dạng này cấu thành từ 2 ~ 5 lớp bán dẫn kim loại, các phần tử

logic được phân bố đều trên các lớp này. Ví dụ ma trận các phần tử OR,


16

AND PAL, PLA, hay trong FPGA là các khối logic lập trình được. Các
phần tử logic chưa được kết nối với nhau, quá trình thiết kế bản chất là lập
trình để kết nối giữa các phần tử logic.
Programmable ASIC : Tất cả logic cell được thiết kế sẵn và không có mask
layer đặc chế.
Vi mạch lập trình dùng mảng logic là một khái niệm rộng bao hàm các thiết
bị như PLA, PAL, CPLD, FPGA.
Ưu điểm của ASIC thiết kế theo kiểu này là chi phí sản xuất rẻ do vi mạch
sản xuất hàng loạt và có cấu trúc tương tự như nhau. Tính linh động của
thiết kế phụ thuộc vào loại mảng logic được sử dụng. Ví dụ vi mạch lập
trình dùng PROM chỉ được lập trình một lần duy nhất trong khi với vi mạch
dùng công nghệ EEROM hay FPGA thì có thể lập trình lại, FPGA cịn cho
phép người thiết kế lập trình lại mà khơng cần cơng cụ đặc biệt nào.
+ Programmable logic device (PLD)
+ Field-programmable gate array (FPGA)


17

1.5 Các loại thiết kế vi mạch & phương pháp luận thiết kế
Custom (đặc chế)
- Thiết kế chức năng và vật lý bằng thủ công, yêu cầu nỗ lực cao của đội thiết kế
tối ưu hoá mỗi nét chi tiết của mạch.
- Sự nỗ lực thiết kế và giá cao.
- Chất lượng mạch cao.

Semicustom (bán đặc chế)
- Hạn chế các nguyên mẫu (primitive) mạch ở một số giới hạn, do đó giảm khả
năng tinh chỉnh tất cả các bộ phận của thiết kế mạch. Sự hạn chế này cho phép
người thiết kế tạo địn bẩy từ các ngun mẫu có thiết kế tốt, đặc tính tốt và tập
trung vào các kết nối giữa chúng.
- Dễ dàng phát triển các công cụ CAD cho thiết kế và tối ưu hoá cũng như giảm
thời gian thiết kế.
- Chất lượng giảm đi rất ít so với custom.
Các phương pháp thiết kế semicustom
- Cell-based : Thiết kế dựa trên các cell.
o Standard cell : Các cell thực hiện chức năng cơ bản, ví dụ: and, or, flip
flop,...
o Macro cell : Các cell mang tính tổng qt được tạo ra tự động, ví dụ: chương
trình tạo ra tự động cổng AND n ngõ nhập.
- Array-based : Thiết kế dựa trên các array (mảng).
Prediffused : Chế tạo từ các wafer có sẵn site, chỉ nối kim loại giữa các site.
Prewired : FPGA (Field Programmable Gate Array).
 LUT (Look up table) có nhiều chức năng cơ bản, lập trình để xác định
chức năng, kết nối các LUT. Dây có sẵn, dùng phần mềm để thiết kế
thành mạch, file.bin đưa vào LUT.
 Có thể lập trình lại nhiều lần.
 Thích hợp với nghiệp dư hoặc các ứng dụng đặc thù.
 Hiệu suất FPGA không cao (do đi dây sẵn). Lập trình để kết nối phải đi
theo các con đường có sẵn (thời gian truyền dẫn lâu)
 Hiện nay FPGA chứa rất nhiều cổng, dung lượng rất lớn, hiệu suất cao.


18

Ví dụ thiết kế full custom (đặc chế hồn tồn)


1.6 Các pha trong việc chế tạo chip
Gồm có các pha thiết kế, kiểm tra, sản xuất và đóng gói

1.7 Các bước thiết kế IC


19

Thiết kế vật lý

Ánh xạ công nghệ

Phương trình
ngõ vào, ngõ xuất

Đóng gói

Tổng hợp logic

Tổng hợp cấp cao

1.8 Thiết kế full custom
-

RTL Description (register-transfer-level) : Mức mô tả các thanh ghi và sự di
chuyển các vectơ thông tin giữa các thanh ghi.
Sắp xếp lại và đi dây : Ràng buộc tối ưu về diện tích và latency.

Sắp xếp lại và đi dây


1.9 Thiết kế ASIC
-

HDL Programming (lập trình mơ tả phần cứng)
Cell library : Thư viện các môđun đã làm sẵn (định nghĩa tốt, đã kiểm tra),
đẩy nhanh thời gian thiết kế, tập trung chất lượng các kết nối.


20

Sắp xếp lại và đi dây
Thư viện chế tạo sẵn

1.10 Tối ưu hoá mạch
 Thường được kết hợp với tổng hợp.
 Đòi hỏi sự chọn lọc số các lựa chọn riêng biệt trong mơ hình đã cho, với mục
tiêu nâng cao một hay nhiều yếu tố các phẩm chất của thiết kế. Gồm có :
+ Hiệu suất
 Thời gian yêu cầu xử lý một số thông tin.
 Số lượng thông tin có thể được xử lý trong khoảng thời gian cho trước.
 Hiệu suất của mạch được tính tốn nhờ vào sự phân tích kiến trúc và
hành vi của mạch. Hiệu suất của mạch logic tổ hợp được đo bằng thời
gian trễ lan truyền giữa input và output (propagation delay), dựa vào
critical path. Hiệu suất của mạch tuần tự đồng bộ được đo bằng chu kỳ
của nó (thời gian của clock nhanh nhất mà có thể áp dụng vào mạch).
Đối với mơ hình mức kiến trúc của mạch với sự thực hiện tuần tự đồng
bộ, hiệu suất được đo bằng latency (thời gian yêu cầu cho thực thi các
tác vụ). Tích số của thời gian chu kỳ và latency xác định toàn bộ thời
gian thực thi. Trong việc thực thi pipeline của mạch đồng bộ, việc đo

hiệu suất là tốc độ mà dữ liệu được sinh ra và được dùng hết
(throughput của mạch). Trong một mạch khơng pipeline, throughput
thì nhỏ hơn (hoặc bằng) nghịch đảo của tích số thời gian chu kỳ và
latency.
+ Diện tích
 Diện tích được đo bằng tổng số các diện tích mạch thành phần.
 Các mạch nhỏ hơn, nhiều mạch hơn trên một wafer nên chi phí sản xuất
thấp hơn.


21




Diện tích chip lớn thì sản lượng chip giảm và chip lớn thì đóng gói đắt
tiền hơn.
Thường các thành phần cơ bản của mạch số là các cổng logic và các
thanh ghi (register) mà diện tích của chúng được biết trước.

+ Khả năng kiểm tra
 Dễ kiểm tra chip sau khi sản xuất.
 Fault coverage : phần trăm lỗi của kiểu được cho mà có thể được dị tìm
bằng tập các vector kiểm tra.
 Tối ưu hóa ở các mức trừu tượng.
+ Kiến trúc (thuộc thuật toán): mã hoá dữ liệu, lập lịch tính tốn (scheduling),
cân bằng thời gian trễ của các thành phần.
+ Logic (mức cổng): giảm fan-out, điện dung, sự nhân đơi gate, sự chèn bộ
đệm.
+ Hình học (thiết kế bố trí / vật lý): di chuyển các cell và gate sao cho đi dây

ngắn nhất trên các tuyến then chốt (critical path). Các dòng tiếp giáp chia sẻ
điện năng hoặc nối đất.
Trong đó việc tối ưu hóa ở mức kiến trúc sẽ mang lại hiệu quả nhiều nhất, kế
tiếp là mức cổng.
Tối ưu hóa thiết kế được xem như là cực tiểu hóa diện tích và cực đại hóa hiệu
suất.

1.11 Các mơ hình mạch
Một mơ hình mạch là một sự biểu diễn mà hiển thị các đặc tính thích đáng mà
khơng có các chi tiết kết hợp. Các mơ hình mạch có thể phân lớp theo thuật ngữ
các mức trừu tượng và view.
1.11.1 Mơ hình các mức trừu tượng
-

Mơ hình mức kiến trúc: tập các tác vụ (tính tốn hoặc truyền dữ liệu), mơ
hình HDL, lược đồ dịng dữ liệu và điều khiển.
Mơ hình mức logic: tập các hàm logic, các lược đồ chuyển trạng thái, các sơ
đồ mạch logic.
Mơ hình mức hình học: tập các thực thể hình học, các sơ đồ tầng (floor-plan),
bản vẽ bố trí (layout).


22

1.11.2 Các view
-

View hành vi: mô tả chức năng của mạch mà khơng quan tâm việc thực hiện
của nó.
View cấu trúc: mơ tả mơ hình như là một sự kết nối của các thành phần.

View vật lý: quan hệ các đối tượng vật lý (ví dụ transistor) của thiết kế.

1.12 Sự tổng hợp (synthesis)
Tổng hợp là sự sinh ra mô hình mạch, bắt đầu từ mức ít chi tiết hơn.
-

-

-

Tổng hợp mức kiến trúc
 Sinh ra view cấu trúc của mơ hình mức kiến trúc.
 Xác định phép gán các chức năng mạch tới các tác vụ (các tài nguyên), sự
liên kết chúng và định thời sự thực hiện của chúng.
 Là tổng hợp mức cao/cấu trúc.
Tổng hợp mức logic
 Sinh ra view cấu trúc của mơ hình
mức logic.
 Thao tác các chi tiết kỹ thuật logic
tạo ra các mô hình logic như là sự
liên kết với nhau các nguyên mẫu
logic.
 Kết nối thư viện, kỹ thuật mapping.
Tổng hợp mức hình học
 Tạo ra view vật lý ở mức vật lý.
 Đòi hỏi chi tiết kỹ thuật của tất cả các mẫu hình học xác định việc bố trí
vật lý của chip và vị trí của chúng.
 Thiết kế vật lý.



23

1.12.1 Sự tổng hợp kiến trúc (architectural synthesis - AS)
-

Mô hình hành vi mức kiến trúc (AS) có thể được trừu tượng như là tập các tác
vụ và các phụ thuộc.

-

AS đòi hỏi định danh các tài nguyên phần cứng mà có thể thực hiện các tác vụ,
lập lịch (scheduling) thời gian thực thi của các tác vụ và kết dính chúng với các
tài ngun.

-

AS xác định mơ hình cấu trúc của tuyến dữ liệu (datapath) (như sự kết nối của các tài ngun) và mơ hình
mức logic của đơn vị điều khiển (control unit).

-

Ví dụ view cấu trúc ở mức kiến trúc :

1.12.2 Sự tổng hợp logic (logic synthesis)
-

Mô hình mức logic của mạch có thể được cung cấp bằng lược đồ chuyển trạng
thái FSM, bằng sơ đồ mạch hoặc mơ hình HDL tương đương. Mơ hình này có
thể do người thiết kế xác định hoặc được tổng hợp từ mơ hình mức kiến trúc.


-

Các nhiệm vụ tổng hợp logic có thể khác nhau tuỳ theo bản chất của mạch
(mạch tuần tự hay tổ hợp) và sự biểu diễn sự bắt đầu (ví dụ lược đồ trạng thái)

-

Ví dụ sau thể hiện view hành vi và view cấu trúc của đơn vị điều khiển ở mức
logic.


24

2. PROTOTYPE VỚI CƠNG NGHỆ FPGA
Vì sự phức tạp của các chip tăng, người thiết kế đổi hướng về logic có thể lập trình
(programmable logic) cho prototyping, để kiểm tra hành vi chức năng [Quickturn
Design System 1994], [Maliniak 1996], [Whiny
1996]. Thường các prototype này, tiết kiệm thời
FU
FU
FU
gian, tiền bạc vì chúng tránh phí tổn và trì hỗn
của các cơng việc tại xưởng đúc silicon, không
FU
FU
FU
nhanh bằng phần cứng sau cùng: tuy nhiên, các
cải thiện liên tục ở tốc độ xung clock và mật độ
FU
FU

FU
mức cổng cho phép FPGA chiếm chổ các
standard gate array chip trong dãy các sản phẩm
[Bursky 1995a], [Bursky 1995b], [Bursky 1996]. SRAM configuration memory
Phần cứng có thể được nghiên cứu hoặc thử
Kiến trúc FPGA
nghiệm trước khi sản xuất qui mô thật sự [Kempa
and Rieger 1994].
Mục tiêu cơ bản của prototyping ASIC bằng FPGA là xác định rõ tính năng của
một thiết kế trước khi chuyển
thiết kế tới chế tạo. Một cách
lý tưởng, giải pháp này có một
chút hoặc khơng ảnh hưởng
đến dịng thiết kế đối với thiết
kế ASIC. Cái thứ nhất đạt
được bằng các công cụ thiết
kế FPGA của bên thứ ba cung
cấp. Cái thứ hai yêu cầu khả
năng tiếp nhận RTL mà phù
hợp tốt với kiến trúc ASIC
được chọn và đưa nó vào
FPGA mà khơng có thay đổi
nào.

2.1 Giới thiệu FPGA
Các field-programmable gate
array (FPGA) được bán như
là các họ sản phẩm được chế
tạo đầy đủ. Chức năng của
chúng được xác định bằng lập

trình được làm trong field bởi
người sử dụng. FPGA cho
phép người thiết kế biến thiết


25

kế thành silicon làm việc, thực hiện rapid prototyping nhanh chóng.
FPGA được phân biệt dựa trên cơ sở của một số đặc điểm: kiến trúc, số các cổng,
cơ cấu lập trình, tính chất biến đổi lập trình và sự mạnh mẽ của đơn vị chức
năng/logic, foot-print, pinout, time-to-prototype, tốc độ, công suất và các nguồn tài
nguyên cho sự liên kết. Một số các thiết bị dùng bộ nhớ flash để cung cấp khả năng
lập trình nhanh và ổn định.
FPGA có một kiến trúc cố định mà được lập trình trong field cho ứng dụng riêng
biệt. Kiến trúc tiêu biểu bao gồm mảng các đơn vị chức năng có thể lập trình được
(functional unit - FU). Cùng với các nguồn tài ngun cố định nhưng có thể lập
trình kiến lập nên tuyến đường các tín hiệu và định cấu hình chức năng của thiết bị.
Đơn vị chức năng có các tài nguyên cho việc thực hiện mạch tổ hợp và tuần tự.
FPGA khơng ổn định (volatile) được định cấu hình bằng chương trình gọi là bộ nhớ
cấu hình (configuration memory) mà có thể được download và chứa trong bộ nhớ
tĩnh CMOS. Nội dung của các cell tĩnh tác động tới các tuyến điều khiển của các
cổng truyền CMOS và các thiết bị khác để (1) lập trình chức năng cho các đơn vị
chức năng, (2) các đặc tính được định cấu hình tuỳ ý (3) thiết lập liên kết giữa các
đơn vị chức năng, (4) thiết lập các cổng input/output. Chương trình cấu hình được
download vào FPGA từ máy chủ (host machine) hoặc từ một on-board PROM. Khi
thiết bị mất điện, chương trình trữ trong bộ nhớ bị mất. Thiết bị phải được lập trình
lại trước khi nó có thể được dùng lại.
Tính khơng ổn định (volatility) của FPGA là con dao hai lưỡi – nó thể hiện sự cần
thiết nạp lại chương trình trong tình huống mất điện, nhưng nó cũng cho phép một
sự thay đổi ứng dụng không giới hạn và được cấu hình lại trên cùng board mạch

dưới sự điều khiển của một processor (khả năng lập trình lại thoải mái). Thời gian
sản phẩm ra thị trường là then chốt và FPGA cung cấp một giải pháp nhanh. Vào
năm 1998, Xilinx đã giới thiệu kỹ thuật Internet Reconfigurable Logic (IRL). Đây
là kỹ thuật download các áp dụng dựa trên Java từ Internet, cho phép các thiết kế để
sửa đổi, mở rộng, nâng cấp, hoặc cấu hình lại các thiết bị trong field.

2.2 Các kỹ thuật FPGA
Ba loại cơ bản FPGA : anti-fuse, EPROM, SRAM-based. Dung lượng và tốc độ
các thành phần này tiếp tục tiến triển với các sự cải thiện phương pháp sản xuất mà
làm co lại kích thước cực tiểu của các transistor cơ sở.
Thiết bị anti-fuse được lập trình bằng việc áp dụng một điện áp tương đối cao giữa
hai nút để đánh thủng vật liệu điện môi. Điều này khử việc cần bộ nhớ để giữ
chương trình, nhưng cấu hình viết một lần thì vĩnh cửu. Khi anti-fuse được tạo
thành, con đường trở kháng thấp được tạo nên không thể thay đổi được giữa các đầu
cuối của thiết bị. Ưu điểm của kỹ thuật này là trở kháng và điện dung ký sinh của
anti-fuse nhỏ hơn nhiều đối với các transmission gate và pass transistor, mà cung
cấp tốc độ chuyển mạch cao hơn và timing delay có thể dự đốn được theo các
tuyến lộ trình.


×