Tải bản đầy đủ (.doc) (92 trang)

đồ án :FPGA và ứng dụng trong WiMAX

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (640.4 KB, 92 trang )

Đồ á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


2.4.6 Mã hoá và điều chế thích ứng trong WiMax 35
2.4.7 Tốc độ dữ liệu lớp vật lý 35
2.5 Tổng quan lớp MAC 36
2.5.1 Các kỹ thuật truy nhập kênh 37
2.5.2 Chất lượng dịch vụ 38
2.5.3 Tính năng tiết kiệm công suất 41
2.5.4 Hỗ trợ tính di động 42
2.5.5 Các chức năng bảo mật 43
2.5.6 Các dịch vụ quảng bá và multicast 44
2.6 Đặc tính tiên tiến để nâng cao hiệu năng 45
2.6.1 Các hệ thống ăng-ten tiên tiến 45
2.6.2 Hybrid-ARQ 46
2.6.3 Tăng tái sử dụng tần số 47
2.7 Kiến trúc mạng tham chiếu 47
2.8 Mô tả hiệu năng 50
2.8.1 Hiệu quả phổ và thông lượng 50
2.8.2 Năng lượng dự trữ kết nối mẫu và vùng phủ sóng 52
Hoàng Tiến Dũng_Lớp D04 VT2
i
Đồ án tốt nghiệp Đại học Mục lục
2.9 Kết luận 52
CHƯƠNG III. ỨNG DỤNG CỦA FPGA TRONG WiMAX 54
3.1. Mở đầu 54
3.2. Nền tảng về phần cứng cho WiMAX 54
3.2.1. Thách thức khi thực hiện: 54
3.2.2. FPGA-Giải pháp đúng đắn 55
3.3. Thiết kế hệ thống WiMAX dựa trên FPGA 56
3.3.1. Tốc độ xử lí 57
3.3.2. Tính linh hoạt 58
3.3.3. Thời gian đưa ra thị trường 59

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

ATM Asynchronous Transfer Mode Phương thức truyền thông không
đồng bộ
B
BLER Block Error Rate Tỷ lệ lỗi khối
BPSK Binary Phase Shift Keying Điều chế pha nhị phân
BSC Base Station Controllers Các bộ điều khiển trạm gốc
BST Base Station Transceivers Các bộ thu phát trạm gốc
C
CID Connection Identifier Nhận dạng kết nối
CLB Configurable Logic Block Khối logic cho phép đặt cấu hình
CQICH Channel Quality Indicator Channel Kênh chỉ thị chất lượng kênh
CRC Cyclic Redundancy Check Kiểm độ dư vòng
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
DHCP Dynamic Host Control Protocol Giao thức điều khiển máy chủ động
DOCSIS Data Over Cable Service Interface
Specifications
Các đặc trưng giao diện dịch vụ dữ
liệu qua cáp
DSL Digital Subscriber Line Đường dây thuê bao số
Hoàng Tiến Dũng_Lớp D04 VT2
iii
Đồ án tốt nghiệp Đại học Thuật ngữ viết tắt
DVB-H Digital Video Broadcast-Handheld Quảng bá video số cầm tay
E
EAP Extensible Authentication Protocol Giao thức nhận thực mở rộng
ERT-VR Extended Real-Time Variable Rate Mở rộng dịch vụ thay đổi thời gian
thực

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

