50
MC LC Mđầu Hiê ̣ n nay Thông tin vô tuyến là mô t ngành phát trin rt mnh m, các công nghê sdng trong thông tin vô tuyế n ngày càng được đổi mi nhm nâng cao tí nh hiê u qutrong điu chế, gii điu chế và truyn thông tin. Tuy nhiên công nghê ̣ phá t trin càng cao thì li càng đă t ra nhng khó khăn trong vn đề thc nghiê ̣ m cho các sinh viên trong các trường Đại hc. Các yêu cu vphn cng đôi khi li trthành nhng ththách vô cùng  phc t p trong viê c đưa các mô hì nh thiết kế o thc tế. Vì vâ ̣ y FPGA ra đời như ̣ t gii phá  p cung c p môi trường làm viê c hiê ̣ u qucho cá c ng dng thc tế. Tính linh động cao trong quá trình thiết kế cho phép FPGA gii quyết nhng bài toán phc tp mà trước kia chthc hin nhphn mm máy tính. Ngoài ra, nhmt độ cng logic cao, FPGA được ng dng cho nhng bài toán đòi hi khi lượng tính toán ln và dùng trong các hthng làm vic theo thi gian thc. Trong sc hãng sn xut FPGA, Xilinx là mô t trong các hãng đi đầu trong viê c sn xut chip, không chbi các công chtrthi ế t kế hoà n thiê n mà cò n cho phé  p người dùng có khnăng can thiê ̣  p sâu vào hê ̣ thng, trong đó phi kti các chip dòng Virtex-sn phm mi nht ca Xilinx trong nhng năm gn đây. Qua quá trình tìm hiu, nhóm nghiên cu đã thc hin được mt scác ng dng trên FPGA nhm hướng ti vic sdng FPGA như mt công cđể gii quyết bài toán đo kênh MIMO. Đây là vn đề thu hút được rt nhiu squan tâm ca các nhà nghiên cu trong lĩnh vc truyn thông vô tuyến. Để phc vcho mc đich này, trong ni dung bài lun văn dưới đây, em strình  bày vvic sdng FPGA để thiết kế mô hình Software Defined Radio cho hđo thkênh MIMO.

vn CongNghefpga NgonNguvhdl

Embed Size (px)

Citation preview

Page 1: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 1/50

MỤC LỤC

Mở đầuHiê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 trongcá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 đề thuhú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.

Page 2: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 2/50

CHƯƠNG 1

TỔNG QUAN VỀ FPGA

VÀ NGÔN NGỮ VHDL1.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

Page 3: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 3/50

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áchà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

Page 4: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 4/50

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

Page 5: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 5/50

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

 Ngoài các khối logic tùy theo các loại FPGA khác nhau mà có các phần tử tích hợp

thêm khác nhau, ví dụ để thiết kế những ứng dụng SoC, trong dòng Virtex 4,5 của Xilinx

có chứa nhân xử lý PowerPC, hay trong Atmel FPSLIC tích hợp nhân ARV…, hay chonhững ứng dụng xử lý tín hiệu số DSP trong FPGA được tích hợp các DSP Slide là bộ 

nhân cộng tốc độ cao, thực hiện hàm A*B+C, ví dụ dòng Virtex của Xilinx chứa từ vài

chục đến hàng trăm DSP slices với A, B, C 18-bit.

1.3. Ngôn ngữ mô tả phần cứng (HDL)

 Ngôn ngữ mô tả phần cứng (HDL) là ngôn ngữ lập trình phần mềm dùng để mô

hình họat động mong muốn của phần cứng. Có hai khía cạnh mà HDL tạo điều kiện để

mô tả phần cứng: mô hình hành vi trừu tượng và mô hình cấu trúc phần cứng.

Mô hình hành vi trừu tượng . Ngôn ngữ mô tả phần cứng tạo điều kiện dễ dàng cho

việc mô tả trừu tượng hành vi của phần cứng đối với các mục đích đặc tả (chỉ rõ chi tiết

kỹ thuật). Hành vi này không chỉ bị chi phối bới các khía cạnh cấu trúc hoặc thiết kế của ý

địh phần cứng.

Page 6: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 6/50

Mô hình cấu trúc phần cứng . Cấu trúc phần cứng có khả năng được mô hình trong

ngôn ngữ mô tả phần cứng mà không cần quan tâm đến hành vi thiết kế.

 Năm 1980 bộ Quốc phòng Mỹ (DOD) muốn thực hiện việc thiết kế mạch tự dẫn chứng,

muốn theo đuổi một hệ phương pháp thiết kế tổng quát và có thể sử dụng lại được với các

công nghệ mới. Rõ ràng đã có nhu cầu cho một ngôn ngữ lập trình chuẩn để mô tả chức

năng và cấu trúc của các mạch số đối với việc thiết kế vi mạch (IC). Sau đó DOD đã tài

trợ cho một dự án thuộc chương trình vi mạch có tốc độ rất cao VHSIC (very high speed

integrated circuit) để tạo ra ngôn ngữ mô tả phần cứng chuẩn. Kết quả là dự án này đã tạo

ra ngôn ngữ mô tả phần cứng VHSIC hay thường được gọi là VHDL (VHSIC Hardware

Description Language-Ngôn ngữ miêu tả phần cứng VHSIC) như hiện nay.

VHDL được xem như là sự kết hợp của các ngôn ngữ sau : ngôn ngữ tuần tự +

ngôn ngữ đồng thời + netlist + định thời + mô phỏng. Do đó cấu trúc VHDL cho phépthể hiện cách thức thực hiện theo kiểu song song hay tuần tự của một hệ thống số có hoặc

không có timing. Nó cũng cho phép vẽ mô hình một hệ thống bằng các liên kết nối của

các thành phần.

VHDL được dành cho tổng hợp mạch (synthesis) cũng như mô phỏng mạch

(simulation). Dù VHDL có thể mô phỏng một cách đầy đủ, nhưng không phải tất cả các

cấu trúc đều được VHDL tổng hợp.

1.3.1. Các ưu điểm của VHDL- Chương trình trong VHDL có thể được viết theo nhiều cấu trúc khác nhau: Ngẫu

nhiên, tuần tự, nối chân, định thời chỉ rõ, ngôn ngữ sinh dạng sóng.

- VHDL là một ngôn ngữ phân cấp, hệ thống số có thể được mô phỏng như một kết

nối các khối mà các khối này được thực hiện bởi các khối con khác nhỏ hơn.

- Cung cấp một cách mềm dẻo các phương thức thiết kế trên xuống, dưới lên, hoặc

tổ hợp cả hai.

- Cung cấp cả hai mode đồng bộ và không đồng bộ.

- Linh hoạt trong kĩ thuật mô phỏng số như sử dụng biểu đồ trạng thái, thuật toán,

các hàm Boolean.

Page 7: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 7/50

- Có tính đại chúng: VHDL được phát triển dưới sự bảo trợ của chính phủ Mỹ và

hiện nay là một tiêu chuẩn của IEEE. VHDL được sự hỗ trợ của nhiều nhà sản xuất

thiết bị cũng như nhiều nhà cung cấp công cụ thiết kế mô phỏng hệ thống.

- VHDL cung cấp 3 kiểu mẫu viết khác nhau: structural, dataflow và behavioral.

- Không giới hạn về độ lớn của thiết kế khi sử dụng ngôn ngữ.

- VHDL hoàn toàn độc lập với công nghệ chế tạo phần cứng. Một mô tả hệ thống

dùng VHDL thiết kế ở mức cổng có thể được chuyển thành các bản tổng hợp mạch

khác nhau tuỳ thuộc công nghệ chế tạo phần cứng mới ra đời nó có thể được áp

dụng ngay cho các hệ thống đã thiết kế .

- Khả năng định nghĩa kiểu dữ liệu mới cung cấp một công cụ hữu hiệu cho thiết kế

và mô phỏng công nghệ mới với một mức rất cao.

