1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

197 46 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 197
Dung lượng 7,46 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nó giớithiệ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ácthiế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ó t

Trang 1

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

Trang 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

Trang 3

TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

-

-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 Phái: nam

Ngày, tháng, năm sinh: 21/08/1968 Nơi sinh: Tp Hồ Chí MinhChuyên ngành: Khoa Học Máy Tính 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íchthướ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 EDAtools

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Ũ

Trang 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

Trang 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 choprototyping 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ợpthê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ị nghenhạ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 trongthiết kế vi mạch tự động Đó là phương pháp thiết kế vi mạch semicustom trên cácFPGA ở 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ợpcấ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ậpkiể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ớithiệ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ácthiế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ý

Trang 6

MỤC LỤC

1 Đặt vấn đề

2 Mục tiêu của đề tài

1.1 Các kỹ thuật bán dẫn, nguyên tắc phân loại mạch 14

1.3 Vi mạch tích hợp chuyên dụng (ASIC) 14

1.5 Các loại thiết kế vi mạch & phương pháp luận thiết kế 171.6 Các pha trong việc chế tạo chip 18

2.3 Tóm tắt FPGA và complex PLD 262.4 FPGA làm việc như thế nào 262.5 Rapid Prototyping với Verilog và FPGA 29

3.1 Sử dụng ASIC prototyping để giảm các rủi ro [Ou05] 313.1.1 Các phạm vi rủi ro 323.1.2 Các lợi thế của ASIC Prototyping với FPGA 323.1.3 Các trở ngại trong quá khứ và các tiến bộ lớn khắc phục được 333.1.4 Phương pháp ba pha cho prototyping 333.2 Số học trên FPGA [CCL04] 343.2.1 Các thiết kế các bộ số học trên FPGA 343.2.2 Field-Programmable Gate Array (FPGA) 353.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 363.4 Thực hiện bộ cộng digit-serial trên XC4000 FPGA 373.4.1 Số học digit-serial (Digit-Serial Arithmetic) 373.4.2 Các thực hiện bộ cộng/trừ trên FPGA 37

Trang 7

1.2.1 Khai triển truy hồi carry (carry recurrence) 451.2.2 Carry-lookahead đa mức 461.2.3 Latency của bộ cộng carry-lookahead đa mức 47

1.3 Parallel Prefix Networks 481.3.1 Kết hợp các tín hiệu khối g và p 48

1.3.3 Lập công thức bài toán Prefix Computation 491.3.4 Alternative Parallel Prefix Networks 491.3.5 Cấu trúc đệ qui Brent-Kung 50

1.3.6 Brent-Kung carry network (8-bit adder) 50

1.3.7 Kogge-Stone carry network (16-bit adder) 511.3.8 Speed-Cost Tradeoff trong các carry network 511.3.9 Carry Network là cần thiết cho bộ cộng nhanh 52

1.4 Các biến thể trong các bộ cộng nhanh 52

1.7.3 Phép cộng nhiều toán hạng sử dụng bộ cộng carry-save 60

1.7.4 Phép cộng nhiều toán hạng – Wallace tree và Dadda tree 60 1.7.5 Phép cộng nhiều số có dấu 621.8 Phép cộng trong hệ thống số bù 2 (nhắc lại) 621.8.1 Sự biểu diễn số bù 2 621.8.2 Phép cộng trong hệ thống số bù 2 63

Trang 8

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

2.1 Giải thuật nhân Shift/Add cơ số 2 642.2 Các bộ nhân phần cứng cơ bản 652.3 Phép nhân của các số có dấu 662.4 Giải thuật nhân Shift/Add cơ số r 68

1 Giới thiệu chương trình tạo các bộ tính toán số học 82

1.2 Các loại cấu trúc bộ cộng và bộ trừ 821.2.1 Các loại cấu trúc bộ cộng, bộ trừ và phạm vi kích thước 821.2.2 Giải thích các cổng và các tham số của bộ cộng, bộ trừ 831.3 Các loại cấu trúc bộ nhân và bộ chia 841.3.1 Các loại cấu trúc bộ nhân, bộ chia và phạm vi kích thước 841.3.2 Giải thích các cổng và các tham số của bộ nhân, bộ chia 841.4 Cơ chế hoạt động của chương trình tạo bộ tính toán số học 851.5 Chạy chương trình, giao diện và thao tác 85

2 Xây dựng view cấu trúc của các bộ tính toán số học 912.1 Bộ cộng cây nhiều toán hạng 91

2.4 Các xây dựng phát triển của bộ cộng 97

3 Verilog code, RTL view của các bộ tính toán số học 99

Trang 9

3.8 Bộ cộng Hybrid carry-lookahead / carry-select 1303.9 Bộ cộng Hybrid ripple-carry / carry-lookahead 1343.10 Bộ cộng cây 3 toán hạng không dấu 1413.11 Bộ cộng cây 3 toán hạng có dấu bù 2 1433.12 Bộ cộng cây 4/5/6/7 toán hạng không dấu 1443.13 Bộ cộng/trừ với các thanh ghi 1483.14 Bộ nhân mảng không dấu và có dấu bù 2 1493.15 Bộ nhân cây 9x9 không dấu và có dấu bù 2 1543.16 Bộ chia tuần tự (shift/subtract) không dấu restoring 1593.17 Các mô đun trích từ Altera (phụ lục) 161

