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

Một phần của tài liệu BÁO CÁO TỐT NGHIỆP: TỔNG QUAN VỀ FPGA VÀ NGÔN NGỮ VHDL docx (Trang 25 - 51)

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

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.

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.

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).

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ự độ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.

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.

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

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 đã

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.

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 s1 và s2 vì thế mà công suất tại nơi thu có thể được cải thiện.

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ố.

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.

Một phần của tài liệu BÁO CÁO TỐT NGHIỆP: TỔNG QUAN VỀ FPGA VÀ NGÔN NGỮ VHDL docx (Trang 25 - 51)

Tải bản đầy đủ (PDF)

(51 trang)