1.3.2. Cấu trúc một mô hình hệ thống sử dụng ngôn ngữ VHDL

VHDL là ngôn ngữ mô tả phần cứng do vậy mà nó có thể được sử dụng để làm mô

hình của một hệ thống số. Hệ thống số có thể đơn giản là các cổng logic hay phức tạp như

một hệ thống hoàn chỉnh. Các khối xây dựng nên ngôn ngữ VHDL gọi là các khối thiết

kế. Có 3 khối thiết kế chính:

- Khai báo Entity (Thực thể)

- Khai báo Architecture (Kiến trúc)- Khai báo Configuration (Cấu hình)

- Đôi khi ta sử dụng các gói (Packages) và mô hình kiểm tra hoạt động của hệ

thống (Testbench).

a. Entity (Thực thể)

Khai báo thực thể trong VHDL là phần định nghĩa các chỉ tiêu phía ngoài của một

 phần tử hay một hệ thống. Khai báo Entity là chỉ ra tên của Entity và liệt kê các cổng

vào/ra. Các cổng là các (dây) tín hiệu mà qua đó entity giao tiếp với môi trường bên

ngoài. Ví dụ, một mạch bán tổng được chỉ ra ở hình 8 :

Page 8: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 8/50

Hình 1.3 Bộ bán tổng

Khai báo Entity như sau:

entity HALF-ADDER is

 port ( A, B : in BIT;

SUM, CARRY : out BIT);

end HATF-ADDER;Bộ bán cộng này gồm có hai đầu vào là A và B; và hai đầu ra là SUM và CARRY, BIT là

một kiểu cấu trúc ngôn ngữ được định nghĩa trước của FPGA

b. Architecture (Kiến trúc)

Phần thứ 2 trong mã nguồn VHDL là khai báo Architecture. Mỗi một khai báo Entity

đều phải đi kèm với ít nhất một Architecture tương ứng. Khai báo Architecture trong

chương trình phải kết hợp tên của Architecture và một Entity trong chương trình đó. Phần

thân Architecture có thể bao gồm các khai báo về các tín hiệu bên trong, các phần tử bêntrong hệ thống, hay các hàm và thủ tục mô tả hoạt động của hệ thống. Tên của

Architecture là nhãn được đặt tuỳ theo người viết chương trình. Cấu trúc bên trong của

Architecture có thể được viết theo một trong số các kiểu mẫu sau:

-Tập hợp kết nối bên trong của các thiết bị.

-Tập các câu lệnh ngẫu nhiên

-Tập các câu lệnh tuần tự.

-Kết hợp của ba dạng trên.

Các kiểu mô hình này sẽ được mô tả cụ thể như sau:

Kiểu kiến trúc

Page 9: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 9/50

Kiểu này được xây dựng dựa trên một tập các thành phần được kết nối. Ví dụ như

 bộ bán tổng được chỉ ra sau đây:

architecture HA-STRUCTURE of HALF-ADDER is

component XOR2 port (X,Y : in BIT;

 N: out BIT);

End component;

Component AND2

Port (L, M : in BIT;

 N : out BIT);End component;

Begin

X1: XOR2 port map(A,B,SUM);

A1 : AND2 port map (A,B,CARRY);

End HA-STRUCTURE;

Kiểu luồng dữ liệuTrong kiểu này, luồng dữ liệu qua Entity trước tiên được biểu diễn bằng các phép

gán đồng thời. Kiểu luồng dữ liệu của bộ bán cộng được chỉ ra trong ví dụ sau:

Architecture DATAFLOW of HALF-ADDER is

Begin

SUM <= A xor B after 8ns;

CARRY <= A and B after 4ns;

End DATAFLOW;

Trong ví dụ này kiểu luồng dữ liệu sử dụng hai phép gán tín hiệu đồng thời (hoặc

gán nối tiếp). Trong phép gán cho tín hiệu thì ký hiệu gán là “<=”. Giá trị của biểu biểu

thức bên phải được gán cho tín hiệu bên phía tay trái. Một phép gán đồng thời được thực

Page 10: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 10/50

hiện chỉ khi có bất kỳ tín hiệu trong biểu thức phía phải có sự thay đổi, tức là giá trị tín

hiệu thay đổi. Thông tin trễ cũng có thể được thêm vào phép gán bằng cách sử dụng mệnh

đề “after” .

Kiểu behavior

Kiểu behavior chỉ ra cách thức hoạt động của một entity như là một tập hợp lệnh

được thực hiện theo kiểu nối tiếp bằng cách sử dụng process. Chúng không chỉ ra rõ ràng

cấu trúc của entity mà chỉ ra chức năng của nó. Ví dụ sau xem xét kiểu behavior của bộ

 bán tổng.

Architecture BEHAVIOR of HALF-ADDER is

Begin

Process (A,B)Variable X,Y : BIT;

Begin

X:=A;

Y:=B;

SUM<=X xor Y;

CARRY <= X and Y;End process;

End BEHAVIOR;

Một process cũng có một phần để khai báo (trước từ khóa “begin”) và một phần để

trình bày (giữa từ khóa “begin” và “process”). Các lệnh bên trong phần trình bày này

được thực hiện theo kiểu nối tiếp. Danh sách các tín hiệu được chỉ ra trong dấu ngoặc sau

từ khóa “process” tạo thành một danh sách “nhạy”. Tức là, khi có sự thay đổi của bất kỳ

giá trị nào trong danh sách này thì mới thực hiện các lệnh trong process. Tuy nhiên, tất cảcác process trong một chương trình thì đều thực hiện đồng thời.

Khai báo biến (bắt đầu bằng từ khóa “variable”), trong ví dụ này có hai biến X và Y. Các

 biến được gán với ký hiệu là “:=” và giá trị của vế phải gán cho giá trị biến bên trái.

Page 11: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 11/50

Kiểu hỗn tạp.

Kiểu hỗn tạp là kiểu kết hợp cả ba kiểu trên. Tức là, bên trong một architecture, chúng

ta có thể sử dụng cả ba cách trình bày trên.

c. Configuration (Cấu hình)Khai báo Configuration dùng để lựa chọn một trong các thân Architecture có sẵn mà

một Entity có hoặc để gắn các khối vào Entity. Nếu cho dạng cấu trúc, Configuration có

thể được xem như liệt kê các thành phần cho khối mô hình. Cho mỗi khối thì

Configuration chỉ rõ Architecture nào cho Entity từ nhiều Architecture. Khi Configuration

cho tổng hợp Entity-Architecture thì được biên dịch vào thư viện và một thực thể mô

 phỏng được tạo ra. Ví dụ khai báo Configuration trong bộ bán tổng như sau:

Library CMOS-LIB, MY-LIB;

Configuration CONFIG of HALF-ADDER is

For HA-STRUCTURE

For X1:XOR2

Use entity CMOS-LIB.XOR-GATE (DATAFLOW);

End for;

For A1 : AND2

Use configuration MY-LIB.AND-CONFIG;

End for;

End for; End CONFIG;

d. Package (Gói)

Mục đích cơ bản của Package là gói gọn các phần nhỏ có thể được sử dụng trong

nhiều thiết kế. Package là một biện pháp thường dùng để lưu dữ thông tin có thể được sử

dụng trong nhiều Entity. Mối quan hệ trong Package cho phép dữ liệu có thể được thamchiếu bởi những Entity khác. Vì thế dữ liệu có thể được chia sẻ.

Một Package gồm hai phần: Phần khai báo và phần thân (Body). Phần khai báo định

nghĩa giao diện cho Package, bằng một cách tương tự như định nghĩa của Entity. Thân

của Package chỉ rõ sự biến đổi quan hệ trong Package giống như trong Architecture.

Page 12: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 12/50

VHDL là không giống như cách thực thi chương trình một cách tuần tự như chương

trình của PC, các lệnh của VHDL được thực hiện một cách đồng thời. Vì lí do này, người

ta thường gọi là “mã VHDL” chứ không gọi là “chương trình VHDL”. Trong VHDL, chỉ