LUT Look Up Table Bảng dò tìm
LOS Line of Sight Tầm nhìn thẳng
Hoàng Tiến Dũng_Lớp D04 VT2
iv
Đồ án tốt nghiệp Đại học Thuật ngữ viết tắt
M
MAC Medium Access Control Điều khiển truy nhập trung gian
MBS Multicast and Broadcast Services Các dịch vụ Broadcast và Multicast
MDHO Macro Diversity Handover Chuyển giao phân tập Macro
MPDU MAC Protocol Data Units Các đơn vị dữ liệu giao thức MAC
MSDU MAC Service Data Units Các đơn vị dữ liệu dịch vụ MAC
N
NAP Network Access Provider Nhà cung cấp truy nhập mạng
NLOS Non Line of Sight Không tầm nhìn thẳng
nrtPS Non real time Polling Service Dịch vụ thăm dò không thời gian
thực
NSP Network Serivices Provider Nhà cung cấp các dịch vụ mạng
NWG Network Working Group Nhóm khai thác mạng
O
OFDM Orthogonal Frequency Division
Multiplexing
Ghép kênh phân chia theo tần số
OFDMA Orthogonal Frequency Division
Multiple Access
Đa truy nhập phân chia theo tần số
trực giao
P
PLD Programmable Logic Device Thiết bị logic khả trình
PSTN Public Switch Telephone Network Mạng điện thoại chuyển mạch công
cộng

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

Khả năng khai thác liên mạng trên
toàn cầu đối với truy nhập viba
WMAN Wireless Metropolitan Area
Networking
Mạng khu vực trung tâm không dây
X
XHWIF The Xilinx HardWare InterFace Giao diện phần cứng Xilinx
Hoàng Tiến Dũng_Lớp D04 VT2
vi
Đồ án tốt nghiệp Đại học Danh mục hình vẽ
DANH MỤC HÌNH VẼ
Hoàng Tiến Dũng_Lớp D04 VT2
vii
Đồ án tốt nghiệp Đại học Danh mục bảng biểu
DANH MỤC BẢNG BIỂU
Hoàng Tiến Dũng_Lớp D04 VT2
viii
Đồ án tốt nghiệp Đại học Lời nói đầu
LỜI NÓI ĐẦU
Có thể nói rằng WiMAX là hệ thống vô tuyến được tích hợp và hội tụ nhiều công
nghệ tiên tiến, tinh tuý vẫn đang trong giai đoạn nghiên cứu, thử nghiệm. Tuy nhiên sự
thành công của hệ thống này có được phụ thuộc vào rất nhiều yếu tố. Trong đó nhân tố có
tính chất quyết định là vấn đề công nghệ thực hiện nghĩa là khả năng 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ụ.
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. Linh kiện
FPGA cho phép cấu hình lại để thay đổi chức năng logic trong khi vẫn đang nằm trong hệ
thống. 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. 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

FPGA. Chương này cũng giới thiệu về bộ mã hoá LDPC đựa trên FPGA của
Xilinx.
Đượ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.
Hà Nội, ngày… tháng… năm 2008
Người làm đồ án
SV. Hoàng Tiến Dũng
Hoàng Tiến Dũng_Lớp D04 VT2
2
Đồ án tốt nghiệp Đại học Chương II- Các đặc trưng của
WiMAX
CHƯƠNG I: TỔNG QUAN VỀ FPGA
1.1. Mở đầu
Nhằm mục đích đưa ra cái nhìn tổng quan về FPGA, nội dung của chương này
được bố trí như sau: Phần đầu sẽ đưa ra cái nhìn ban đầu về FPGA như :định nghĩa,
chức năng, cấu trúc của FPGA, phần tiếp theo trình bày về Xilinx FPGA-Một công
ty hàng đầu trong thị trường FPGA , Tiếp đến sẽ trình bày các vấn đề, dự án liên quan
đến FPGA như: Vtsim, JHDL, Jbits, JHDLBits, ADB.
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 (multi-chip glue logic circuits) bằng giải pháp tái cấu trúc
đơn (single reconfigurable solution). 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ớ 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

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 (shift registers). FPGAs được đặt cấu hình thông
Hoàng Tiến Dũng_Lớp D04 VT2
4
Đồ án tốt nghiệp Đại học Chương II- Các đặc trưng của
WiMAX
qua một dòng bit nạp trong thiết bị. Dòng bít 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 (switchboxes), 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 (systems piecewise). 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 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.
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.
Hình 1. 3: Sơ đồ tile Virtex-II FPGA
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

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

