Kỹ thuật fpga áp dụng thực hiện cho bộ mã fec trong hệ dvb

  • Số trang: 89 |
  • Loại file: PDF |
  • Lượt xem: 15 |
  • Lượt tải: 0
nhattuvisu

Đã đăng 26946 tài liệu

Mô tả:

i -------------------------------------------------------------------------------------------------------ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TRẦN KHÁNH THÀNH KỸ THUẬT FPGA ÁP DỤNG THỰC HIỆN CHO BỘ MÃ FEC TRONG HỆ DVB LUẬN VĂN THẠC SĨ Hà Nội - 2009 iii -------------------------------------------------------------------------------------------------------- MỤC LỤC MỤC LỤC .......................................................................................................................... i THUẬT NGỮ VIẾT TẮT ................................................................................................ vi DANH MỤC HÌNH VẼ.................................................................................................... ix DANH MỤC BẢNG BIỂU .............................................................................................. xi MỞ ĐẦU........................................................................................................................... 1 CHƢƠNG 1: TỔNG QUAN VỀ FPGA ................................................................ 3 1.1. Mở đầu .............................................................................................................. 3 1.2. Tổng quan về FPGA .......................................................................................... 3 1.3. Xilinx FPGAs .................................................................................................... 5 1.3.1 Virtex-II CLB ........................................................................................................ 5 1.3.2 Virtex-II IOB ......................................................................................................... 7 1.3.3 Virtex-II Clock Tiles ............................................................................................. 7 1.3.4. VirtexII Pro .......................................................................................................... 8 1.4. VTsim ............................................................................................................... 9 1.5. Các công trình liên quan tới VTsim: JHDL, JBits, JHDLBits và ADB........... 10 1.5.1 JHDL................................................................................................................... 11 1.5.2 Cơ bản về JBits và ADB ...................................................................................... 11 1.5.3 JHDLBits ............................................................................................................ 11 1.6. Những cải tiến JHDLBits và JBits ................................................................... 12 1.7 Ứng dụng FPGA trong tính toán ô .................................................................... 14 1.7.1 Thiết kế mức cao tổng quát .................................................................................. 14 1.7.2. MULTIPLE ........................................................................................................ 17 1.7.3 SINGLE .............................................................................................................. 19 1.7.4 BOOTH ............................................................................................................... 21 1.7. 5 BIT ..................................................................................................................... 23 1.8. Kết luận........................................................................................................... 25 CHƢƠNG 2: MỘT SỐ ỨNG DỤNG CỦA FPGA .............................................. 27 2.1. Mở đầu ............................................................................................................ 27 2.2. Ứng dụng FPGA cho trạm gốc 3G-UMTS....................................................... 27 2.2.1. Tại sao lại lựa chọn FPGA .................................................................................. 27 2.2.1.1 Giảm rủi ro thiết kế ....................................................................................... 27 2.2.1.2. Đáp ứng yêu cầu phát triển của BTS ............................................................ 27 2.2.2. Hạn chế của DSP ban đầu ................................................................................... 28 2.2.2.1 Thiết bị DSP ban đầu .................................................................................... 28 2.2.2.2. Các ưu điểm về hiệu năng của FPGA ........................................................... 28 2.2.3. Các tính năng chính của FPGA trong 3G ............................................................ 29 2.2.3.1. Tốc độ xử lý tín hiệu cao .............................................................................. 29 2.2.3.2 Kiểm tra lỗi đường truyền (FEC) .................................................................. 29 2.2.3.3. Chức năng bắc cầu và điều khiển ................................................................. 29 2.2.3.4. Các giao diện thích ứng với các chuẩn mạng khác nhau ............................... 30 2.2.4. Máy thu phát 3G ................................................................................................ 30 2.2.4.1. Máy thu – phát ............................................................................................. 30 2.2.4.2 Máy thu Rake .............................................................................................. 31 2.2.5. Sơ đồ MUD ........................................................................................................ 31 2.2.6.1 Cơ sở ............................................................................................................ 32 2.2.6.2 Kiến trúc VLSI nhằm tới FPGA .................................................................... 35 2.2.6.3 Phương thức thực hiện ................................................................................. 39 2.2.6.4. Kết quả ........................................................................................................ 40 iv -------------------------------------------------------------------------------------------------------2.2.6. Phân vùng hệ thống ............................................................................................ 43 2.2.6.1. Phân vùng Mip cao ...................................................................................... 43 2.2.6.2. Phân vùng Mip thấp ..................................................................................... 44 2.2.6.3. Phân vùng quản lý hệ thống ......................................................................... 44 2.2.7. Mô hình FPGA với 64 kênh AMR ...................................................................... 44 2.3. Ứng dụng FPGA cho mã Turbo ....................................................................... 45 2.3.1. Bộ mã hóa TCC .................................................................................................. 45 2.3.1.1. Các tính năng ............................................................................................... 45 2.3.1.2. Ứng dụng ..................................................................................................... 45 2.3.1.3 Mô tả tổng quan ............................................................................................ 45 2.3.1.4. Hoạt động đa kênh ....................................................................................... 47 2.3.2. Bộ giải mã TCC .................................................................................................. 52 2.3.2.1. Giới thiệu: .................................................................................................... 52 2.3.2.2. Đặc tính: ...................................................................................................... 52 2.3.2.3. Ứng dụng ..................................................................................................... 52 2.3.2.4. Mô tả chung ................................................................................................ 52 2.4. Kết luận........................................................................................................... 54 CHƢƠNG 3: KỸ THUẬT FPGA ÁP DỤNG THỰC HIỆN CHO BỘ MÃ FEC HỆ DVB……… ........................................................................................................ 55 3.1. Mở đầu ............................................................................................................ 55 3.2. Bộ mã hoá và giải mã FEC, hệ DVB ............................................................... 55 3.2.1. Tổng quan về FEC .............................................................................................. 55 3.2.1.2. Tổng quan về truyền hình số mặt đất ........................................................... 56 3.3. Sơ đồ mô phỏng bộ mã hoá giải mã FEC trong hệ DVB .................................. 60 3.3.1. Sơ đồ khối chung ................................................................................................ 60 3.3.2. Bộ mã hoá .......................................................................................................... 60 3.3.2.1 Bộ trễ ........................................................................................................... 61 3.3.2.2 Bộ mã hoá ngoài .......................................................................................... 61 3.3.2.3 Khối mã hoá chập ........................................................................................ 61 3.3.2.4 Khối mã hoá trong ....................................................................................... 62 3.3.2.5 Khối đục lỗ .................................................................................................. 62 3.3.3. Bộ giải mã .......................................................................................................... 63 3.3.3.1 Bộ giải mã hoá ngoài ................................................................................... 63 3.3.3.2 Khối giải mã hoá chập .................................................................................. 63 3.3.3.3 Khối giải mã hoá trong ................................................................................. 64 3.3.2.3 Khối giải đục lỗ ........................................................................................... 64 3.4. Thực hiện và kết quả thu được......................................................................... 64 3.4.1. Các bước thực hiện ....................................................................................... 64 3.4.1.1 Thực hiện trong phần mềm Math lab ............................................................ 64 3.4.1.1 Thực hiện trong ISE ..................................................................................... 65 3.4.1.1 Thực hiện trong FUSE ................................................................................. 65 3.4.1. Kết quả thu được cho bộ mã hoá................................................................... 65 3.4.1.1 Đầu vào mã hoá ........................................................................................... 65 3.4.1.2 Đầu ra sau khi mã hoá .................................................................................. 65 3.4.1. Kết quả thu được cho bộ giải mã .................................................................. 65 3.4.1.2 Đầu ra sau khi giải mã hoá ........................................................................... 65 3.4.1.2 Đầu ra giải mã sẵn sàng FIFO ...................................................................... 66 KẾT LUẬN ..................................................................................................................... 67 TÀI LIỆU THAM KHẢO................................................................................................ 69 PHỤ LỤC ........................................................................................................................ 70 v -------------------------------------------------------------------------------------------------------1.Liên hệ giữa Matlab và FPGA ............................................................................. 70 1.1. Tích hợp thuật toán Matlab vào trong thiết kế FPGA. ............................................ 70 1.2. Matlab một môi trường phát triển cho thiết kế FPGA............................................. 75 vi -------------------------------------------------------------------------------------------------------- THUẬT NGỮ VIẾT TẮT A ADB Alternate Wire Database Cơ sở dữ liệu dây thay thế AHB Advanced High- Performance Bus Bus hiệu năng cao tăng cường AMR Adaptive Multi Rate Bộ thích ứng đa tốc độ API Application Programming Interface Giao diện lập trình ứng dụng ARIB Association of Radio Industries and Businesses ASIC Application Specific Intergrated Circuit ATSC Advanced Television System Committee Vi mạch tích hợp ứng dụng B Tỷ lệ lỗi khối BLER Block Error Rate BSTOFDM Band Segmented OFDM BTS Base Transceiver Station Trạm phát gốc CC Convolutional Coding Mã hoá chập CDMA Code Device Multiplex Access Đa truy nhập phân chia theo mã CLB Configurable Logic Block Khối logic khả cấu hình CM Core Module Modun lõi DCI Digitally Controlled Impedance Trở kháng điều khiển kỹ thuật số DCM Digital Clock Manager Bộ quản lý clock kỹ thuật số DDR Dual Data Rate Công nghệ lưu dữ liệu kép C D vii -------------------------------------------------------------------------------------------------------DIGEG Digital Broadcasting Expert Group DSP Digital Signal Processing DVB-T Digital Video BroadcastingTerrestrial Xử lý tín hiệu số F FPGA Field Programmable Gate Array Vi mạch mảng phần tử logic khả trình FSM Finite State Machine Thiết bị trạng thái hạn chế FEC Forward Error Correction Gửi bản tin tự sửa lỗi Graphical User Interface Giao diện đồ họa người dùng Hardware Description Languages Ngôn ngữ mô tả phần cứng ISI Inter Symbols Interference Nhiễu xuyên ký tự ITU International Telecommunication Union Tổ chức viễn thông toàn cầu IOB Input/Output Block Khối vào ra Java Hardware Desription language Ngôn ngữ mô tả phần cứng trên nền Java LUT Look Up Table Bảng dò tìm LE Logical Element Phần tử logic LM Logic Module Modun logic Multi Input Multi Output Nhiều đầu vào nhiều đầu ra G GUI H HDL I J JHDL L M MIMO viii -------------------------------------------------------------------------------------------------------MMSE Minimum-Mean-Square-Error Lỗi trung bình quân phương tối thiểu MAI Multi-Access Interferences Nhiễu đa truy nhập MUD Multi User Detection Bộ dò đa người dùng Orthogonal Variable Spreading Factor Hệ số trải phổ khả biến trực giao RTL Register Transfer Level Mức chuyển đổi thanh ghi RTR Run Time Reconfiguration Đặt lại cấu hình thực RAM Random Access Memory Bộ nhớ truy cập ngẫu nhiên ROM Read Only Memory Bộ nhớ chỉ đọc RS Reed-solomon O OVSF R S Single Event Upset Nhiễu biến cố đơn PE Processing Elements Thành phần xử lý PLD Programmable Logic Device Thiết bị logic khả lập trình The Xilinx Hardware Interface Giao diện phần cứng Xilinx Universal Mobile Telecommunications Service Dịch vụ viễn thông di động toàn cầu Wideband Code Division Multiple Access Đa truy nhập phân chia theo mã băng rộng Third Generation Partnership Project Dự án hợp tác 3G SEU P X XHWIF U UMTS W WCDMA 3GPP ix -------------------------------------------------------------------------------------------------------- DANH MỤC HÌNH VẼ Hình 1. 1 Bốn lĩnh vực thiết kế chính của FPGA .................................................................... 3 Hình 1. 2 Kết cấu bên trong FPGA ......................................................................................... 4 Hình 1. 3 Sơ đồ tile Virtex-II FPGA....................................................................................... 5 Hình 1. 4 Bố trí chức năng của LE ......................................................................................... 6 Hình 1. 5 Bố trí chức năng của LE ......................................................................................... 7 Hình 1. 6 Cấu hình bộ đệm clock toàn cục ............................................................................. 8 Hình 1. 7 Cấu tạo của JHDL ................................................................................................ 10 Hình 1. 8 Dòng thiết kế JHDLBits ....................................................................................... 12 Hình 1. 9 Quá trình xác nhận dòng bits ................................................................................ 14 Hình 1. 10 Thuật toán thực thi FPGA ................................................................................... 15 Hình 1. 11 Cấu trúc FPGA mức cao ..................................................................................... 16 Hình 1. 12 Cấu trúc hàng ô................................................................................................... 17 Hình 1. 13 Luồng nóng tính toán, công thức cho kiến trúc MULTIPLE................................ 18 Hình 1. 14 Các bộ nhân nguyên được canh chỉnh ................................................................. 18 Hình 1. 15 Cấu trúc ô cho kiến trúc MULTIPLE .................................................................. 19 Hình 1. 16 Các phép toán luồng nóng phân vùng cho kiến trúc SINGLE .............................. 20 Hình 1. 17 Các cấu trúc của bộ điều khiển và ô cho kiến trúc SINGLE ................................ 20 Hình 1. 18 Phần cứng cho thuật toán Booth.......................................................................... 21 Hình 1. 19 Thuật toán Booth cho bộ nhân bù hai .................................................................. 22 Hình 1. 20 Các phép tính luồng nóng cho kiến trúc BOOTH ................................................ 22 Hình 1. 21 Cấu trúc ô và bộ điều khiển cho kiến trúc BOOTH ............................................. 23 Hình 1. 22 Tuyến đầu tiên của kiến trúc BIT cho tính toán luồng nóng ................................. 24 Hình 1. 23 Cấu trúc ô và bộ điều khiển cho kiến trúc BIT .................................................... 25 Hình 2. 1 Sự phức tạp của thiết bị và quá trình phát triển của FPGA .................................... 27 Hình 2. 2 Bản thiết kế DSP ban đầu ..................................................................................... 28 Hình 2. 3 Khối thực thi FPGA .............................................................................................. 28 Hình 2. 4 Sơ đồ máy phát 3G ............................................................................................... 30 Hình 2. 5 Sơ đồ máy thu 3G ................................................................................................. 30 Hình 2. 6 Mô hình máy thu Rake ......................................................................................... 31 Hình 2. 7 Sơ đồ khối bộ dò đa người dùng (CF-MUD) ......................................................... 32 Hình 2. 8 Nguyên lý của khối lấy dấu (a) và khối tách sóng cho k người dùng (b) ................ 34 Hình 2. 9 Ước tính hiệu năng của phương pháp MUD .......................................................... 35 Hình 2. 10 Kiến trúc phần cứng đơn giản hoá của CF-MUD ................................................ 36 Hình 2. 11 Ánh xạ CF-MUD lên phần tử xử lý và bộ nhớ trong ........................................... 38 Hình 2. 12 Tiến trình xử lý pipeline trong tiến trình xử lý lấy dấu ........................................ 41 Hình 2. 13 Chiến lược đường ống (pipeline) trong tiến trình xử lý tách ................................ 41 Hình 2. 14 Mô hình FPGA với 64 kênh AMR ...................................................................... 44 Hình 2. 15 Các cổng vào ra bộ mã hóa TCC ......................................................................... 46 Hình 2. 16 Cấu trúc bên trongbộ mã hóa TCC ...................................................................... 46 Hình 2. 17 Cấu trúc TCC RSC ............................................................................................. 47 Hình 2. 18 Thông lượng bộ đệm kép .................................................................................... 48 Hình 2. 19 Định thời đầu vào ............................................................................................... 49 Hình 2. 20 Định thời đầu ra (Bits đuôi) ................................................................................ 50 Hình 2. 21 Định thời đầu ra ( Không bit đuôi) ...................................................................... 50 Hình 3. 1 Máy thu VSB........................................................................................................ 57 Hình 3. 2 Sơ đồ khối và giao diện đo trong hệ thống DVB-T................................................ 58 x -------------------------------------------------------------------------------------------------------Hình 3. 3 Hệ thống thu phát truyền hình số mặt đất .............................................................. 59 Hình 3. 4 DVB-T Equipment by ITIS................................................................................... 59 Hình 3. 5. Sơ đồ khối và giao diện đo phía máy thu DVB-T ................................................. 59 Hình 3. 6 Sơ đồ khối của bộ điều chế DVB-T ...................................................................... 60 Hình 3. 7 Sơ đồ khối mô phỏng bộ mã và giải mã FEC cho DVB với kênh giả nhiễu trắng .. 60 Hình 3. 8 Sơ đồ khối mã hoá ................................................................................................ 61 Hình 3. 9 Bộ trễ ................................................................................................................... 61 Hình 3. 10 Khối mã hoá ngoài.............................................................................................. 61 Hình 3. 11 Khối mã hoá chập ............................................................................................... 62 Hình 3. 12 Khối mã hoá trong .............................................................................................. 62 Hình 3. 13 Khối đục lỗ ......................................................................................................... 62 Hình 3. 14 Sơ đồ khối bộ giải mã ......................................................................................... 63 Hình 3. 15 Đầu ra sau khi giải mã hoá .................................................................................. 66 Hình p- 1 Bộ tạo hệ thống, giao diện AccelChip ................................................................... 71 Hình p- 2 Kiến trúc bộ lọc ước tính Kalman ......................................................................... 73 Hình p- 3 Sơ đồ khối bộ lọc Kalman .................................................................................... 73 Hình p- 4 Hệ thống Matlab công cụ đánh giá thuật toán ....................................................... 75 Hình p- 5 Matlab trên cơ sở RTL thiết kế luồng cho FPGA .................................................. 76 Hình p- 6 Chuỗi phát- thu HSDPA ....................................................................................... 78 xi -------------------------------------------------------------------------------------------------------- DANH MỤC BẢNG BIỂU Bảng 1.1: Kích cỡ và loại SelectRAM .................................................................................... 6 Bảng 2.1: Số người dùng hoạt động cùng lúc tối đa có thể phân biệt được. ........................... 41 Bảng 2.2: Tỷ lệ sử dụng phần cứng (%) tương ứng với số người dùng tối đa. ....................... 42 Bảng 2.3: Sử dụng tài nguyên và hiệu suất ........................................................................... 51 1 -------------------------------------------------------------------------------------------------------- MỞ ĐẦU Sự thành công của công nghệ kỹ thuật mới phụ thuộc rất nhiều vào khả năng tích hợp, hội tụ của các giải thuật, các thuật toán đã được nghiên cứu cho các vi mạch vào thực tế. Các hệ thống ngày càng tiến đến xu hướng hội tụ lại và trở nên mềm dẻo hơn, dễ dàng cấu hình cũng như khả năng phối kết hợp với các hệ thống khác. Trong những năm gần đây đòi hỏi về sử dụng các dịch vụ di động tốc độ cao, băng thông lớn đang ngày càng tăng. Yêu cầu về tốc độ dữ liệu cao dẫn tới lớp vật lý trở nên phức tạp hơn. Đã có rất nhiều mô hình được nghiên cứu và đưa và sử dụng thực tế như là MIMO, quá trình xử lý tín hiệu số tiên tiến, các mô hình sửa lỗi trước tiên tiến (FEC)…Rất nhiều chuẩn như là WCDMA (HSDPA), CDMA2000(1xEV-DO), Wi-MAX đã tích hợp các mô hình này. Cùng với đó các thuật toán phức tạp cũng được đề nghị để cải tiến hiệu năng của máy phát – thu. Mặc dù rất nhiều thuật toán đã được đề nghị nhưng không phải thuật toán nào cũng được đưa vào sử dụng trong thực tế do độ phức tạp của thuật toán và hạn chế về công nghệ. Hơn nữa, đối với các thiết bị di động thì các thuật toán này phải có khả năng trong việc sử dụng tài nguyên, gọn nhẹ và tiêu thụ ít năng lượng. FPGA cho phép cấu hình lại để thay đổi chức năng logic. Khả năng này cho phép nhà thiết kế có thể thoải mái phát triển, dễ dàng thay đổi chức năng phần cứng giống như đang thực hiện trên phần mềm.Thậm chí FPGA còn có thể tự động cấu hình để thực hiện các chức năng khác nhau trong những khoảng thời gian khác nhau. Phù hợp cho việc triển khai các thiết bị vô tuyến thông minh (Cognitive Radio System - CRS), vô tuyến định nghĩa bằng phân mềm (Software – Defined Radio - SDR). Khả năng cho phép cấu hình lại chức năng logic có thể ứng dụng trong nhiều kiểu hệ thống để cài đặt hệ thống tự khắc phục lỗi, tạo hệ thống có thể được cấu hình cho nhiều môi trường hoạt động, hoặc cài đặt thành phần cứng đa mục đích cho các ứng dụng khác nhau. Hơn nữa, sử dụng FPGA có thể dễ thiết kế và kiểm tra phần cứng cũng như khả năng nhanh chóng tung sản phẩm ra thị trường. Với những ưu thế của FPGA nó cho thấy lựa chọn FPGA là một tất yếu vào thời điểm hiện nay để đáp ứng các yêu cầu về thiết bị, làm cho khả năng triển khai các thuật toán cũng như giải thuật mới được đưa vào thực tế. Nhận thức được những vấn đề trên, cùng với sự định hướng của thầy giáo TS. TRỊNH ANH VŨ, tôi đã lựa chọn đề tài nghiên cứu của mình là “Kỹ thuật FPGA áp dụng thực hiện cho bộ mã hoá FEC trong hệ DVB” Theo đó, đồ án được tổ chức và trình bày trong ba chương Chƣơng 1: Tổng quan về FPGA Trình bày chung về FPGA, Xilinx FPGAs, các cải tiến của JBits, các công trình trước đây và hiện nay có liên quan tới VTsim, các công cụ ảnh hưởng tới VTsim. Mô tả bốn kiến trúc tính toán ô thực hiện cho việc nghiên cứu, trình bày phần cứng FPGA mức cao dùng cho mỗi từng kiến trúc để thuận tiện tương tác với hệ thống phân loại dựa trên cách tính toán của mỗi kiến trúc. Bốn kiến trúc MULTIPLE, SINGLE, BOOTH, và BIT được phân biệt dựa vào cách mà chúng tính toán giải quyết bằng các cấp độ tương đương và bằng cách thực hiện các phép tính số học khác nhau. Phần cứng được 2 -------------------------------------------------------------------------------------------------------thiết kế cụ thể cho từng vấn đề, bởi vậy mỗi kiến trúc bao gồm các khối số học rất nhỏ yêu cầu để tính toán vấn đề. Do đó, mỗi khối số học được dùng chỉ trong mỗi xung đồng hồ. Tính logic yêu cầu cho tương tác hệ thống được giảm nhỏ nhất để lưu trữ nhiều vùng chíp có thể cho tính toán ô. Chƣơng 2: Một vài ứng dụng của FPGA Trình bày một số lý do tại sao sử dụng FPGA cho trạm gốc, một số tính năng chính của FPGA ứng dụng trong trạm gốc 3G, sơ đồ máy thu - phát, sơ đồ MUD, trình bày về hoạt động của các mạch thực tế cho việc mã hóa và giải mã Turbo. Chƣơng 3: Ứng dụng FPGA trong bộ mã hoá FEC trong hệ DVB Trình bày tổng quan về FEC, về hệ DVB, về sơ đồ thiết kế cụ thể bằng Mathlab được cung cấp sẵn có bởi Xilinx mô phỏng bộ mã hoá FEC, các kết quả thu được. Được sự quan tâm giúp đỡ chỉ bảo tận tình trong nghiên cứu và cung cấp tài liệu của thầy giáo TS. Trịnh Anh Vũ và ý kiến đóng góp của các thầy cô giáo cùng với sự cố gắng, nỗ lực của bản thân đồ án được hoàn thành với nội dung được giao ở mức độ và phạm vi nhất định. Tuy nhiên do trình độ và thời gian có hạn, đồ án chắc chắn không tránh khỏi những sai sót, kính mong các thầy cô giáo và các bạn sinh viên chỉ bảo đóng góp ý kiến chỉnh sửa và định hướng nội dung cho hướng phát triển tiếp theo. Tôi xin chân thành cảm ơn thầy giáo TS. Trịnh Anh Vũ đã tận tình giúp đỡ trong thời gian học tập và làm đồ án tốt nghiệp. Hà Nội, ngày…..tháng…..năm 2009 Người làm đồ án HV. Trần Khánh Thành 3 -------------------------------------------------------------------------------------------------------- CHƢƠNG 1: TỔNG QUAN VỀ FPGA 1.1. Mở đầu Để đi đến việc trình bày ứng dụng FPGA trong thông tin vô tuyến cũng như 3G, cần có cái nhìn tổng quan về FPGA, các ưu việt của nó cũng như khả năng ứng dụng của FPGA. Muốn vậy, chương sẽ được tổ chức trình bày như sau:  Tổng quan về FPGA.  Xilinx FPGAs.  VTsim.  Các công trình liên quan tới VTsim: JHDL, JBits, JHDLBits và ADB.  Những cải tiến JHDLBits và Jbits. 1.2. Tổng quan về FPGA FPGAs xuất hiện lần đầu tiên vào giữa những năm 1980 nhằm mục đích thay thế cho các mạch logic đa chip bằng giải pháp tự tái cấu hình đơn. FPGAs đã có những phát triển mạnh, vượt lên trên vai trò thay thế cho vi mạch logic đa chip. Hiện nay, các ứng dụng FPGA bao gồm: Xử lý tín hiệu và hình ảnh, tăng tốc đồ hoạ, nhận dạng/phân tích mục tiêu quân sự, mã hoá, tính toán tái cấu trúc, đồng xử lý bộ nhớ offchip. FPGAs được ứng dụng trong bốn lĩnh vực thiết kế chính: Tạo nguyên mẫu nhanh, mô phỏng, trước đặc chế, và đặc chế hoàn toàn. Hình 1.1 minh hoạ phạm vi ứng dụng FPGAs chia theo bốn lĩnh vực thiết kế. Tạo khuôn mẫu nhanh 30% 37% 3% 30% Mô phỏng Trước đặc chế Đặc chế hoàn toàn Hình 1. 1 Bốn lĩnh vực thiết kế chính của FPGA FPGAs là kết quả của việc kết hợp hai công nghệ khác nhau: Thiết bị logic khả trình (PLDs) và vi mạch bán dẫn chuyên dụng (ASICs). Một bộ PLD đơn giản bao gồm một mảng các cổng AND và OR để tạo ra các mạch cơ bản. ASICs là các loại chip do người dùng tạo ra, thường được sử dụng trong các ứng dụng lớn do chi phí kỹ thuật không đệ quy (NREs) cao hơn nhiều so với một chu kỳ FPGAs. FPGAs có cấu tạo bao gồm hàng ngàn cho tới hàng triệu cổng cùng nhiều tổ hợp, khối logic và công nghệ xử lý khác nhau. Cấu trúc bên trong của FPGA thường được xây dựng theo dạng tile đối xứng, bao 4 -------------------------------------------------------------------------------------------------------gồm một mạng lưới các khối chuyển mạch, logic, kênh dây dẫn, khối vào ra. Hình 1.2 minh hoạ một ma trận gồm các khối chuyển mạch (SB), kênh dây dẫn và khối logic. Khối chuyển mạch trong kết cấu FPGA là bộ phận nối các dây dẫn bên trong với nhau. Khối chuyển mạch cho phép các đoạn dây ngang chuyển sang các đoạn dây dọc và ngược lại. Khối chuyển mạch cũng cho phép các đoạn dây ngang kết nối với các dây ngang khách cũng như dây dọc kết nối với nhau. SB Logic Block Logic Block Logic Block Logic Block SB Logic Block SB Logic Block SB Logic Block SB Logic Block SB Logic Block SB Logic Block SB Logic Block SB Logic Block SB Logic Block SB Logic Block SB Logic Block SB SB SB SB Logic Block SB SB SB SB SB SB SB SB SB SB SB SB Logic Block SB SB SB SB SB Logic Block SB Logic Block SB Logic Block Hình 1. 2 Kết cấu bên trong FPGA Kích cỡ và thành phần của một khối logic rất khác nhau, tuỳ theo nhà sản xuất và nhu cầu thị trường. Ví dụ, FPGAs hướng đến các giải pháp đem lại hiệu quả về chi phí, thường có các khối logic đơn giản hơn là FPGA dành cho các ứng dụng hiệu năng cao. Mặc dù thành phần bên trong các khối logic có thể thay đổi theo cấu trúc, nhưng có hai khối cơ bản bên trong khối logic: Phần tử nhớ và bộ tạo hàm. Phần tử nhớ giúp cho các nhà thiết kế lưu trữ tạm thời dữ liệu cho đến khi đạt được điều kiện mong đợi. Bộ tạo hàm có thể đặt cấu hình để tạo hàm bất kỳ cho đến số đầu vào của bộ tạo hàm. Tuỳ thuộc vào cấu trúc, một số bộ tạo hàm có thể hoạt động ở các chế độ khác nhau như bộ nhớ truy cập ngẫu nhiên (RAM), bộ nhớ chỉ đọc (ROM), hoặc một số chế độ phức tạp hơn như thanh ghi thay đổi. FPGAs được đặt cấu hình thông qua một dòng bits nạp trong thiết bị. Dòng bits là một file tạo ra bởi các nhà sản xuất FPGA, đặt cấu hình cho các khối chuyển mạch, các khối logic và các mạch logic khác bên trong FPGA. FPGAs đã làm thay đổi ranh giới về điện tử kỹ thuật số khi cho phép nhà thiết kế xây dựng từng mảng. Nhiều nhà thiết kế có thể nhanh chóng kiểm tra và xác nhận chức năng của mỗi mảng trong hệ thống để bảo đảm chính xác nhiệm vụ của chúng 5 -------------------------------------------------------------------------------------------------------khi kết hợp với phần còn lại của hệ thống. Trong bối cảnh kỹ thuật thiết lập lại cấu hình ngày càng được quan tâm nhiều hơn, FPGAs được thừa nhận là giải pháp khả thi và kinh tế nhất. Cho dù thiết kế có thể đặt cấu hình là ổn định hay linh hoạt thì với FPGAs, đều có thể thực hiện chu kỳ thiết kế nhanh chóng, linh hoạt, hiệu quả cao [4]. 1.3. Xilinx FPGAs Xilinx là công ty dẫn đầu trong thị trường FPGA, được thành lập năm 1984, sản phẩm FPGA đầu tiên của họ được thương mại hoá năm 1985. Hiện nay, Xilinx hướng cho họ sản phẩm Virtex-II FPGAs đến cấp thiết kế với mật độ và hiệu năng cao. Trong đồ án này trình bày về mạch logic khả trình, Virtex-II FPGAs là loại FPGAs tiên tiến, mang đến sự lựa chọn mật độ phong phú nhất trong lĩnh vực này, bao gồm mười một loại thiết bị từ 40 ngàn đến tám triệu cổng hệ thống . Virtex-II FPGA đã dành bộ nhân 18 bit x 18 bit, bộ cộng chuỗi bộ cộng nhớ nhanh và số lượng lên tới 93,184 thanh ghi bên trong. Các thiết bị Virtex-II được phân vào một ma trận tile đối xứng như đã mô tả trong phần trên. Sáu loại tile chính trong Virtex-II là: Khối vào/ra (IOBs), Khối logic cho phép đặt cấu hình (CLBs), bộ nhân phần cứng, SelectRAM khối 18Kbit và Mô-đun clock KTS (DCMs) [8]. Hình 1.3 minh hoạ sơ đồ tile của Virtex-II FPGA. Mỗi họ Virtex FPGA đều có một tập hợp các sản phẩm có thể lập trình lại lớn, bắt đầu với phiên bản Virtex đầu tiên được giới thiệu vào năm 1998. Virtex và Virtex-E đã trở thành sản phẩm đi đầu trong nền công nghiệp lúc đó ngay từ lần đầu giới thiệu. DCM DCM IOB Đồng hồ ghép kênh Logic khả cấu hình Các cổng vào ra khả lập trình CLB Khối lựa chọn RAM Multiplier Hình 1. 3 Sơ đồ tile Virtex-II FPGA 1.3.1 Virtex-II CLB Thành phần cho phép đặt cấu hình chính trong Virtex-II FPGA là CLB. CLBs chiếm phần lớn các tile trong thiết bị. Mỗi CLB bao gồm bốn slice và hai bộ đệm ba trạng thái. 6 -------------------------------------------------------------------------------------------------------- Chuỗi mang Bộ tạo hàm (Function Generator) Phần tử nhớ (Memory Element) Chuỗi chạy Hình 1. 4 Bố trí chức năng của LE Mỗi bộ tạo hàm có thể đặt cấu hình theo bốn cách khác nhau: Bốn bảng dò đầu vào (LUT), thanh ghi chuyển, SelectRAM phân tán 16 bit, hoặc ROM 16 bit. Trong chế độ LUT bốn đầu vào, bộ tạo hàm có thể thực thi hàm logic tổ hợp bất kỳ lên tới 4 đầu vào. Bộ tạo hàm nhân có thể xếp tầng hoặc sử dụng song song để tạo ra các hàm hoặc kích cỡ đầu vào tuỳ ý. Chế độ thanh ghi chuyển 16 bit có thể sử dụng độc lập với các bộ tạo hàm khác hoặc xếp tầng cùng nhau để tạo thành các thanh ghi chuyển dài hơn [8]. Có hai chế độ hoạt động dành cho bộ tạo hàm, hoạt động như một SelectRAM: SelectRAM đơn cổng và SelectRAM cổng kép. Một SelectRAM cổng đơn chỉ có một địa chỉ cổng, trong khi SelectRAM cổng kép có một cổng dành cho việc ghi đồng bộ, một cổng dành cho đọc không đồng bộ. Cổng thứ hai chuyên dùng cho việc đọc không đồng bộ. Thiết lập cấu hình cổng kép cho phép đọc và ghi đồng thời trên cùng SelectRAM. Mỗi CLB có thể đặt trong bảy cấu hình SelectRAM khác nhau như trong bảng 1.1. Chế độ bộ tạo hàm ROM khá giống với chế độ SelectRAM đơn cổng. Một LUT đơn có thể thực hiện một ROM 16x1 hoặc LUTs bội có thể xếp tầng cùng nhau để tạo thành một ROM có độ dài tuỳ ý [8]. Bảng 1.1: Kích cỡ và loại SelectRAM Loại SelectRAM Cỡ RAM Đơn cổng 16 x 8 bit Đơn cổng 32 x 4 bit Đơn cổng 64 x 2 bit Đơn cổng 128 x 1 bit Cổng kép 16 x 4 bit Cổng kép 32 x 2 bit Cổng kép 64 x 1 bit Hai phần tử nhớ trong một slice có thể thiết lập làm một flip flop loại D hoạt động theo cạnh hoặc chốt nhạy mức. Với mỗi phần tử nhớ, có sáu chế độ hoạt động khác nhau: 7 ------------------------------------------------------------------------------------------------------- Set và reset không đồng bộ (preset và clear/đặt trước và xoá).  Reset không đồng bộ (xoá).  Set không đồng bộ (đặt trước).  Reset đồng bộ.  Set đồng bộ .  Không set hoặc reset. 1.3.2 Virtex-II IOB Khối vào/ra (IOBs) là các tile trong FPGAs, tạo điểm truy cập đến và đi khỏi kết cấu bên trong của FPGA. IOBs được đặt xung quanh đường bao của kết cấu FPGAs, xem Hình 2.3, IOBs thường được sử dụng để nối các clock bên ngoài, tuyến dữ liệu vào/ra, và là bộ dò test trong các ứng dụng sửa lỗi. Mỗi IOB bên trong Virtex-II FPGA truy cập tới bốn bộ đệm bên ngoài. Hai bộ đệm có thể sử dụng cùng nhau để tạo thành cặp vi phân, độc lập như là bộ đệm một đầu hoặc trở kháng điều khiển kỹ thuật số (DCI). Virtex-II FPGA có một số chuẩn I/O khác nhau: Hai mươi lăm chế độ I/O một đầu, tám chế độ tín hiệu vi phân và hai mươi sáu chế độ DCI [8]. Dãy 0 Dãy 4 Dãy 5 Dãy 7 Dãy 1 Dãy 6 Dãy 6 Dãy 2 Dãy 4 Dãy 3 Dãy 5 Dãy 2 Dãy 1 Dãy 7 Dãy 0 Dãy 3 Ở bên trong, một IOB bao gồm sáu phần tử nhớ và một số bộ nhân để đặt cấu hình vào/ra tối đa. Các phần tử nhớ bên trong IOBs có chức năng tương tự như các phần tử nhớ trong CLB. Có ba đường dẫn riêng trong IOB: Một dành cho đầu vào, một cho đầu ra và có khả năng đặt đầu ra hoạt động ở chế độ ba trạng thái. Bên cạnh đó, tổ hợp hai đầu vào hoặc các flip-flop đầu ra cho phép sử dụng các thanh ghi DDR. IOBs được chia thành bảy vùng, như trong Hình 1.5. Hình bên trái trong Hình 1.5 thể hiện góc quan sát từ bên trên đối với gói nối dây, hình bên phải là góc nhìn từ bên trên đối với gói flip chip. Có một số quy tắc tổ hợp các chuẩn vào/ra khác nhau trong một vùng IOBs. Chi tiết về chế độ hoạt động và cấu hình IOB có trong phần bảng dữ liệu VirtexII của Xilinx [8]. Hình 1. 5 Bố trí chức năng của LE 1.3.3 Virtex-II Clock Tiles Virtex-II FPGAs chứa hai tile đệm clock toàn cục riêng biệt: CLKT và CLK. CLKT được đặt ở hàng trên của FPGA, xem hình 1.3, và chứa tám bộ đệm nhân clock toàn cục; tile CLKB được đặt ở giữa của hàng bên dưới. Tile clock được đặt ở giữa của cả hàng trên và hàng dưới, tạo cho thiết bị có sự phân bố clock low-skew đều. Trong mỗi 8 -------------------------------------------------------------------------------------------------------góc phần tư, chỉ có tám trong tổng số các clock toàn cục được sử dụng (trên cùng bên trái, trên cùng bên phải, dưới cùng bên trái và dưới cùng bên phải) trong thiết bị. Các clock toàn cục có thể được sử dụng kết hợp với DCMs hoặc điều khiển trực tiếp từ bộ đệm đầu vào clock [8]. Mỗi bộ đệm nhân clock toàn cục có thể đặt cấu hình là BUFG (bộ đệm tổng), một BUFGCE (global buffer with clock enable - bộ đệm tổng có clock), hoặc là BUFGMUX (bộ nhân lựa chọn clock) như minh hoạ trong Hình 1.6. Cấu hình đơn giản và phổ biến nhất dành cho clock toàn cục là bộ đệm đơn giản (BUFG). Có thể lập một clock cổng sử dụng cấu hình BUFGCE. Chế độ BUFMUX cho phép chuyển giữa hai clock không đồng bộ riêng biệt hoặc đồng bộ và bảo đảm thời gian cao hoặc thấp khi clock chuyển không bao giờ ngắn hơn thời gian cao hoặc thấp ngắn nhất [8]. I O I I0 O CE BUFG BUFGCE O I1 S BUFGMUX Hình 1. 6 Cấu hình bộ đệm clock toàn cục 1.3.4. VirtexII Pro Giải pháp Platform FPGA VirtexII Pro được cho là một kỹ thuật silicon phức tạp nhất và sản phẩm phần mềm trong công nghệ logic có thể lập trình lại được. Mục đích trong phát triển Virtex-II pro FPGA đưa ra một kiến trúc vượt trội, và được xây dựng lại từ đầu. Để đạt được điều này, các kỹ sư mạch và kiến trúc sư hệ thống từ IBM, MindSpeed và Xilinx cùng phát triển những tính năng tiên tiến của FPGA. Các đội kỹ sư từ các công ty phần mềm nhúng hàng đầu trên thế giới đã hợp tác để thiết kế. Các tính năng họ Virtex-II Pro  Có 5 họ chính với các ô logic 3168 tới 50832 và 216 tới 3888 Kb trên một Khối RAM.  Dựa trên kiến trúc nhúng IP Virtex-II.  Khối thu phát nối tiếp tốc độ cao lên tới hàng Gigabit, tới hơn 16 thiết bị.  Bộ xử lý nhúng, lên tới 4 thiết bị. Điểm nổi bật nhất của họ Virtex-II Pro Họ Virtex-II Pro bao gồm năm thành viên, bốn thành viên là 16RocketIO TM trên công nghệ Mindspeed SkyRailTM. Mạch này bao gồm bộ mã hóa và giải mã theo chuẩn 8B/10B cho băng tần cao hơn sử dụng đa kênh, và hỗ trợ tăng toàn bộ tính toàn vẹn tín hiệu thông qua sự biến đổi PCB. Thêm vào đó, RocketIO là khối thu phát FPGA nhúng đầu tiên để đạt được tốc độ báo lên tới 3.125 Gb/s. Bốn khối RocketIO cho phép PCB hỗ trợ song công tốc độ dữ liệu 10 Gbps. Công nghệ RocketIO cho phép băng tần hệ thống cao hơn và giảm tối đa chi phí theo thời gian đưa ra thị trường, giảm kích thước mạch và số thiết bị [8]. 9 -------------------------------------------------------------------------------------------------------Các thành viên Virtex-II Pro cùng thiết kế tạo ra một vi xử lý chính PowerPC có tính năng mạnh. Mỗi chúng có dung lượng lớn hơn 300Mhz về tần số clock. PowerPC 405 hoàn toàn nhúng trong khung FPGA, tại tất cả các node xử lý được kết nối bởi tài nguyên định tuyến FPGA. Nó cung cấp công suất kiến trúc tối đa, tại đó các ứng dụng phức tạp có thể dễ dàng phân nhỏ với tốc độ cao theo logic và mềm dẻo khi thực thi phần mềm [8]. Sản phẩm Virtex-II Pro xây dựng trên kiến trúc Virtex-II với công nghệ nhúng IP. Các tính năng chung trên hệ Virtex-II với họ Virtex-II Pro – bao gồm SystemIOTM, XCITETM, bao hàm các giải pháp đánh xung đồng hồ, kiến trúc liên kết động tốc độ cao, mã hóa dòng bits [8]. 1.4. VTsim Bộ công cụ vi mạch mảng phần tử logic khả trình hiện đại (FPGA) được dùng để kiểm soát sự phức tạp của các thiết kế lớn bằng cách sử dụng môi trường thiết kế tích hợp đơn. Nhiều bộ công cụ bao gồm các bộ mô phỏng dáng điệu, thường dựa trên một mô hình kiến trúc độc lập, cho phép người dùng thay đổi chức năng của thiết kế. Bộ công cụ tiêu biểu: Xilinx ISE với với bộ mô phỏng tuỳ chọn ModelSim và Altium’s Nexar2004. Các dòng này dựa trên quan điểm cho rằng một thiết kế được xác nhận chức năng sẽ làm việc với phần cứng đúng theo theo chủ định và dự kiến của người dùng. Nếu chức năng của thiết kế không hoạt động đúng trong phần cứng, có thể sẽ gây ra một số vấn đề: FPGA bị lỗi, các công cụ thực thi có thể tính toán (inferred), đặt (placed), và định tuyến logic sai khác so với chủ định, hoặc không phát hiện được lỗi trong khâu kiểm tra. VTsim cung cấp cho các kỹ sư thiết kế Virtex-II FPGA một hệ biến hoá (paradigm): Mô phỏng luồng bits. Đầu vào cần thiết duy nhất của VTsim để hoạt động là dòng bits hợp lệ, cho phép bộ mô phỏng hoạt động độc lập trong quá trình thiết kế. VTsim là một bộ mô phỏng theo biến cố, cho đáp ứng tức thời, sử dụng bộ nhớ hiệu quả và hỗ trợ miền clock bội. Vào khoảng thời gian thực hiện đồ án này, bộ mô phỏng bao phủ xấp xỉ 90% thiết bị và mô hình hoá phần lớn logic thường dùng trong các mạch FPGA. Bằng cách sử dụng một số kỹ thuật tối ưu, VTsim tăng hiệu năng hoạt động lên tới 9,000% . Cấu trúc API linh hoạt đã được phát triển để bảo đảm sự tương tác thuận lợi và cho phép kết hợp các phần bổ sung trong tương lai. VTsim được tích hợp vào trong bộ thiết kế JHDLBits, có sẵn trong SourceForge.net, cho phép mô phỏng trong cả dòng JHDL và JBits, hoặc sử dụng như một công cụ mô phỏng độc lập. Bằng cách sử dụng VTsim, một kỹ sư thiết kế có thể truy cập và chỉnh sửa tất cả các giá trị nguồn trong FPGA ảo tại thời điểm bất kỳ, xem tình trạng của các flip-flop và tra bảng, kiểm tra hoặc thay đổi giá trị trên dây định tuyến. Để thực hiện các chức năng này, VTsim sử dụng hai công cụ bổ sung: JBits và ADB. JBits là một API, chophép truy cập vào nguồn tài nguyên cấu hình trong một Xilinx FPGA và được VTsim sử dụng cho thông tin cấu hình dòng bits và xử lý bit dòng bits (bitstream bit-manipulation). ADB (Alternate wire DataBase – cơ sở dữ liệu dây thay thế) là một công cụ hỗ trợ các dịch vụ định tuyến (routing) và tạo vết (tracing), bao phủ hoàn toàn thiết bị, sử dụng bộ nhớ hiệu quả, và hỗ trợ Virtex, Virtex-E, Virtex-II, and Virtex-II Pro FPGAs. Thông tin từ ADB được sử dụng để đặt 10 -------------------------------------------------------------------------------------------------------cấu hình cho các kết nối của thiết bị ảo. Bộ mô phỏng thiết bị được dùng trong thiết kế cho phép đặt cấu hình lại. Khi đó, các khối logic được chèn và gỡ theo trạng thái đã biết của hệ thống. Trong các thiết kế thực hiện cấu hình lại từng phần, việc bố trí các khối logic cho trước thường được giữ nguyên/fixed. Phần lớn các bộ mô phỏng hiện nay không hỗ trợ đầy đủ cho các thiết kế cho phép đặt cấu hình lại. Do VTsim hoạt động ở mức dòng bits thấp nên có thể mô phỏng cả quá trình đặt cấu hình lại từng phần hoặc toàn bộ. Với việc bao hàm FPGA trong các ứng dụng không gian mission-critical (tạm dịch: nhiệm vụ tới hạn), như là FPGAs trong Phòng thí nghiệm phản lực (NASA/Jet Propulsion Laboratory (JPL)) cho nhiệm vụ thám hiểm sao Hoả (Mars exploration mission), việc phân tích và mô phỏng Single Event Upsets (SEUs) là một chủ đề quan trọng, thu hút được rất nhiều sự chú ý. Để mô phỏng và phân tích kết quả của SEU, một bộ mô phỏng cần phải có tri thức toàn diện và điều khiển các thông tin cấu hình của tất cả FPGA. Phần lớn các bộ mô phỏng chính không dựa vào thông tin cấu hình cấp thấp sử dụng bên trong FPGA vật lý, và không có khả năng thay đổi thông tin cấu hình, các bộ mô phỏng này gần như không có khả năng mô phỏng SEUs trong cấu hình FPGA. Đây là một vấn đề tạo cho VTsim một vị thế nổi bật hơn. Do VTsim cho phép truy cập các tài nguyên cấu hình trong FPGA, nên có thể phân tích và mô phỏng SEU một cách dễ dàng [4]. 1.5. Các công trình liên quan tới VTsim: JHDL, JBits, JHDLBits và ADB Phần này trình bày về các công cụ thiết kế liên quan tới VTsim. Một số công cụ cần sử dụng VTsim thực tế, một số được hỗ trợ hoặc hỗ trợ cho VTsim. Như đã đã đề cập, VTsim là bộ phận của đề án mã nguồn mở JHDLBits, được xúc tiến nhằm hỗ trợ điều khiển thao tác, đặt và định tuyến tài nguyên. JHDLBits là một công cụ dùng để chuyển các thiết kế JHDL cấp cao thành các dòng bits sử dụng JBits cho tương tác dòng bits và sử dụng ADB định tuyến. Cấu tạo của JHDLBits và mối quan hệ dự án JHDLBits được mô trả trong hình 1.7. VTsim dựa trên JBits để xử lý tất cả các thao tác dòng bits. Cần có kiến thức sơ bộ về JBits để hiểu cách xử lý cấu hình và thao tác dòng bits. VTsim cung cấp thông tin về định tuyến và thiết bị tuỳ thuộc vào ADB giống như một sơ đồ tile thiết bị và các vị trí CLB. Thông tin định tuyến cấp bởi ADB được sử dụng để tạo ra một danh sách mạng của các các kết nối bên trong. Ba phần dưới dây sẽ phác hoạ về JHDL, JBits và ADB, và JHDLBits [4]. JBits JHDL JHDLBits Hình 1. 7 Cấu tạo của JHDL ADB
- Xem thêm -