4.2 Bộ cộng cây nhiều toán hạng 166

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

3 Giới thiệu Quartus II cho người sử dụng Verilog 192

3.2 Setting window (cửa sổ cài đặt) 1953.3 Biên dịch & tạo netlist view 1963.4 Chạy giả lập (simulation) 196

Trang 10

MỞ ĐẦU

Trang 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àynay, 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íchthướ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àngthấ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àmgiả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 trongthiế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ĩathực tiễn Chúng có thể được sử dụng làm các mô đun cho các ứng dụng quantrọ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

Trang 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ácFPGA 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

Trang 13

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

Trang 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ìnhchế tạo rất phức tạp, sử dụng các loại vật liệu bán dẫn (Silicon, Gallium-Arsenide) 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)

Trang 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 theocá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ư designcompiler 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,

Trang 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 chophé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)

Trang 17

1.5 Các loại thiết kế vi mạch & phương pháp luận thiết kế

- 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

Trang 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

Trang 19

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

Trang 20

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

1.10 Tối ưu hố 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 tồ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

Trang 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ácthanh 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ìmbằ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 toá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 toá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)

Trang 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

Trang 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 nguyên

- AS xác định mô hình cấu trúc của tuyến dữ liệu

(data-path) (như sự kết nối của các tài nguyên) 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

Trang 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

gian, tiền bạc vì chúng tránh phí tổn và trì hoãn

của các công việc tại xưởng đúc silicon, không

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

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]

Phần cứng có thể được nghiên cứu hoặc thử

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

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

SRAM configuration memory

FU FU

FU

FU FU

FU

Kieán truùc FPGA

Trang 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àinguyê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êngbiệ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 nguyên 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 Khithiế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ìnhlạ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àonă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ự đoán được theo các tuyến lộ trình.

Trang 26

Kỹ thuật EPROM và EEPROM-based sử dụng các floating gate đã được nạp điện,

được lập trình bằng điện thế cao Nó có thể được lập trình lại và ổn định volatile) Các thiết bị như thế có thể được lập trình off-line trong khi được nhúng vào hệ thống đích

