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

đồ án : FPGA và ứng dụng cho 3G-WCDMA

109 585 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 109
Dung lượng 9,46 MB

Nội dung

đồ án :FPGA và ứng dụng cho 3G-WCDMAChương 1: Tổng quan về FPGATrì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.Chương 2: Ứng dụng FPGA trong tính toán ô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 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 3: Ứng dụng FPGA trong 3G W-CDMATrì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.Đượ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 KS. Nguyễn Viết Đảm và ý kiến đóng góp của các thầy cô giáo trong bộ môn vô tuyến 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.Em xin chân thành cảm ơn thầy giáo KS. Nguyễn Viết Đảm đã tận tình giúp đỡ trong thời gian học tập và làm đồ án tốt nghiệp.

Trang 1

Mục lục

Mục lục i

Thuật ngữ viết tắt iii

Danh mục hình vẽ vi

Danh mục bảng biểu viii

Lời nói đầ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 6

1.3.2 Virtex-II IOB 8

1.3.3 Virtex-II Clock Tiles 8

1.3.4 VirtexII Pro 9

1.4 VTsim 10

1.5 Các công trình liên quan tới VTsim: JHDL, JBits, JHDLBits và ADB 12

1.5.1 JHDL 12

1.5.2 Cơ bản về JBits và ADB 13

1.5.3 JHDLBits 13

1.6 Những cải tiến JHDLBits và JBits 15

1.7 Kết luận 17

CHƯƠNG 2: Ứng dụng FPGA trong tính toán ô 18

2.1 Mở đầu 18

2.2 Thiết kế mức cao tổng quát 18

2.3 MULTIPLE 21

2.4 SINGLE 23

2.5 BOOTH 25

2.6 BIT 28

2.8 Kết luận 30

CHƯƠNG 3: Ứng dụng FPGA trong 3G: W-CDMA 31

3.1 Mở đầu 31

3.2 Ứng dụng FPGA cho trạm gốc 3G-UMTS 31

3.2.1 Tại sao lại lựa chọn FPGA 31

3.2.1.1 Giảm rủi ro thiết kế 31

3.2.1.2 Đáp ứng yêu cầu phát triển của BTS 31

3.2.2 Hạn chế của DSP ban đầu 32

3.2.2.1 Thiết bị DSP ban đầu 32

3.2.2.2 Các ưu điểm về hiệu năng của FPGA 33

3.2.3 Các tính năng chính của FPGA trong 3G 33

3.2.3.1 Tốc độ xử lý tín hiệu cao 34

3.2.3.2 Kiểm tra lỗi đường truyền (FEC) 34

3.2.3.3 Chức năng bắc cầu và điều khiển 34

3.2.3.4 Các giao diện thích ứng với các chuẩn mạng khác nhau 34

3.2.4 Máy thu phát 3G 35

3.2.4.1 Máy thu – phát 35

3.2.4.2 Máy thu Rake 36

3.2.5 Sơ đồ MUD 36

Trang 2

3.2.6.1 Cơ sở 37

3.2.6.2 Kiến trúc VLSI nhằm tới FPGA 41

3.2.6.3 Phương thức thực hiện 46

3.2.6.4 Kết quả 47

3.2.6 Phân vùng hệ thống 50

3.2.6.1 Phân vùng Mip cao 50

3.2.6.2 Phân vùng Mip thấp 50

3.2.6.3 Phân vùng quản lý hệ thống 51

3.2.7 Mô hình FPGA với 64 kênh AMR 51

3.3 Ứng dụng FPGA cho mã Turbo 51

3.3.1 Bộ mã hóa TCC 51

3.3.1.1 Các tính năng 51

3.3.1.2 Ứng dụng 52

3.3.1.3 Mô tả tổng quan 52

3.3.1.4 Hoạt động đa kênh 58

3.3.2 Bộ giải mã TCC 66

3.3.2.1 Giới thiệu: 66

3.3.2.2 Đặc tính: 66

3.3.2.3 Ứng dụng 67

3.3.2.4 Mô tả chung 67

3.4 Kết luận 83

Kết luận 84

Tài liệu tham khảo 86

Phụ lục 87

1.Truyền nhiệt trong một ma trận với phần tử nhúng 87

2.Liên hệ giữa Matlab và FPGA 91

2.1 Tích hợp thuật toán Matlab vào trong thiết kế FPGA 91

2.2 Matlab một môi trường phát triển cho thiết kế FPGA 97

Trang 3

API Application Programming Interface Giao diện lập trình ứng dụng

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

ADB Alternate Wire Database Cơ sở dữ liệu dây thay thế

B

BLER Block Error Rate Tỷ lệ lỗi khối

BTS Base Transceiver Station Trạm phát gốc

C

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

D

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

DSP Digital Signal Processing 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

FEC Forward Error Correction Gửi bản tin tự sửa lỗi

Trang 4

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

J

JHDL Java Hardware Desription language Ngôn ngữ mô tả phần cứng trên nền

JavaL

M

MIMO Multi Input Multi Output Nhiều đầu vào nhiều đầu ra

MMSE Minimum-Mean-Square-Error Lỗi trung bình quân phương tối thiểuMAI Multi-Access Interferences Nhiễu đa truy nhập

MUD Multi User Detection Bộ dò đa người dùng

Trang 5

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

Trang 6

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 6

Hình 1.4: Bố trí chức năng của LE 6

Hình 1.5: Các vùng I/O đối với gói nối dây (trái) và flip-chip (phải) 8

Hình 1.6: Cấu hình bộ đệm clock toàn cục 9

Hình 1.7: Cấu tạo của JHDL 12

Hình 1.8: Dòng thiết kế JHDLBits 14

Hình 1.9: Quá trình xác nhận dòng bits 16

Hình 2.1: Thuật toán thực thi FPGA 19

Hình 2.2: Cấu trúc FPGA mức cao 20

Hình 2.3: Cấu trúc hàng ô 21

Hình 2.4: Luồng nóng tính toán, công thức cho kiến trúc MULTIPLE 22

Hình 2.5: Các bộ nhân nguyên được canh chỉnh 23

Hình 2.6: Cấu trúc ô cho kiến trúc MULTIPLE 23

Hình 2.7: Các phép toán luồng nóng phân vùng cho kiến trúc SINGLE 24

Hình 2.8: Các cấu trúc của bộ điều khiển và ô cho kiến trúc SINGLE 25

Hình 2.9: Phần cứng cho thuật toán Booth 26

Hình 2.10: Thuật toán Booth cho bộ nhân bù hai 26

Hình 2.11: Các phép tính luồng nóng cho kiến trúc BOOTH 27

Hình 2.12: Cấu trúc ô và bộ điều khiển cho kiến trúc BOOTH 28

Hình 2.13: Tuyến đầu tiên của kiến trúc BIT cho tính toán luồng nóng 29

Hình 2.14: Cấu trúc ô và bộ điều khiển cho kiến trúc BIT 30

Hình 3.1: Sự phức tạp của thiết bị và quá trình phát triển của FPGA 32

Hình 3.2: Bản thiết kế DSP ban đầu 32

Hình 3.3: Khối thực thi FPGA 33

Hình 3.4: Sơ đồ máy phát 3G 35

Hình 3.5: Sơ đồ máy thu 3G 35

Hình 3.6: Mô hình máy thu Rake 36

Hình 3.7: Sơ đồ khối bộ dò đa người dùng (CF-MUD) 37

Hình 3.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) 40

Hình 3.9: Ước tính hiệu năng của phương pháp MUD 41

Hình 3.10: Kiến trúc phần cứng đơn giản hoá của CF-MUD 42

Hình 3.11: Ánh xạ CF-MUD lên phần tử xử lý và bộ nhớ trong 44

Hình 3.12: Tiến trình xử lý pipeline trong tiến trình xử lý lấy dấu 47

Hình 3.13: Chiến lược đường ống (pipeline) trong tiến trình xử lý tách 48

Hình 3.14: Mô hình FPGA với 64 kênh AMR 51

Hình 3.15: Các cổng vào ra bộ mã hóa TCC 53

Hình 3.16: Cấu trúc bên trongbộ mã hóa TCC 53

Hình 3.17: Cấu trúc TCC RSC 54

Hình 3.18: Thông lượng bộ đệm kép 59

Hình 3.19: Định thời đầu vào 60

Hình 3.20: Định thời đầu ra (Bits đuôi) 62

