
MỤC LỤC
Mở đầu ............................................................................................................................. 1
CHƯƠNG 1 TỔNG QUAN VỀ FPGA VÀ NGÔN NGỮ VHDL ................................. 2
1.1. Giới thiệu về FPGA. ......................................................................................... 2
1.2. Kiến trúc chung của một FPGA ............................................................................. 3
1.3. Ngôn ngữ phần cứng HDL. ............................................................................... 5
CHƯƠNG 2 CÁC CÔNG CỤ THIẾT KẾ .................................................................. 14
2.1. Những đặc điểm cơ bản của XtremeDSP Development Kit-IV ........................ 14
2.2. Các phần mềm chuyên dụng................................................................................. 23
2.3. Quy trình thiết kế tổng quát .................................................................................. 29
CHƯƠNG 3 GIỚI THIỆU MÔ HÌNH SOFTWARE DEFINED RADIO CHO HỆ
ĐO THỬ KÊNH MIMO ............................................................................................... 32
3.1. Khái niệm MIMO ...........................................................................................
32
3.2. Lịch sử phát triển hệ MIMO ................................................................................. 33
3.3. Những ưu điểm của hệ MIMO ............................................................................. 33
3.4. Mô hình Software Defined Radio cho hệ đo thử kênh MIMO .......................... 37
CHƯƠNG 4 KẾT QUẢ THỰC NGHIỆM…………………………………………….40
4.1. Cơ sở lý thuyết………………………………………………………………………40
4.2. Mô hình thiết kế…………………………………………………………….………41
4.3. Kết quả mô phỏng trên MATLAB……………………………………………. 43
4.4. Kết quả thực nghiệm trên FPGA .......................................................................... 46
Kết luận ............................................................................................................................
Tài liệu tham khảo .......................................................... Error! Bookmark not defined.

Mở đầu
Hiện nay Thông tin vô tuyến là một ngành phát triển rất mạnh mẽ, các công nghệ
sử dụng trong thông tin vô tuyến ngày càng được đổi mới nhằm nâng cao tính hiệu quả
trong điều chế, giải điều chế và truyền thông tin. Tuy nhiên công nghệ phát triển càng cao
thì lại càng đặt ra những khó khăn trong vấn đề thực nghiệm cho các sinh viên trong các
trường Đại học. Các yêu cầu về phần cứng đôi khi lại trở thành những thử thách vô cùng
phức tạp trong việc đưa các mô hình thiết kế vào thực tế. Vì vậy FPGA ra đời như một
giải pháp cung cấp môi trường làm việc hiệu quả cho các ứng dụng thực tế. Tính linh
động cao trong quá trình thiết kế cho phép FPGA giải quyết những bài toán phức tạp mà
trước kia chỉ thực hiện nhờ phần mềm máy tính. Ngoài ra, nhờ mật độ cổng logic cao,
FPGA được ứng dụng cho những bài toán đòi hỏi khối lượng tính toán lớn và dùng trong
các hệ thống làm việc theo thời gian thực.
Trong số các hãng sản xuất FPGA, Xilinx là một trong các hãng đi đầu trong việc
sản xuất chip, không chỉ bởi các công cụ hỗ trợ thiết kế hoàn thiện mà còn cho phép
người dùng có khả năng can thiệp sâu vào hệ thống, trong đó phải kể tới các chip dòng
Virtex-sản phẩm mới nhất của Xilinx trong những năm gần đây. Qua quá trình tìm hiểu,
nhóm nghiên cứu đã thực hiện được một số các ứng dụng trên FPGA nhằm hướng tới việc
sử dụng FPGA như một công cụ để giải quyết bài toán đo kênh MIMO. Đây là vấn đề thu
hút được rất nhiều sự quan tâm của các nhà nghiên cứu trong lĩnh vực truyền thông vô
tuyến. Để phục vụ cho mục đich này, trong nội dung bài luận văn dưới đây, em sẽ trình
bày về việc sử dụng FPGA để thiết kế mô hình Software Defined Radio cho hệ đo thử
kênh MIMO.

