ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA ĐIỆN TỬ VIỄN THÔNG NGÔ VĂN HƠN THỰC HIỆN HỆ THỐNG MIMO STBC TRÊN BOARD FPGA ARRIA V KHÓA LUẬN TỐT NGHIỆP CỬ NHÂN NGÀNH ĐIỆN TỬ VIỄN THÔNG CHUYÊN NGÀNH: VIỄN THÔNG - MẠNG THÀNH PHỐ HỒ CHÍ MINH – NĂM 2014
80
Embed
THỰC HIỆN HỆ THỐNG MIMO STBC TRÊN BOARD FPGA …i.vietnamdoc.net/data/file/2015/Thang04/25/thuc-hien-he-thong-mimo... · Dạng sóng của các tín hiệu điều khiển
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA ĐIỆN TỬ VIỄN THÔNG
NGÔ VĂN HƠN
THỰC HIỆN HỆ THỐNG MIMO STBC TRÊN
BOARD FPGA ARRIA V
KHÓA LUẬN TỐT NGHIỆP CỬ NHÂN NGÀNH ĐIỆN TỬ VIỄN THÔNG
CHUYÊN NGÀNH: VIỄN THÔNG - MẠNG
THÀNH PHỐ HỒ CHÍ MINH – NĂM 2014
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA ĐIỆN TỬ VIỄN THÔNG
NGÔ VĂN HƠN
THỰC HIỆN HỆ THỐNG MIMO STBC TRÊN
BOARD FPGA ARRIA V
KHÓA LUẬN TỐT NGHIỆP CỬ NHÂN NGÀNH ĐIỆN TỬ VIỄN THÔNG
CHUYÊN NGÀNH: VIỄN THÔNG - MẠNG
NGƯỜI HƯỚNG DẪN KHOA HỌC:
Th.S ĐẶNG LÊ KHOA
THÀNH PHỐ HỒ CHÍ MINH – NĂM 2014
LỜI CẢM ƠN
Được nhận nghiên cứu đề tài này và được trình bày trước hội đồng là niềm vinh
hạnh rất lớn đối với em. Tuy gặp rất nhiều khó khăn trong quá trình nghiên cứu, song
kinh nghiệm và bài học mà em có được sau đó là vô cùng quý giá.
Lời đầu tiên, em xin gửi lời cảm ơn sâu sắc đến thầy Đặng Lê Khoa, người đã
trực tiếp hướng dẫn và chỉ dạy tận tình để em có thể hoàn thành được khóa luận này.
Cũng xin gửi lời cảm ơn đến những người bạn đã đồng hành cùng tôi trong suốt
quá trình nghiên cứu, giúp tôi có niềm vui, giảm căng thẳng trong lúc làm việc.
Đồng thời, xin gửi lời cảm ơn đến tất cả các thầy cô giáo đã giảng dạy kiến thức,
tạo nền tảng để em thực hiện đề tài.
Gửi lời cảm ơn tới bố, mẹ và những người thân yêu luôn động viên con trong
Thư viện MegaCore Functions: Các MegeCore Functions là những khối có
một chức năng hoàn chỉnh riêng biệt, nhưng DSP Builder không cung cấp sẵn các
MegaCore Functions này. Các MegaCore Functions này có thể cài đặt thêm và
thường được điều khiển rất phức tạp.
2.3 Phần cứng thực hiện.
2.3.1 Giới thiệu board Arria V GT
Hình 2.13. Board Anten.
Hình 2.13 là kit Development Arria V GT của hãng Altera. Kit này cung cấp
một môi trường thiết kế hoàn chỉnh, bao gồm tất cả các phần cứng và phần mềm mà
người sử dụng cần để phát triển tất cả những thiết kế FPGA và tiến hành kiểm tra
chúng trong môi trường hệ thống. Kit có tiêu chuẩn RoHS và bao gồm các đặc điểm
như sau:
Hai FPGA cho thiết kế ở mức hệ thống là Arria V GT: 504000 phần tử
logic (LEs), đóng gói F1517, cho tốc độ truyền tải lên tới 10.3125 Gb/s.
Ba khe nhập/xuất gồm: 2 khe HSMC tốc độ cao và 1 khe FMC
Trang 37
SDRAM DDR3 với bộ nhớ 2Gb, QDR II+ với bộ nhớ 4.5Mb và bộ nhớ
flash 1Gb.
Hai kết nối SFP+
Kết nối SMAs và Samtec Bull’s Eye tốc độ cao.
Có thể đo công suất riêng biệt trên mỗi chip.
2.3.2 Các thành phần trên board Arria V GT.
2.3.2.1 Thiết bị Anten 5AGTFD7K3F40I3N
Trên board có 2 thiết bị quan trọng là FPGA1 và FPGA 2 họ Arria V GT với
1517 chân FineLine BGA
504000 phần tử logic (LEs)
190240 mô đun đáp ứng logic (ALMs)
Bộ nhớ M10K là 24140 Kb
Bộ nhớ MLAB là 2906 Kb
36 bộ thu phát
16 vòng lặp khóa pha (PLLs)
2312 kênh 18x18.
Điện thế nội 1.15 V
FPGA 1 kết nối với các thành phần sau:
Các port giao tiếp:
Một kết nối PCI Express 8 cạnh.
Một kết nối USB 2.0
Cầu nối C2C với 29 ngõ vào LVDS, 29 ngõ ra LVDS và 8 kênh truyền
nhận.
Hai kênh SFP+
Trang 38
Một kênh truyền nhận SMA 10 Gb/s
Ba kênh truyền nhận Bull’s Eye 10 Gb/s
Bộ nhớ:
DDR3 SDRAM 1152 Mb với bus dữ liệu 72 bit.
QDRII + SRAM 72Mb.
Flash đồng bộ với bus dữ liệu 16 bít.
Nhập/xuất:
LED và LCD:
Tám LED 2 màu xanh và đỏ.
LCD hai dòng chữ.
Ba LED báo hiệu chọn cấu hình
Một LED báo hiệu cấu hình xong.
Hai LED báo hiệu HSMC truyền/nhận.
Ba LED báo hiệu cho PCI Express
Năm LED báo hiệu Ethernet.
Nút nhấn:
Một nút nhấn reset CPU.
Một nút nhấn điều khiển cấu hình cho MAX II
Một nút nhấn để tải hình ảnh vào FPGA từ bộ nhớ flash.
Một nút nhấn chọn hình ảnh để tải từ bộ nhớ flash.
Ba nút nhấn sử dụng chung.
Tám switch điều khiển.
Sơ đồ kết nối của Arria V GT với các thành phần trên board như sau:
Trang 39
Hình 2.14. Sơ đồ kết nối Anten.
Các đặc tính của Anten được mô tả trong bảng sau:
Bảng 2-1. Các đặc tính của Arria V GT.
Modul đáp ứng logic (ALMs) 190,240
Số phần tử logic (LEs) 504,000
Số RAM M10K 24,140
Tổng bộ nhớ RAM 27,046 Kb
Đa kênh 18x18 bit 2,312
PLLs 16
Số bộ truyền/nhận 36
Loại đóng gói FBGA 1517 chân
2.3.2.2 MAX II CPLD EPM2210GF324
Board này sử dụng bộ điều khiển hệ thống MAX II CPLD EPM2210 với mục
đích:
Cấu hình FPFA từ bộ nhớ Flash.
Giám sát công suất tiêu thụ.
Ảo hóa giao diện JTAG cho giao diện đồ họa máy tính cơ bản (PC-
based GUI).
Trang 40
Điều khiển thanh ghi cho xung clock.
Điều khiển thanh ghi cho quá trình điều khiển cập nhật hệ thống.
Hình 2.15. Sơ đồ khối MAX II CPLD EPM2210
2.3.3 Ứng dụng Board Test System.
2.3.3.1 Giới thiệu về Board Test System.
Bộ kit bao gồm một ví dụ thiết kế và một ứng dụng được gọi là Board Test
System (BTS) để kiểm tra các chức năng của board Arria V. Ứng dụng này có giao
diện làm rất dễ sử dụng để thay đổi các tính năng và quan sát kết quả. Ngoài ra, có
thể sử dụng BTS để kiểm tra các thành phần của board, thay đổi các thông số, quan
sát hiệu suất và đo công suất sử dụng của board.
Giao diện đồ họa của BTS trên máy tính giao tiếp với board thông qua bus
JTAG để kiểm tra những thiết kế đang chạy trên board. Hình 2.16 là giao diện của
BTS.
Trang 41
Hình 2.16. Giao diện Board Test System
Một số thiết kế được cung cấp để kiểm tra những đặc tính chính của board.
Mỗi thiết kế sẽ có dữ liệu cho một hoặc nhiều tab trong phần ứng dụng. Nếu chọn
một menu cấu hình thì một thiết kế thích hợp sẽ được tải xuống FPGA. Sau khi cấu
hình FPGA thành công, một số tab sẽ xuất hiện cho phép ta thực hành một số đặc tính
liên quan đến board.
2.3.3.2 Sử dụng Board Test System.
Menu cấu hình:
Sử dụng menu cấu hình để chọn những thiết kế mà ta muốn sử dụng. Mỗi
thiết kế sẽ có chức năng khác nhau khi đó sẽ có một hoặc nhiều tab tương ứng sẽ xuất
hiện.
Trang 42
Hình 2.17. Menu cấu hình
Tab thông tin hệ thống:
Như hình 2.16, tab thông tin hệ thống sẽ hiển thị các thông tin sau:
Thông tin trạng thái cấu hình của board.
Nội dung của thành ghi MAX II
Thông tin của các JTAG
Địa chỉ MAC của board
Một số lưu trữ chi tiết khác
Tab GPIO trên FPGA 1:
Tab GPIO cho phép tương tác với tất cả các thành phần nhập/xuất trên
board như viết lên LCD, đọc Switch DIP, đóng tắt LED và nhận diện khi
nhấn các nút nhấn.
Tab Flash:
Tab flash cho phép đọc và viết tất cả bộ nhớ flash lên trên board. Hình
2.18 thể hiện rõ hơn về chức năng này.
Tab HSMA:
Trang 43
Tab HSMA cho phép kiểm tra hồi tiếp trên bộ thu phát (XCVR) và cổng
CMOS. Lưu ý là phải hồi tiếp HSMA trên cổng kết nối HSMC A thì chức
năng này mới làm việc được. Hình 2.19 là giao diện làm việc của HSMA.
Tab SFP/SMA/C2C:
Tab SFP/SMA/C2C cho phép chạy các thiết kế kiểm tra, sử dụng giao diện
kênh thu phát riêng biệt trên FPGA 1. Hình 2.20 là giao diện của tab này.
Tab HSMB/FMC:
Tab HSMB/SMC cho phép thực hiện hồi tiếp trên XCVR và cổng CMOS
FPGA 2. Hình 2.21 la giao diện của tab. Chú ý là cần hồi tiếp HSMB trên
cổng kết nối HSMC B thì mới kiểm tra được chức năng này.
Tab SDI/Bull’s Eye:
Tab này cho phép thực hiện hồi tiếp trên cổng Bull’s Eye và SDI của
FPGA 2. Tab này được thể hiện trong hình 2.22.
Tab SMA:
Tab SMA cho phép thực hiện hồi tiếp qua cổng SMA trên FPGA 2. Tab
này có giao diện như hình 2.23.
Trang 44
Hình 2.18. Tab Flash
Hình 2.19. Tab HSMA
Trang 45
Hình 2.20. Tab SFP/SMA/C2C
Hình 2.21. Tab HSMB/FMC
Trang 46
Hình 2.22. Tab SDI/Bull's Eye
Hình 2.23. Tab SMA
Trang 47
3 CHƯƠNG 3: THIẾT KẾ.
Trong chương 4 này sẽ trình bày việc thiết kế từng khối và ghép các khối thành
hệ thống truyền thông MIMO hoàn chỉnh. Để tiện theo dõi, việc thiết kế sẽ được phân
tích theo từng khối chức năng ở cả bên phát và bên thu. Ngoài ra, đề tài còn trình bày
quy trình chung để thiết kế hệ thống trên phần cứng FPGA.
3.1 Mô hình thiết kế.
3.1.1 Sơ đồ khối.
Mô hình hệ thống MIMO được thiết kế như hình 3.1.
Hình 3.1. Mô hình thiết kế hệ thống MIMO-STBC
3.1.2 Bộ tạo dữ liệu và các tín hiệu điều khiển.
Việc tạo dữ liệu để kiểm tra khả năng hoạt động của mạch được thực hiện bằng
cách đặt dữ liệu trong một bảng tra, như vậy, dữ liệu ta có thể kiểm soát được. Bảng
dữ liệu tạo sẵn 320 giá trị nhằm tiện cho việc mở rộng hệ thống MIMO-OFDM sau
này. Hệ thống OFDM có 320 kênh con, trong đó có 64 Cyclic Prefix, 55 giá trị ‘0’ ở
hai đầu của symbol, một giá trị ‘0’ ở chính giữa, và 8 kênh con dùng cho pilot. Vì
Trang 48
vậy, chỉ có 192 kênh còn lại được dùng cho dữ liệu. Đề tài sử dụng bộ mã hoá
convolution code ½. Trong trường hợp phép đều chế QPSK, ta có mỗi symbol sẽ
mang 2 bit thông tin. Vì vậy, một symbol của hệ thống sẽ mang được 192 bit thông
tin. Do đó, ta sẽ đặt 192 giá trị nhị phân vào bảng tra và 192 giá trị ‘0’ tức là không
có thông tin để đảm bảo thời gian chèn bit và symbol OFDM. Bộ đếm có nhiệm vụ
truy xuất giá trị trong bảng tra và thực hiện chức năng làm chỉ số symbol (index_out)
cho cả hệ thống. Tín hiệu data_out là dữ liệu được tạo. Tín hiệu cho phép (ena) dùng
để báo hiệu cho các mạch ngẫu nhiên hoá, mã hoá kênh hoạt động. Hình 3.2 thể hiện
mạch tạo dữ liệu và các tín hiệu điều khiển.
Hình 3.2. Mạch tạo dữ liệu và tín hiệu điều khiển.
3.1.3 Bộ mã hóa.
Bộ mã hoá kênh được sử dụng là bộ mã convolutional code, tốc độ mặc định
là 1/2, chiều dài bộ mã hoá là 7 và dùng đa thức sinh là: G1 = 171OCT và G2 = 133OCT.
Bộ mã hoá được thiết kế bằng cách kết hợp 6 bộ trễ (delay) và 2 cổng XOR 5 ngõ
vào. Hình 3.3 trình bày bộ mã hóa Convolutional Code. Cổng in_cc là ngõ vào của
bộ mã hóa, cổng out_cc là ngõ ra của bộ mã hóa. Tín hiệu sau khi qua 2 bộ XOR
tương ứng với G1 và G2 của mã hóa. Ena là tín hiệu cho phép mã hóa.
Trang 49
Hình 3.3. Bộ mã hóa Convolutional code
3.1.4 Bộ giải mã bằng thuật toán Viterbi.
Đề tài sử dụng bộ giải mã bằng thuật toán Viterbi. Kiến trúc căn bản của thuật
toán Viterbi được trình bày trong hình 3.4. Thuật toán gồm bốn khối chính: khối tính
khoảng cách nhánh (branch metric), khối cộng-so sánh-chọn (add compare and
select), khối chọn đường tối ưu (survivor path metric), và khối quy hồi và giả mã
(traceback and output decode block).
Khối tính khoảng cách nhánh (branch metric) dùng đểtính khoảng cách
Hamming của các bit (là 2 bit nếu sử dụng tốc độ mã là R=1/2) với các nhánh. Khối
cộng-so sánh-chọn có nhiệm vụ tính tổng khoảng cách Hamming của nhánh với trạng
thái hiện tại và giữ lại nhánh có khoảng cách ngắn nhất. Khối chọn đường tối ưu để
tìm ra chuỗi trạng thái phù hợp nhất. Khối quy hồi và giả mã có nhiệm vụ chọn, dò
lại chuỗi trạng thái tối ưu và quyết định chuỗi bit ở ngõ ra. Đây là chuỗi bit giải mã
của thuật toán.
Hình 3.4. Mô hình thuật toán Viterbi
Trang 50
Hình 3.5 là ví dụ về giải mã dùng thuật toán Viterbi cho chuỗi dữ liệu thu là
(11, 00, 01, 11, 10, 10, 11). Chuỗi trạng thái phù hợp nhất được xác định bằng cách
tính khoảng cách Hamming với tất cả các đường. Khi hai đường cùng gặp nhau tại
một điểm, ta chỉ giữ lại đường có khoảng cách Hamming ngắn hơn. Đường cuối cùng
được chọn để quyết định trạng thái ngõ ra là đường có khoảng cách Hamming ngắn
nhất. Vì vậy, chuỗi dữ liệu tối ưu nhất là (11, 01, 01, 11, 11, 10,11). Khi xác định
được chuỗi dữ liệu tối ưu, ta có thể xác định chuỗi dữ liệu ở ngõ ra bộ giải mã. Trong
ví dụ trên, chuỗi dữ liệu sau khi giải mã là (1100100).
Hình 3.5. Ví dụ giải mã dùng thuật toán Viterbi
Đề tài sử dụng MegaCore để thực hiện bộ giải mã dùng thuật toán Viterbi.
Khối chức năng được thể hiện trong hình 3.6.
Trang 51
Hình 3.6. Bộ giải mã dùng thuật toán Viterbi.
Các đường tín hiệu cơ bản để điều khiển bộ giải mã được trình bày ở hình 3.7.
Thuật toán Viterbi dựa vào chuỗi trạng thái phù hợp nhất. Vì vậy, việc xác định độ dài của chuỗi sẽ ảnh hưởng đến hiệu quả của bộ giải mã. Nếu chiều dài được chọn quá dài sẽ làm cho tăng các phép tính toán, sử dụng nhiều bộ nhớ, và tăng thời gian
trễ. Ngược lại, nếu chọn chiều dài quá ngắn sẽ hạn chế khả năng sửa lỗi của thuật toán. Chiều dài qui hồi thường được chọn gấp 6 lần chiều dài bộ mã trong trường hợp
không bỏ bớt. Trong trường hợp có bỏ bớt, chiều dài được chọn tối đa dài gấp 15 lần chiều dài bộ mã. Trong thiết kế này, chiều dài bộ mã là 7 và không sử dụng kỹ thuật bỏ bớt nên chiều dài qui hồi được chọn là 42. Chi tiết các đường tín hiệu được diễn tả ở
Bảng 3-1. Các dữ liệu đến bộ giả mã là không liên tục nên dữ liệu ngõ ra của
bộ giả mã là không liên tục. Các dữ liệu này sẽ được ghi vào bộ nhớ FIFO. Sau đó,
tín hiệu rd_data_out sẽ đọc liên tục 192 bit dữ liệu trong bộ nhớ.
Hình 3.7. Dạng sóng của các tín hiệu điều khiển của khối giải mã Viterbi.
Trang 52
Bảng 3-1. Ý nghĩa các đường tín hiệu của bộ giải mã Viterbi
Tên đường tín hiệu Hướng Mô tả
sink_val Input Tín hiệu cho phép truyền dữ liệu
rr Input Ngõ vào của dữ liệu cần giải mã.
eras_sym Input Ngõ này sử dụng cho kỹ thuật bỏ bớt
source_rdy Input Tín hiệu cho phép truyền dữ liệu ngõ ra
ber_clear Input Xóa bộ đếm BER
source_val Output Báo tín hiệu ngõ ra
decbit Output Ngõ ra của tín hiệu sau giải mã
sink_rdy Output Cho phép truyền dữ liệu ngõ vào
normalizations Output Chứa các giá trị chuẩn hóa, đây là thông tin
được dùng để tránh hiện tượng tràn bộ đếm.
numerr Output Số bít lỗi
reset Input Khởi động lại bộ giải mã.
state_node_sync Input
Sử dụng trong các trường hợp đặc biệt,
dùng để thiết lập điểm bắt đầu của dữ liệu
vào.
3.1.5 Ánh xạ chòm sao.
3.1.5.1 Bộ ánh xạ chòm sao.
Ánh xạ chòm sao là phương pháp chuyển chuỗi dữ liệu có m bit thành một
điểm a+jb dạng số phức. Trong đó, số bit m phụ thuộc vào phép ánh xạ. Đề tài sử
dụng kiểu điều chế QPSK với m = 2. Có các phương pháp để thiết kế bộ mapper như
sử dụng cấu trúc case hoặc dùng một bảng tra (LUT) hoặc dùng bộ nhớ ROM. Ở đây,
khối mapper được thiết kế bằng bảng tra.
Hình 3.8 trình bày nguyên tắc của phép QPSK. Có hai bảng tra riêng được
sử dụng để lưu giá trị trục đồng pha (I) và trục vuông pha (Q). Dữ liệu cần thực hiện
ánh xạ sẽ đặt vào đường địa chỉ của bảng tra. Nội dung trong bảng tra lưu trữ giá trị
Trang 53
tương ứng với chòm sao. Dữ liệu được ánh xạ sẽ có giá trị từ -1 đến 1. Ngõ ra của bộ
DAC là 14 bit. Vì vậy, đề tài chuẩn hoá tín hiệu về dạng số có dấu chấm cố định.
Hình 3.8. Giản đồ chòm sao phép điều chế QPSK và 16 QAM
Bảng 3-2 là các dữ liệu đặt trong bảng tra cho bộ mã hoá QPSK. Sơ đồ mạch
thực hiện phép điều chế QPSK được trình bày ở hình 3.9.
Bảng 3-2. Dữ liệu bảng tra của QPSK
Dữ liệu vào (địa chỉ) Ngõ ra
Hệ thập
phân
Hệ nhị
phân
Trục I Trục Q
Giá trị
(hệ 10)
Số dấu chấm
cố định (hệ 10)
Giá trị
(hệ 10)
Số dấu chấm
cố định (hệ 10)
0 00 0.707 5792 0.707 5792
1 01 0.707 5792 -0.707 10592
2 10 -0.707 10592 0.707 5792
3 11 -0.707 10592 -0.707 10592
Trang 54
Hình 3.9. Mạch thực hiện phép điều chế QPSK.
3.1.5.2 Bộ giải ánh xạ chòm sao.
Ở đầu thu, các điểm chòm sao ở bộ truyền sẽ bị thay đổi do tác động của kênh
truyền. Vì vậy, bộ giải ánh xạ chòm sao phải chọn ngưỡng để xác định điểm chòm
sao ở phía thu. Khối giải ánh xạ chòm sao (demapper) được thiết kế bằng ngôn ngữ
Verilog. Nguyên tắc của của bộ demapper là so sánh giá trị nhận được trên đường I
và Q với các điểm lân cận trong chòm sao. Điểm được chọn ở ngõ ra là điểm có gần
nhất với tín hiệu nhận được. Khi sử dụng phép QPSK, bộ demapper được thực hiện
đơn giản bằng cách cho giá trị ngõ ra là bit có ý nghĩa lớn nhất (MSB) của chuỗi bit
nhận được. Đây là bit dấu của chuỗi dữ liệu. Dữ liệu ở ngõ ra sẽ được đặt vào bộ nhớ
FIFO để chuẩn bị đi vào bộ giải mã kênh. Ở đây dữ liệu truyền có 192 giá trị do đó
bộ nhớ FIFO cần 192 từ nhớ. Mỗi từ có 2 bit nhớ tương ứng với phép điều chế QPSK.
Hình 3.10 là mạch thực hiện demapper.
Hình 3.10. Bộ mapper và bộ nhớ FIFO
Trang 55
3.1.6 Bộ điều chế MIMO-STBC.
Dữ liệu ngõ vào bộ điều chế MIMO-STBC là tín hiệu đồng thời I và Q tương
ứng với giá trị thực và ảo. Hai tín hiệu này được gộp với nhau thành tín hiệu phức và
lần lượt cho qua nhánh anten 1 hoặc anten 2 nhờ bộ Demux với tín hiệu điều khiển là
bộ counter. Ở khối tạo số phức, do tín hiệu vào lần lượt là giá trị I, Q với 14 bít, do
đó cần thiết lập cho khối này tối thiểu là 14 bit. Tín hiệu ở nhánh anten 1 được trì
hoãn một chu kì xung để thời điểm tiếp theo, nhánh anten 1 sẽ phát tín hiệu S0, nhánh
anten 2 sẽ phát tín hiệu S1. Tại thời điểm thứ nhất, ngõ ra của anten 1 là S0 và anten
2 là S1. Tại thời điểm tiếp theo, anten 1 là −��∗và anten 2 sẽ là ��
∗. Các luồng tín hiệu
lúc này đều ở dạng phức. Hình 3.11 là mạch thực hiện khối điều chế STBC.
Hình 3.11. Mạch thực hiện điều chế MIMO-STBC.
3.1.7 Bộ giải điều chế
Mạch thực hiện bộ giải điều chế STBC được thực hiện như hình 3.12. Các tín
hiệu vào là các giá trị phức, được tách thành các tín hiệu thực và ảo riêng biệt sau đó
truyền trên 4 nhánh khác nhau tại 2 thời điểm khác nhau bằng khối Demux. Hai tín
hiệu tại thời điểm đầu tiên được trì hoãn một chu kỳ xung, tới thời điểm tiếp theo, tín
hiệu tại 4 nhánh lần lượt là r1, r2, r3, r4. 4 tín hiệu này được xử lý nhân với các giá
trị kênh truyền H đã ước lượng được. Trong đề tài này, các giá trị kênh truyền H được
gán cố định, nên không có bộ ước lượng. Sử dụng 2 bộ cộng để cộng các tín hiệu theo
bộ quyết định maximunlikelihood. Lúc này chỉ còn lại 2 đường tín hiệu, đem chia
Trang 56
cho hệ số * * * *
1 1 2 2 3 3 4 4. . . .H H H H H H H H sẽ được tín hiệu gốc. Mạch thiết kế
bộ chia được thực hiện như hình 3.13.
Hình 3.12. Mạch thực hiện giải điều chế MIMO-STBC
Trang 57
Hình 3.13. Mạch thiết kế bộ chia.
3.1.8 Kênh truyền
3.1.9 Bộ đếm lỗi bit
Bộ đếm tốc độ bit có nhiệm vụ kiểm tra hai luồng dữ liệu ở phía thu và phía
phát. Nếu phát hiện thấy một sai biệt, bộ đếm lỗi sẽ tăng biến đếm lên 1 bằng cách
cho phép bộ counter. Phần dò lỗi được thực hiện bằng cổng XOR. Ngõ ra của cổng
XOR sẽ cho phép bộ đến tăng trị số đếm. Mạch thực hiện đếm BER được trình bày ở
Hình 3.14.
Hình 3.14. Mạch đếm lỗi bit
Trang 58
3.2 Quy trình thiết kế trên FPGA
3.2.1 Mô tả ban đầu về thiết kế
Khi xây dựng một chip khả trình FPGA với ý nghĩa dành cho một ứng dụng
riêng biệt, vì xuất phát từ mỗi ứng dụng trong thực tiễn cuộc sống, phải đặt ra yêu
cầu phải thiết kế IC thực hiện tối ưu nhất những úng dụng đó. Bước đầu tiên của quy
trình thiết kế này có nhiệm vụ tiếp nhận các yêu cầu của thiết kế và xây dựng nên
kiến trúc tổng quát của thiết kế.
Mô tả thiết kế: Trong bước này, từ những yêu cầu của thiết kế và dựa trên
khả năng của công nghệ hiện có, người thiết kế kiến trúc sẽ xây dựng nên toàn bộ
kiến trúc tổng quan cho thiết kế. Nghĩa là trong bước này, người thiết kế kiến trúc
phải mô tả được những vấn đề sau:
Số lượng các khối cần thiết kế.
Chức năng của mỗi khối.
Hoạt động cụ thể của thiết kế và mỗi khối.
Phân tích các kỹ thuật được sử dụng trong thiết kế và các công cụ, phần
mềm hỗ trợ thiết kế.
Một thiết kế có thể được mô tả sử dụng ngôn ngữ mô tả phần cứng như VHDL
hay Verilog HDL hoặc có thể mô tả qua bản vẽ mạch. Một thiết kế có thể vừa bao
gồm bản vẽ mạch mô tả sơ đồ khối chung, vừa có thể dùng ngôn ngữ HDL để mô tả
chi tiết cho các khối trong sơ đồ.
Mô phỏng chức năng: Sau khi mô tả thiết kế, người thiết kế cần mô phỏng
tổng thể thiết kế về mặt chức năng để kiểm tra thiết kế có hoạt động đúng với các
chức năng yêu cầu.
Tổ hợp logic: là quá trình tổng hợp các mô tả thiết kế thành sơ đồ bố trí mạch
(netlist) được thể hiện trong hình 3.15. Quá trình này chia thành 2 bước: chuyển đổi
các mã RTL, mã HDL thành mô tả dưới dạng các biểu thức đại số Boolean và dựa
Trang 59
trên các biểu thức này kết hợp với thư viện tế bào chuẩn sẵn có để tổng hợp nên một
thiết kế tối ưu.
Hình 3.15. Tổ hợp logic
Hiệu chỉnh các kết nối (Datapath Schematic): Nhập netlist và các ràng buộc
về thời gian vào một công cụ phân tích thời gian. Công cụ phân tích này sẽ tách rời
tất cả các kết nối của thiết kế, tính thời gian trễ của các kết nối dựa trên các ràng buộc.
Dựa trên kết quả phân tích của công cụ phân tích, xác định các kết nối không thỏa
mãn về thời gian. Tùy theo nguyên nhân dẫn đến không thỏa mãn mà ta có thể viết
lại mã và tiến hành lại tổng hợp logic hoặc hiệu chỉnh lại các ràng buộc.
3.2.2 Thực thi
Ta có sơ đồ bố trí netlist mô tả tổng thể thiết kế tại mức cổng (chỉ gồm các
cổng logic cổng cơ bản và các mạch logic khác như MUX). Quá trình này sẽ đặt sơ
đồ netlist này lên chip, gọi là quá trình thực thi.
Quá trình gồm các bước:
Ánh xạ: (mapping hay còn gọi là fitting): Chuẩn bị dữ liệu đầu vào, xác định
kích thước các khối. Các khối này sẽ phải phù hợp với cấu trúc của một tế bào cơ bản
của FPGA (gồm nhiều cổng logic) và đặt chúng vào các vị trí tối ưu cho việc chạy
dây. Hình 3.16 cho ta hình dung rõ hơn về quá trình ánh xạ.
Trang 60
Hình 3.16. Sơ đồ gán chân
Đặt khối và định tuyến:
Đặt khối: đặt các khối ánh xạ vào các tế bào (cell) ở vị trí tối ưu cho việc chạy
dây. Quá trình này thể hiện rõ trong hình 3.17.
Trang 61
Hình 3.17. Sơ đồ không gian gán bên trong FPGA
Định tuyến: bước này thực hiện việc nối dây các tế bào, được thể hiện ở hình
3.18.
Hình 3.18. Sơ đồ định tuyến
Trang 62
Để thực hiện việc này, chúng ta cần có các thông tin sau:
Các thông tin vật lý về thư viện tế bào, ví dụ kích thước tế bào, các điểm
để kết nối, định thời, các trở ngại trong khi đi dây.
Một Netlist được tổng hợp sẽ chỉ ra các chi tiết các instance và mối quan hệ
các hết nối bao gồm cả các đường dẫn bị hạn chế trong thiết kế.
Tất cả các yêu cầu của tiến trình cho các lớp kết nối, bao gồm các luật thiết
kế cho các lớp chạy dây, trở kháng và điện dung, tiêu thụ năng lượng, các luật về sự
dẫn điện trong mỗi lớp.
3.2.3 Quá trình nạp và lập trình.
Sau quá trình thực hiện, thiết kế cần được nạp vào FPGA dưới dạng dòng bit
(bit stream).
Quá trình nạp thiết kế vào FPGA thường nạp vào bộ nhớ tạm ví dụ như
SRAM. Thông tin cấu hình được nạp vào bộ nhớ. Dòng bit được truyền lúc này sẽ
mang thông tin định nghĩa các khối logic cũng như kết nối của thiết kế. Tuy nhiên
lưu ý rằng, SRAM sẽ mất dữ liệu khi mất nguồn nên thiết kế sẽ không được lưu lại
đến phiên làm việc kế tiếp.
Lập trình là thuật ngữ để mô tả quá trình nạp chương trình cho các bộ nhớ
không bay hơi, ví dụ như PROM. Như vậy thông tin cấu hình vẫn được lưu trữ lại khi
mất nguồn.
Với các kit do Altera phát triển, hãng còn hỗ trợ thêm công cụ DSP Builder.
Đây là một công cụ đắc lực cho các nhà nghiên cứu, nó hỗ trợ việc thiết kế phần cứng
nhờ các khối sẵn có, hay các chức năng hoàn chỉnh trong IP core, ngoài ra, nó còn hỗ
trợ cả việc biên dịch và nạp trực tiếp lên board nhờ khối SignalCompiler và các
Interface của các dòng board FPGA của Altera. Trong đề tài này, do xử dụng board
Anten của Altera, là dòng ra đời cách đây không lâu, hiện vẫn chưa có hỗ trợ các
Interface trong DSP Builder, do đó, việc nạp các thiết kế lên FPGA sẽ được tiến hành
như sau:
Thiết kế hệ thống trên DSP Builder.
Trang 63
Biên dịch và xuất ra file VHDL
Sử dụng Quartus II 64 bít phiên bản từ 11.0 trở lên, tiến hành:
Bước 1: Tạo Project mới
Bước 2: Thêm thư viện là các file VHDL đã tạo ra ở trên.
Bước 3: Chọn dòng thiết bị là Arria V GT 5AGTFD7K3F40I3N.
Bước 4: Biên dịch tạo ra file *.sof
Bước 5: Nạp file *.sof vào FPGA thông qua Programmer của
Quartus II.
Trang 64
4 CHƯƠNG 4: KẾT QUẢ.
Chương này trình bày các kết quả kiểm tra một số chức năng chính của board
FPGA Arria V GT bằng phần mềm Board Test System đồng thời kiểm tra kết quả
của hệ thống MIMO trên mô phỏng bằng khối. Các dữ liệu ở ngõ ra thường có thời
gian trễ so với dữ liệu vào. Tuy từng khối cụ thể mà thời gian trễ sẽ khác nhau.
4.1 Kết quả kiểm tra board bằng phần mềm Board Test System
Hình 4.1Error! Reference source not found. đến Hình 4.9 cho ta thấy việc
thực hiện được cấu hình và kiểm tra board Arria V GT bằng phần mềm Board Test
System.
Hình 4.1. Cấu hình menu Flash/GPIO trên FPGA 1.
Trang 65
Hình 4.2. Kết quả cấu hình LED, LCD hiện thị, các Switch và nút nhấn.
Hình 4.3. Kết quả kiểm tra đọc, ghi bộ nhớ RAM gắn với Chip FPGA 1.
Trang 66
Hình 4.4. Kết quả kiểm tra đọc, ghi bộ nhớ RAM gắn với Chip FPGA 2.
Hình 4.5. Kết quả thu phát loopback trên cổng kết nối HSMA.
Trang 67
Hình 4.6. Kết quả thu phát loopback trên cổng kết nối HSMB.
Hình 4.7. Kết quả kiểm tra phát trên cổng kết nối FMC.
Trang 68
Hình 4.8. Kết quả kiểm tra phát tại Bull’s Eye.
Hình 4.9. Kết quả kiểm tra thu phát qua SMA.
Trang 69
4.2 Kết quả đo đạt mô hình thiết kế.
4.2.1 Bộ mã hóa kênh và giải mã Viterbi
Tín hiệu qua bộ mã hóa kênh được thể hiện như hình 4.10
Hình 4.10. Tín hiệu qua mã hóa kênh
Kết quả so sánh trước và sau khi điều chế được thể hiện trong hình 4.11. Tín
hiệu ở phần trên là tín hiệu qua bộ mã hóa kênh, tín hiệu ở phần ở là giải điều chế và
bị chậm hơn một symbol. Kết quả phân tích cho thấy tín hiệu được giải mã trùng
khớp với tín hiệu trước khi mã hóa.
Trang 70
Hình 4.11. Tín hiệu qua bộ mã hóa kênh và giải mã
4.2.2 Bộ điều chế giản đồ chòm sao bằng QPSK
Các tín hiệu điều chế QPSK là I và Q được thê hiện trong hình 4.12 và Hình
4.13
Hình 4.12. Tín hiệu phần thực QPSK
Trang 71
Hình 4.13. Tín hiệu phần ảo QPSK
Kết quả so sánh tín hiệu trước khi ánh xạ giản đồ chòm sao và sau khi giải ánh
xạ được thể hiện như hình 4.14.
Hình 4.14. Tín hiệu trước khi mapper và sau khi demapper
4.2.3 Bộ mã hóa và giải mã STBC
4.2.3.1 Tín hiệu sau khi qua mã hóa STBC
Tín hiệu phát trên anten 1 thể hiện trong hình 4.15 và anten 2 thể hiện trong
hình 4.16 với phần trên là phần thực, phần dưới là phần ảo.
Trang 72
Hình 4.15. Tín hiệu anten 1
Hình 4.16. Tín hiệu anten 2
4.2.3.2 Tín hiệu sau khi qua kênh truyền
Tín hiệu sau khi qua kênh truyền của anten1 và anten2 lần lượt được thể hiện
trong hình 4.17 và hình 4.18 với phần thực ở trên và phần ảo ở dưới.
Trang 73
Hình 4.17. Tín hiệu anten 1 sau khi qua kênh truyền
Hình 4.18. Tín hiệu anten 2 sau khi qua kênh truyền
4.2.3.3 Tín hiệu sau khi giải mã STBC
Tín hiệu sau khi giải điều chế STBC đúng với tín hiệu ban đầu và bị châm
hơn. Kết quả được thể hiện trong hình 4.19.
Trang 74
(1)
(2)
Hình 4.19. So sánh tín hiệu sau giải điều chế STBC và tín hiệu gốc
(1): Phần thực
(2): Phần ảo
Trang 75
5 CHƯƠNG 5: KẾT LUẬN.
Đây là chương tổng kết các kết quả của đề tài và đánh giá kết quả đo đạt được,
đồng thời chương này trình bày các hướng nghiên cứu để phát triển đề tài.
5.1 Kết luận
Đề tài đã hoàn thành mục tiêu ban đầu đặt ra là nghiên cứu, thiết kế hệ thống
MIMO băng DSP Builder trên nền Simulink của Matlab và hơn hết là nạp thành công
một thiết kế lên Board Arria V GT. Việc thiết kế bằng DSP Builder cho phép đề tài
tận dụng các khối chức năng của DSP Builder. Ngoài ra, DSP Builder không những
cho phép xây dựng các khối từ ngôn ngữ lập trình Verilog hoặc VHDL mà còn cho
phép sử dụng các MegaCore của Altera. Điều này giúp tiết kiệm thời gian thực hiện
lại các khối cơ bản.
Hệ thống MIMO của đề tài bao gồm các khối chức năng: khối mã hóa chập –
giải mã bằng thuật toán Viterbi, khối ánh xạ chòm sao bằng phương pháp QPSK, khối
điều chế và giải điều chế MIMO-STBC, khối tạo kênh truyền H.
Hệ thống MIMO-STBC hoàn chỉnh được thực hiện đúng với lý thuyết. Đề tài
có nhiều đóng góp trong việc chuyển các cơ sở lý thuyết thành các thiết kế trên phần
cứng cho một hệ thống OFDM hoàn chỉnh trên phần cứng. Khi thiết kết trên phần
cứng, ngoài yêu cầu về thuật toán mà còn yêu cầu về kiểm soát và quản lý dữ liệu
giữa các tầng có độ phức tạp cao. Việc thiết kế trên phần cứng nhằm mở ra khả năng
nghiên cứu các hệ thống truyền dẫn số tiên tiến trên phần cứng. Các nghiên cứu về
lĩnh vực thiết kế các hệ thống truyền dẫn số trên phần cứng sẽ góp phần vào sự phát
triển lĩnh vực thiết kế SoC hoặc SoPC còn mới mẻ tại Việt Nam. Đây cũng là cơ sở
để hướng đến thiết kế vi mạch tích hợp cho viễn thông. Tuy nhiên, do phần cứng này
khá mới, chưa có nhiều nghiên cứu và chưa có sự hỗ trợ của hãng Altera nên quá
trình nghiên cứu còn nhiều khó khăn, như cấu trúc board khá phức tạp, phần mềm
DSP Builder chua hỗ trợ Interface cho thiết bị, quá trình nạp board phải đi trung gian,
nhiều giai đoạn.
Trang 76
5.2 Hướng phát triển
Đề tài là cơ sở thực hiện nghiên cứu và cải tiến hệ thống MIMO-OFDM hoàn
chỉnh theo các chuẩn như 801.11g, 802.11n, 802.16. Ngoài ra, đề tài còn mở ra khả
năng nghiên cứu và phát triển các hệ thống truyền thông tiên tiến ở dải gốc.
Về phần cứng, hiện tại hãng Altera hợp tác cùng TI phát triển một bộ kit hoàn
chỉnh để thu phát sóng vô tuyến (RF). Điều này mở ra một hướng nghiên cứu các kỹ
thuật vô tuyến thực tế.
Về thuật toán: Các thuật toán phức tạp sẽ gặp nhiều khó khăn khi thiết kế trên
phần cứng. Tuy nhiên, các lĩnh vực cần tiếp tục nghiên cứu để hoàn chỉnh hệ thống
như: phương pháp giảm tỉ số đỉnh trên trung bình (PAR), thử nghiệm các phương
pháp mã hoá sửa sai khác như: Reed Solomon, mã hoá Turbo, kết hợp với bộ đan xen
(Interleaving) các kỹ thuật ước lượng kênh truyền hai chiều, và các phương pháp điều
chế mã hoá thích nghi.
Trang 77
TÀI LIỆU THAM KHẢO
Tiếng Việt:
[1] Đặng Lê Khoa, Nguyễn Trường An, Bùi Hữu Phú, Nguyễn Hữu Phương (2008),
Thực hiện hệ thống OFDM trên phần cứng, Hội Nghị Khoa Học Trường Đại Học
Khoa Học Tự Nhiên lần 6.
Tiếng Anh:
[1] Siavash M. Alamouti (1998), A Simple Transmit Diversity Technique for
Wireless Communication, IEEE Journal on Select Areas in Communication, Volume
16 Issue 8.
[2] Nazia Parveen, D.S.Venkateswarlu (2012), Implementation of Space-Time Block
Coding Using 2 Transmit and 2 Receive Antennas, International Journal of Emerging
Technology and Advanced Engineering, Volume 2 Issue 10.
[3] Altera Corporation (2013), DSP Builder Handbook, URL: