Đăng ký Đăng nhập
Trang chủ 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ệ f...

Tài liệu 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

.PDF
197
2
91

Mô tả:

Đạ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 TOÁN SỐ HỌC TRONG VIỆC PROTOTYPE VỚI CÔNG NGHỆ FPGA Chuyên 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 HOÀ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 HOÀ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 toá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 toá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 toán hạng, cấu trúc bộ tính toá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 độ chuyên 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 toá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 toá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. 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 toán hạng, cấu trúc bộ tính toá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 toá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 toá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 toá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 hoá 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 TOÁ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 toá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 toá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 toá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 toá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 toá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 toán hạng không dấu 3.11 Bộ cộng cây 3 toán hạng có dấu bù 2 3.12 Bộ cộng cây 4/5/6/7 toá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 toá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 toá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 toá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 toá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 toá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 toán hạng, cấu trúc bộ tính toá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 toá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 toá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 toá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. Quá 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 chuyên 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. Ngoà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ế hoàn toàn bào hàm toàn bộ các quá 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 nguyên 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 quát đượ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ế hoàn toà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 Thieát keá vaät lyù AÙnh xaï coâng ngheä Phöông trình ngoõ vaøo, ngoõ xuaát Ñoùng goùi Toång hôïp logic Toång hôïp caá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. Saép xeáp laïi vaø ñi daâ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 Saép xeáp laïi vaø ñi daây Thö vieän cheá taïo saü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 toá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.
- Xem thêm -

Tài liệu liên quan