các lệnh nằm trong PROCESS, FUNCTION hoặc PROCEDURE mới được thực thi một

cách tuần tự.

 Như đã đề cập ở trên, một trong những ưu điểm của VHDL là nó cho phép tổng hợp

một mạch hay một hệ thống trong một thiết bị khả trình (như PLD hoặc FPGA) hoặc

trong một chip ASIC. Các bước thực hiện một project được chỉ ra trong hình 1.3.

Hình 1.4 Sơ đồ thiết kế VHDL

Thiết kế được bắt đầu bằng việc viết mã VHDL và lưu vào file có đuôi “.vhd” cócùng tên với tên của ENTITY. Bước đầu tiên trong quá trình tổng hợp là biên dịch. Biên

dịch là quá trình chuyển từ ngôn ngữ VHDL bậc cao (mô tả mạch ở mức RTL – mức

chuyển thanh ghi) sang dạng danh sách kết nối (netlist) ở mức gate. Bước thứ hai là tối

ưu, được thực hiện trên danh sách kết nối mức gate để đạt được sự tối ưu về tốc độ hoặc

Page 13: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 13/50

tối ưu về diện tích sắp đặt. Ở giai đoạn này, thiết kế có thể được mô phỏng. Cuối cùng

một phần mềm Place-và-route sẽ tạo ra sự sắp đặt (layout) vật lý cho một thiết bị

PLD/FPGA hoặc sẽ tạo ra mặt nạ (mask) cho chip ASIC.

e. Mô hình kiểm tra hoạt động (Testbench)

Một trong các nhiệm vụ rất quan trọng là kiểm tra bản mô tả thiết kế. Kiểm tra một

mô hình VHDL được thực hiện bằng cách quan sát hoạt động của nó trong khi mô phỏng

và các giá trị thu được có thể đem so sánh với yêu cầu thiết kế.Môi trường kiểm tra có

thể hiểu như một mạch kiểm tra ảo. Môi trường kiểm tra sinh ra các tác động lên bản

thiết kế và cho phép quan sát hoặc so sánh kết quả hoạt động của bản mô tả thiết kế.

Thông thường thì các bản mô tả đều cung cấp chương trình thử. Nhưng ta cũng có thể

tự xây dựng chương trình thử (testbench). Mạch thử thực chất là sự kết hợp của tổng hợpnhiều thành phần. Nó gồm ba thành phần. Mô hình VHDL đã qua kiểm tra, nguồn dữ

liệu và bộ quan sát. Hoạt động của mô hình VHDL được kích thích bởi các nguồn dữ liệu

và kiểm tra tính đúng đắn thông qua bộ quan sát.

Hình 1.5 Sơ đồ tổng quát của một chương trình thử (Testbench)

Trong đó: DUT: (device under test) mô hình VHDL cần kiểm tra

Observer: khối quan sát kết quả

Data source: nguồn dữ liệu (khối tạo ra các tín hiệu kích thích)

Page 14: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 14/50

Chương 2

Các công cụ thiết kế2.1. Những đặc điểm cơ bản của XtremeDSP Development Kit-IV

2.1.1 Giới thiệu chung

XtremeDSP Development Kit-IV là bộ KIT có khả năng cung cấp một nền tảng

 phát triển cao cho công Nghệ FPGA Virtex-IV Pro.Hai bộ ADC và DAC có tốc độ cao

cho phép người dùng có thể lập trình nhằm xử lý các ứng dụng như Software DefinedRadio, 3G Wireless, Networking, HDTV hoặc hình ảnh Video. Bộ KIT có chứa một bo

mạch chủ nối với một module nằm trên một board màu xanh. Bo mạch chủ được gọi là

BenONE-Kit Motherboard và module trên được gọi là BenADDA DIME-II module.

 Nhiệm vụ của bo mạch chủ BenONE-Kit 

• Hỗ trợ cho module BenADDA DIME-II

• Hỗ trợ giao diện USB hoặc 3.3V/5V PCI• Hỗ trợ giao diện PCI 3.3V/5V 32 bit/33-MHz và giao diện USB 1.1

• Các LED hiên thị

• Mạch tạo cấu hình JTAG

Page 15: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 15/50

• Các chân cắm nối trực tiếp với người dùng có thể lập trình được (FPGA I/O)

 Module BenADDA DIME-II 

• Chíp FPGA: XC4VSX35-10FF668

• Hai kênh DAC độc lập: AD6645 ADC (14-bits 105 MSPS)

• Hai kênh ADC độc lập: AD9772 DAC (14-bits 160 MSPS)

• Hỗ trợ clock ngoài, bộ dao động onboard và clock có thể lập trình

• Hai bộ nhớ SRAM (133MHz, 512Kx32 bits mỗi bên)

• Các LED hiển thị

Hình 2.1. Giao diện ngoài của XtremeDSP Development Kit-IV 

Page 16: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 16/50

Hình 2.2. Bộ KIT sử dụng chuẩn kết nối MCX

Hình 2.3. Giao diện phía trong của XtremeDSP Development Kit-IV

2.1.2. Các thành phần chính của XtremeDSP Development Kit-IV

a. Chíp FPGA (XC4VSX35)

Các đặc điểm chính của XC4VSX35:

Page 17: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 17/50

• Rocket IO Transceiver Blocks: 8

• PowerPC Processor Blocks: 2

• LogicCells (2): 30,816

• Slices: 13,696

• Max DistrRAM (Kb): 428

• 18 X 18 Bit Multiplier Blocks: 136

• 18 Kb Blocks: 136

• Max Block RAM (Kb): 2,448

• DCMs: 8

• Maximum User I/ O Pads: 644

b. Các bộ ADC

Module BenADDA DIME- sử dụng trong XtremeDSP Development Kit-IV  có hai

kênh vào tương tự, mỗi kênh có dữ liệu và tín hiệu điều khiển độc lập tới FPGA.Hai ADC

(AD6645) cho phép thực hiện hai thiết lập dữ liệu với độ rộng 14 bit.Tín hiệu đưa vào

ADC và tín hiệu ra thông qua chuẩn kết nối MCX.

Page 18: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 18/50

Hình 2.4. Sơ đồ tín hiệu qua ADC vào FPGA

Các đặc điểm chính của khối ADC (AD6645)

• Cung cấp ADC 14-bit, kiểu mã bù 2

• Tốc độ lấy mẫu 105MSPS

• Trở kháng vào 50 Ω cho tín hiệu tỷ lệ hay lối vào thay đổi vi phân

• Bộ lọc bậc 3 ở lối vào

• Clock ADC có thể thay đổi được

 ADC clock 

Mỗi ADC có thể được thiết lập clock trực tiếp bằng tín hiệu LVPECL một cách

độc lập.Tín hiệu LVPECL có thể được điều khiển bằng Virtex-II XC2V80-4CS144 FPGA

(Clock FPGA).Một số các clock có thể dùng trong FPGA:

Page 19: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 19/50

-Clock 105 MHZ on board bằng tinh thể

-Clock ngoài đưa vào thông qua chuẩn kết nối MCX

-Clock lập trình qua bộ dao động trên KIT

Chú ý rằng bộ ADC (AD6645) chỉ có thể hỗ trợ clock vào lớn nhất lên tới 105 MHZ.Điềunày rất quan trọng nếu muốn sửdụng một trong các clock DIME (Ví dụ như

CLKA,CLKB,CLKC),vì những clock có thể lớn hơn 105 MHz.

c. Các bộ DAC (AD9772A)

Module BenADDA DIME-I sử dụng trong XtremeDSP Development Kit-IV có hai

kênh lối ra tương tự, mỗi kênh có dữ liệu và tín hiệu điều khiển độc lâp tới FPGA.Hai bộ

DAC (AD9772A )cung cấp hai đường dữ liệu mỗi đường 14 bit.Tín hiệu vào và tín hiệu

ra thông qua kết qua kết nối MCX.