CHƯƠNG 1
TỔNG QUAN VỀ FPGA
VÀ NGÔN NGỮ VHDL
1.1. Giới thiệu về FPGA
FPGA là viết tắt của "Field Programmable Gate Array", là vi mạch dùng cấu trúc
mảng phần tử logic mà người dùng có thể lập trình được, có thể thực hiện các tính năng
logic thông qua máy tính của mình với giá rẻ, và có thể xóa đi viết lại nhiều lần. Xilinx là
công ty đầu tiên bán ra FPGA và luôn chiếm thị phần lớn nhất. Ngoài ra còn có Alterna,
Lattice, Actel, QuickLogic. Nhiều nhà sản xuất hiện đang cung cấp rất nhiều cấu trúc và
phương pháp xử lý khác nhau. Vì vậy, việc chọn một cấu trúc và một phương pháp xử lý
để có thể đáp ứng được các yêu cầu về chức năng và độ ổn định, đối với một hệ thống
trong thực tế là vấn đề mang tính quyết định. Thiết bị logic lập trình được được phát minh
lần đầu vào cuối thập kỷ 1970 và ngay lập tức đã trở lên phổ biến trong ngành công
nghiệp bán dẫn. Ngoài khả năng lập trình đa dạng, công nghệ này còn có thời gian sản
xuất nhỏ nên có khả năng cạnh tranh thương mại rất lớn. Hơn nữa, việc thiết kế với nó
khá dễ dàng và nó có khả năng lập trình lại nhiều lần.
FPGA được thiết kế đầu tiêm bởi Ross Freeman, người sáng lập công ty Xilinx vào
năm 1984, kiến trúc mới của FPGA cho phép tính hợp số lượng tương đối lớn các phần tử
bán dẫn vào 1 vi mạch so với kiến trúc trước đó là CPLD (Complex Programmable Logic
Device).Điểm tương đồng của CPLD và FPGA là ở chỗ chúng đều bao gồm một số lượng
tương đối lớn các phần tử logic khả trình. Tuy nhiên mật độ tích hợp thì khác nhau, mật
độ cổng logic của CPLD nằm trong khoảng từ vài nghìn đến hàng chục nghìn, trong khi
với FPGA thì mật độ tích hợp cỡ hàng chục nghìn cho đến vài triệu.
FPGA và CPLD có rất nhiều điểm khác biệt tuy nhiên kiến trúc là điểm khác biệt
chính giữa CPLD và FPGA. CPLD có kiến trúc giới hạn ở một mức độ nào đó, nó bao
gồm một hoặc nhiều dải logic “sum-of-products” khả trình và được cung cấp một số
tương đối nhỏ các thanh ghi được đồng bộ. Điều này làm cho CPLD trở nên không được
mềm dẻo lắm, nhưng bù lại trễ timing lại dễ dự đoán hơn và tốc độ kết nối logic cũng cao

hơn FPGA. Với FPGA, thì kiến trúc theo một cách khác trội hơn hẳn CPLD bởi vì FPGA
sử dụng các liên kết nối. Điều này không những tạo cho nó mềm dẻo hơn rất nhiều mà
còn làm tăng độ phức tạp trong thết kế.
Điểm khác biệt nữa giữa FPGA và CPLD là trong hầu hết chip FPGA đều có các
hàm cấp cao (như bộ cộng và bộ nhân) và các bộ nhớ đã được nhúng vào. Ngoài ra, trong
các FPGA đời mới còn hỗ trợ đầy đủ hoặc một phần việc cấu hình lại trong hệ thống, cho
phép thay đổi thiết kế tức là có thể cập nhật hệ thống hoặc cấu hình động (dynamic
reconfiguration) khi chúng đang hoạt động như là một chức rất bình thường. Một vài
FPGA còn có khả năng cấu hình lại cục bộ (partial re-configuration) tức là một phần của
thiết bị được cấu hình trong khi các phần còn lại vẫn đang hoạt động.
1.2. Kiến trúc chung của một FPGA
Cấu trúc tổng thể của FPGA bao gồm:
-Các khối Logic
-Hệ thống liên kết mạch
-Các phần tử tích hợp sẵn
Hình 1.1 Cấu trúc tổng thể của một FPGA
1.2.1. Khối logic FPGA

Hình 1.2 Khối Logic
FPGA chứa trong nó rất nhiều khối logic có thể tái cấu hình CLB (Configurable
Logic Blocks) được liên kết với nhau thành bằng các liên kết khả trình (Programmable
Interconnect). Các khối vào ra được phân bố xung quanh chip tạo thành các liên kết với
bên ngoài. Bên trong khối logic CLB có bảng LUT (Look-Up Table) và các phần tử nhớ
(FlipFlop hoặc bộ chốt). LUT (Look up table) là khối logic có thể thực hiện bất kì hàm
logic nào từ 4 đầu vào, kêt quả của hàm này tùy vào mục đích mà gửi ra ngoài khối logic
trực tiếp hay thông qua phần tử nhớ flip-flop.
Trong tài liệu hướng dẫn của các dòng FPGA của Xilinx còn sử dụng khái niệm
SLICE, 1 Slice tạo thành từ gồm 4 khối logic, số lượng các Slices thay đổi từ vài nghìn
đến vài chục nghìn tùy theo loại FPGA.
Nếu nhìn cấu trúc tổng thể của mảng LUT thì ngoài 4 đầu vào kể trên còn hỗ trợ
thêm 2 đầu vào bổ xung từ các khối logic phân bố trước và sau nó nâng tổng số đầu vào
của LUT lên 6 chân. Cấu trúc này là nhằm tăng tốc các bộ số học logic.
1.2.2. Hệ thống mạch liên kết
Mạng liên kết trong FPGA được cấu thành từ các đường kết nối theo hai phương
ngang và đứng, tùy theo từng loại FPGA mà các đường kết nối được chia thành các nhóm
khác nhau, ví dụ trong XC4000 của Xilinx có 3 loại kết nối: ngắn, dài và rất dài. Các
đường kết nối được nối với nhau thông qua các khối chuyển mạch lập trình được
(programable switch), trong một khối chuyển mạch chứa một số lượng nút chuyển lập
trình được đảm bảo cho các dạng liên kết phức tạp khác nhau.
1.2.3. Các phần tử tích hợp sẵn