(non-Kỹ thuật FPGA dựa trên SRAM sử dụng chủ yếu các CMOS transmission gate để

thiết lập quan hệ nối liền với nhau Trạng thái của các cổng được xác định bằng nội dung của bộ nhớ cấu hình SRAM

2.3 Tóm tắt FPGA và complex PLD

- Không có các lớp mặt nạ được đặc chế

- Phương pháp cho việc lập trình các logic cell cơ bản và liên kết với nhau

- Phần lõi là mảng các logic cell cơ bản được sắp xếp cân đối có thể được lập trình để thực hiện logic tổ hợp, tuần tự (flip-flop)

- Ma trận liên kết lập trình bao

quanh các logic cell cơ bản

- Các I/O cell lập trình bao quanh

phần lõi

- Thiết kế thay đổi hoàn toàn chỉ

trong vài giờ

Các FPGA giống như CPLD, tuy

nhiên thời gian trễ có thể dự đoán tốt

hơn do cấu trúc kết nối với nhau của

FPGA được xây dựng từ các logic-cell cơ bản, mỗi logic-cell cơ

bản là lookup table nhỏ (“LUT”), một D-flipflop và một 2-to-1

mux (để bypass flipflop nếu muốn)

LUT giống như RAM nhỏ và có 4 input, có thể thực hiện cổng

logic bất kỳ với 4-input

Kết nối nhau (interconnect)

Mỗi logic-cell có thể được nối với các logic-cell khác thông qua các tài nguyêninterconnect (các wire/mux được đặt xung quanh các logic-cell) Các dâyinterconnect cũng đi đến biên của thiết bị mà các I/O cell được thực hiện và được nối tới các pin của FPGA

Trang 27

Các chuỗi carry / tuyến chuyên dụng (dedicated routing/carry chains)

Thêm vào các nguồn tài nguyên general-purepose interconnect, FPGA có các tuyến chuyên dụng ở giữa các logic cell kế nhau Kiểu phổ biến nhất của các tuyến chuyên dụng nhanh là các “carry chain” Các carry chain cho phép tạo các hàm số học (giống như counter và adder) hiệu quả (sử dụng low logic và tốc độ hoạt động cao)

Các kỹ thuật cũ (PAL/CPLD) không có các carry chain và cũng bị giới hạn khi yêucầu các tác vụ số học

RAM nội (internal RAM)

Thêm vào logic, tất cả các FPGA đời mới có các khối chuyên dụng RAM tĩnh được

bố trí ở giữa và được kiểm soát bởi các phần tử logic (logic element)

Trang 28

Hoạt động RAM bên trong (internal RAM operation)

Có nhiều tham số ảnh hưởng đến hoạt động RAM Tham số chủ yếu là số các tác nhân mà có thể truy xuất RAM đồng thời

 “single-port” RAM : chỉ có một tác nhân có thể đọc/ghi RAM

 “dual-port” hoặc “quad-port” RAM : 2 hoặc 4 tác nhân có thể đọc/ghi Nhận

dữ liệu thông qua các clock domain (mỗi tác nhân có thể dùng clock khácnhau)

Để tìm ra có bao nhiêu tác nhân, đếm số các bus địa chỉ đi đến RAM Mỗi tác nhân

có một bus địa chỉ chuyên dụng và cũng có bus dữ liệu đọc và ghi

Ghi RAM thường được làm đồng bộ Đọc thường được làm đồng bộ nhưng có thể đôi khi được làm không đồng bộ

Blockram vs Distributed RAM

Có hai kiểu RAM nội bên trong FPGA : blockram và distributed RAM Kích thướccủa RAM thường xác định kiểu nào được dùng

 Các khối RAM lớn là các blockram, là các diện tích (area) chuyên dụng trong FPGA Mỗi FPGA có một số giới hạn chúng và nếu không dùng, thìmất chúng (không thể được dùng cho bất kỳ RAM nào)

 Các khối RAM nhỏ hoặc ở trong các blockram nhỏ hơn (Altera), hoặc ở trong “distributed RAM” (Xilinx) Distributed RAM cho phép dùng cácFPGA logic-cell như các RAM bé tí

Distributed RAM khá linh động trong sự phân bố RAM trong FPGA, nhưng khônghiệu quả diện tích (logic-cell trên thực tế có thể giữ rất ít RAM) Altera thích xây

Trang 29

dựng các blockram có kích thước khác nhau xung quanh thiết bị (mà hiệu quả diện tích hơn, nhưng kém linh động) Cái nào tốt hơn là tùy thuộc vào ứng dụng FPGA.

Xung clock & tuyến toàn cục (clocks & global lines)

Thiết kế FPGA thường "synchronous" Nghĩa là, thiết kế dựa trên xung clock - mỗi clock (cạnh lên) cho phép D-flipflops nhận trạng thái mới

Trong thiết kế đồng bộ, chỉ có một clock điều khiển nhiều flipflop đồng thời Điều này gây ra sự định thời và các vấn đề điện tử bên trong FPGA Các nhà sản xuất FPGA cung cấp các dây nội đặc biệt gọi là “global routing” hoặc “global line” Chúng cho phép phân phối tín hiệu clock lên toàn bộ FPGA với độ lệch (skew) thấp (nghĩa là tín hiệu clock dường như đồng thời tới tất cả các flipflop)

Khi cấp một tín hiệu clock vào FPGA, không nên dùng bất kỳ FPGA pin nào, màdùng "dedicated input pin" Thường chỉ các input pin như thế mới có khả năng điều khiển global line Phần mềm FPGA có thể nhận biết về các dedicated input và sẽ gán tự động các xung clock tới chúng

Các phạm vi xung clock (clock domains)

FPGA có thể dùng các multiple clock (dùng multiple global lines và dedicated inputpins) Mỗi clock tạo thành một "clock domain" bên trong FPGA

Nếu cần gởi đi thông tin qua các clock domain khác nhau, cần xem xét đặc biệt

Cáp nạp FPGA

Người bán FPGA cung cấp nhiều phương pháp để "configure" (nghĩa là download)các thiết bị Một phương pháp dùng cáp mà kết nối PC với FPGA board Các cáp phổ biến nhất liên kết cổng song song của PC hoặc giao tiếp USB Các cáp này đôikhi được gọi là "JTAG cables" (vì chúng thường kết nối JTAG pin của FPGA)

Cấu hình FPGA

FPGA có thể ở 2 trạng thái: "configuration mode" hoặc "user mode" Khi FPGA bắt đầu sau khi có điện, nó ở phương thức cấu hình (configuration mode)

Cấu hình một FPGA nghĩa là nạp (download) dòng 0,1 vào trong nó thông qua một

số pin đặc biệt Một khi FPGA được cấu hình, nó trở thành "user-mode" và trở nênhoạt động, thực hiện theo "logic function"

Có 3 cách cổ điển để cấu hình FPGA :

 Dùng cáp từ PC vào FPGA và chạy phần mềm để gởi dữ liệu qua sợi cáp

 Dùng microcontroller trên board, với firmware phù hợp để gởi dữ liệu vàoFPGA

 Dùng "boot-PROM" trên board, được nối tới FPGA, mà cấu hình FPGA tự động khi có điện

2.5 Rapid Prototyping với Verilog và FPGA

Kỹ thuật FPGA và các công cụ phần mềm hỗ trợ biến chúng thành mục tiêu thu hútcho rapid prototyping của thiết kế Mục tiêu của rapid prototyping là tạo nên

Trang 30

prototyping hoạt động nhanh như có thể đế đáp ứng các điều kiện của thị trường vàcung cấp việc kiểm tra rộng hơn trong môi trường số đông.

 Tổng hợp và bố trí, định tuyến (synthesis and place-and-route)

 Lập trình thông qua cáp đặc biệt JTAG

Phần mềm của Altera có tên Quartus II Web Edition được dùng để thiết kế và thực hiện một mạch xác định bằng ngôn ngữ mô tả phần cứng Verilog Quartus II biêndịch (tổng hợp) thiết kế thành mạch trên FPGA và chạy giả lập kiểm tra chức năng

2.5.2 Lưu đồ FPGA CAD

Phần mềm CAD (Computer Aided Design) giúp dễ dàng thực hiện mạch logic trênchip FPGA Bao gồm các bước cơ bản sau :

Design Entry - mạch mong muốn được xác định bằng ngôn ngữ mô tả phần cứng,

như là Verilog hoặc VHDL

Synthesis – công cụ tổng hợp CAD tổng

hợp mạch thành netlist mà xác định các

phần tử logic (LE) cần thiết cho việc

thực hiện mạch và các liên kết giữa các

LE

Functional Simulation – Mạch tổng hợp

được kiểm tra để xác minh sự chính xác

chức năng, sự mô phỏng không xét đến

định thời

Fitting – Công cụ CAD Fitter xác định

các sắp xếp của các LE được xác định

trong netlist thành các LE trong chip

FPGA thực, nó cũng đi dây trong chip để

tạo các liên kết yêu cầu giữa các LE

Timing Analys – Thời gian trễ dọc theo

các tuyến khác nhau trong mạch đã được

lắp (fitted) được phân tích để biểu thị

hiệu suất mong đợi của mạch

Timing Simulation – Mạch được lắp

được kiểm tra để xác minh lại sự chính

xác chức năng và định thời

Programming and Configuration –

Mạch thiết kế được thực hiện trong chip

FPGA vật lý bằng lập trình cấu hình các chuyển mạch (switch) mà cấu hình các LE

và thiết lập các liên kết đi dây theo yêu cầu

Trang 31

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

3.1 Sử dụng ASIC prototyping để giảm các rủi ro [Ou05]

Các qui trình công nghệ chế tạo tiên tiến mở ra các cơ hội mới để tích hợp nhiều tính năng hơn vào trong thiết bị nhỏ hơn với giá thành thấp hơn Tuy nhiên, độ phức tạp thiết kế, thời gian phát triển và rủi ro thiết kế sẽ tăng lên Để làm giảm toàn bộ rủi ro, một phương pháp hiệu quả được ngày càng nhiều người thiết kế

áp dụng là sử dụng các FPGA để prototype các ASIC và sản phẩm ban đầu Với công cụ Design Compiler FPGA(tm) của Synopsys, một thiết kế có thể được tổng hợp và thực hiện trong một FPGA Một khi đã được kiểm tra, thiết kế sau

đó có thể được trực tiếp ánh xạ trở lại vào một ASIC cấu trúc hoặc được tổng hợp trở lại cho standard cell ASIC với cùng RTL, các ràng buộc và các script sử dụng Design Compiler(R) Vấn đề quan trọng là FPGA có thể được dùng làmgiảm nhẹ các rủi ro thiết kế và kinh doanh, dẫn tới việc tạo ra các ASIC cấu trúc hoặc các standard cell ASIC được thực hiện một cách có hiệu quả hơn

Các nhà sản xuất bán dẫn đã không ngừng nghiên cứu để chế tạo các vi mạch với hiệu suất và mật độ cao hơn Tiến bộ kỹ thuật này là lợi thế có ý nghĩa đáng

kể trong giá thành và tính năng, tuy nhiên kỹ thuật này cũng là con dao hai lưỡi Chi phí khởi điểm cho các qui trình công nghệ chế tạo mới nhất tiếp tục tăng, rốt cuộc chỉ có những sản phẩm có số lượng lớn nhất hoặc các thiết bị phức tạp nhất

mà tuyệt đối cần các qui trình công nghệ chế tạo mới nhất mới có thể đủ điều kiện thiết kế trong công nghệ xử lý mới nhất

Thực tế trong việc phát triến thiết bị, rủi ro phát sinh không chỉ ở vấn đề kỹ thuật mà còn từ các điều kiện thị trường mà khó lòng kiểm soát được

Có ba phạm vi rủi ro bao gồm rủi ro thiết kế kỹ thuật, các đặc tính sản phẩm và

sự chấp nhận của thị trường Việc sử dụng FPGA hỗ trợ ASIC prototyping làgiải pháp khả thi để giải quyết các rủi ro này Bằng việc sử dụng prototyping đểthẩm tra, người thiết kế

có thể tìm thấy lỗi sai

chức năng mà không

được tìm thấy trong lúc

giả lập nhưng chỉ có thể

được phát hiện trong khi

kiểm tra hệ thống đầy đủ

Khả năng này phát hiện

các lỗi sai trước khi đưa

thiết kế vào chế tạo, có

thể tiết kiệm hàng triệu

đô la Thêm vào đó, với

sự tổng hợp bằng công cụ

Design Compiler FPGA

và các ASIC cấu trúc sẵn có từ các nhà cung cấp khác nhau, một khi FPGA đã

Trang 32

được kiểm tra, thời gian chuyển đến sản xuất được rút ngắn đi rất nhiều, vì thế rút ngắn thời gian tung ra thị trường và sản phẩm có giá thành thấp hơn.

3.1.1 Các phạm vi rủi ro

Các rủi ro thiết kế: Chi phí tăng của sự phát triển thiết kế.

Các đặc tính sản phẩm: Đặc biệt trong trường hợp thị trường mới hoặc mới nổi

lên, rất khó dự đoán các đặc tính nào sẽ là then chốt cho sự thành công của sản phẩm

Sự chấp nhận của thị trường: Rất khó dự đoán thế nào và khi nào thị trường sẽ

chấp nhận các sản phẩm và các công nghệ mới

3.1.2 Các lợi thế của ASIC Prototyping với FPGA

Để cực tiểu hoá các rủi ro nói trên, nhiều người thiết kế chuyển sang dùngFPGA và prototyping các ASIC Theo Dataquest, 41% các người thiết kế SoC dùng các FPGA prototype cho thiết kế ASIC Sau đây là một số lý do cho việc

sử dụng ASIC prototyping như một phần của phương pháp luận thiết kế :

Sự kiểm tra toàn diện (Comprehensive Verification) – Ngay cả với các

workstation nhanh nhất, sự giả lập thiết kế vẫn chậm chạp Để giả lập một vàigiây của một ASIC chuyển mạch gói (packet switch) nó có thể yêu cầu một năm chạy giả lập Người thiết kế không có nhiều thời gian để chạy giả lập nhưthế và do đó họ chọn một số điều kiện cụ thể để giả lập Không may, rất khó để kiểm tra toàn diện mà bao gồm mọi điều kiện riêng rẽ hoặc tình trạng mà thiết bị

có thể trải qua trong hệ thống Bằng việc sử dụng FPGA cho prototyping, người thiết kế có thể chạy thiết bị trong hệ thống để sử dụng nó trong tình trạng thế giới thực và xác định các thiếu sót thiết kế tiềm ẩn mà không thể được tìm ratrong lúc giả lập

Sự phát triển firmware - Sự phát triển phần mềm chiếm một phần lớn của toàn

bộ chu kỳ phát triển Sử dụng hệ thống prototype sẵn có cho sự phát triển phần mềm có thể giúp rút ngắn toàn bộ chu kỳ phát triển Nó có thể khắc phục chỗ sai sót, các vấn đề tương thích mà không thể được thực hiện bằng phần mềm Các điều chỉnh và thay đổi nhỏ trong thiết kế phần cứng/phần mềm là đơn giản vàkhả thi trong thiết bị có thể lập trình, nhưng rất đắt tiền để tìm ra sự cân bằng hợp lý các yếu tố và sự khảo sát hệ thống một khi đã tạo ra ASIC

Thực nghiệm (Field Testing) – Các hệ thống được dùng cho thực nghiệm có thể

giúp khắc phục các chỗ sai sót của hệ thống hoặc thiết bị mà không được tìm ratrong phòng thí nghiệm Các đặc tính và tính năng mới có thể được yêu cầu màkhông có trong đặc điểm kỹ thuật gốc FPGA prototype có thể được điều chỉnh nhanh chóng để hỗ trợ bất kỳ các điều chỉnh cần thiết nào mà không tốn nhiều chi phí kỹ thuật non-recurring hoặc các chu kỳ chế tạo lâu

Các lựa chọn sản xuất (Production Options) – Là có lợi khi quyết định chọn

dạng sản xuất hàng loạt nào vào cuối chu kỳ thiết kế Bằng việc sử dụng FPGA cho prototyping, ngưòi thiết kế có thể tập trung vào việc hoàn thành code thiết

Trang 33

kế và người kinh doanh có thể quan sát các điều kiện thị trường và tạo quyết định sau cùng về việc làm thế nào để tiếp tục sản xuất Sự mềm dẻo này ở giaiđoạn cuối của chu kỳ thiết kế có thể tiết kiệm vài triệu đô la bằng việc tránh các lỗi đắt tiền về việc chọn sản xuất nào là tốt nhất.

Tùy vào sự chấp nhận thị trường và dự báo nhu cầu, có 3 lựa chọn cho sản xuất Một là sản xuất với FPGA, hai là ASIC cấu trúc và ba là standard cell ASIC

3.1.3 Các trở ngại trong quá khứ và các tiến bộ lớn khắc phục được

Việc sử dụng các FPGA cho ASIC prototyping có sự phát triển vững chắc, nhưng một số người thiết kế vẫn còn miễn cưỡng dùng phương pháp này Có haithan phiền lớn nhất là các FPGA không đủ qui mô để hỗ trợ ASIC gate count vàdòng thiết kế cho FPGA và ASIC thì không đủ tương thích (ví dụ, thiết kế RTL được mã hoá đặc biệt cho FPGA) Các tiến bộ trong công nghệ FPGA và cáccông cụ thiết kế đã giải quyết một số các băn khoăn này Các công nghệ được Synopsys giới thiệu đã có tiến bộ lớn trong việc xử lý các than phiền nói trên

Về mặt lịch sử, vấn đề đối với các thiết kế prototyping ASIC dùng FPGA là ở chổ các thiết kế ASIC quá lớn để khớp với một FPGA đơn Do đó các thiết kế này phải bị phân hoạch thành nhiều thiết bị và các board hệ thống phát triển cho prototyping phải được

thiết kế lại cho sản

xuất mỗi khi nhiều

FPGA được thay bằng

3.1.4 Phương pháp ba pha để prototyping

Prototyping là cần thiết để kiểm tra thiết kế và kiểm chứng nhu cầu Vì sản phẩm là cho người tiêu dùng sản phẩm, các đặc tính và các tính năng khác nhaucũng cần được khảo sát để xác định chúng có phải là khả thi hoặc là cần thiết cho sản xuất sau cùng Điều này chỉ có thể được làm trong thiết bị có thể lập trình Một khi hệ thống prototype được xây dựng, đội thiết kế cần hướng nổ lực làm standard cell ASIC để hạ chi phí sản phẩm xuống Điều này phải được làmthật nhanh để cạnh tranh trong một thị trường tiêu thụ nhạy cảm giá cả Vấn đề ở

Trang 34

đây là làm thế nào để mang sản phẩm tới thị trường thật nhanh để chiếm được lợi nhuận cao trong lúc giới thiệu sản phẩm và củng cố sự chia sẻ thị trường trong khi chờ đợi standard cell ASIC đến Giải pháp tạm thời là chuyển thiết kế thành thiết bị ASIC cấu trúc HardCopy Sự chuyển đổi chi phí thấp này khônglàm giảm giá trị mục tiêu trong tương lai xa của người thiết kế, mà là để phát triển standard cell ASIC chi phí thấp

Pha 1 – FPGA : Làm cho thời gian tới prototype nhanh Sự giảm rủi ro kỹ thuật Pha 2 – ASIC cấu trúc HardCopy : Làm cho thời gian tới sản xuất nhanh Tiếp

cận các rủi ro thị trường Giảm chi phí vật liệu và các tài nguyên kỹ thuật

Pha 3 – Standard Cell ASIC : Giảm thêm nữa giá thành Sản xuất qui mô lớn.

3.2 Số học trên FPGA [CCL04]

3.2.1 Các thiết kế các bộ số học trên FPGA

Bộ cộng : Nhiều kiến trúc phần cứng được đề xuất trong quá khứ cho phép cộng

nhanh Chúng bao gồm các phép cộng lookahead, conditional sum, select và carry-skip [Kor02] Trong khi người thiết kế ASIC muốn có nhiều lựa chọn các kiến trúc của bộ cộng, phần lớn các FPGA hiện đại lại được thiết kế để

carry-hỗ trợ phép cộng ripple-carry nhanh Điều này có nghĩa là các kỹ thuật cộng

‘nhanh’ thì thực ra chậm hơn ripple-carry trong thực tế Lý do là, chúng ta giới hạn FPGA trong phép cộng ripple-carry Hình sau biểu thị một phần của Virtex

II ‘slice’ [Xil03], đơn vị logic cơ bản trong Virtex II FPGA Slice chứa hai 4LUT cơ bản, các multiplexer chuyên dụng và các cổng XOR Bằng cách sử dụng LUT để phát ra ‘carry propagate’ chọn tín hiệu của multiplexer, một bộ cộng 2-bit có thể được thực hiện trong phạm vi một slice đơn

Bộ nhân : Trong thiết

kế số học phần cứng,

thường phân ra hai

trường hợp của thiết

kế bộ nhân: khi một

toán hạng là hằng số,

và khi cả hai toán

hạng đều có thể thay

đổi Trong trường hợp

đầu, có nhiều cơ hội

cho việc giảm chi phí

Trang 35

(shifted version) của input [Par99] Phép nhân tổng quát được thực hiện bằng việc cộng các tích số từng phần, và các bộ nhân tổng quát về bản chất khác nhau

về các phương pháp mà chúng tích luỹ các tích số từng phần Xilinx Virtex II slice chứa một cổng XOR chuyên dụng cho phép cộng và chứa một cổng AND chuyên dụng để tính toán các tích số từng phần, cho phép các 4LUT trong một slice được dùng cho sự tích luỹ của chúng

Có hai mặt hạn chế chính đối với việc thiết kế một mạch tích hợp ASIC cho ứng dụng DSP: tiền bạc và thời gian Sản phẩm ASIC tiên tiến là một quá trình rất đắt tiền, mà có thể chỉ được xem xét khi thị trường cho thiết bị này có thể đếm được trong hàng triệu đơn vị Ngoài ra, ASIC cần quá trình kiểm tra tiêu tốn rất

nhiều thời gian trước khi chế tạo Field-Programmable Gate Array (FPGA) là

thiết bị phần cứng có thể lập trình được Nó được sản xuất hàng loạt, và do đó cóthể được bán không đắt và tính lập trình của nó cho phép thử nghiệm ngay tại chổ FPGA có thể truy nguyên theo các gốc của nó từ các thiết bị logic có thể lập trình (PLD) như là PLA và PAL, mà có từ thập niên 1980 Về nguồn gốc, các thiết bị như thế dùng để thay thế các chuỗi logic rời rạc để cực tiểu hoá số các thiết bị rời rạc được dùng trên một mạch in Tuy nhiên mật độ của FPGA ngày nay cho phép một chip đơn thay thế vài triệu cổng [Xil03] Trong tình hìnhnày, việc sử dụng FPGA hay hơn ASIC cho việc trù liệu đã trở nên thực tế

Có một phạm vi các kiến trúc FPGA hiện đại bán giảm giá, gồm có vài phần tử

cơ bản Tất cả các kiến trúc như thế chứa 4-input lookup table (4LUT hoặc đơngiản là LUT) như là phần tử logic cơ bản Bằng việc cấu hình dữ liệu được chứa trong mỗi LUT nhỏ này, và bằng việc cấu hình con đường để liên kết chúng, mạch tổng quát có thể được thực hiện Có một khuynh hướng về phía các kiến trúc không đồng nhất: các thiết bị FPGA hiện đại như Xilinx Virtex cũng chứa các khối RAM được nhúng vào trong phạm vi mảng các LUT, Virtex II thêmcác khối bộ nhân rời rạc và Virtex II pro [Xil03] thêm các lõi bộ xử lý PowerPC

3.3 Prototyping trên PC với phần cứng lập trình [ON97]

Môi trường PC được dùng nhiều trong nhiều lĩnh vực ứng dụng, với vô số các công cụ phần mềm cho các người thiết kế điện tử, nhà sản xuất và nhà sư phạm Hiệu suất của các platform phần mềm tiêu chuẩn có thể bị vượt trội bởi các người phát triển sản xuất kết hợp phần cứng và phần mềm đặc chế giá thấp, như

là các bộ tăng tốc, các bộ đồng xử lý và các bộ xử lý trước (preprocessor) trong

PC Sự sẵn có các phần cứng tinh vi có thể lập trình nhưng không đắt tiền là yếu

tố chính trong thiết kế và xây dựng các đơn vị như thế Do đó khả năng để thiết

kế các hệ thống đặc chế đáng tin cậy, với hiệu quả mà dường như ngoài tầm tay cách đây không lâu, không còn đắt tiền và hiếm hoi nữa, mà là kỷ năng cơ bản

và sự cần thiết ngày càng tăng

Trang 36

Ở đây mô tả phương pháp thiết kế và sử dụng cơ cấu phần cứng và phần mềm cho giao tiếp mềm dẻo và prototyping trên PC Phần cứng bao gồm card với phần cứng có thể lập trình là các FPGA Giao tiếp bao gồm DMA block transfer

và các interrupt, thư viện các macro phần cứng Các thủ tục phần mềm giúp lập trình FPGA và cho phép liên lạc giữa host PC và card ngoại vi (peripheral) Yêu cầu: PC-AT card đã được kiểm tra Thư viện các phần tử phần cứng có thể cấu hình có thể được lập trình vào FPGA Thư viện các thủ tục phần mềm cho việc truyền dữ liệu và điều khiển Hai thư viện cho phép input-output 8-bit, 16-bit tiêu chuẩn và truyền dữ liệu khối DMA và thông tin liên lạc interrupt giữa card và host PC Vì phần cứng có tính cấu hình lại ngay trong mạch, nên dễ dàng prototype các thiết kế điện tử: quá trình thử nghiệm nhanh và đáng tin cậy

Bộ cộng 2k-block 16-bit trên FPGA

Sơ đồ khối của bộ cộng 2k-block 16-bit [ON97]

Hình trên minh hoạ thiết kế đơn giản của coprocessor dùng card trong việc kết hợp với phần mềm ứng dụng Dùng bộ cộng 16-bit parallel [Lenk 1977], đựợc điều khiển bởi chương trình PC Tín hiệu START khởi động bởi phần mềm, bộ cộng carry out 2048 phép cộng 16-bit với dữ liệu được phân phối trong card RAM Các dữ liệu này được tổ chức trong các vị trí 4 address: các vị trí đầu vàthứ hai chứa toán hạng dữ liệu, các vị trí thứ ba và thứ tư chứa kết quả của phép cộng Dữ liệu được truyền từ bộ nhớ PC tới card và rồi các kết quả được gởi trở lại bằng việc sử dụng hoạt động I/O được lập trình hoặc DMA Thiết kế nàydùng 44CLB (42 flip-flop) và 52 I/O pin của FPGA#1 và 109CLB (65 flip-flop)

Trang 37

và 58 I/O pin của FPGA#2 Tốc độ hoạt động của bộ cộng 16-bit có thể được điều khiển và không phụ thuộc vào tốc độ của PC processor.

3.4 Thực hiện bộ cộng digit-serial trên XC4000 FPGA

3.4.1 Số học digit-serial (Digit-Serial Arithmetic)

Các kiến trúc số học bit-serial xử lý một bit ở một thời điểm và thích hợp cho

các ứng dụng tốc độ thấp Các kiến trúc t-song song số học (t-parallelarithmetic) xử lý toàn bộ word của mẫu input trong một chu kỳ clock và là lýtưởng cho các ứng dụng tốc độ cao, nhưng chúng yêu cầu một lượng lớn phần

cứng Để tránh các bất lợi của bit-serial và bit-parallel, ý tưởng thực hiện

digit-serial được đề xuất.

Đó là sự kết hợp hiệu quả diện tích của kiến trúc bit-serial với hiệu quả thời gian của kiến trúc bit-parallel tương ứng thành chỉ một kiến trúc digit-serialhiệu quả diện tích và hiệu quả thời gian Nói cách khác, thiết kế số học digit-serial có diện tích nhỏ hơn các thiết kế số học bit-parallel tương đương và cóthroughput lớn hơn các thiết kế số học bit-serial tương đương

3.4.2 Các thực hiện bộ cộng/trừ trên FPGA

cùng với một carry bit trước đó và sinh ra digit

và một carry bit mới

- Hai toán hạng A và B cung cấp một digit ở một

thời điểm vào bộ cộng

- Carry-out (CO) từ bộ cộng digit-serial được

cung cấp trở lại vào bộ cộng toàn phần đầu tiên

trong chu kỳ clock tiếp theo, khi các digit kế

tiếp của input đi đến

- Bộ cộng digit-serial với N=1 tương ứng với bộ

cộng bit-serial

- Trong XC4000, bộ cộng bit-serial yêu cầu một

CLB để sinh ra tổng và tải carry vào FF

- Số lượng các CLB được yêu cầu là số lượng của

các bit trong word

Trang 38

- Một bộ cộng digit-serial N = 2 dùng tất cả 3 LUT, 3 FF và 1 đơn vị fast-carrylogic.

e

Bộ trừ digit-serial

Để thực hiện phép trừ, chuyển cổng B input

thành dạng số bù 2 và logic 1 nạp vào carry in

khởi đầu (xem hình bên)

Bộ trừ digit-serial thực hiện trên XC4000

FPGA có :

Bộ cộng / bộ trừ digit-serial

Khi cổng Add input = 0, thì A + B

Khi cổng Add input = 1, thì A - B

Area = 1,

2

3Delay = 2

Trang 39

Bộ cộng bit-level pipelined digit-serial

Bộ cộng digit-serial có một loop hồi tiếp của bit carry out vào bộ cộng toàn phần đầu tiên.Critical path trong bộ cộng digit-serial N=4thông thường là 4 độ trễ bộ cộng toàn phần Critical path tăng theo kích thước digit Bộ cộng bit-level pipelined digit-serial được thực hiện bằng việc sử dụng hai bộ cộng carry propagate (CPA), ở đây carry bit được sinh ra

từ CPA thứ nhất sẽ lan truyền về phía trước vàđược cộng với digit output kế tiếp khi sử dụng CPA thứ hai

Trang 40

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

1 BỘ CỘNG / BỘ TRỪ

- Phép cộng là một tác vụ then chốt (bản chất của nó và là một khối xây dựng)

- Phép trừ = sự phủ định + phép cộng

- Tăng tốc lan truyền carry (carry propagation) : lookahead, skip, select,

- Phép cộng hai toán hạng và nhiều toán hạng

1.1 Ripple-carry

Mục tiêu

Nghiên cứu thiết kế các bộ cộng ripple-carry, giải thích tại sao latency của chúng là

không thể chấp nhận, và đặt nền tảng cho các bộ cộng nhanh hơn

Các điểm nhấn mạnh

- Các bộ cộng toàn phần (full adder) là các khối xây dựng đa năng

- Chuỗi carry dài nhất trung bình : log2k bit

- Các bộ cộng nhanh không đồng bộ thì đơn giản

Bộ cộng bán phần 1-bit (single-bit half-adder HA) và bộ cộng toàn phần 1-bit(single-bit full adder FA) là các khối xây dựng đa năng mà được dùng trong việc tổng hợp các bộ cộng và nhiều loại khác của mạch số học

Ngõ vào : toán hạng bit x, y và carry-in cin (hoặc xi, yi, cicủa tầng i)

Ngõ ra : bit tổng s và carry-out cout (hoặc sivà ci+1của tầng i)

Ngày đăng: 08/03/2021, 23:54

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w