Hình 2.5. Sơ đồ tín hiệu qua DAC cho dữ liệu ra tương tự

Các đặc điểm chính của DAC (AD9772A)

• Cung cấp DAC 14-bit

• Tốc độ dữ liệu lối ra tối đa 160MSPS

Page 20: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 20/50

• Sử dụng clock LVPECL lối vào lấy từ Virtex-II XC2V80-4CS144 Clock FPGA

• Bộ nhân đồng hồ có vòng khóa pha trong

• Trở kháng lối ra 50 Ω thông qua chuẩn kết nối MCX.

 DAC clock 

Mỗi DAC có thể được clock trực tiếp , độc lập thông qua tín hiệu LVPECL.Tín

hiệu LVPECL có thể được điều khiển bởi Virtex-II XC2V80-4CS144 FPGA (Clock 

FPGA).Một số các clock có thể sử dụng thông qua clock FPGA:

-Clock 105 MHZ on board bằng tinh thể

-Clock ngoài đưa vào thông qua chuẩn kết nối MCX

-Clock lập trình qua bộ dao động trên KIT

d. Bộ nhớ ZBT SRAM

Bộ KIT cung cấp 2 bộ nhớ độc lập ZBT SRAM .Mỗi bộ có thể cấu hình 512k x 32.Bộ

nhớ này có khả năng lưu dữ liệu trên board thông qua bus dữ liệu 32-bit tới mỗi bộ nhớ.

Hình 2.6. Sơ đồ ZBT SRAM

Đặc điểm chính của ZBT SRAM 

Page 21: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 21/50

• Thời gian chu kỳ nhanh: 6ns, 7.5ns và 10ns

• 100% bus được tận dụng

• Điều khiển qua giao diện tín hiệu tối thiểu

• Có các chân điều khiển đọc/viết riêng

• Sử dụng tín hiệu điều khiển, địa chỉ thanh ghi,dữ liệu vào ra, có thể thiết lập được

clock 

• Cho phép dữ liệu vào ra thông thường

• Có mode tuyến tính hoặc ghép xen

 ZBT SRAM Clocking 

Hai bộ nhớ ZBT SRAM trên bộ KIT có thể được clock độc lập thông qua việc chènthêm tín hiệu clock phản hồi.Mỗi bộ nhớ có một tín hiệu có thể được hiệu chỉnh trong

FPGA đảm bảo cho clock của ZBT SRAM và chân phản hồi có clock giống hệt nhau với

độ sai khác nhỏ nhất. Quá trính này đảm bảo cho logic trong được khóa pha với dữ liệu

đưa vào.

e. Vào ra số

Một số đặc điểm vào ra của bộ KIT:

• Một đầu bus 14 chân trên bo mạch chủ.Nó cho phép 12 kết nối trực tiếp hai chiềutới FPGA với hai chân nối đất.

• Một đầu bus 34 chân hiệu chỉnh trên bo mạch chủ.Nó cho phép 28 kết nối trực

tiếp hai chiều tới chip FPGA.Các phần còn lại cho các kết nối 3,3V,nối đất, và 'không

được nối.

• Hai đầu vào ra 2 chân cung cấp 2 kết nối hai chiều tới chip FPGA.

f. Clock  

Bộ KIT XtremeDSP Development Kit-IV có một hệ thống quản lý clock toàn diện vàlinh hoạt .Sau đây là một số đặc điểm của hệ thống clock:

• Bộ KIT có một nguồn phát tinh thể 105 MHz trên module chính cung cấp clock 

cho các thiết bị tương tự.

Page 22: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 22/50

• Một lối vào cho clock ngoài trên bo mạch chủ có thể thiết lập được tần số.

• Một khe cắm cho bộ dao động trên bo mạch chủ.Chú ý rằng trên bo mạch chủ

không có bộ dao động mà chỉ có socket để người dùng sử dụng các bộ dao động cho các

ứng dụng riêng biệt.

g. DIME-II System Clocks

Module BenADDA DIME-II có thể tạo ra ba hệ thống clock cho FPGA, các clock đó

được gọi là CLKA,CLKB và CLKC.Các tín hiệu clock được tạo ra trên bo mạch chủ

DIME-II và được đưa vào vùng module nơi đặt module BenADDA DIME-II.Các clock 

này có thể được điều khiển bới người dùng và được đưa đến các chân Global Clock và

cung cấp một cách linh hoạt nhất cho FPGA.Tuy nhiên cần chú ý rằng chức năng của các

DIME-II clock này được xác định bởi bo mạch chủ .Khi module BenADDA DIME-II

được đặt vào bo mạch chủ BenONE-Kit,khi đó trong cấu hình KIT XtremeDSPDevelopment Kit-IV,các clock của DIME-II là :

-CLKA: clock do bộ tạo dao động có thể lập trình trên bo mạch chủ BenONE-Kit

-CLKB: clock do bộ tạo dao động có thể lập trình trên bo mạch chủ BenONE-Kit

-CLKC: kết nối tới một socket để hỗ trợ bộ tạo dao động tinh thể

Page 23: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 23/50

Hình 2.7. Sơ đồ hệ thống clock 

h. LED hiển thị

XtremeDSP Development Kit-IV có một số “user-definable” và các LED hiển thị cho

 phép người dùng kiểm tra trạng thái oạt động của bộ KIT.Có các LED kiểm tra các cấuhình người dùng và các LED hiển thị trạng thái hệ thống, cấu hình các giao diện và nguồn

(Interface LEDs). Các LED sử dụng bộ KIT có ba màu (mỗi LED hiển thị tổng cộng ba

màu khác nhau: Đỏ, Xanh và Vàng/Dacam).

Page 24: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 24/50

Hình 2.8. Sơ đồ các LED trạng thái

2.2. Các phần mềm chuyên dụng

2.2.1. Tổng quan về phần mềm ISE của Xilinx

Hệ thống phần mềm ISE của Xilinx là một môi trường thiết kế tích hợp bao gồmthiết kế chương trình, mô phỏng và thực hiện các thiết kế trên các thiết bị FPGA hay

CPLD.ISE có thể tham gia vào việc điều khiển mọi giai đoạn trong quy trình thiết

kế.Thông qua giao diện của ISE, người dùng có thể can thiệp vào các thiết kế và sử dụng

các công cụ thực hiện thiết kế. Ngoài ra người dùng còn có thể can thiệp vào các file hay

tài liệu có liên quan đến project đang thiết kế.

Page 25: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 25/50

Hình 2.9. Giao diện phần mềm ISE

Cửa sổ nguồn

Cửa sổ này bao gồm các file nguồn của 1 project ( gồm các file được viết hoặc các

file có sẵn được đưa vào project). Trong cửa sổ này có 1 danh sách mà qua đó người dùng

có thể chọn các file nguồn cho các mục đích thiết kế cụ thể như tổng hợp, thực thi hay mô

 phỏng.

Cửa sổ xử lí Cửa sổ này cho ta biết các thiết kế đã sẵn sàng để chạy (bao gồm cả mô phỏng và

thực thi) hay chưa (ví dụ khi bạn muốn chạy 1 thiết kế trong file nguồn đã chọn). Để chạy

1 thiết kế, ta click đúp vào thiết kế đó,khi thiết kế đã được thực thi thành công,1 dấu tích

Page 26: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 26/50

đỏ sẽ xuất hiện bên cạnh thiết kế đó.Khi chạy 1 thiết kế, ISE sẽ tự động chạy các thiết kế

nhỏ hỗ trợ cho thiết kế đó.

2.2.2. Phần mềm FUSE

Phần mềm FUSE của hãng Nallatech cho phép người dùng có thể cấu hình, điềukhiển và thực hiện giao tiếp giữa hệ thống chủ và các phần cứng máy tính FPGA của

 Nallatech. Phần mềm này được phát triển để có thể thiết kế các hệ thống xử lý phức tạp

như 1 khối thống nhất giữa phần mềm,phần cứng và các ứng dụng FPGA.

FUSE cung cấp 1 số giao diện,bao gồm ngôn ngữ lập trình DIMEscrip. FUSE Probe

Tool, FUSE còn được phát triển cho các ngôn ngữ bậc cao như C/C++, Java hoặc Matlab.

FUSE có thể cài đặt được trong các hệ điều hành Windows hoặc Linux.Các đặc điểm cơ 

 bản nhất của FUSE có thể kể ra như sau:

• Cấu hình thiết bị nhanh chóng và đơn giản

• Hỗ trợ nhiều Card

• Hỗ trợ nhiều giao diện

• Hỗ trợ các giao diện và điều khiển cho các thiết bị phần cứng của Nallatech

Hình 2.10. Tổng quan về FUSE

Page 27: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 27/50

2.2.3. Tổng quan về phần mềm System Generator

System generator là một công cụ thiết kế hệ thống giúp chZo việc thiết kế các ứng

dụng phần cứng trong FPGA và mô phỏng Simulink. Nó cho ta một môi trường thiết kếrất mạnh trong việc thiết kế phần cứng. Systerm Generator có khả năng mô hình hóa cao

và có thể dịch các thiết kế của người dùng sang ngôn ngữ phần cứng trong FPGA một

cách tự động chỉ với 1 thao tác đơn giản như ấn 1 nút. Thêm vào đó System Generator 

còn cho phép xâm nhập vào các tài nguyên trong FPGA ở mức thấp hơn,qua đó cho phép

người sử dụng thực hiện các thiết kế có hiệu suất cao.

Việc lập trình 1 bộ FPGA bằng System Generator bao gồm các bước sau: mô

 phỏng thiết kế, tạo ra 1 bản thiết kế theo ngôn ngữ bậc thấp có thể đưa các thiết bị phần

cứng như FPGA từ thiết kế mô phỏng này,sau đó đưa bản thiết kế mới tạo ra này vàotrong file cấu hình của FPGA gọi là bitsream. Bước cuối cùng.đưa thiết kế phần cứng vào

trong bitstream có thể thực hiện bằng các phần mềm khác.

Một trong những mặt vượt trội của System Generator so với các phần mềm khác là

chức năng chạy mô phỏng phần cứng Co-Simulation, chức năng này sẽ được nói rõ thêm

trong phần sau.

a. Các khối Block Set DSP Xilinx

System Generator đã xây dựng khoảng hơn 90 khối xử lí tín hiệu số (DSP) để hỗ trợ người dùng trong việc mô phỏng các thiết kế.Các khối này gồm các khối DSP phổ biến

như khối cộng, nhân, thanh ghi... ngoài ra nó còn bao gồm các khối DSP phức tạp hơn

như khối sửa lỗi tiến, FFT, các bộ lọc và bộ nhớ. Các khối này làm cho việc thiết kế mô

 phỏng trở nên đơn giản và thuận tiện hơn nhiều.

Page 28: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 28/50

Hình 2.11. Các khối Block Set DSP Xilinx

b. Hỗ trợ cho Matlab

Các thuật toán trong Matlab có thể kết hợp chặt chẽ vào trong System Generator thông

qua AccelDSP. AccelDSP bao gồm các thuật toán mạnh có thể chuyển các thiết kế dùng

dấu chấm động (floating-point) trong Matlab sang dạng dấu chấm cố định (fix-point) làloại hay được dùng trong System Generator. Ngoài ra System generator còn bao gồm khối

Mcode cho phép người dùng sử dụng các thuật toán không có trong Matlab để thiết kế và

thực hiện các hoạt động điều khiển đơn giản.

c. Ước lựong tài nguyên hệ thống

System Generator cung cấp khối ước lượng tài nguyên cho phép đánh giá một cách

nhanh chóng các tài nguyên dùng cho thiết kế trước khi thực hiện nó trong thực tế. Điều

này có lợi ích rất lớn đối với cả việc thiết kế phần mềm lẫn phần cứng, giúp cho các nhà

thiết kế có thể tận dụng tối đa các tài nguyên trong FPGA (lên đến 550 bộ nhân trong thiết

 bị Virtex 5).

Page 29: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 29/50

Hình 2.12. Cửa sổ ước lượng tài nguyên

d. Mô phỏng phần cứng Co-Simulation

Các khối blocksets được hỗ trợ trong System Generator cho phép người dùng xây

dựng các thiết kế mô phỏng với độ chính xác cao. Tuy nhiên các kỹ sư thiết kế vẫn muốn

theo xem xét 1 cách chi tiết việc thiết kế của mình chạy trong phần cứng như thế

nào.System-Generator cung cấp giao diện mô phỏng Cosimulation giúp kết hợp chặt chẽ

và trực tiếp việc chạy thực tế trên FPGA vào mô phỏng simulink. Để thực hiện mô phỏng

Cosimulation, trước hết ta đưa thiết kế vào bitstream, sau đó System Generator tự độnghợp nhất cấu hình phần cứng FPGA với bitstream trở lại thiết kế mô phỏng gọi là khối

run-time. Khi thiết kế được mô phỏng trong môi trường Simulink,kết quả của thiết kế

cũng được tính toán trong phần cứng. Điền này cho phép chạy thử các thiết kế trong phần

cứng thật sự và làm tăng tính thực tế cho các mô phỏng.

e. Khả năng kết hợp các môi trường thiết kế

System Generator cung cấp 1 môi trường thống nhất cho các thiết kế DSP FPGAs,cho

 phép các thành phần nhỏ được viết bởi các ngôn ngữ khác nhau như RTL, Simulink,Matlab và C/C++ có thể làm việc cùng nhau trong cùng 1 thiết kế. System Generator hỗ

trợ khối black box cho phép đưa RTL vào thực hiện mô phỏng phần mềm và phần cứng

 bằng cả ModelSim hoặc Xilĩn ISE Simulator.

Page 30: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 30/50

Hình 2.13. Khả năng kết hợp các môi trường thiết kế

2.3. Quy trình thiết kể tổng quát

Việc thi hành các thiết kế số cho FPGA tuân theo các bước được mô tả trong mô

hình dưới đây

Hình 2.14. Quy trình thiết kế tổng quát

Page 31: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 31/50

a. Hình thành thiết kế

Đây là bước đầu tiên khi tiến hành 1 thiết kế. Trong bước này ta tạo nên các file

nguồn. File nguồn có thể tạo ra ở các định dạng khác nhau: mô hình hoặc dưới dạng ngôn

ngữ phần cứng (HDL) như là VHDL. Verilog hay ABEL. Một project trên thực tế bao

gồm 1 file nguồn tổng quát và các file ở mức thấp hơn hỗ trợ cho file nguồn đó, mỗi file

trên đều có thể ở dạng mô hình hoặc HDL.

b. Chạy mô phỏng

Đây là một bước vô cùng quan trọng và nên được thực hiện ở các mức khác nhau

trong quy trình thiết kế. Việc mô phỏng sẽ giúp kiểm tra lại các chức năng của thiết

kế,phản ứng của mạch khi thực hiện. Mô phỏng thời gian thực sẽ đựoc chạy sau khi đưa

mạch thiết kể vào trong FPGA và cần phải biết được việc sắp xếp trên thực tế để tìm ra

tốc độ chạy và phản ứng chính xác của mạch.

c. Tổng hợp file

Bước này sẽ tạo nên 1 file 1 file nguồn tổng quát từ các file nguồn khác nhau. File

mới tạo ra này có thể đưa vào khối thực thi. Bước này được thực hiện với phần mềm

System Generator. Phần mềm System Generator sẽ giúp chúng ta dich file mô phỏng sang

file tổng hợp được định dạng bằng ngôn ngữ phần cứng HDL.

d. Thực thi thiết kế

Sau khi tạo ra file nguồn tổng quát ở bước 2, tại bước này ta sẽ dùng phần mềm

ISE chuyển thiết kể logic thành file vật lí để có thể đưa trực tiếp vào thiết bị phần cứng

(FPGA). Bước này bao gồm ba bước nhỏ: dịch file nguồn, xây dựng sơ đồ mạch phần

cứng và sắp xếp, lắp ghép các phần tử trong thiết bị phần cứng.

e. Cấu hình thiết bị

Ở bước này ta thực hiện việc đưa các chương trình vào trong thiết bị phần cứng

FPGA. Bước thiết kế này có thể thực hiện bằng phần mềm FUSE. Trên thực tế sau bước

tổng hợp file ta có thể tiến hành tạo ngay Bitfile, bỏ qua giai đoạn thực thi thết kế.

Tóm lại, việc làm chủ được những công cụ rất mạnh như các sản phẩm FPGA của

Xilinx và các phần mềm chuyên dụng là một lợi thế lớn cho các nhà thiết kế khi đưa

những ý tưởng của mình vào các thực tế. Qua quá trình tìm hiểu, nhóm nghiên cứu đã

Page 32: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 32/50

từng bước tiếp cận và đạt được một số kết quả trong việc sử dụng FPGA như một công cụ

để thực hiện việc đo thử kênh MIMO. Trong các chương tiếp theo, em sẽ trình bày về

việc sử dụng FPGA để tiến hành thiết kế software radio cho hệ đo thử kênh MIMO.

Page 33: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 33/50

Chương 3

Giới thiệu mô hình Software Defined Radio

cho hệ đo thử kênh MIMO Ngày nay, khi truyền thông vô tuyến đã phát triển vô cùng mạnh mẽ và được ứng dụng

trong mọi mặt đời sống thì những yêu cầu đặt ra cho các nhà nghiên cứu lại ngày càng

cao. Đó là việc sử dụng băng tần một cách hợp lý cũng như cải thiện tốc độ truyền tin-một

yếu điểm rất lớn của truyền thông vô tuyến nhằm đáp ứng các nhu cầu của người sử dụng.

 Nhiều thuật toán đã được nghiên cứu và phát triển nhằm khắc phục nhược điểm này,

trong đó MIMO (Multiple Input Multiple Output) được biết đến như một kỹ thuật có khảnăng tận dụng kênh truyền tốt nhất, từ đó có thể tăng tốc độ truyền tin. Tuy nhiên đó cũng

chỉ là các tính toán về mặt lý thuyết, bởi môi trường truyền vô tuyến là một môi trường rất

 phức tạp nên để có thể kiểm chứng được hiệu quả của kỹ thuật MIMO, chúng ta cần tiến

hành đo kênh MIMO trong điều kiện thực tế. Trong chương này, chúng ta sẽ tìm hiểu về

MIMO và mô hình đo kênh sử dụng FPGA.

3.1 Khái niệm MIMO

Hệ thống MIMO (Multiple Input Multiple Output) là hệ thống sử dụng đa anten tại

cả nơi phát và nơi thu. Hệ thống có thể cung cấp phân tập phát nhờ vào đa anten phát,

cung cấp phân tập thu nhờ vào đa anten thu nhằm tăng chất lượng hệ thống hoặc thực

hiện Beamforming tại nơi phát và nơi thu để tăng hiệu suất sử dụng công suất, triệt can

nhiễu. Ngoài ra dung lượng hệ thống có thể được cải thiện đáng kể nhờ vào độ lợi ghép

kênh cung cấp bởi kỹ mã hoá thuật không gian-thời gian như V-BLAST. Khi thông tin

kênh truyền được biết tại cả nơi phát và thu, hệ thống có thể cung cấp độ phân tập cực đại

và độ lợi ghép kênh cực đại.

Hình 3.1. Hệ MIMO

Page 34: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 34/50

3.2 Lịch sử phát triển MIMO

 Những nền tảng đầu tiên về mô hình hệ MIMO đã xuất hiện từ những năm 70 do

A.R Kaye D.A George và W.Etten đề ra. Vào các năm 1984, 1986 Jack Winters và Jack 

Salz tại phòng thí nghiệm Bell Labs đã công bố một số bài viết về một số ứng dụng dùng

kỹ thuật tạo búp sóng, được sử dụng trong hệ MIMO sau này.

 Năm 1993, Arogyaswami Paulraj và Thomas Kailath đã đưa ra khái niệm hợp kênh

không gian sử dụng MIMO. Đến năm 1994 họ được chính phủ Hoa Kỳ cấp bằng sáng chế

cho những phát minh sử dụng hợp kênh không gian vào các ứng dụng truyền thông vô

tuyến.

 Năm 1996, một nhóm nghiên cứu từ đại học Stanford đã giới thiệu mô hình

MIMO.

Tháng 9 năm 1998, những thành công đầu tiên của công nghệ trong phòng thí

nghiệm đã được công bố bởi trung tâm nghiên cứu không dây thuộc Bell Labs ở New

Jersey.

Tháng 6 năm 1999 chứng kiến những thành công trong việc chứng minh mô hình

ngoài trời được giới thiệu bởi Gigabit Wireless Inc và đại học Stanford.

Tháng 9 năm 2002 Iospan Wireless Inc đưa ra sản phẩm thương mại đầu tiên. Sản

 phẩm này hỗ trợ cả mã phân tập và hợp kênh không gian.

Trong tương lai các ứng dụng dựa trên kỹ thuật MIMO hứa hẹn sẽ mang lại những

hiệu quả to lớn trong lĩnh vực truyền thông cũng như đáp ứng được những yêu cầu ngày

càng cao của người sử dụng.

3.3Những ưu điểm của hệ MIMO

a. Hệ số dải

Xét hệ thống SIMO gồm 1 anten phát và 2 anten thu, ở tại phía thu 2 anten sẽ nhận

được những tín hiệu khác nhau s1 và s2 của cùng tín hiệu s được truyền đi. Hai tín hiệu thu

được này có sự sai khác về biên độ và pha do sự khác nhau về điều kiện truyền dẫn.

Thông tin trạng thái kênh truyền được biết một cách chính xác tại nơi thu, thuật toán xử lí

tín hiệu có thể được áp dụng để kết hợp 2 tín hiệu s 1 và s2 vì thế mà công suất tại nơi thu

có thể được cải thiện.

Page 35: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 35/50

Hình 3.2. Hệ số dải

 Nói cách khác, SNR ở đầu ra là tổng của SNR trên các đường liên kết riêng biệt. cách tiếp

cận này đạt được hệ số dải và chất lượng tín hiệu được nâng cao. Nói chung, hệ số dải

được sử dụng để đo đạc sự tăng trung bình trong công suất tín hiệu thu. Hệ số dải của một

hệ thống MIMO phụ thuộc vào số lượng anten phát và anten thu và nó là một hàm số của

giá trị riêng lớn nhất trong ma trận kênh truyền.

b. Hệ số phân tập

Khái niệm hệ số phân tập được định nghĩa chính xác hơn khi giới thiệu phương pháp

mã hóa không gian thời gian. Chúng ta chỉ xem xét các vấn đề cơ sở tóm tắt ở đây. Một

nhận xét chính xác rằng công suất tín hiệu truyền trên kênh truyền không dây thay đổi với

các thông số về thời gian, tần số và không gian. Khi mà công suất tín hiệu bị tụt xuống

dưới ngưỡng, kênh truyền được coi là trong trạng thái thăng giáng. Phân tập chính là thể

hiện sự thăng giáng của hệ thống không dây. Ý tưởng cơ sở bên cạnh phân tập là các

 phiên bản thu được của cùng một tín hiệu trên các đường liên kết riêng biệt (còn được coi

là nhánh phân tập). khi mà số lượng nhánh phân tập tăng lên, xác suất mà một hay nhiều

nhánh không rơi vào trạng thái thăng giáng tại một khoảng thời gian bất kì sẽ tăng lên.

Phân tập hướng tới sự ổn định của đường liên kết không dây. Phân tập cũng hiện diện

