Đề tài Sử dụng FPGA để thiết kế mô hình Software Defined Radio cho hệ đo thử kênh MIMO

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

 

doc50 trang | Chia sẻ: lethao | Lượt xem: 2750 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đề tài Sử dụng FPGA để thiết kế mô hình Software Defined Radio cho hệ đo thử kênh MIMO, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
tả cụ thể như sau: Kiểu kiến trúc 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ệu Trong 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 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. 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. 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; 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 tham chiế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. 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 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. 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ợp nhiề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) 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 Defined Radio, 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 • 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 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 Chíp FPGA (XC4VSX35) Các đặc điểm chính của XC4VSX35: • 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 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. 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: -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ều nà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 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 • 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 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 • 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èn thê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. 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ều tớ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. 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ự. • 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. 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 XtremeDSP Development 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ể Hình 2.7. Sơ đồ hệ thống clock 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ấu hì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). 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ồm thiế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ế. 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 đỏ 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ều khiể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 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ào trong 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. 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. Hình 2.11. Các khối Block Set DSP Xilinx 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 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). Hình 2.12. Cửa sổ ước lượng tài nguyên 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ự động hợ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. 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. 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 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. 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. 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. 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. 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 đã 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. 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 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. Những ưu điểm của hệ MIMO 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 s1 và s2 vì thế mà công suất tại nơi thu c

Các file đính kèm theo tài liệu này:

  • docSử dụng FPGA để thiết kế mô hình Software Defined Radio cho hệ đo thử kênh MIMO.doc