Hình 3.21: Định thời đầu ra ( Không bit đuôi) 62

Hình 3.22: Tùy chọn địa chỉ tổng quát bên ngoài 64

Hình 3.23: Tùy chọn RAM bên ngoài 64

Trang 7

Hình 3.25: Ví dụ về cấu tạo cổng DIN 72

Hình 3.26: Minh họa của biến động nhiễu chống lại Eb/No cho tỷ lệ khác nhau 76

Hình 3.27: Khởi đầu của định thời đầu vào 77

Hình 3.28: Kết thúc của định thời đầu vào 77

Hình 3.29: Định thời đầu ra 77

Hình 3.30: So sánh sự khác nhau giữa các Block Size và 5 intertion 80

Hình 3.31: Sự tăng dần của Iteration cho 2 Block Sizes 80

Hình 3.32: Sử dụng Fast Termination với Fixed Block Size và các số khác của Iteration 81

Hình 3.33: Số trung bình của các thao tác SISO trong hoạt động của mỗi máy giải mã 81

Hình p- 1: Bộ tạo hệ thống, giao diện AccelChip 92

Hình p- 2: Kiến trúc bộ lọc ước tính Kalman 94

Hình p- 3: Sơ đồ khối bộ lọc Kalman 95

Hình p- 4: Hệ thống Matlab công cụ đánh giá thuật toán 98

Hình p- 5: Matlab trên cơ sở RTL thiết kế luồng cho FPGA 98

Hình p- 6: Chuỗi phát- thu HSDPA 100

Trang 8

Danh mục bảng biểu

Bảng 1.1: Kích cỡ và loại SelectRAM 7

Bảng 3.1: Số người dùng hoạt động cùng lúc tối đa có thể phân biệt được 48

Bảng 3.2: Tỷ lệ sử dụng phần cứng (%) tương ứng với số người dùng tối đa 49

Bảng 3.3: Các cổng I/O, cấu hình cơ bản 55

Bảng 3.4: Các cổng I/O cho tuỳ chọn bộ tạo địa chỉ ngoài 63

Bảng 3.5: Các cổng I/O cho tùy chọn RAM bên ngoài 65

Bảng 3.6: Sử dụng tài nguyên và hiệu suất 66

Bảng 3.7: Tín hiệu các chân 69

Bảng 3.8: Các nhu cầu tài nguyên và hiệu năng không có các cổng virtex-5 78

Bảng 3.9: Các nhu cầu tài nguyên và hiệu năng – các cổng virtex-5 78

Bảng 3.10: Góc trễ giải mã Turbo 82

Bảng 3.11: Thông lượng bộ giải mã Turbo (Mbits/s) 82

Trang 9

Lời nói đầ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ấuhì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ăngthô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ênphứ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íchhợ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ếnhiệ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ôngphả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ậttoá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àyphả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ư đangthự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ácchức năng khác nhau trong những khoảng thời gian khác nhau Phù hợp cho việc triểnkhai 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ìnhlạ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ắcphụ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 đặtthà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 rathị 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ểmhiệ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áncũ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 KS Nguyễn

Viết Đảm em đã lựa chọn đề tài nghiên cứu của mình là

“FPGA và ứng dụng cho 3G-WCDMA”

Theo đó, đồ án được tổ chức và trình bày trong ba chương

Trang 10

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

Chương 2: Ứng dụng FPGA trong tính toán ô

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ứngFPGA 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ânloạ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 đượcthiế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ùngchíp có thể cho tính toán ô

Chương 3: Ứng dụng FPGA trong 3G W-CDMA

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ủaFPGA ứ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

Đượ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 KS Nguyễn Viết Đảm và ý kiến đóng góp của các thầy cô giáo trong bộ môn

vô tuyến 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 sinhviê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ếptheo

Em xin chân thành cảm ơn thầy giáo KS Nguyễn Viết Đảm đã 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 2008

Người làm đồ án

SV Lê Đức Thuận

Trang 11

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ủaFPGA 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ữngphá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ớ off-chip.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ụngFPGAs chia theo bốn lĩnh vực thiết kế

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

Trang 12

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 baogồ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ạichip 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ấutạ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ôngnghệ 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, baogồ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.2minh 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âyngang khách cũng như dây dọc kết nối với nhau

Logic Block

Logic Block

Logic Block

Logic Block

Logic Block

Logic Block

Logic Block

Logic Block

Logic Block

Logic Block

Logic Block

Logic Block

Logic Block

Logic Block

Logic Block

SB

SB

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

Trang 13

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ăngcao 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úpcho 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 nhaunhư 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òngbits 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ấuhì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 trongFPGA

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ậnchứ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úngkhi 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ấuhì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ớiFPGAs, đều có thể thực hiện chu kỳ thiết kế nhanh chóng, linh hoạt, hiệu quả cao

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ảnphẩm FPGA đầu tiên của họ được thương mại hoá năm 1985 Hiện nay, Xilinx hướngcho 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ộtloạ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àomột ma trận tile đối xứng như đã mô tả trong phần trên Sáu loại tile chính trongVirtex-II là: Khối vào/ra (IOBs), Khối logic cho phép đặt cấu hình (CLBs), bộ nhânphần cứng, SelectRAM khối 18Kbit và Mô-đun clock KTS (DCMs) Hình 1.3 minhhoạ 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

Trang 14

DCM DCM IOB Đồng hồ ghép kênh

CLB Khối lựa chọn RAM Multiplier

Logic khả cấu hình

Các cổng vào ra khả lập trình

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 CLBschiế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 batrạng thái Mỗi slice, được chia làm hai phần tử logic tương tự (LE), gồm có các thànhphần:

flip flop hoặc chốt/latch)

Mỗi LE bao gồm một bộ tạo hàm, một phần tử nhớ, một số mạch logic chuyển,chuỗi nhớ và chuỗi OR Hình 1.4 minh hoạ tổng quan chức năng của LE:

Trang 15

Bộ tạo hàm

(Function Generator)

Chuỗi chạy

Chuỗi mang

Phần tử nhớ

(Memory Element)

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 đầuvà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ặckí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

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ùngSelectRAM Mỗi CLB có thể đặt trong bảy cấu hình SelectRAM khác nhau như trongbảng 1.1 Chế độ bộ tạo hàm ROM khá giống với chế độ SelectRAM đơn cổng MộtLUT đơ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ỳ ý

Trang 16

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 độngtheo 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ácnhau:

trước và xoá)

Ở 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ìnhvà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ợphai đầu vào hoặc các flip-flop đầu ra cho phép sử dụng các thanh ghi DDR IOBs đượcchia 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ócquan 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ớigó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ùngIOBs Chi tiết về chế độ hoạt động và cấu hình IOB có trong phần bảng dữ liệu Virtex-

II của Xilinx

Trang 17

Dãy 0 Dãy 1

Dãy 4 Dãy 5