trong các đường liên kết SISO trong khuôn dạng phân tập thời gian hay phân tập tần số.

Page 36: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 36/50

Hình 3.3. Phân tập tại nơi phát

Tuy nhiên, để đạt được mục tiêu này phải trả giá bằng việc giảm tốc độ truyền và tăng

 băng thông hệ thống. một hệ thống có nhiều anten thu và phát có hiện tượng phân tập

không gian. Có 2 loại phân tập không gian: phân tập phát và phân tập thu. Phân tập phát

là khi mà nơi phát có nhiều anten tương tự với phân tập thu. Sử dụng phân tập phát không

cần thiết phải biết trạng thái kênh truyền tại nơi phát. Tuy nhiên, thiết kế chính xác của tín

hiệu phát cần có các thông số về phân tập. mã hóa không gian thời gian là một kĩ thuật

truyền phân tập mạnh mẽ dựa trên việc lấy mã chéo trên 2 phương diện không gian và

thời gian để tạo ra phân tập. phân tập thu được áp dụng khi mà có nhiều anten thu. Nhiều

anten thu sẽ thu được các tín hiệu bản sao fade độc lập. kĩ thuật xử lí tín hiệu thích hợp

được áp dụng vì thế mà các tín hiệu thu được có biên độ giảm nhiều hơn khi mà so sánh

với hệ thống sử dụng một anten. Nói chung, ưu thế của kĩ thuật phân tập trong hệ MIMO

đòi hỏi việc tổ hợp cả 2 phương thức phân tập phát và phân tập thu.

c. Hệ số hợp kênh

 Như đã đề cập ở trên hệ số hopự kênh là chìa khóa mạnh mẽ được sử dụng trong mô

hình MIMO nhằm nâng cao dung năng hệ thống. Tác động của hệ số hợp kênh là có thể

được nhận được thông qua kĩ thuật hợp kênh không gian (hình 3.4)

Page 37: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 37/50

d. Nhiễu

 Nhiễu giao thoa trong hệ thống không dây giống như mạng điện thoại tế bào, nguyên

lí cơ bản là việc sử dụng lại tần số được tận dụng để tăng dung lượng hệ thống. Khôngmay là nhiễu đồng kênh CCI cũng xảy ra do chính việc sử dụng lại tần số. CCI được cộng

thêm vào ồn của hệ thống và làm giảm hiệu năng của cả hệ thống.

Hình 3.4. Hợp kênh không gian

Page 38: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 38/50

Hình 3.5. Sự suy giảm giao thoa

Hình 3.5 giải thích ý tưởng cơ bản của phương pháp giảm nhiễu giao thoa trong hệ

thống MIMO với 2 máy thu. Tín hiệu mong muốn s và tín hiệu không mong muốn I đến

tại bộ thu với kí hiệu phân chia không gian [s1s2]T và [i1i2]T tương ứng. bộ thu có thể lợi

dụng sự khác nhau về không gian tín hiệu để giảm nhiễu, vì thế có thể tăng được tỉ số tín

trên ồn signal to interference SIR. Việc giảm nhiễu giao thoa thường đòi hỏi kiến thức về

kênh truyền không gian sử dụng phân chia bởi tín hiệu mong muốn và tín hiệu không

mong muốn. việc giảm giao thoa cũng có thể được triển khai tại nơi phát thông qua kĩ 

thuật SDMA (space division multiple access). Mục đích là tăng cường công suất tín hiệu

tại bộ thu và giảm cực tiểu ồn giao thoa giữa các kênh. Việc giảm nhiễu giao thoa cho

 phép sử dụng lại và tăng cường dung năng hệ thống.

 Nói chung, hệ thống MIMO hứa hẹn mang lại hiệu quả phổ cao hơn hệ thốngSISO. MIMO cũng mang lại đòn bẩy động lực tăng chất lượng truyền dẫn (tỉ lệ lỗi). tuy

nhiên, nó có thể khó thực thi đồng thời trong hệ thống MIMO. Nguyên nhân chính là bậc

không gian tự do có giới hạn và nguyên lí trao đổi hiện diện trong đó. Chiến lược tạo tín

hiệu không gian thời gian tối ưu là một chức năng của kênh truyền không dây. 

3.4 Mô hình Software Defined Radio cho hệ đo thử kênh MIMO

Software Defined Radio (SDR) là một hệ truyền thông vô tuyến trong đó các thành phần

đặc trưng trên phần cứng (Bộ lọc, bộ diều chế/giải điều chế, .v.v…) đều được sử dụng thông

qua các phần mềm trên máy tính hoặc các thiết bị kết nối với máy tính. Sau đây là mô hình

tổng quát cho hệ đo thử kênh MIMO sử dụng FPGA. Hệ đo gồm một bộ phát và một bộ thu.

3.4.1. Bộ phát

Dữ liệu ở bộ phát được nhân với một chuỗi Walsh có chiều dài 32 cho mỗi đường

độc lập của kênh MIMO 4x4. Một bộ lọc cosin-tăng được dùng để tạo dạng xung cho 4

tín hiệu băng cơ sở trước khi được đưa lên tần số trung gian IF. Một bản mạch sẽ đưa bốn

dạng sóng IF (TXi, 1≤ i ≤ 4) lên dải tần RF 2.5 GHz để truyền trong không gian bằng hệ

thống các ăngten phát.

Bộ phát cho kênh MIMO 4x4 hoạt động ở dải tần 902-928 MHz do ĐH Alberta,

Canada đưa ra, sử dụng 4 ăngten có thể chỉnh khoảng cách, một kit FPGA Xinlinx Virtex-

E2000, 4 bộ DAC 12 bit (AD9762) và 4 bộ ADC 12 bit (AD9432). FPGA có xung nhịp

50 Mhz, tạo 4 mã Walsh độ dài 32.Mỗi mã lặp lại liên tục với tần số 15,625 MHz và tốc

Page 39: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 39/50

độ chip mỗi kênh là 500kchip/s, chu kỳ chip tương ứng khoảng cách lan truyền 600m

trong môi trường. Tần số trung gian IF dược sử dụng là 12,5 MHz. Bốn đường tín hiệu IF

này được đưa ra khỏi FPGA thông qua DAC (xung nhịp 50 MHz) và trở thanh tín hiệu

tương tự. Tín hiệu này được đưa vào một bộ lọc thông thấp với tần số cắt 15 MHz. Bộ RF

sẽ đưa 4 tín hiệu sóng độc lập IF này lên dải tần 902-928 MHz và phát ra ngoài khônggian.

3.4.2 Bộ thu

Bộ thu bao gồm hệ nhiều ăngten thu như bên phát. Mỗi đường tín hiệu nhận được

(RXi, 1≤i ≤4 ) sẽ được đưa từ giải tần RF xuống dải tần IF. Sau đó mỗi đường tín hiệu sẽ

được lấy mẫu và được đưa thành 2 nhánh I, Q. Một bộ tương quan mã Walsh ở bên thu

sẽ tiến hành lọc mã phù hợp, những dữ liệu tư mỗi đường sẽ được tương quan với mã

Walsh tương ứng. Kết quả của quá trình lọc mã phù hợp sẽ được đưa qua bộ bình phươngvà cộng để đưa đến bộ tái tạo pha. Các kết quả này sẽ được đưa qua bộ biến đổi ADC để

tính độ lớn. Từ các dữ liệu nhận được máy tính sẽ xác định ma trận kênh. Khi đã xác định

được ma trận kênh, chúng ta hoàn toàn có thể tính chính xác hạng của ma trận kênh, từ đó

tính được dung năng kênh truyền.

Bộ thu trong mô hình của ĐH Alberta, Canadasử dụng bộ hạ tần với 4 đường độc

lập. Mỗi đường tín hiệu nhận được sẽ được đưa từ tần số RF xuống tần số IF 12,5 MHz

 bằng module RF. Sau đó được đưa vào bộ ADC của FPGA với xung nhịp 50 MHz. Các

