Đồ án tốt nghiệp Đại học Mục lục
MỤC LỤC
THUẬT NGỮ VIẾT TẮT iii
DANH MỤC HÌNH VẼ vii
DANH MỤC BẢNG BIỂU viii
LỜI NÓI ĐẦU 1
CHƯƠNG I: 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.4. Một số công trình, dự án liên quan đến FPGA 9
1.4.1 VTsim 9
1.4.2 JHDL 11
1.4.3 JBits 12
1.4.4 ADB 14
1.4.5 JHDLBits 15
1.5 Những cải tiến JHDLBits và JBits 16
1.6 Kết luận 18
CHƯƠNG II. CÁC ĐẶC TRƯNG CỦA WiMAX 19
2.1 Mở đầu 19
2.2 WiMax và nền tảng IEEE 802.16 19
2.3 Những nét đặc trưng nổi bật của WiMax 24
2.4 Lớp vật lý WiMax 27
2.4.1 Cơ sở OFDM 27
2.4.2 Những lợi thế và bất lợi của OFDM 28
2.4.3 Các tham số OFDM trong WiMax 29
2.4.4 Kênh con hoá: OFDMA 31
2.4.5 Cấu trúc khung và khe 32
3.3.4. Thiết kế tham khảo và khối thông minh ở lớp vật lý của WiMAX 59
3.3.5. Công cụ và phần mềm phát triển 63
3.3.6. Đường lối giảm chi phí 65
3.4. Bộ mã hóa LDPC dựa trên FPGA 66
3.4.1. Giới thiệu 66
3.4.2. Đặc điểm 66
3.4.3. Tổng quan về chức năng 67
3.4.4. Sơ đồ chân (Pinout) 70
3.4.5. Tham số chạy thực 74
3.4.6. Tham số bộ tạo CORE 75
3.4.7. Sự tích hợp hệ thống 77
3.5. Kết luận 79
KẾT LUẬN 80
TÀI LIỆU THAM KHẢO 82
Hoàng Tiến Dũng_Lớp D04 VT2
ii
Đồ án tốt nghiệp Đại học Thuật ngữ viết tắt
THUẬT NGỮ VIẾT TẮT
A
AAS Advanced Antenna Systems Các hệ thống anten cải tiến
ACK Acknowledgment Nhận biết
ADB Alternate wire DataBase Cơ sở dữ liệu dây thay thế
AES Advanced Encryption Standard Tiêu chuẩn mã hoá tiên tiến
AMC Adaptive Modulation and Coding Mã hoá và điều chế thích ứng
API Application Programming Interface Giao diện lập trình ứng dụng
ARQ Automatic Retransmission Requests Các yêu cầu tái truyền dẫn tự động
ASIC Application Specific Integrated Circuit Vi mạch tích hợp ứng dụng
ASN Access Service Network Mạng dịch vụ truy nhập
ASN-GW Access Service Network Gateway Cổng mạng dịch vụ truy nhập
ASP Application Service Provider Nhà cung cấp dịch vụ ứng dụng
F
FBSS Fast Base Station Switching Chuyển mạch trạm gốc nhanh
FCH Frame Control Header Mào đầu điều khiển khung
FDD Frequency Division Duplexing Song công phân chia theo tần số
FEC Forward Error Correction Hiệu chỉnh lỗi phía trước
FFT Fast Fourier Transform Biến đổi Fourier nhanh
FIPS Federal Information Processing
Standard
Tiêu chuẩn xử lý thông tin liên
bang
FPGA Field Programmable Gate Array Vi mạch mảng phần tử logic khả
trình
G
GMH Generic MAC Header Tiêu đề MAC chung
GPRS General Packet Radio Service Dịch vụ vô tuyến gói chung
GUI Graphical User Interface Giao diện đồ hoạ người dùng
H
HHO Hard Handover Chuyển giao cứng
I
IDFT Inverse Discrete Fourier Transform Biến đổi Fourier rời rạc ngược
IEEE Institute of Electrical and Electronics
Engineers
Học viện các kỹ sư và điện tử
IFFT Inverse Fast Fourier Transform Biến đổi Fourier nhanh ngược
IMS IP Multimedia Subsystem Hệ thống con đa phương tiện IP
IOB Input/Output Block Khối vào ra
ISI Intersymbol Interference Nhiễu giữa các ký hiệu
L
LDPC Low-Density Parity Check Kiểm tra chẵn lẻ mật độ thấp
LE Logical Element Phần tử Logic
PUSC Partial Usage of Subcarriers Các sóng mang con sử dụng một
phần
Q
QAM Quandrature Amlitude Modulation Điều chế biên độ trực giao
QPSK Quadrature Phase Shift Keying Điều chế khoá pha trực giao
R
RAM Random Access Memory Bộ nhớ truy cập ngẫu nhiên
RF Radio Frequency Tần số vô tuyến
ROM Read Only Memory Bộ nhớ chỉ đọc
rtPS Real-time Polling Services Các dịch vụ thăm dò thời gian thực
S
SB Switching Block Khối chuyển mạch
SEU Single Event Upset Nhiễu biến cố đơn
Hoàng Tiến Dũng_Lớp D04 VT2
v
Đồ án tốt nghiệp Đại học Thuật ngữ viết tắt
SINR Signal to Interference plus Noise Ratio Tỷ lệ tín hiệu trên nhiễu và tạp âm
SFID Service Flow Identifier Nhận dạng lưu lượng tràn
SGSN Serving GPRS Support Node Nút hỗ trợ GPRS phục vụ
SLA Service Level Agreement Thoả thuận mức phục vụ
T
TDD Time Division Duplexing Song công phân chia theo thời gian
TDM Time Division Multiplexing Ghép kênh phân chia theo thời gian
TDMA Time Division Multiple Access Đa truy nhập phân chia theo thời
gian
U
UGS Unsolicited Grant Services Các dịch vụ hỗ trợ tự nguyện
W
WiMAX Worldwide Interoperability for
Microwave Access
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. Sửdụng FPGA làm cho quá trình 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 được dễ dàng hơn. Ngoài ra, linh kiện
FPGA còn cho phép khả năng chế tạo các bảng mạch mẫu cũng như các giải pháp giá rẻ.
Vì vậy, FPGA là một giải pháp hợp lý để tích hợp, hội tụ nhiều giải thuật phức tạp trên
một thiết bị vi mạch nhưng vẫn phải đảm bảo thời gian xử lý đáp ứng được tính thời gian
thực của các loại hình dịch vụ.
Nhận thức được ý nghĩa của công nghệ về việc triển khai hệ thống thông tin thế hệ
mới mà cụ thể là WiMAX, đặc biệt dướ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 trong WiMAX”
Với mục đích nghiên cứu tính khả thi của FPGA cho WiMAX nên bố cục của đồ án
gồm ba chương cụ thể như sau:
Chương 1: Tổng quan về FPGA.
Chương này trình bày tổng quan về FPGA, các công cụ và các đề án liên
quan đến FPGA, Xilinx FPGA - một công ty dẫn đầu trong thị trường FPGA
với các sản phẩm của hãng.
Chương 2: Các đặc trưng của WiMAX
Hoàng Tiến Dũng_Lớp D04 VT2
1
Đồ án tốt nghiệp Đại học Lời nói đầu
Trình bày tóm tắt các hoạt động của nhóm IEEE 802.16 và sự liên quan của
nó tới WiMAX, những nét đặc trưng nổi bật của WiMax và trình bày ngắn
gọn những nét đặc trưng của lớp vật lý và lớp MAC của WiMax. Trên
phương diện của dịch vụ cũng như chất lượng của dịch vụ, bảo mật và tính di
động, sẽ được bàn thảo và một kiến trúc mạng liên quan sẽ được giới thiệu.
Chương 3: Ứng dụng của FPGA trong WiMAX
Trình bày nền tảng phần cứng cho WiMAX với các thách thức khi thực thi
hệ tthống WiMAX, trên cơ sở đó miêu tả cách thực thi hệ thống dựa trên
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ế
(pre-production), 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ế.
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ỹ
Hoàng Tiến Dũng_Lớp D04 VT2
3
Đồ án tốt nghiệp Đại học Chương II- Các đặc trưng của
WiMAX
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 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ác cũng như dây dọc kết nối với nhau.
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
Hoàng Tiến Dũng_Lớp D04 VT2
5
Đồ án tốt nghiệp Đại học Chương II- Các đặc trưng của
WiMAX
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-I 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 kỹ thuật số (DCMs). Hình 1.3
minh hoạ sơ đồ tile (Tile map) của 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. Mỗi slice, được chia làm hai phần tử logic tương tự (LE), gồm có các thành
phần:
• Hai bộ tạo hàm (F và G)
• Hai phần tử nhớ (có thể đặt cấu hình cho chế độ
flip flop hoặc chốt/latch)
• Mạch logic chuyển (Shift logic)
• Mạch logic chuỗi bộ cộng nhớ nhanh
• Chuỗi tầng ngang (Horizontal cascade chain -
cổng OR)
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ạ bố trì tổng quan chức năng của LE.
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: 4 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ế
Hoàng Tiến Dũng_Lớp D04 VT2
6
Đồ án tốt nghiệp Đại học Chương II- Các đặc trưng của
WiMAX
độ LUT bốn 4 đầ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
Cổng kép 32 x 2 bit
Hoàng Tiến Dũng_Lớp D04 VT2
7
Đồ án tốt nghiệp Đại học Chương II- Các đặc trưng của
WiMAX
Cổng kép 64 x 1 bit
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 1.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 (debugging purpose). Mỗi IOB bên
trong Virtex-II FPGA truy cập tới bốn bộ đệm bên ngoài (external pads). Hai bộ đệm
có thể sử dụng cùng nhau để tạo thành cặp vi phân, hoặc độc lập như là bộ đệm một
đầu (single-ended) 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.
Ở 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; hiệu chỉnh từ. 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 (wire-bond), 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 Virtex-II của Xilinx.
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 (separate global
Hoàng Tiến Dũng_Lớp D04 VT2
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 một
khuyết tật 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á: mô
phỏng dòng bit (bit stream). Đầu vào cần thiết duy nhất của VTsim để hoạt động là
dòng bit 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ố (event-driven), cho đáp ứng tức thời, sử dụng
Hoàng Tiến Dũng_Lớp D04 VT2
9
Đồ án tốt nghiệp Đại học Chương II- Các đặc trưng của
WiMAX
bộ nhớ hiệu quả và hỗ trợ miền clock bội. Vào khoảng thời gian thực hiện luận vă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 bit và xử lý bit
dòng bít (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 và tạo vết, 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 cấu hình cho các kết nối
của thiết bị ảo.
Một bộ mô phỏng thiết bị thường được sử dụng trong các thiết kế cho phép đặt
Hình 1. 6: Dòng thiết kế JHDL
JHDL là một cấu trúc HDL - Điều đó có nghĩa là các mạch được miêu tả bằng
các khối xây dựng theo mức độ thấp được minh họa một cách có cấu trúc. Nó bao
gồm:
• các thiết bị cố định như các cổng Boolean, các thanh ghi v.v
• các module có khả năng biểu hiện bằng tham số như các bộ nhân, bộ đếm, vv…
Hoàng Tiến Dũng_Lớp D04 VT2
11
Đồ án tốt nghiệp Đại học Chương II- Các đặc trưng của
WiMAX
• các APIs có nền tảng độc lập và giống nhau
Các lớp đối tượng này được sử dụng để tạo các thành phần mạch cơ bản và các
kết nối tương ứng. Trong JHDL, hai lớp Java cơ bản tạo nền tảng cơ bản cho tất cả các
mạch: logic và dây. Các nhà thiết kế tạo ra một tế bào logic mới trong thiết kế bằng
cách mở rộng không gian logic (tạo ra một lớp mới), xác định nghĩa giao diện của tế
bào và xác định kiến trúc của tế bào. Các dây trợ giúp cho một API trong việc tạo và
thao tác: Người sử dụng có thể tạo ra các dây đơn hoặc đa “bit”, móc nối hoặc tách
các dây từ các dây hiện có.
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ộ và là thiết bị và
độc lập với cấu trúc. Trong chế độ phần cứ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ác cổ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ỉnh củ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 qua việ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.4.3 JBits
JBits là môt tập hợp các lớp Java mà cung cấp một API để truy cập dòng bit cấu
vài hạn chế với API. Hiển nhiên JBits hoàn toàn ở cấp độ khá thấp , cũng như tất cả
các tài nguyên FPGA cần được định rõ trong mã nguồn thiết kế. Vì thế, JBits sẽ hiệu
quả hơn đối với các mạch siêu cấu trúc. Các tài nguyên mức thấp khả trình trong Jbits
cũng yêu cầu người dùng phải có hiểu biết thật sâu về kiến trúc bên trong của phần
cứng. Các tác giả của JBits đã giải quyết vấn đề này trong các phiên bản trước đó với
mức độ tóm lược cao hơn hoặc các core để người sử dụng không phải thiết kế các
Hoàng Tiến Dũng_Lớp D04 VT2
13
Đồ án tốt nghiệp Đại học Chương II- Các đặc trưng của
WiMAX
mạch ở mức bit thấp nhất nhưng sự tóm lược không bao gồm trong JBits3. Giao diện
JBits cũng không cung cấp sự phân tích định thời.
1.4.4 ADB
ADB là một cơ sở dữ liệu dây luân phiên có thể được sử dụng cho định tuyến,
truy tìm, và duyệt trong Xilinx Virtex, Virtex-E, Virtex-II, và Virtex-II Pro FPGAs.
Mục tiêu thiết kế chính của ADB như sau:
• Bao phủ 100% thiết bị lắp đặt.
• Thực thi chạy thực sơ sở dữ liệu tôt.
• Khởi tạo cơ sở dữ liệu nhanh.
• Biểu thị cô đọng dữ liệu trong đĩa.
• Biểu thị cô đọng dữ liệu trong bộ nhớ…
• Khả năng tương thích với JBits.
Đầy đủ các khía cạnh nhận được từ cùng một dữ liệu độc quyền mà chính các
công cụ dòng chính Xilinx sử dụng, và trình bày một cải tiến trên toàn bộ phạm vi có
sẵn trong quá khứ và hiện tại và trình bày cơ sở dữ liệu dây JBits. Ngoài ra, các file cơ
sở dữ liệu được sử dụng bởi ADB đang có nhiều hơn một lệnh của cường độ nhỏ hơn
bản sao của họ trong công cụ mainstream. Sự thực thi và tính chắc chắn có thể đặc biệt
hữu ích trong các hệ thống nhúng.
ADB có thể được chạy như là một công cụ mà cung cấp dịch vụ cho các công cụ
khách như là các bộ trình duyệt, bộ định tuyến, bộ dò và bộ sắp đặt. Như một bổ sung
cả các thông tin ban đầu và nets từ thiết kế JHDL và chuyển các nets và hình gốc vào
trong JBits Nets và hình gốc (primitives). Sau khi chuyển net và gốc, JHDLBits tạo ra
các dòng bít đầu ra và có thể thoát hoặc tạo đối tượng/tạo nấc VTsim cho các test thiết
kế sau này.
Như đã bàn đến trước đó, 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ần mề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
Hoàng Tiến Dũng_Lớp D04 VT2
15
Đồ án tốt nghiệp Đại học Chương II- Các đặc trưng của
WiMAX
này, bộ mô phỏng JDHL tương tá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 được cá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 VTsim trong 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ông nhớ 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 JHDLBits trong 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ọn VTsim là bộ mô phỏng thay cho bộ mô phỏng JHDL chuẩn.
Lựa chọn VTsim giúp cho việ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 JHDL chuẩn.
1.5 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ới
ngườ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ột
thư viện gốc, một cấu trúc liên kết mạch, một bộ đặt (placer) 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ác thiết kế FPGA sử dụng JBits, đặc biệt là các thiết kế RTR (Run-Time
Reconfigurable – cho phép đặt lại cấu hình thời gian thực). 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ỳ
và dòng bít có thể đi qua 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 định 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át triể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ản như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ến khá 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 được
thiế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ến
khác (mainstream routers). 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ích hợ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ủa các dòng bít phát JHDLBits. Ví dụ, một vi mạch được mô phỏng trong JHDL trải
qua quá trình trích JHDLBits để tạo ra một dòng bít. 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 bit thứ hai. Mỗi dòng bít đượ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ức năng
của hai dòng bit không khớp nhau, cần phải chỉnh sửa gốc JBits. Khi chức năng của
cả hai đã khớp nhau, gốc Jbits đã sẵn sàng để test trên phần cứng vật lý. Do đó,
Hoàng Tiến Dũng_Lớp D04 VT2
17