Hình 1.5: Các vùng I/O đối với gói nối dây (trái) và flip-chip (phải).

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àncụ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ỗigó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êntrá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ácclock 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

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ộtBUFGCE (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 đơngiả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ậpmột clock cổng sử dụng cấu hình BUFGCE Chế độ BUFMUX cho phép chuyển giữahai clock không đồng bộ riêng biệt hoặc đồng bộ và bảo đảm thời gian cao hoặc thấpkhi clock chuyển không bao giờ ngắn hơn thời gian cao hoặc thấp ngắn nhất

I

BUFG

BUFGMUXS

OI0

I1

ICEO

BUFGCE

O

Hình 1.6: Cấu hình bộ đệm clock toàn cục

Trang 18

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ạpnhấ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 đíchtrong 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ựnglạ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ộtKhố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à 16RocketIOTM trêncông nghệ Mindspeed SkyRailTM Mạch này bao gồm bộ mã hóa và giải mã theo chuẩn8B/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ínhiệu thông qua sự biến đổi PCB Thêm vào đó, RocketIO là khối thu phát FPGAnhúng đầu tiên để đạt được tốc độ báo lên tới 3.125 Gb/s Bốn khối RocketIO chophép PCB hỗ trợ song công tốc độ dữ liệu 10 Gbps Công nghệ RocketIO cho phépbă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ảmkích thước mạch và số thiết bị

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àinguyê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ụngphứ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 thiphần mềm

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

Trang 19

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íchhợ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’sNexar2004 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ậnchứ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ườidù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 ramộ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ỗitrong 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 bitshợ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ới9,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 trongSourceForge.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ỳ, xemtì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 địnhtuyế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ộtXilinx FPGA và được VTsim sử dụng cho thông tin cấu hình dòng bits và xử lý bitdòng bits (bitstream bit-manipulation) ADB (Alternate wire DataBase – cơ sở dữ liệudâ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

Trang 20

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/JetPropulsion Laboratory (JPL)) cho nhiệm vụ thám hiểm sao Hoả (Mars explorationmission), việc phân tích và mô phỏng Single Event Upsets (SEUs) là một chủ đề quantrọ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ìnhcủ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ìnhcấ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ấuhình, các bộ mô phỏng này gần như không có khả năng mô phỏng SEUs trong cấuhình FPGA Đây là một vấn đề tạo cho VTsim một vị thế nổi bật hơn Do VTsim chophé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ỏngSEU một cách dễ dàng

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ềukhiển thao tác, đặt và định tuyến tài nguyên JHDLBits là một công cụ dùng để chuyểncá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áchmạ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à

Trang 21

Bộ mô phỏng JHDL có khả năng chạy trong cả chế độ phần cứng và mô phỏng.Trong chế độ mô phỏng, mọi giá trị của mạch được tính toán sơ bộ Trong chế độ phầncứng, bộ mô phỏng lấy các giá trị phần tử nhớ từ một FPGA kích hoạt, như là flip flop,

từ phần cứng vật lý và lan truyền giá trị qua tất cả các phần tử không nhớ, như là cáccổng và bộ cộng Tuy nhiên, bộ mô phỏng này không phải là một mô hình hoàn chỉnhcủa phần cứng do các giá trị phần tử không nhớ vẫn được mô phỏng sơ bộ Thông quaviệc sử dụng JHDLBits, VTsim đã được tích hợp vào trong JHDL để đóng vai trò nhưmột bộ mô phỏng tại chỗ của phần cứng thực/actual hardware Điều này cho phép nhàthiết kế mô phỏng phần cứng bằng cách sử dụng các bộ mô phỏng thiết bị

1.5.2 Cơ bản về JBits và ADB

JBits là một API trên nền Java trợ giúp cho việc truy cập nguồn cấu hình bất kỳtrong họ Virtex FPGAs Nguồn thiết bị có thể lập trình và thử khi chạy ngay cả khiFPGA đã kích hoạt trong hệ thống đang làm việc JBits3 SDK hỗ trợ cho Virtex-IIFPGAs, không giống như phiên bản Virtex-based JBits2.8 JBits cho phép người dùngthao tác với nguồn FPGA bằng hai phương pháp: getTileBits và setTileBits.getTileBits lấy toạ độ tile, và tên nguồn và cho các bit cấu hình kết hợp setTileBits thìngược lại Trong phương pháp setTileBits, JBits cập nhật các bit cấu hình từ các tilephối hợp, tên nguồn và các bits cấu hình mới do người dùng định nghĩa

Trang 22

JBits3 là một API hoàn chỉnh để kiểm tra và chỉnh sửa cấu hình thiết bị, nhưng nókhông bao gồm một bộ mô phỏng thiết bị hay bộ định tuyến Phiên bản JBits2.8 trước

đó bao gồm một bộ mô phỏng thiết bị, VirtexDS và một bộ định tuyến, JRoute - một

bộ định tuyến đặt cấu hình chạy thực Việc thiếu một bộ mô phỏng thiết bị trongJBits3 gây ra trở ngại đối với việc xác nhận thiết kế và sự phát triển của các hệ thốngtái cấu hình chạy thực

Mặc dù JBits3 không có bộ định tuyến, nhưng một giao diện định tuyến đi kèm sẽgiúp cho người dùng bổ sung thêm bộ định tuyến riêng Một ví dụ về bộ định tuyếnplug-in là Alternate Wire Database - ADB Hỗ trợ Virtex, Virtex-E, Virtex-II, vàVirtex-II Pro FPGAs ADB không thực hiện định tuyến điều khiển theo thời gian;nhưng sự đơn giản hoá này cho phép ADB định tuyến các mạng một cách nhanhchóng Không giống như JRoute trong JBits2.8, ADB bao phủ thiết bị hoàn toàn vàthực sự tiết kiệm bộ nhớ

1.5.3 JHDLBits

JHDLBits là một đề án mã nguồn mở nhằm mục tiêu kết hợp điều khiển JBits cấpthấp và thiết kế của JHDL Đề án JHDLBits bao gồm một tập các thành phần tích hợpchặt chẽ Thông qua việc sử dụng ADB và JBits3, JHDLBits đã rút ngắn quá trình từfile thiết kế đến dòng bits Hình 1.8 minh hoạ dòng thiết kế JHDLBits

Thiết kế

JHDL

Bộ trích Jbits

-trích thông tin hình gốc

Luồng Bit (Bitstream)

ADB Jbits

TechMapper

JBits

JHDLBits

Bộ định tuyến ADB

Builder

-create Jbits ULPrimitives

Hình 1.8: Dòng thiết kế JHDLBits

Bước đầu tiên trong dòng thiết kế JHDLBits là tạo ra một thiết kế công tác trongJHDL Bước tiếp theo là tạo ra một file test cấp cao nhất đóng vai trò như một giaodiện cho JHDLBits Trong khi chạy file test, JHDLBits lấy ra tất cả các thông tin banđầu và nets từ thiết kế JHDL rồi chuyển các nets, hình gốc vào trong JBits Nets vàhình gốc Sau khi chuyển nets và gốc, JHDLBits tạo ra các dòng bits đầu ra và có thể

Trang 23

thoát hoặc tạo đối tượng/tạo nấc VTsim cho các test thiết kế sau này

Bộ mô phỏng JHDL cho phép người dùng mô phỏng hành vi các thiết kế trong phầnmềm hoặc từ các phần tử nhớ trong phần cứng, mô phỏng hành vi các phần tử còn lại.JHDLBits hợp với VTsim vào dòng thiết kế bằng cách mở rộng bộ mô phỏng JHDL

để thêm mô hình mô phỏng bổ sung Trong mô hình này, bộ mô phỏng JDHL tươngtác với bộ mô phỏng thiết bị thay vì phần cứng vật lý, cho phép người dùng đạt đượccác chức năng của phần cứng mà không cần đến phần cứng FPGA Sử dụng VTsimtrong bộ mô phỏng JHDL gặp phải các vấn đề về phần cứng riêng: Các phần tử khôngnhớ vẫn mặc định được tính Nếu kết quả mô phỏng khác với dự kiến, nhà thiết kếkhông thể dò ra giá trị bên trong của FPGA thực ngoài các phần tử nhớ khác Đây làmột vấn đề thể hiện sự vượt trội về tính năng của VTsim Các phiên bản JHDLBitstrong tương lai sẽ cung cấp mô hình mô phỏng mới cho phép các nhà thiết kế lựa chọnVTsim là bộ mô phỏng thay cho bộ mô phỏng JHDL chuẩn Lựa chọn VTsim giúp choviệc kiểm tra và thác tác tất cả các tài nguyên bên trong theo khung hoạt động JHDLchuẩn

1.6 Những cải tiến JHDLBits và JBits

Mặc dù JBits3 là một API đầy đủ chức năng, nhưng nó có thể thân thiện hơn vớingười dùng nếu có năm thành phần quan trọng như sau: Một bộ mô phỏng thiết bị, mộtthư viện gốc, một cấu trúc liên kết mạch, một bộ đặt và một bộ định tuyến Việc loại

bỏ một bộ mô phỏng thiết bị gây trở ngại lớn đến sự phát triển thiết kế và xác nhận cácthiết kế FPGA sử dụng JBits, đặc biệt là các thiết kế RTR Thiếu một thư viện gốc sẽgiảm kết cấu mạch xuống mức thấp, tạo ra khó khăn trong việc mô phỏng mạch bất kỳ

có nhiều cổng Thiếu kết cấu kết nối sẽ loại bỏ công cụ đơn giản của nhà thiết kế đểnối các mạch logic, và mở rộng trên các mô-đun đã được tạo ra Không có bộ đặt và bộđịnh tuyến, người dùng không thể lập sơ đồ cho thiết kế của họ theo dạng mạch logicFPGA Việc test và xác nhận thiết kế JBits sẽ gặp khó khăn nếu không có các bộ môphỏng thiết kế, thư viện gốc, kết cấu kết nối mạch, bộ đặt và bộ định tuyến

Bước phát triển đầu tiên trong dự án JHDLBits là tạo ra thư viện gốc Đây là tậphợp của các khối xây dựng thường được nhà thiết kế sử dụng Các ví dụ về gốc làNAND, NOR và cổng logic đơn giản, flip flop bất kỳ với một enable (cho phép)(FDE), các flip flop với xoá và cho phép (clear and an enable) (FDCE), bộ cộng nhanh

và các phần tử khác Cấu trúc của thư viện gốc rất cần thiết để phát triển JHDLBits

Để đơn giản hoá việc chuyển đổi JHDLBits từ JHDL thành JBits, mỗi JBits gốc đượcthiết kế để phù hợp với gốc JHDL Khi tìm được gốc JHDL trong quá trình phân tích

Trang 24

JHDLBits, JHDLBits ánh xạ (map) gốc trực tiếp sang gốc JBits, một cách đơn giảnhoá nâng cao tốc độ chuyển một cách mạnh mẽ và tiết kiệm bộ nhớ

Ngoài đề án JHDLBits, cần thiết phải có thư viện gốc cho các nhà thiết kế Jbits.Nhìn chung, người dùng JBits thường thiết kế ở mức gốc hoặc cao hơn Việc loại bỏthư viện gốc đã giảm sự quan tâm của người dùng đối với phiên bản JBits mới nhất.Không có thư viện gốc, việc thiết kế sẽ trở nên phức tạp hơn VTsim đóng vai trò quantrọng trong quá trình xác nhận gốc qua việc cung cấp các phản hồi nhanh chóng về cácgốc thiết kế mới mà không có nguy cơ hư hỏng các phần cứng đắt tiền

Về vấn đề phát triển, kết nối, test gốc, cần phải phát triển hạ tầng liên kết, bổ sungmột số đặc tính hiện còn thiếu trong JBits3 Trong đó có lớp luồng bits, một đối tượngbắc cầu cho phép các truy cập tắt đối với cả các đối tượng JBits và bộ định tuyến và

bổ trợ cho việc tạo gốc mà không phụ thuộc vào các lớp cấu trúc riêng Bên cạnh đó,

có một lớp mạng để cho phép nối các gốc bằng cách duy trì một danh sách các nguồn

và các chân cắm chìm tạo nên mỗi mạng Thông tin lớp mạng và dòng bits có thể điqua bộ đặt và bộ định tuyến

Sau khi phát triển thư viện gốc và cấu trúc liên kết JHDLBits, cần phải thiết kế một

bộ đặt giao diện với JBits Hiện nay JHDLBits có một bộ đặt đơn giản, đánh giá kích

cỡ của mỗi gốc và sắp xếp gốc vào các vị trí xác địn trong FPGA Trong mô hình bộđặt đơn giản, mỗi thành phần được đặt liền sau thành phần trước Hiện nay, đang pháttriển một bộ đặt phức tạp hơn, thông minh hơn, cấu trúc theo bậc Mặc dù đơn giảnnhưng bộ đặt là lựa chọn phù hợp cho các thiết kế không phụ thuộc nhiều vào nguồnđịnh thời hoặc định tuyến Trong giai đoạn test JHDLBits, một thiết kế định tuyếnkhá phức tạp đã thất bại do sắp xếp không tốt, tuy nhiên, các thiết kế này đã tận dụngđược gần 100% tài nguyên của FPGA

JBits3 không có bộ định tuyến nhưng phiên bản này có giao diện bộ định đượcthiết kế, cho phép người dùng tạo và plug-in bộ định tuyến riêng Một bộ định tuyếnđược thiết kế để hoạt động với JBits3 là ADB ADB hỗ trợ Xilinx Virtex, Virtex-E,Virtex-II, và Virtex-II Pro FPGAs Không giống như JRoute, phiên bản trước của nó,ADB bao phủ toàn bộ thiết bị và có kích cỡ gọn nhẹ hơn so với các dòng định tuyếnkhác Một hạn chế của ADB là nó không tạo ra các tuyến dựa trên thông tin định thời;tuy nhiên sự đơn giản hoá này của ADB cho phép định tuyến rất nhanh ADB tíchhợp trong bộ thiết kế mã nguồn mở JHDLBits

Để bảo vệ FPGAs vật lý, VTsim được mở rộng sử dụng để xác nhận chức năng củacác dòng bits phát JHDLBits Ví dụ, một vi mạch được mô phỏng trong JHDL trải

Trang 25

qua quá trình trích JHDLBits để tạo ra một dòng bits Thiết kế tương tự JHDL cũngđược chạy qua các công cụ chủ yếu để tạo ra một dòng bits thứ hai Mỗi dòng bitsđược nạp riêng rẽ vào VTsim và phân tích kỹ lưỡng như trong Hình 1.9 Nếu chứcnăng của hai dòng bits không khớp nhau, cần phải chỉnh sửa gốc JBits Khi chức năngcủa cả hai đã khớp nhau, gốc Jbits đã sẵn sàng để test trên phần cứng vật lý Do đó,VTsim được phát triển cùng với gốc JBits và các cải tiến để xác nhận cả các gốc mớiphát triển và bộ mô phỏng thiết bị

Thiết kế

JHDL

Các công cụ Xilinx ISE

VTsim

So sánh kết quả

Hình 1.9: Quá trình xác nhận dòng bits.

Với việc thiết kế các thành phần quan trọng này, có thể tạo ra các dòng bits JBitsmẫu bằng cách sử dụng các cải tiến trong mô hình cây JHDLBits Tuy nhiên, khôngthể xác nhận chức năng của các quá trình còn lại nếu không có bộ mô phỏng dòngbits Bước logic tiếp theo trong dự án JHDLBits là tạo ra một bộ mô phỏng thiết bị

1.7 Kết luận

Trong chương đã trình bày được về tổng quan và cấu trúc căn bản của FPGA, vềcác cải tiến của Jbits bổ sung cho khung hoạt động JHDLBits bao gồm một thư việngốc, một cấu trúc liên kết và một số lớp nối nhằm mục đích đơn giản hoác quá trìnhthiết kế JHDLBits Các cải tiến JHDLBits và JBits quá trình từ JHDL cho đến Jbits Trình bày các vấn đề cơ bản liên quan tới VTsim, tập trung vào các công cụ ảnhhưởng đến VTsim và giới thiệu một số thuật ngữ mô phỏng phổ biến

Trang 26

CHƯƠNG 2: Ứng dụng FPGA trong tính toán ô

2.1 Mở đầu

Mục đích chính của chương là mô tả bốn kiến trúc tính toán ô thực hiện cho việcnghiên cứu, nhưng chương cũng trình bày phần cứng FPGA mức cao dùng cho mỗitừng kiến trúc để thuận tiện tương tác với hệ thống Bốn kiến trúc MULTIPLE,SINGLE, BOOTH, và BIT được phân biệt dựa vào cái cách mà chúng tính toán giảiquyế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ácnhau Phần cứng được thiết kế cụ thể cho từng vấn đề, bởi vậy mỗi kiến trúc bao gồmcá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ùngchỉ 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 ô Ngoài trừ tính logic mà điềukhiển tần số đồng hồ của FPGA, thì giao diện logic hệ thống giống nhau cho cả bốnkiến trúc Theo đó chương được tổ chức như sau:

 Thiết kế mức cao tổng quát

 Kiến trúc MULTIPLE

 Kiến trúc SINGLE

 Kiến trúc BOOTH

 Kiến trúc BIT

2.2 Thiết kế mức cao tổng quát

Phần này mô tả các công việc được thực thi bởi FPGA Chỉ có các phần thiết kếFPGA nói chung của từng kiến trúc được trình bày trong phần này

Các bước thực hiện bởi FPGA trong suốt một chu kì tính toán hoàn thành được chỉtrong hình 2.1 Ngay sau khi nguồn được bật lên, dữ liệu cấu hình từ bộ nhớ flash

Logic Module (LM) được chuyển đến FPGA Tại cùng thời điểm đó, Core Module (CM) khởi tạo Integrator/AP motherboard và sau đó chờ đợi các tham số đầu vào để

gửi từ host PC Sau khi CM nhận các tham số này, nó gửi chúng lên Bus hiệu năng caotăng cường của bo mạch chính (AHB-Advanced High-performance Bus) đến LM Tạithời điểm này, ghi lên không gian địa chỉ LM được chuyển tiếp đến LM SSRAM bởiFPGA Trước khi, FPGA bắt đầu tính toán, nó đang chờ các tham số đầu vào đến đầu

vào của LM SSRAM theo trật tự sau: iteration, result cell và đến lượt các tham số đầu

Trang 27

vào Iteration là một số các vòng lặp để tính toán, mà là từng bước cho trường hợp

kiểm tra luồng nóng (heat flow) Nếu FPGA được cấu hình với N ô tính toán, sau đó

result cell là một số giữa 1 và N và dữ liệu của ô đó sẽ được lưu trữ trong SSRAM.

Cho vấn đề luồng nóng (heat flow), dữ liệu ô lưu trữ là một ma trận nhiệt độ tại từngbước Các tham số đầu vào chính là rõ ràng, cho vấn đề luồng nóng, chúng là nhiệt độ

áp dụng cho ô 1, nhiệt độ cho ô N, và tham số xử lý Γ Bởi vì lược đồ số lượng được

sử dụng trong thiết kế này, các tham số đầu vào đó phải là các số nguyên với các mứcđiểm cố định, Sau khi CM gửi đi các tham số đó, nó sẽ gửi đến FPGA một tín hiệu

start chỉ ra rằng tính toán đã sẵn sàng để xử lý Sau khi FPGA nhận tín hiệu này, nó

lấy điều khiển của LM SSRAM và đọc các tham số đầu vào mô tả ở trên Với các tham

số đầu vào, thì hàng các ô tính toán được chỉ thị bắt đầu tính toán, và khi một vòng lặp

được hoàn thành, kết quả ở trong result cell được ghi lên SSRAM ngay tức thì sau khi

các tham số đầu vào ở ngay đầu không gian bộ nhớ Các kết quả vòng lặp tiếp tục

được ghi lên SSRAM cho đến khi các kết quả iteration đã được lưu trữ Tại điểm này,

FPGA giải phóng điều khiển của SSRAM và cho phép CM đọc các kết quả đã tínhtoán thông qua bus AHB Các giá trị ban đầu được thiết lập lại, và FPGA đã sẵn sàngbắt đầu một chu kỳ tính toán mới Nếu chu kì tính toán 1 giây nào đó bắt đầu, FPGAviết đè các kết quả lưu trữ từ chu kỳ đầu tiên

Bật nguồn

Lặp thu Kết quả thu ô Tham số thu còn lại

Đợi tín hiệu bắt đầu

Lặp tìm nạp Tìm kết quả ô Tìm tham số còn lại

Thu từ CM và chuyển tiếp tới LM SSRAM

Lấy từ LM SSRAM

Hàng ô bắt đầu tính toán

Đợi quá trình lặp hoàn thành

Chờ kết quả tới LM SSRAM

Lặp lại? No Yes Thiết lập

tín hiệu

SSRAM đọc yêu cầu của

CM

Hình 2.10: Thuật toán thực thi FPGA

Trang 28

VHDL thực thi thủ tục mô tả ở trên được thiết lập có thể mở rộng bất kỳ vấn đềsong song ô mà tường tự nhu trường hợp kiểm tra luồng nóng Có thể có một số các

tham số đầu vào theo sau iteration và result cell, và một số các ô bị hạn chế không

gian cho phép của FPGA Thay đổi các tham số đầu vào hay số các ô yêu cầu tổng hợplại của thiết kế và cấu hình lại của FPGA, nhưng một số các vòng lặp tính toán bị hạnchế bởi kích thước của bộ nhớ SSRAM

Hình 2.2 chỉ ra cấu trúc của thiết kế FPGA mức cao mà thực thi thủ tục chỉ ra tronghình 2.1

Mạch điều khiển hàng ô

Mạch điều khiển ô

Mạch điều khiển SSRAM

Bên trong FPGA

Duy nhất cho mỗi kiến trúc

Hình 2.11: Cấu trúc FPGA mức cao

Bộ điều khiển hàng của ô là một thiết bị trạng thái hạn chế FSM ( Finite State

Machine) mà chờ đợi tín hiệu start, đọc các tham số đầu vào SSRAM, bắt đầu tính

toán hàng và gửi các kết quả đến SSRAM, và kiểm tra số các vòng lặp mà được hoànthành Một bộ điều khiển ô đơn FSM điều khiển tất cả các ô trong hàng và được phânbiệt nhau cho mỗi loại kiến trúc Bộ điều khiển SSRAM cung cấp các tín hiệu điềukhiển chip và dễ dàng định thời đọc và viết Các tuyến dữ liệu và điều khiển từ busAHB và bộ điều khiển hàng được ghép vào nhau lên SSRAM, dữ liệu từ bộ điều khiểnhàng và SSRAM được ghép với nhau đưa lên bus AHB Tất cả các địa chỉ trong địa

Trang 29

chỉ LM là có tính logic mà giải mã các địa chỉ từ bus AHB Tất cả các địa chỉ trongkhông gian địa chỉ LM ngoại trừ một sẽ được đánh địa chỉ trong SSRAM Một phépghi từ CM đến địa chỉ đơn 0x0DDC0DE ở trong không gian địa chỉ của LM sẽ ghi tín

hiệu start của FPGA, và một phép đọc của cùng địa chỉ đó sẽ đọc tín hiệu done của bộ

điều khiển hàng (row controller) (tín hiện này chỉ ra rằng khi nào CM có thể bắt đầuđọc kết quả tính toán từ SSRAM Phần không trình bày trong hình là khối logic điềukhiển xung khả lập trình của FPGA và đèn LED chỉ thị của LM

Các ô tính toán trong FPGA chạy trong từng xung đồng hồ riêng biệt từ xung đồng

hồ bus AHB để mà chúng không bị ràng buộc vào tần số bus Như vậy, dữ liệu đượcchuyển tải giữa hai vùng có xung đồng hồ không đồng bộ, tuy nhiên, bắt tay được thựchiện để đảm bảo chuyển dữ liệu một cách phù hợp Bắt tay được thiết lập cho phép kếthợp các tần số đồng hồ ô và bus kết hợp với nhau

Nhìn một cách chi tiết của cấu trúc hàng ô được chỉ ra ở hình 2.3 Giải quyết phức

j

i j m

i j m

i j m

i j

T ,  ,  ,11 ,11  chỉ thị cấu trúc này, và nó yêucầu mà mỗi ô kết nối đến các hàng xóm bên trái hay bên phải của nó và nó cho phéptruy cập đến các dữ liệu đã được tính trong vòng lặp trước Mỗi ô tính toán các công

0

37 2 ,

37 2 99

, 25

1 ,

1 , 2

1 , ,

2

,

j m

i j m i

j m approx

T T T

nhiệt độ nhỏ cho từng bước đơn Nói chung, các giá trị lưu trữ trình bày nhiệt độ phântán qua các phần của vật liệu của các ô Tất cả các ô được cập nhật song song nhau, vàtốc độ tính toán không phụ thuộc vào số các ô, N Kết quả được lấy từ các ô tính toánnhỏ có thể bằng cách đưa hầu hết các điều khiển ra bên ngoài ô mặc dù là có một bộđiều khiển tập trung trái ngược Các ô này được tái tạo cho đến khi toàn vùng FPGAđược sử dụng

Trang 30

Kiến trúc có tên là MULTIPLE vì mỗi ô tính toán xảy ra nhiều bộ cộng và bộnhân: một trong số mỗi bộ cộng và nhân xảy ra trong các công thức dưới đây đượctính toán Các phép tính được hoàn thành bằng kết hợp các phép tính logic, vì vậy cácgiá trị mới được khởi tạo trong mỗi xung đồng hồ Tuy nhiên, do bắt tay cần để viếtcác kết quả đến SSRAM, mỗi vòng lặp làm trong hai xung đồng hồ Do vậy, bộ điềukhiển ô là vô cùng đơn giản FSM mà kết nối hai trạng thái Trong từng trạng thái, giátrị được tính, và trong suốt trạng thái khác, giá trị được lưu trữ trong bộ nhớ Kiến trúcMULTIPLE chiếm lấy một số không gian chip lớn vì vậy nó không hữu ích so với cáckiến trúc khác.

VHDL hỗ trợ các phép toán số học chuẩn, vì vậy các phép toán cần thiết cho tínhhoán có thể được viết trực tiếp trong phần cứng Tuy nhiên, thật sự thoải mái để đặtcác phép toán trong dạng các số các phép nhân vì nhiều phần cứng chiếm tốn nhiềuvùng hơn phép cộng Do vậy, luồng nóng tính toán cho kiến trúc MLTIPLE được thựcthi chỉ ra ở hình 2.4 Các biến tạm t1,t2  được dùng để đảm bảo rằng phần mềmtổng hợp làm các phép toán logic không cần thiết Để kiểm tra, kiến trúc MULTIPLEthực thi theo chiều rộng so với phần cứng

2 1 , ,

1 , 1 , 1 , 2 2 1 , , 1

1 , 1 , 2

1 , 1

1 2

1

1 , 1

, 1

2

, ) 1 (

) ( ,

0 ) (

t T T

T T T x t t T T

T T t t

C T

C t t t

C T C

T t

i p i p

i m i m i m i

m i m i i

i m i p

b i

m i

i a

b i m b

i m

Hình 2.13: Luồng nóng tính toán, công thức cho kiến trúc MULTIPLE

Tất cả các biến và tham số trong hình 2.4 là các số nguyên W-bit theo thang đo códấu phẩy cố định, vì thế các kết quả của các phép nhân phải đúng đơn vị đo như thế.Đầu tiên, một phép nhân VHDL chuẩn được thực hiện sẽ tạo ra một kết quả là 2W-bit.Kết quả số nguyên theo thang đo của phép nhân này nằm trong kết quả 2W bit nhưtrình bày trong hình 2.5 với S bit số nguyên Đối với kiến trúc này và các kiến trúckhác, W=25 và S=5 W được chọn theo đồ thị nhiệt độ sử dụng các tính toán theo dấuphẩy cố định và dấu phẩy động và W tăng cho tới khi đồ thị theo thang dấu phẩy cốđịnh bị “khoá” chính xác

Trang 31

2W W+1 W 1

W-S 2W-S

Kết quả nhân nguyên được căn chỉnh

Kết quả nhân VHDL

Hình 2.14: Các bộ nhân nguyên được canh chỉnh

Cấu trúc ô cho kiến trúc MULTIPLE được chỉ ra ở hình 2.6 Số lượng các khốicộng và nhân ở trong hình chỉ ra tại sao mỗi ô chiếm nhiều vùng chip Mỗi khối nhânthực hiện phép toán chỉ ra ở hình 2.5 Tín hiệu enable cho phép các kết quả mới đểgắn các thanh ghi và khởi tạo bởi trạng thái 2 FSM trong bộ điều khiển ô

Do vậy, nó dùng ít vùng hơn so với MULTIPLE nhưng nhiều chu kỳ xung đồng hồhơn, mặc dù tốc độ bit có thể cao hơn vì các tín hiệu chỉ là ở mức bộ nhân để truyềnthông thay vì đa mức như trong MULTIPLE Mỗi chu trình hoạt động đơn bao gồmphép nhân và phép cộng Thời gian chia sẻ các tài nguyên số học đạt được thông qua

Trang 32

nhiều trạng thái FSM, để bộ điều khiển cho SINGLE phức tạp hơn bộ điều khiển của

bộ MULTIPLE

Nếu một phép cộng không được làm để thực thi phép toán nào đó, thì tài nguyên

bộ cộng ở trạng thái rỗi và tiêu tốn chu kỳ xung đồng hồ Trạng thái tương tự giữ mặc

dù phép nhân không cần thiết Do vậy, thật sự thoải mái để phân vùng các phép toántrong các phép toán phụ mà bao gồm cả nhân lẫn cộng, như chỉ ra ở hình 2.7 Các biếntạm t1 và t2 là chủ yếu và cộng đến một số các bit nguyên yêu cầu bởi mỗi cell, mặc

dù thật sự không hữu ích trong vấn đề cho các flip-flop-rich của FPGA Một vài cácphép toán đặc biệt được làm theo trật tự hiệu năng ô cao nhất Tuyến 5 và 11 ở tronghình 2.7 làm hai phép gán đồng thời cho mục đích lưu lại xung đồng hồ Hai số A và B

có thể trừ bởi thực phép toán như là -1xB+A=A-B, nhưng phần cứng không hỗ trợ trựctiếp phép trừ như là AxB-C

, 1

1 1 , 2

1

1 2 2 1

1 , 1 , 2

1 1 , 1

1 1

2 1 1 1 2 1 1 1 2

1 , 1

1 , 1

1 1 1

1 , 1

1 12

, 0 11

2 1 10

9

1 8

0 6

, 5

) 1 ( 4

) ( ,

0

) ( ,

0 3

0 2

1 1

t T t T

t T T

t t

t T t x t t

t t x t t

T T t

t T t t t t

t t t t

t t

C T

t C t

C T

t t t t

C T

t

i p i

p

i m i

m

i m

i m i m i p i i

i i

b i

m a

b i

m b

i m

Hình 2.16: Các phép toán luồng nóng phân vùng cho kiến trúc SINGLE.

Các cấu trúc bộ điều khiển và ô cho kiến trúc SINGLE được chỉ ra ở hình 2.8 Cáckhối cộng và nhân thì giống như mà dùng bởi MULTIPLE, nhưng đó chỉ là một trong

số của kiến trúc này Mỗi trạng thái trong 12 trạng thái FSM của bộ điều khiển ô xácđịnh các đầu vào được dùng cho bộ nhân và bộ cộng cũng như các thanh ghi đích mà

sẽ gắn chặt kết quả của phép toán nhân và cộng Bộ điều khiển cũng phân tán các đầuvào tham số cố định đến tất cả các ô Mặc dù không được chỉ ra ở hình 2.8, mỗi ô baogồm một bộ so sánh giống nhau như là MULTIPLE

Trang 33

Lựa chọn nguồn cộng

Lựa chọn đích

Thanh ghi

ô

W W

Chiếc lược giảm tải tiêu tốn thời gian có thể đạt được hơn nữa bởi loại trừ ra một

số lượng lớn khối phép nhân trong SINGLE và làm tất cả các phép toán với một bộcộng W bit đơn Cách để thực hiện phép nhân với số đã được gán dùng một bộ công làthuật toán Booth, mà là phương pháp dùng cho kiến trúc này và lý do đó nó đặt tên làBOOTH Dùng phương pháp này, mỗi phép toán nhân làm trong nhiều chu kỳ đồng hồ

W, nhưng các phép toán cộng có thể được làm trong một chu kỳ Tần số đồng hồ cóthể đạt được cao hơn cho SINGLE vì các tín hiệu trong kiến trúc BOOTH đi thông quamột bộ cộng hơn một bộ nhân theo sau bởi một bộ cộng Như SINGLE, kiến trúcBOOTH yêu cầu điều khiển phức tạp theo trật tự trải dài các phép toán vượt quá thờigian theo một trật tự đúng

Một chuỗi W bit a w1a w2 a1a0 trình bày phần bù bởi:

1 0 1

1

i

w i

i i i

i i

w

a A

Nếu a-1=0 Do đó, nếu A được nhân bởi số nguyên bù B:

1 2 ,

i

i i

a B

A

Trang 34

Ở đây mỗi phép cộng A, phép trừ B, hay cộng 0 để mỗi phần tổng phụ thuộc trênnếu ai-1ai là 10, 01, hay 00/11 Thuật toán Booth dùng các sự kiện này và sự kiện mànhân bởi 2i có thể được dịch chuỗi bits Thuật toán Booth và phần cứng yêu cầu đượcchỉ ra ở hình 2.9 và hình 3.10 A và B là hai toán tử để nhân và C tích lũy thành phépcộng từng phần Phép nhân bởi 2i được làm bởi phép dịch C và A sang phải Bộ cộngchứa phần cứng them vào cho bộ trừ B và cho cộng ) Kết quả thông thường của bộnhân là một số nguyên bù hai mà tập trung trong vào các thanh ghi C và A, nhưng bởi

vì các số nguyên canh chỉnh được dùng, kết quả không coi là hợp lệ ở trong C và A tạiđiểm chỉ ra ở hình 2.5

Kết quả sau w chu kỳ

Hình 2.18: Phần cứng cho thuật toán Booth

A  Bộ nhân

B  Số nhân

C 0 ai-1 0

Hình 2.19: Thuật toán Booth cho bộ nhân bù hai

Giống như kiến trúc MULTIPLE, ưu điểm để tính toán các phép toán luồng nóngdùng ít nhất các phép toán nhân, nhưng không giống như MULTIPLE, lý do này làkhông thể bởi vì kích thước nhưng bởi vì thời gian: các phép toán nhân là W lần dài

Trang 35

hơn phép cộng ở trong kiến trúc BOOTH Do vậy, các phép toán luồng nóng cho kiếntrúc BOOTH là phần được chỉ ra ở hình 2.11 Tuyến 11 và 12 thực thi và làm tronghai phép toán cộng trong hai chu kỳ xung đồng hồ hơn phép nhân, mà làm trong Wxung đồng hồ, như với SINGLE, các biến tạm t1 và t2 là chủ yếu và cộng đến thanhghi đếm trong mỗi ô.

2 1 , ,

2 1 ,

2 2

1 , 1 , 2

2 1 1

2 2 2

1 2 2

1 , 2 2

1 1 , 1 1 , 2

18 17 16 15 14 13 12 11 10

t T T

t t T

t t t

T T t

t t t

x

t t t

T t t

T t t

T T

t

i j p i j p

i j m

i j m i j p

i j m

i j m

i j m i

j m

Hình 2.20: Các phép tính luồng nóng cho kiến trúc BOOTH

Các cấu trúc bộ điều khiển và ô cho kiến trúc BOOTH được chỉ ra ở hình 2.12.Mỗi ô dùng một bộ cộng đơn, nhưng các thanh ghi C và A cần cho thuật toán Boothtăng bộ đếm thanh ghi của ô Thanh ghi B của thuật toán Booth là không rõ ràngnhưng là thanh ghi ô mà vượt qua phép chọn logic đầu vào 2 Điều này yêu cầu bộđiều khiển ở trạng thái giữ các tuyến được chọn phù hợp cho đến khi phép nhân đượchoàn thành Mỗi một trạng thái trong bộ điều khiển ô 18 trạng thái FSM xác định cảcác đầu vào bộ cộng và thanh ghi đến mà gắn chặt vào kết quả phép toán Bộ điềukhiển cũng phân tán một đầu vào tham số đến tất cả các ô và chọn phép toán cộng hay

là phép toán nhân Bộ điều khiển ô có khả năng chọn phép toán trừ như A-B có thể

được thực hiện Mặc dù không chỉ ra ở hình 2.12, mỗi ô bao gồm một khối bitwise less-than và chỉ ra việc kiểm tra trong suốt tuyến 2 ở hình 2.11, mà phép toán nhân có

cùng số chu kỳ đồng hồ như kiểm tra less-than Dùng kếp như thế này trong các chu

kỳ đồng hồ W tiết kiệm không gian mà giành bởi khối less-than Bộ đếm trong bộ điềukhiển ô đếm W chu kỳ cho phép tính nhân và được thực thi thanh ghi dịch dịch đơngian hơn và làm tăng tốc độ Trong phần thực thi này, các phép tính nhân làm W+2chu kỳ yêu cầu khởi tạo, nhưng nó có thể xây dựng một thiết kế như là chúng lấy Wchu kỳ Khởi tạo -B bằng phép toán nghịch, B được cung cấp và +1 được khởi tạotrong phép logic, mà cộng lẫn nhau để tạo ra B phủ định

1 , 1 1

1 1

1 1 2 1 1

2 2

1 1 2

1 1

1 , 2 1

1 , 1

1 , 1

9

7

1 5

3

) ( ,

) ( ,

0 2

) ( 1

i i

a

b i

j m

b i

j m b i

j m

T t t

t t

t t t t

t t

C t t

t

C T

t t

C T

t

C T

Trang 36

a i-1

Logic chọn đầu vào 1

Tín hiệu điều khiển khác

Phần này thảo luận bộ điều khiển ô và tính toán cấu trúc ô của kiến trúc BIT

Kiến trúc MULTIPLE là một kiến trúc yêu cầu ít không gian và tiêu tốn thời gianlớn Để đạt được điều này bằng cách thực hiện các phép toán một bit tại một thời điểm,

mà kiến trúc BIT được dùng, do đó mới được đặt tên là như thế Giống như BOOTH,kiến trúc BIT dùng thuật toán Booth để thực thi nhiều phép nhân, nhưng mỗi phépcộng là một chuỗi bits nối tiếp Do vậy, nhiều phép nhân làm nhiều chu kỳ W2 và phépcộng thực thi W chu kỳ mặc dù tần số chu kỳ có thể cao hơn so với BOOTH bởi vì cáctín hiệu của kiến trúc BIT đi tới bộ cộng 1 bit hơn bộ cộng toàn bộ Mặc dù kiến trúcBIT chiếm ít không gian của ô, mô tả VHDL của nó là phức tạp nhất trong bốn kiếntrúc do yêu cầu của bộ điều khiển thời gian

Bởi vì kiến trúc BIT tương tự với BOOTH, các phép toán luồng nóng được phânvùng gần với cái cách của kiến trúc BOOTH Sự khác nhau giữa phần BOOTH đượcchỉ ra ở hình 2.11 và phần BIT là bốn tuyến đầu tiên Bốn phép toán đầu tiên của kiếntrúc BIT được chỉ ra ở hình 2.13 Lý do cho sự khác biệt này ở trong các tuyến này là

do sự ràng buộc quan trọng mà các phép toán nhân có thể được thực thi bởi kiến trúcBIT Hai toán tử của phép nhân được dịch thông qua phần cứng một bit tại một thời

Trang 37

điểm nhưng tốc độ khác nhau: toán tử phải quay sau mỗi chu kỳ xung đồng hồ, trongkhi toán tử trái quay với thanh ghi đích mỗi W chu kỳ đồng hồ Do vậy, toán tử phảikhông có cùng thanh ghi đích, tại sao cả hai biến t1 và t2 được gán cho tuyến 1 và tạisao t2 được thiết lập ở tuyến 3: để các phép toán ở trong tuyến 2 và 4 có thể đượcthực thi Cũng như SINGLE và MULTIPLE, t1 và t2 là các biến tạm chủ yếu.

1 2 2

1 2 1

1

2 1 1

1 , 1

,

1 , 2

1

4

, 3

, ,

0 , 1

b i

m b i

m

b i

j m

t t

t C t t

t

t t t

C T

C T

C T

t t

Hình 2.22: Tuyến đầu tiên của kiến trúc BIT cho tính toán luồng nóng

Các cấu trúc của ô và bộ điều khiển cho kiến trúc BIT được chỉ ra ở hình 3.14 Tất

cả các thanh ghi được dịch để mà có thể được đọc và viết một bit tại một thời điểm,nhưng chỉ có các thanh ghi C và Tm được thực thi với flip-flop Các thanh ghi khácđược thực thi như các thanh ghi dịch LUT, nói khác chúng chiếm nhanh tất cả các flip-flop FPGA do số lượng lớn các ô mà có thể phù hợp trên chip Giống như BOOTH,thanh ghi B của thuật toán Booth ngăn chặn, nhưng thanh ghi A cũng bị chặn trongkiến trúc BIT bởi vì các bit kết quả có thể được dịch đến thanh ghi đích của chúng nhưchúng được khởi tạo Không giống như BOOTH, chọn các bit kết quả chính xác yêucầu điều khiển định thời phức tạp trong bộ định khiển ô Bởi vì thanh ghi B bị chặn, bộđiều khiển ô phải giữ các tuyến chọn đầu vào 2 thông qua phép nhân và quay tổngcộng W2lần Yêu cầu định thời đạt được dùng 2 bộ đế m chu kỳ W, mỗi phần thực thinhư là thanh ghi dịch đơn giản để tiết kiệm không gian và tăng tốc độ Trong phầnthực thi này, các phép toán cộng và nhân làm W2+W và W+1 chu kỳ, do yêu cầu khởitạo, nhưng nó có thể xây dựng một thiết kế mà chúng lấy W2 và W chu kỳ Mỗi trạngthái trong các bộ điều khiển ô 19 trạng thái FSM xác định các đầu vào bộ cộng 1bit vàthanh ghi đích sẽ quay các bit kết quả như chúng được khởi tạo Bộ điều khiển đượcphân tán đầu vào tham số hằng số một bit tại một thời điểm đến tất cả các ô và chọnphép toán để cộng hay là nhân Bộ điều khiển ô có khả năng hoạt động phép trừ đểhoạt động như A-B có thể được thực thi Kiến trúc BIT yêu cầu 19 trạng thái thay vì

18 trong BOOTH bởi vì kiểm tra bitwise less-than yêu cầu một phép toán riêng biệt,

mà xảy ra trước khi tuyến 1 trong hình 2.13 Các trạng thái khác yêu cầu cho việc khởitạo và đồng bộ với SSRAM, nhưng một vài chúng xảy ra một khi tại điểm bắt đầu chu

kỳ tính toán

Trang 38

Lân cận

+

Logic lựa chọn đầu vào 2

a i a i- 1

0

Lựa chọn nguồn Tham số đầu vào

Bộ nhân

Tín hiệu điều khiển khác

Bộ điều khiển ô

18-State FSM

Counter i Counter j

Logic lựa chọn đầu vào 1

Chuỗi Logic

Hình 2.23: Cấu trúc ô và bộ điều khiển cho kiến trúc BIT.

2.8 Kết luận

Chương đã mô tả bốn kiến trúc tính toán ô thực hiện cho việc nghiên cứu, cũng như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ươngtác với hệ thống Bốn kiến trúc MULTIPLE, SINGLE, BOOTH, và BIT được phânbiệt dựa vào cái cách mà chúng tính toán giải quyết vấn đề bằng cách dù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 đượcthiết kế cụ thể cho từng vấn đề, bởi vậy mỗi kiến trúc bao gồm chỉ là các khối số họcrất nhỏ yêu cầu để tính toán vấn đề Ngoài trừ tính logic mà điều khiển tần số đồng hồcủa FPGA, thì giao diện logic hệ thống giống nhau cho cả bốn kiến trúc

Trang 39

CHƯƠNG 3: Ứng dụng FPGA trong 3G: W-CDMA

3.1 Mở đầu

Mục tiêu của chương là tìm hiểu và trình bày về một số ưu điểm nổi bật của FPGA,tính khả thi của nó trong hệ thống 3G-UMTS Chương được tổ chức trình bày như sau:

 Ứng dụng FPGA cho trạm gốc 3G- UMTS

 Ứng dụng FPGA cho mã Turbo

3.2 Ứng dụng FPGA cho trạm gốc 3G-UMTS

3.2.1 Tại sao lại lựa chọn FPGA

3.2.1.1 Giảm rủi ro thiết kế

Platform FPGA cho phép “phân hệ mềm” của các hệ thống, có khả năng thiết kếphần mềm và phần cứng song song Trong khi đó, BTS lại là một phần mềm mức cao,gồm mã DSP và lớp logic tốc độ cao Khi đó, chúng có thể được thiết kế song song, dovậy tiết kiệm tối đa chi phí

FPGA cho phép kiểm lỗi thông minh và có nhiều ứng dụng cho tương lai, do vậycác chức năng này có thể được thêm vào trong sản phẩm nhằm ứng dụng cho pháttriển sau này Mặt khác một BS thực sự phức tạp, và rất có thể bị thay đổi tất cả mọithứ kể từ phiên bản đầu tiên

3.2.1.2 Đáp ứng yêu cầu phát triển của BTS

Hình dưới đây mô tả hệ thống phát triển của các kiến trúc của FPGA Sự phát triểncủa họ kiến trúc đáp ứng từng giai đoạn phát triển của hệ thống viễn thông Thế hệ 1G

là hệ kiến trúc XC2000-XC3000; 2G là XC4000, Virtex; 3G là VirtexII và phân hệđáp ứng cho tương lai 3G+ là VirtexII Pro

Trang 40

1G 2G 3G

Glue Logic

Khối chức năng mức hệ thống

Nền tảng FPGAs

Nền tảng hệ thống khả lập trình

DLLs High Part.VO Khối RAM

Bộ nhớ phân tán

IP Immersion

840 Mbps LVDS TripleDES XCITE Multiplier DCM

PowerPC RocketIO

Hình 3.24: Sự phức tạp của thiết bị và quá trình phát triển của FPGA.

3.2.2 Hạn chế của DSP ban đầu

3.2.2.1 Thiết bị DSP ban đầu

Kiến trúc DSP ban đầu được thiết kế trên công nghệ Von Neumann Dạng thiết kếđược cho như hình 3.2

Hình 3.25: Bản thiết kế DSP ban đầu

Theo kiến trúc này, sau khi dòng dữ liệu vào sẽ đi qua cổng dữ liệu sẽ đi qua khối

xử lý Mac, thuật toán lặp 256 lần Ví dụ, nếu có 256 điểm lọc xung thì ta cần 256 phéptoán cộng và nhân MAC trên một mẫu dữ liệu

Những hạn chế còn tồn tại trên thiết bị DSP ban đầu này:

 Kiến trúc cố định, không linh hoạt Số khối hoạt động MAC ít, 1-4 khối; băng

Ngày đăng: 30/04/2014, 22:35

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Bốn lĩnh vực thiết kế chính của FPGA - đồ án : FPGA và ứng dụng cho 3G-WCDMA
Hình 1.1 Bốn lĩnh vực thiết kế chính của FPGA (Trang 11)
Hình 1.2: Kết cấu bên trong FPGA - đồ án : FPGA và ứng dụng cho 3G-WCDMA
Hình 1.2 Kết cấu bên trong FPGA (Trang 12)
Hình 1.3: Sơ đồ tile Virtex-II FPGA - đồ án : FPGA và ứng dụng cho 3G-WCDMA
Hình 1.3 Sơ đồ tile Virtex-II FPGA (Trang 14)
Hình 1.5: Các vùng I/O đối với gói nối dây (trái) và flip-chip (phải). - đồ án : FPGA và ứng dụng cho 3G-WCDMA
Hình 1.5 Các vùng I/O đối với gói nối dây (trái) và flip-chip (phải) (Trang 17)
Hình 2.10: Thuật toán thực thi FPGA - đồ án : FPGA và ứng dụng cho 3G-WCDMA
Hình 2.10 Thuật toán thực thi FPGA (Trang 27)
Hình 2.16: Các phép toán luồng nóng phân vùng cho kiến trúc SINGLE. - đồ án : FPGA và ứng dụng cho 3G-WCDMA
Hình 2.16 Các phép toán luồng nóng phân vùng cho kiến trúc SINGLE (Trang 32)
Hình 3.24: Sự phức tạp của thiết bị và quá trình phát triển của FPGA. - đồ án : FPGA và ứng dụng cho 3G-WCDMA
Hình 3.24 Sự phức tạp của thiết bị và quá trình phát triển của FPGA (Trang 40)
Sơ đồ các khối của máy phát – thu 3G cơ sở, nguyên lý làm việc được thể hiện trên hình vẽ. - đồ án : FPGA và ứng dụng cho 3G-WCDMA
Sơ đồ c ác khối của máy phát – thu 3G cơ sở, nguyên lý làm việc được thể hiện trên hình vẽ (Trang 43)
Hình 3.30: Sơ đồ khối bộ dò đa người dùng (CF-MUD) - đồ án : FPGA và ứng dụng cho 3G-WCDMA
Hình 3.30 Sơ đồ khối bộ dò đa người dùng (CF-MUD) (Trang 45)
Hình 3.31: 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). - đồ án : FPGA và ứng dụng cho 3G-WCDMA
Hình 3.31 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) (Trang 48)
Hình 3.32: Ước tính hiệu năng của phương pháp MUD - đồ án : FPGA và ứng dụng cho 3G-WCDMA
Hình 3.32 Ước tính hiệu năng của phương pháp MUD (Trang 49)
Hình 3.33: Kiến trúc phần cứng đơn giản hoá của CF-MUD - đồ án : FPGA và ứng dụng cho 3G-WCDMA
Hình 3.33 Kiến trúc phần cứng đơn giản hoá của CF-MUD (Trang 50)
Hình 3.34: Ánh xạ CF-MUD lên phần tử xử lý và bộ nhớ trong - đồ án : FPGA và ứng dụng cho 3G-WCDMA
Hình 3.34 Ánh xạ CF-MUD lên phần tử xử lý và bộ nhớ trong (Trang 52)
Hình 3.36: Chiến lược đường ống (pipeline) trong tiến trình xử lý tách - đồ án : FPGA và ứng dụng cho 3G-WCDMA
Hình 3.36 Chiến lược đường ống (pipeline) trong tiến trình xử lý tách (Trang 56)
Bảng 3.2: Số người dùng hoạt động cùng lúc tối đa có thể phân biệt được. - đồ án : FPGA và ứng dụng cho 3G-WCDMA
Bảng 3.2 Số người dùng hoạt động cùng lúc tối đa có thể phân biệt được (Trang 56)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w