tín hiệu sau đó được đưa về băng cơ sở và được FPGA xử lý.

Page 40: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 40/50

Hình 3.6. Sơ đồ bộ phát sử dụng FPGA của ĐH Alberta, Canada

Hình 3.7. Sơ đồ bộ thu sử dụng FPGA của ĐH Alberta, Canada

Page 41: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 41/50

Chương 4

Kết quả thực nghiệmĐo kênh MIMO là một bài toán phức tạp, không chỉ đòi hỏi việc nắm chắc các lý thuyết

về truyền tin, xử lý tín hiệu,.v.v… mà bên cạch đó cũng cần những kỹ năng thành thạo

trong việc sử dụng các công cụ thiết kế. Vì vậy trong bài luận văn này em sẽ chỉ trình bày

một số các kết quả đã thực hiện được trong thời gian vừa qua. Cụ thể, đó là sử dụng

FPGA để thiết kế bộ đưa tin hiệu từ băng cơ sở lên tần số trung gian IF ở bên phát và hạ

tần tín hiệu từ tần số trung gian về băng cơ sở ở bên thu.

4.1 Cơ sở lý thuyết

Giả sử bên phát ta có tín hiệu với biên độ A. Tín hiệu này được nhân với sóng sin

có tần số trung gian IF (12,5 MHz): Sin(ωt). Ta có tín hiệu truyền đi là A sin(ωt). Ở bên

thu ta phát hai tín hiệu Sin, Cos có cùng tần số IF như bên phát. Nhưng do trong quá trình

truyền có sự lệch pha giữa bên thu và bên phát nên hai bên sẽ không cùng pha và giả sử

tín hiệu bên thu và phát lệch nhau φ ta có hai tín hiệu tạo ra bên thu là Sin(ωt+φ) và

Cos(ωt+φ). Tại bên thu ta nhân tín hiệu nhận được với hai tín hiệu này ta có:

A sin(ωt). Sin(ωt+φ) = A [cosφ-cos(2ωt+φ)]A sin(ωt).Cos(ωt+φ) = A[sinφ + sin(2ωt+φ)]

 Như vậy trong hai phương trình trên ta thấy có hai thành phần, trong đó có thành

 phần tần số cao 2f= 25 MHz. Sử dụng bộ lọc thông thấp ta sẽ loại bỏ được thành phần này

và thu được hai nhánh I, Q ở băng cơ sở A cosφ và Asinφ. Như vậy tín hiệu nhận được sẽ

cùng dạng với tín hiệu bên thu nhưng biên độ giảm do có yếu tố lệch pha.

4.2 Mô hình thiết kế

Page 42: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 42/50

4.2.1 Mô hình bên phát

Hình 4.1. Mô hình bên phát

-Walsh code generator: bộ phát chuỗi Walsh 8 bit, tốc độ 800k 

-Data generator: bộ phát dữ liệu tốc độ 100k 

-IF generator: bộ phát sóng sin tần số 12,5 MHz (IF)

Tín hiệu cần truyền được nhân với tín hiệu Walsh để tương quan ở bên thu. Tín

hiệu sau khi nhân sẽ được đưa lên tần số trung gian IF (12,5 MHz) bằng cách nhân với tín

hiệu IF lấy từ bộ IF Generator. Sau đó tín hiệu này được đưa qua bộ DAC2 trở thành tín

hiệu tương tự (Signal out) và truyền đi.

4.2.2 Mô hình bên thu

Page 43: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 43/50

Hình 4.2. Mô hình bên thu

-IF Sin generator: Bộ phát sóng sin có tần số IF (12,5 MHz)

-IF Cos generator: Bộ phát sóng cos có tần số IF (12,5 MHz)

Tín hiệu nhận được từ ở bên thu qua ADC2 trở thành tín hiệu số. Tín hiệu nàyđược nhân lần lượt với bộ phát sóng sin và cos có tần số IF. Hai tín hiệu sau khi nhân

được đưa qua bộ lọc thông thấp để lọc hết các tần số cao và cho các tín hiệu băng cơ sở.

Page 44: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 44/50

4.3 Kết quả mô phỏng

Page 45: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 45/50

Hình 4.3. Mô phỏng bên phát

Hình 1: Tín hiệu Sin với tần số trung gian IF (12,5 MHz)Hình 2: Tín hiệu sau khi đã nhân với Walsh

Hình 3: Tín hiệu sau khi đã nhân với tần số trung gian IF

Page 46: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 46/50

Hình 4.4. Mô phỏng bên thu khi có trễ (φ≠0)

Hình 1: Tín hiệu nhận được.Hình 2: Tín hiệu nhận được sau khi nhân với tín hiệu Sin tần số IF.

Hình 3: Tín hiệu nhánh Q nhận được sau khi lọc.

Hình 4: Tín hiệu nhận được sau khi nhân với tín hiệu Cos tần số IF.

Hình 5: Tín hiệu nhận nhánh I nhận được sau khi lọc.

Page 47: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 47/50

Hình 4.5. Mô phỏng bên thu khi không có trễ (φ=0)Hình 1: Dữ liệu trước khi đưa lên tần số IF.

Hình 2: Nhánh Q có dạng giống dữ liệu nhưng biên độ nhỏ hơn.

Hình 3: Nhánh I xấp xỉ bằng 0 (do φ=0 nên sinφ=0).

Page 48: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 48/50

4.4 Kết quả thực nghiệm trên FPGA

Kết luận

Page 49: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 49/50

Hiện nay kỹ thuật MIMO vẫn thu hút đuợc sự quan tâm của các nhà khoa học, các

viện nghiên cứu, các trường đại học nhằm khắc phục các yếu điểm của truyền thông vô

tuyến cũng như hướng tới một môi trường truyền dẫn với dung lượng khổng lồ mà hệ

thống nhiều anten trong kênh truyền MIMO có thể mang lại. Trong tương lai, kỹ thuật

này hứa hẹn sẽ mở ra một triển vọng mới cho các thiết bị không dây với đường truyền tốcđộ cao khi các ứng dụng của MIMO đi vào thực tế. Vì vậy, việc tiến hành đo kênh MIMO

trong môi trường indoor là một việc cần thiết để có thể đánh giá được kênh truyền. Do

đây là một bài toán phức tạp, đòi hỏi những kiến thức vững chắc về lý thuyết điều chế

cũng như các kỹ thuật xử lý tín hiệu nên việc sử dụng FPGA để thiết kế mô hình đo kênh

là một giải pháp hợp lý. Đặc biệt với điều kiện phòng thí nghiệm được sở hữu các bộ KIT

tốc độ cao của Xilinx và các công cụ xử lý rất mạnh là một lợi thế cho các nhà thiết kế.

Trong thời gian tới, nhóm nghiên cứu sẽ tiếp tục phân tích các kỹ thuật sử dụng trong hệ

MIMO, đồng thời làm chủ FPGA, tiến tới sử dụng FPGA để hoàn thiện mô hình thiết kếhệ Testbed cho kênh MIMO 4 x 4 trong điều kiện indoor.

Tài liệu tham khảo

Page 50: vn CongNghefpga NgonNguvhdl

8/4/2019 vn CongNghefpga NgonNguvhdl

http://slidepdf.com/reader/full/vn-congnghefpga-ngonnguvhdl 50/50

[1] David Tse – Berkely Pramod Viswanath, “Spatial Multiplexing and Chanel

Modeling”, 7.1, Fundamentals of wireless communication, August 2004

[2] John G.Proakis, Dimitris G.Manolakis, Digital Signal Processing, Prentice – Hall

international Inc, 1996.

[3] Nguyên Viết Kính, Trịnh Anh Vũ ,Thông tin số , NXB Giáo Dục, Hà Nôi, 2007.

[4] Tống Văn On, Thiết kế mạch số với VHDL & Verilog , NXB Lao Động Xã Hội, Hà

 Nội, 2007.

[4] Website: www.xilinx.com

[5] Website: www.wikipedia.com