đầ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.
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ỳ ý.
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 (edge-triggered D-type flip-flop) hoặc chốt nhạy mức (level-sensitive).
Với mỗi phần tử nhớ, có sáu chế độ hoạt động khác nhau:
• 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
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
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

8
Đồ án tốt nghiệp Đại học Chương II- Các đặc trưng của
WiMAX
clock buffer tiles): 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 (global clock multiplexer buffers); 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 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 (clock input pads).
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 (gated-clock) 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.
1.4. Một số công trình, dự án liên quan đến FPGA
1.4.1 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 tính cách, 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ế. Một
số 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 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

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. 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 bít
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, 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ả, 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
Hoàng Tiến Dũng_Lớp D04 VT2
10
Đồ án tốt nghiệp Đại học Chương II- Các đặc trưng của
WiMAX
1.4.2 JHDL
Các nhà nghiên cứu tại Đại học Brigham Young đã phát triển một bộ thiết kế
FPGA ngôn ngữ mô tả cấu trúc phần cứng trên nền Java (JHDL). JHDL là một bộ
nguồn mở của công cụ phát triển FPGA, công cụ này cho phép người sử dụng thiết kế
cấu trúc và sơ đồ bố trí của một mạch, gỡ rối (debug) và sau đó netlist mạch, như được
mô tả trong hình 1.6. Một netlist cho một thiết kế chứa các thông tin về các nguyên
khối của bản thiết kế và các kết nối tương ứng. Do tính chất dễ sử dụng, hướng đối
tượng, có khả năng văn bản hoá đựng sẵn, tiện dụng và có tập Giao diện đồ hoạ người
dùng (GUI) API đa dạng, tích hợp vào ngôn ngữ nên Java đã được lựa chọn. JHDL
chứa API đơn, cho phép nhà thiết kế tạo ra cả thiết kế mạch cố định hoặc linh hoạ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

hình Xilinx FPGA, cụ thể là mọi tài nguyên khả cấu hình trong phần cứng. giao diện
hiện tại sẽ chạy trên cả dòng bít được tạo ra bởi các công cụ thiết kế Xilinx và trên cả
dòng bít được tách ra từ phần cứng FPGA. Các tài nguyên khả cấu hình được truy
nhập bởi JBits gồm có bảng tìm kiếm (LUTs), flip-flops, và các yếu tố định tuyến. Các
tài nguyên thiết bị này có thể được lập trình và dò riêng lẻ khi chạy thực, thậm chí
ngay cả khi FPGA đã kích hoạt trong hệ thống đang làm việc. Thông qua cơ chế này,
JBits hỗ trợ cho việc quan sát chạy thực và tái cấu hình của Xilinx FPGAs. Giao diện
tới phần cứng được hoàn thiện bởi XHWIF, chuẩn giao diện phần cứng Xilinx.
XHWIF là một giao diện Java cho việc truyền thông với bảng mạch được in dựa trên
FPGA (PCBs), ví dụ như để miêu tả bảng và gửi các dữ liệu vào và ra khỏi bảng. Các
phương pháp bao gồm cho việc đọc và viết các dòng bít, cùng với việc miêu tả loại và
số lượng các FPGAs trên bảng. Toàn bộ bộ JBits API cung cấp cho người dùng FPGA
một sự lựa chọn tốt cho một vài dòng thiết kế dựa trên các đại lý tiêu chuẩn.
Hoàng Tiến Dũng_Lớp D04 VT2
12
Đồ án tốt nghiệp Đại học Chương II- Các đặc trưng của
WiMAX
Hình 1. 7: Dòng thiết kế JBits
Nhiều phiên bản của JBits đã được giới thiệu từ năm 1998 để hỗ trợ cho các họ
FPGA khác nhau. JBits3 SDK là phiên bản mới nhất từ Xilin và cung cấp công cụ hỗ
trợ cho dòng Virtex-II FPGA. API này cho phép truy cập tới tất cả các nguồn có cấu
hình cấp độ bit nhưng không giống với các phiên bản khác trước đó, nó không bao
gồm thiết bị sao chép, bộ định tuyến hoặc các thiết bị hỗ trợ việc lắp đặt. các phiên bản
trước cũng bao gồm các cấp độ tóm lược cao hơn, tạo ra bởi các core như bộ cộng, bộ
đếm, bộ nhân, và các chức năng logic chuẩn. Dòng thiết kế JBits bắt đầu với một dòng
bít đầu vào và mã Java được phát triển bởi người dùng bao gồm các lệnh gọi tới thư
viện JBits. Điều này tương tự như mạch được viết trong JHDL. Sau đó, code sẽ được
biên dịch, chạy và đầu ra được lấy đưa tới FPGA dưới dạng một dòng bít. hình 1.7
minh họa dòng thiết kế JBits.
Mặc dù, JBits là một sự lựa chọn cho dòng thiết kế chuẩn, nhưng vẫn còn một

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

