Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 197 trang
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
Nội dung
Đạ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 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 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 hướng dẫn khoa học : TS ĐINH ĐỨC ANH VŨ / Đại học Bách Khoa Tp.HCM Cán chấm nhận xét : TS TRẦN VĂN HỒI / Khoa KH & KT Máy tính, Đại học Bách Khoa Tp.HCM Cán chấm nhận xét : 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ĩ bảo vệ 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 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 tính tốn số học 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 tính tốn số học (adder, substractor, multiplier, divider) có cấu trúc, tham số kích thước theo yêu cầu Module tạo sử dụng hiệu tài nguyên FPGA Tham số đầu vào kích thước tốn hạng, cấu trúc tính tốn số học, Module tạo netlist Verilog code có khả tổng hợp để tích hợp vào 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 đề cương luận văn thạc sĩ Hội đồng chun 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 LỜI CẢM ƠN Trước tiên tơi xin bày tỏ lịng biết ơn sâu sắc giúp đỡ TS Đinh Đức Anh Vũ Trong suốt trình nghiên cứu thực luận văn, nhận hướng dẫn tận tình thầy Tơi xin chân thành cảm ơn thầy cô Khoa Khoa Học Kỹ Thuật Máy Tính giảng dạy suốt khóa học cao học giúp tơi mở rộng kiến thức nâng cao trình độ chun mơn Bên cạnh đó, tơi cảm ơn trợ giúp, động viên to lớn mặt vật chất tinh thần gia đình, người thân, bạn bè đồng nghiệp Thành Phố Hồ Chí Minh, tháng 11 năm 2008 Võ Minh Vinh TÓM TẮT LUẬN VĂN THẠC SĨ Mật độ số lượng cổng logic IC ngày cao vượt qua mức độ khai thác sử dụng chúng Để theo kịp, tận dụng tốc độ phát triển co rút hình học ngày nhỏ vi mạch đẩy nhanh thiết kế, rút ngắn đáng kể thời gian từ thiết kế thị trường sản phẩm, giải pháp sử dụng FPGA cho prototyping giai đoạn quan trọng phương pháp luận kiểm tra thiết kế vi mạch tự động ngày Giải pháp hiệu làm giảm rủi ro chi phí phát triển thiết kế ngày tăng, giảm rủi ro đặc tính sản phẩm chấp nhận thị trường Ngoài ra, vật dụng, thiết bị quen thuộc hàng ngày có xu hướng tích hợp thêm khả thơng minh, tự điều khiển, xử lý (như thiết bị nghe nhạc MP3) Các chip IC xử lý lắp vào chúng tính tốn số học phần cốt lõi chip Luận văn nghiên cứu phương pháp thiết kế prototype với công nghệ FPGA thiết kế vi mạch tự động Đó phương pháp thiết kế vi mạch semicustom FPGA bước thiết kế mô tả cấp cao, mô tả chức thực tổng hợp cấp cao, tổng hợp logic, ánh xạ công nghệ thiết kế vật lý FPGA Mục tiêu đề tài xây dựng chương trình tạo tính tốn số học (adder, substractor, multiplier, divider) có cấu trúc, tham số kích thước theo yêu cầu Các module tạo phải đạt yêu cầu sử dụng hiệu tài nguyên FPGA Tham số đầu vào chương trình kích thước tốn hạng, cấu trúc tính tốn số học, Module tạo đặc tả dạng netlist Verilog code mà có khả tổng hợp để tích hợp vào EDA tools Các thiết kế chương trình tạo biên dịch (tổng hợp) thành mạch giả lập kiểm tra chức FPGA Phương pháp chủ yếu bao gồm việc nghiên cứu xây dựng cách tự động đặc tả Verilog tính toán số học mà xét đến nhiều kiểu cấu trúc khác với nhiều tham số Các cấu trúc 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 sử dụng hợp lý đặc trưng cấu trúc FPGA Kết luận văn có ý nghĩa cho người thiết kế vi mạch Nó giới thiệu, trình bày qui trình thiết kế vi mạch hiệu sáng sủa thiết kế tính tốn số học tạo từ chương trình có ý nghĩa thực tiễn Chúng sử dụng làm mô đun cho ứng dụng quan trọng khác Các tính tốn số học phận cốt lõi vi xử lý MỤC LỤC Mở đầu 10 Đặt vấn đề Mục tiêu đề 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 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 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) 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 complex PLD 2.4 FPGA làm việc 2.5 Rapid Prototyping với Verilog FPGA Tổng quan 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 rủi ro [Ou05] 31 3.1.1 Các phạm vi rủi ro 32 3.1.2 Các lợi ASIC Prototyping với FPGA 32 3.1.3 Các trở ngại khứ tiến lớn khắc phục 33 3.1.4 Phương pháp ba pha cho prototyping 33 3.2 Số học FPGA [CCL04] 34 3.2.1 Các thiết kế số học FPGA 34 3.2.2 Field-Programmable Gate Array (FPGA) 35 3.3 Prototyping PC với phần cứng lập trình [ON97] 35 Bộ cộng 2k-block 16-bit FPGA 36 3.4 Thực cộng digit-serial XC4000 FPGA 37 3.4.1 Số học digit-serial (Digit-Serial Arithmetic) 37 3.4.2 Các thực cộng/trừ FPGA 37 CÁC BỘ TÍNH TOÁN SỐ HỌC 40 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 mạch số 1.1.5 Condition 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ộng carry-lookahead đa mức 1.3 Parallel Prefix Networks 1.3.1 Kết hợp tín hiệu khối g p 1.3.2 Prefix Computation 1.3.3 Lập cơng thức 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 carry network 1.3.9 Carry Network cần thiết cho cộng nhanh 1.4 Các biến thể 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ế cộng lai (hybrid adder) 1.5.1 Carry-lookahead carry-select 1.5.2 Ripple-carry carry-lookahead 1.6 Tối ưu hoá cộng nhanh 1.7 Phép cộng nhiều toán hạng 1.7.1 Thực song song cộng 1.7.2 Bộ cộng carry-save 1.7.3 Phép cộng nhiều toán hạng sử dụng cộng carry-save 1.7.4 Phép cộng nhiều toán hạng – Wallace tree Dadda tree 1.7.5 Phép cộng nhiều số có dấu 1.8 Phép cộng hệ thống số bù (nhắc lại) 1.8.1 Sự biểu diễn số bù 1.8.2 Phép cộng hệ thống số bù 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 1.8.3 Tại số bù lựa chọn phổ biến 1.8.4 Sự mở rộng phạm vi độ xác số bù 2 BỘ NHÂN 2.1 Giải thuật nhân Shift/Add số 2.2 Các nhân phần cứng 2.3 Phép nhân số có dấu 2.4 Giải thuật nhân Shift/Add số r 2.5 BỘ NHÂN CÂY VÀ MẢNG 2.5.1 Bộ nhân toàn phần 2.5.2 Bộ nhân cho số có dấu 2.5.3 Bộ nhân mảng 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 kết Giới thiệu chương trình tạo tính tốn số học 1.1 Chức chương trình 1.2 Các loại cấu trúc cộng trừ 1.2.1 Các loại cấu trúc cộng, trừ phạm vi kích thước 1.2.2 Giải thích cổng tham số cộng, trừ 1.3 Các loại cấu trúc nhân chia 1.3.1 Các loại cấu trúc nhân, chia phạm vi kích thước 1.3.2 Giải thích cổng tham số nhân, chia 1.4 Cơ chế hoạt động chương trình tạo tính tốn số học 1.5 Chạy chương trình, giao diện thao tác Xây dựng view cấu trúc tính tốn số học 2.1 Bộ cộng nhiều tốn hạng 2.2 Bộ nhân 2.3 Bộ nhân mảng 2.4 Các xây dựng phát triển cộng Verilog code, RTL view 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 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 tốn hạng khơng dấu 3.11 Bộ cộng tốn hạng có dấu bù 3.12 Bộ cộng 4/5/6/7 tốn hạng khơng dấu 3.13 Bộ cộng/trừ với ghi 3.14 Bộ nhân mảng khơng dấu có dấu bù 3.15 Bộ nhân 9x9 khơng dấu có dấu bù 3.16 Bộ chia (shift/subtract) không dấu restoring 3.17 Các mơ đun trích từ Altera (phụ lục) Giả lập kiểm tra chức với FPGA 4.1 Bộ cộng hai toán hạng 4.2 Bộ cộng nhiều toán hạng 4.3 Bộ nhân mảng 4.4 Bộ chia Kết tiết kiệm tài nguyên dùng tham số FPGA Kết luận hướng phát triển Danh mục tài liệu tham khảo Phụ lục Các họ FPGA 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 mode hoạt động ALM 1.2.4 Các khối DSP Ngôn ngữ mô tả phần cứng VERILOG HDL 2.1 Verilog ? 2.2 Tại dùng Verilog HDL ? 2.3 Verilog HDL mô tả cấu trúc hành vi mạch Giới thiệu Quartus II cho người sử dụng Verilog 3.1 Tạo 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 183 Hỗ trợ tự nhiên phép nhân phức tạp 18-bit Hỗ trợ hiệu dạng số học dấu chấm động (24-bit cho độ xác đơn 53-bit cho độ xác kép) - Hỗ trợ input dấu khơng dấu - Kết nối tầng (cascading) 18-bit input bus tới đường form tap-delay - Kết nối tầng 44-bit output bus tới kết propagate output từ khối đến khối kế - Giàu mểm dẽo đơn vị bảo hồ (saturation) làm trịn số học - Hỗ trợ barrel shifter hiệu Các nhân khối DSP cung cấp cho cộng/bộ trừ tích luỹ khối tuỳ vào cấu hình user Điều tiết kiệm tài nguyên ALM routing tăng hiệu suất, tất liên kết khối bên khối DSP - I/O Banks cấu trúc I/O Các thiết bị Stratix III chứa đến 24 modular I/O banks, chúng chứa 24, 32, 36, 40 48 I/O Cấu trúc modular bank cải thiện hiệu pin, làm dễ dàng di chuyển thiết bị I/O bank bên trái/phải chứa mạch để hỗ trợ giao tiếp nhớ bên tốc độ tới 333MHz Các I/O bank chứa mạch hỗ trợ giao tiếp nhớ bên tốc độ 400MHz 1.2.3 Adaptive Logic Modules mode hoạt động ALM Khối xây dựng logic kiến trúc Stratix III, Adaptive Logic Modules (ALM), cung cấp đặc trưng tiên tiến với việc sử dụng logic hiệu Mỗi ALM chứa nhiều loại nguồn tài nguyên dựa vào LUT mà chia hai combinational adaptive LUT (ALUT) hai ghi Với tới tám input tới hai combinational ALUT, ALM thực kết hợp khác hai chức Khả thích ứng cho phép ALM tương thích ngược hồn tồn với kiến trúc LUT input Một ALM thực chức lên đến input số chức input Thêm vào nguồn tài nguyên dựa vào ALUT, ALM chứa hai ghi chương trình, hai cộng tồn phần chuyên dụng, chuỗi carry, chuỗi số học dùng chung chuỗi ghi Qua nguồn tài nguyên chuyên dụng này, ALM thực hiệu chức số học khác shift registers Mỗi ALM lái tất loại nối kết : cục bộ, dòng, cột, chuỗi carry, chuỗi số học dùng chung, chuỗi ghi, nối kết liên kết trực tiếp Stratix III hoạt động mode sau : - Normal - Extended LUT Mode - Arithmetic - Shared Arithmetic - LUT-Register 184 Mỗi mode dùng tài nguyên ALM cách khác Trong mode, 11 input tới ALM – data input từ liên kết cục LAB, carry-in từ ALM LAB trước, liên kết chuỗi số học dùng chung từ ALM LAB trước, liên kết chuỗi register - trực tiếp tới đích khác để thực chức logic mong muốn Các tín hiệu LAB-wide cung cấp tín hiệu clock, xố khơng đồng bộ, xố đồng bộ, load đồng bộ, điều khiển clock enable cho ghi Các tín hiệu LAB-wide sẵn có để dùng tất ALM mode Phương thức số học (Arithmetic Mode) Là lý tưởng cho việc thực cộng, đếm, tích luỹ, chức wide parity so sánh ALM mode số học dùng hai tập hai 4LUT với hai cộng toàn phần chuyên dụng Các cộng chuyên dụng cho phép LUT thực pre-adder logic, đó, cộng cộng output hai chức 4-input 4LUT dùng chung input dataa datab (hình 2-11 ALM in arithmetic mode), tín hiệu carry-in cung cấp cho adder0 carry-out từ adder0 cung cấp cho carry-in adder1 Carry-out từ adder1 truyền tới adder0 ALM kế LAB Các ALM mode số học truyền ngồi registered/ unregistered version output cộng Trong hoạt động mode số học, ALM hỗ trợ việc sử dụng đồng thời carry output cộng với output logic tổ hợp Trong hoạt động này, output cộng bị bỏ qua Cách sử dụng cộng với output logic tổ hợp cung cấp tài nguyên tiết kiệm tới 50% cho chức mà dùng khả Ví dụ chức conditional operation, hình 2-12 185 Phương thức số học dùng chung (Shared Arithmetic Mode) Trong phương thức này, ALM thực phép cộng phạm vi ALM Trong mode này, ALM cấu hình với bốn 4-input LUT Mỗi LUT tính sum input carry input Output tính tốn carry cung cấp cho cộng kế (hoặc adder1 ALM adder0 ALM kế LAB qua liên kết chuyên dụng gọi chuỗi số học dùng chung (shared arithmetic chain) Chuỗi cải thiện cách đáng kể hiệu suất cộng (adder tree) việc suy giảm số tầng cộng yêu cầu để thực adder tree Hình 2-13 biểu thị ALM dùng đặc điểm Các cộng (adder tree) có nhiều ứng dụng khác Ví dụ, tổng tích số phần nhân dựa logic (logic-based multiplier) thực cấu trúc Ví dụ khác chức correlator mà dùng adder tree lớn để tính tổng mẫu liệu lọc khung thời gian cho để phục hồi de-spread liệu mà truyền việc sử dụng công nghệ spread spectrum Ví dụ tác vụ cộng 3-bit sử dụng shared arithmetic mode (hình 2-14) Sum phần (S[3 0]) carry phần (C[3 0]) thu nhận việc sử dụng LUT, kết (R[3 0]) tính tốn việc sử dụng cộng chuyên dụng Shared Arithmetic Chain sẵn có để dùng phương thức số học tăng cường cho phép ALM thực phép cộng 3-input Điều làm giảm đáng kể tài nguyên cần thiết để thực cộng lớn chức correlator 186 187 1.2.4 Các khối DSP Mỗi thiết bị có hai tới bảy cột khối DSP mà thực phép nhân, multiply-add, multiply-accumulate (MAC) chức shift động hiệu Tính logic khối Stratix III DSP superset hệ khối DSP trước tìm thấy thiết bị Stratix Stratix II Trong thiết bị Stratix Stratix II, khối xây dựng gồm có nhân 18-bit × 18-bit mà chức hai nhân 9-bit × 9-bit Đối với Stratix III, khối xây dựng cặp nhân 18-bit × 18-bit theo sau tầng đơn vị cộng/trừ 37-bit tầng phương trình 51 hình 5-2 Nhận thấy tất số có dấu, liệu input output biểu diễn dạng bù 188 189 NGÔN NGỮ MƠ TẢ PHẦN CỨNG VERILOG HDL - Verilog ? Tại dùng Verilog ? Verilog mô tả cấu trúc, hành vi mạch Verilog HDL ngôn ngữ mô tả phần cứng (Hardware Description Language – HDL) Ngôn ngữ mô tả phần cứng ngôn ngữ dùng để mơ tả hệ thống số, ví dụ, máy tính thành phần máy tính Nó mơ tả hệ thống số số mức Ví dụ, HDL mơ tả bố trí dây, điện trở transistor mạch tích hợp (Integrated Circuit - IC), nghĩa mức chuyển mạch (switch level) Hoặc mơ tả cổng logic flip-flop hệ thống số, nghĩa mức cổng (gate level) Mức cao mơ tả ghi chuyển vector thông tin ghi Mức gọi mức chuyển thông tin ghi (Register Transfer Level – RTL) Verilog hỗ trợ tất mức 2.1 Verilog ? Verilog hai ngôn ngữ mô tả phần cứng chủ yếu kỹ sư phần cứng sử dụng công nghiệp học viện VHDL khác Công nghiệp khơng trí tốt Nhiều người cảm giác Verilog dễ học dễ sử dụng VHDL Verilog giống C kỹ sư máy tính điện tử thích dùng VHDL giống Ada phần lớn kỹ sư khơng có kinh nghiệm với Ada Verilog Gateway Design System Corporation giới thiệu vào năm 1985 Cho đến tháng 5, 1990, với định dạng Open Verilog International (OVI), Verilog HDL ngôn ngữ độc quyền Cadence Cadence bị thúc đẩy mở ngôn ngữ thành Public Domain với mong đợi thị trường cho sản phẩm phần mềm có liên quan đến Verilog HDL phát triển nhanh chóng Verilog cho phép kỹ sư phần cứng mô tả thiết kế mức cao trừu tượng mức kiến trúc mức hành vi mức thực thi thấp (mức cổng, mức chuyển mạch) dẫn tới bố trí mạch tích hợp qui mơ lớn (Very Large Scale Integration – VLSI) chế tạo chip Việc sử dụng HDL giả lập thiết kế trước người thiết kế đưa vào chế tạo Ví dụ minh hoạ: Mạch cộng bán phần viết Verilog module HA(A,B,S,C); input A,B; A output S,C; B assign #2 S=A^B; // S=AB assign #5 C=A&B; // C =AB endmodule S (sum) C (carry) 190 2.2 Tại dùng Verilog HDL ? Hệ thống digital phức tạp Ở mức chi tiết nhất, chúng bao gồm hàng triệu phần tử (transistor cổng logic) Do đó, hệ thống digital lớn, thiết kế mức cổng Trong nhiều thập kỷ, giản đồ logic phục vụ ngôn ngữ chung thiết kế logic, không nhiều Ngày nay, phức tạp phần cứng phát triển tới mức mà lược đồ cổng logic vơ dụng hiển thị mạng lưới phức tạp liên kết không chức thiết kế Ngôn ngữ Verilog cung cấp người thiết kế digital phương pháp mô tả hệ thống digital phạm vi mức trừu tượng rộng hơn, tính đồng thời phần cứng, cung cấp truy xuất tới cơng cụ thiết kế có giúp đỡ máy tính q trình thiết kế mức Verilog cho phép người thiết kế phần cứng biểu diễn thiết kế họ cấu trúc hành vi (behavioral constructs), ngăn chặn chi tiết thực tới giai đoạn sau thiết kế Biểu diễn trừu tượng giúp người thiết kế khám phá lựa chọn kiến trúc thông qua giả lập (simulations) phát cổ chai thiết kế trước thiết kế chi tiết bắt đầu Mặc dù mức hành vi Verilog mô tả mức cao hệ thống digital, cịn ký hiệu xác Các cơng cụ thiết kế có giúp đỡ máy tính (computer-aided-design tools), nghĩa chương trình “biên dịch” chương trình viết ký hiệu Verilog thành mức mạch bao gồm cổng logic flip-flop Nó sau đến phịng thí nghiệm dây thành mạch logic có hệ chức Các cơng cụ khác “biên dịch” chương trình viết ký hiệu Verilog thành mơ tả mặt nạ mạch tích hợp cho VLSI Do đó, với cơng cụ tự động thích hợp, tạo mơ tả VLSI thiết kế Verilog gởi mô tả VLSI thông qua thư điện tử tới xưởng đúc silicon (silicon foundry) nhận chip tích hợp vài tuần Verilog cho phép người thiết kế xác định thiết kế mức cổng logic việc dùng cấu trúc cổng (gate constructs) mức transistor dùng mức chuyển mạch (switch constructs) Sự thực phần cứng Ngôn ngữ Verilog HDL biên dịch thành thực phần cứng fullcustom, semi-custom programmable 191 2.3 Verilog HDL mô tả cấu trúc hành vi mạch Ngôn ngữ Verilog HDL mô tả mạch với hai dạng : Mô tả cấu trúc tương tự netlist, mô tả hành vi dùng cấu trúc mức cao (giống ngơn ngữ lập trình thơng thường) Hiện nay, công cụ “logic synthesis” tự động chuyển mô tả hành vi thành gate netlist Nâng cao chất lượng, đẩy nhanh tốc độ thiết kế Tuy nhiên, điều dẫn tới sai lầm tin tưởng thiết kế phần cứng làm giảm thành viết chương trình 2.3.1 Mơ tả cấu trúc mạch Mơ tả cấu trúc quan hệ nối liền thành phần giống sơ đồ mạch Kết nối thành phần có thành mạch Ngơn ngữ khai báo: - Các biến tương ứng với cổng (port) thành phần - Các meta-variable làm mơ hình mạch kết thành khối 2.3.2 Mô tả hành vi Mô tả chức mạch, công cụ tự động sinh mạch Mạch tổ hợp Mô tả tập cổng (input/output) tập phương trình quan hệ biến với biểu thức logic Mô hình khai báo: Khác với mơ hình cấu trúc khơng có tương ứng một-một biểu thức logic cổng logic Ngôn ngữ thủ tục: Các phép gán nhiều biến, cấu phân giải (resolution mechanism) Tính độc lập lựa chọn thực Mạch đồng Bị ảnh hưởng ngữ nghĩa định thời Phương pháp khai báo: Mô tả tập phép gán biểu thức 192 Mạch FSM mơ tả mơ hình thủ tục Các hoạt động FSM mơ tả vịng lặp (đồng với xung clock) Mô tả hành vi mức kiến trúc Các cấu trúc dòng điều khiển (control-flow): phân nhánh, lặp, gọi Các tác vụ tương ứng với phép gán, nhóm phép gán gọi Dịng liệu (data-flow) dòng điều khiển phụ thuộc vào ràng buộc xác định thực đồng thời tác vụ (xử lý song song) Giới thiệu Quartus II cho người sử dụng Verilog Phần mềm Quartus II dùng để thiết kế thực mạch xác định ngôn ngữ mô tả phần cứng Verilog Quá trình bước sau : Tạo project Tổng hợp mạch từ Verilog code cơng cụ tổng hợp tích hợp Quartus II (Quartus II Integrated Synthesis) Lắp mạch tổng hợp vào Altera FPGA Kiểm tra báo cáo kết phân tích lắp mạch định thời Kiểm tra mạch tổng hợp lược đồ phát sinh công cụ RTL Viewer Các phép gán định thời Phần mềm Quartus II bao gồm biên dịch (Compiler) Bộ biên dịch bao gồm module sau : - Analysis & Synthesis (Phân tích tổng hợp) - Fitter (Lắp mạch) - Assembler - Timing Analyzer (Bộ phân tích định thời) - Design Assistant - EDA Netlist Writer - Compiler Database Interface Các module chạy riêng lẻ hay tồn (chọn Start Compilation Processing menu) 193 Hình 3.1 Màn hình Quartus II 3.1 Tạo project Hình 3.2 Tạo project 194 Hình 3.3 Chọn họ FPGA xác định FPGA cụ thể Hình 3.4 Thêm file thiết kế verilog vào project 195 Hình 3.5 Quartus II hiển thị project tạo 3.2 Setting window (cửa sổ cài đặt) Sử dụng menu Assigment-Settings (Ctrl+Shift+E) Hình 3.6 Settings window 196 3.3 Biên dịch & tạo netlist view Hình 3.7 Biên dịch Có thể biên dịch riêng biệt q trình Ví dụ, biên dịch Analysis & Synthesis Hình 3.8 RTL View 3.4 Chạy giả lập (simulation) Hình 3.9 Chạy giả lập -oOo- 197 LÝ LỊCH TRÍCH NGANG Họ tên: VÕ MINH VINH Ngày, tháng, năm sinh : 21/08/1968 Nơi sinh: Thành phố Hồ Chí Minh Địa liên lạc: 19/63/26 Trần Bình Trọng, Phường 5, Quận Bình Thạnh, Thành phố Hồ Chí Minh Q TRÌNH ĐÀO TẠO KS Cơng trình thuỷ Chế độ học: Chính quy Thời gian học: 1986-1991 Nơi học: Đại học Bách Khoa Tp.Hồ Chí Minh Ngành học: Cơng trình thuỷ KS Máy tính Chế độ học: Chính quy Thời gian học: 1992-1995 Nơi học: Đại học Bách Khoa Tp.Hồ Chí Minh Ngành học: Khoa học máy tính ThS Máy tính Chế độ học: Chính quy Thời gian học: 2006-2008 Nơi học: Đại học Bách Khoa Tp.Hồ Chí Minh Ngành học: Khoa học máy tính Q TRÌNH CƠNG TÁC Đơn vị cơng tác : Cơng ty Cấp Nước Tp Hồ Chí Minh Năm 1993-1996 Chức danh : KS Cơng trình thuỷ Đơn vị cơng tác : Bưu Điện Tp Hồ Chí Minh Năm 1996-2007 Chức danh : KS máy tính Đơn vị cơng tác : Viễn Thơng Tp Hồ Chí Minh Năm 2008- 2009 Chức danh : KS máy tính -oOo- ... 00706732 I TÊN ĐỀ TÀI: Tự động hóa việc tạo tính tốn số học 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 tính tốn số học (adder, substractor, multiplier,... cấu trúc tính tốn số học 2.1 Bộ cộng nhiều toán hạng 2.2 Bộ nhân 2.3 Bộ nhân mảng 2.4 Các xây dựng phát triển cộng Verilog code, RTL view tính tốn số học 3.1 Bộ cộng ripple-carry 3.2 Bộ cộng carry-lookahead... dùng cho RAM nào) Các khối RAM nhỏ blockram nhỏ (Altera), “distributed RAM” (Xilinx) Distributed RAM cho phép dùng FPGA logic-cell RAM bé tí Distributed RAM linh động phân bố RAM FPGA, không