kết nối cơ sở dữ liệu, ADB cũng có giao diện với JBits để cung cấp thông tin lắp đặt
và định tuyến, unrouting, và truy tìm dịch vụ. Các giao diện được công bố công khai,
để họ có thể được mở rộng hoặc thay thế khi cần thiết bởi user.
Kể từ JBits3 không còn bao gồm các Jroute - một autorouter hiện diện trong các
phiên bản trước của JBits - một ADB, dựa trên định tuyến được bao gồm với
JHDLBits. Bộ định tuyến được dựa trên một thuật toán tìm kiếm mạnh mẽ được nâng
cao với kinh nghiệm phù hợp với các họ Virtex-II FPGA. Unrouter cho phép các chức
năng bình thường không được tìm thấy trong dòng công cụ tĩnh, bằng cách cho phép
người sử dụng ngắt kết nối các net hiện có, để nối lại các net khác khi chạy thực.
ADB-tracer này cũng được sử dụng bởi VTsim, để tìm ra thông tin kết nối từ một cấu
hình bitstream. ADB, có thể được quan tâm để các nhà nghiên cứu muốn đánh giá
thuật toán định tuyến với sơ đồ dữ liệu từ FPGAs thương mại; Mặc dụ, ADB hiện thời
Hoàng Tiến Dũng_Lớp D04 VT2
14
Đồ án tốt nghiệp Đại học Chương II- Các đặc trưng của
WiMAX
chỉ cung cấp tuỳ chọn định tuyến có sẵn cho người dùng IBits. Để cắm bộ định tuyến
ADB vào dự án JHDLBits, bộ định tuyến chỉ cần thực hiện giao diện bộ định tuyến
(RouterInterface) như được định nghĩa bởi JBits, mà không có sự quan tâm cho các
hoạt động bên trong.
1.4.5 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ấp thấ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ợp chặt chẽ, tạo ra một đường dẫn đầu cuối để tạo, thao tác và sửa các dòng bit
FPGA. 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 bit. Hình 1.8 minh hoạ dòng thiết kế JHDLBits.
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
(working design) trong JHDL. Bước tiếp theo là tạo ra một file test cấp cao nhất đóng
vai trò như một giao diệ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 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ỳ

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
logic FPGA. 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ập
hợ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 (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 được thiế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 JHDLBits,
JHDLBits ánh xạ gốc trực tiếp sang gốc JBits, một cách đơn giản hoá 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ỏ
Hoàng Tiến Dũng_Lớp D04 VT2
16
Đồ án tốt nghiệp Đại học Chương II- Các đặc trưng của
WiMAX
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ò quan
trọ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ác
gố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ổ
sung một số đặc tính hiện còn thiếu trong JBits3. Trong đó có lớp dòng bít, một đối
tượng bắ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 (sink pins) tạo nên mỗi mạng. Thông tin lớp mạng

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

×