Đề tài Thiết kế bộ phát mã walsh cho hệ đo kênh mimo dùng công nghệ Fpga

MỤC LỤC

MỞ ĐẦU 1

CHƯƠNG 1: GIỚI THIỆU VỀ KĨ THUẬT MIMO VÀ FPGA 2

1.1. Giới thiệu về MIMO. 2

1.1.1. Khái niệm. 2

1.1.2. Lịch sử phát triển. 2

1.1.3. Phân loại. 3

1.1.4. Ứng dụng của MIMO. 4

1.2. Giới thiệu về FPGA. 4

1.2.1. Khái niệm. 4

1.2.2. Ứng dụng. 6

1.2.3. Hệ thống mạch liên kết. 7

1.2.4. Các phần tử tích hợp sẵn. 7

CHƯƠNG 2: NGÔN NGỮ VÀ MÔI TRƯỜNG LẬP TRÌNH CHO FPGA 9

2.1. Ngôn ngữ lập trình cho FPGA. 9

2.1.1 Giới thiệu. 9

2.1.2. Ngôn ngữ VHDL. 9

2.1.2.1. Khái niệm. 9

2.1.2.2. Cấu trúc một mô hình hệ thống mô tả bằng VHDL. 10

2.1.3. Giới thiệu khái quát về ngôn ngữ Verilog. 12

2.2. Môi trường lập trình cho FPGA. 14

2.2.1. ISE. 14

2.2.2. Các bước để tạo ra một thiết kế với ISE. 15

2.2.2.1. Tạo một Project. 15

2.2.2.2. Tạo mã nguồn VHDL. 16

2.2.2.3. Mô phỏng. 17

2.2.2.4. Tạo ràng buộc thời gian. 19

2.2.2.5. Gán chân. 19

CHƯƠNG 3: CÁC ĐẶC ĐIỂM CƠ BẢN CỦA VIRTEX 4 VÀ CÁC PHẦN MỀM HỖ TRỢ 20

3.1. Những đặc điểm cơ bản của XtremeDSP Development Kit Pro (Virtex IV). 20

3.1.1. Giới thiệu chung. 20

3.1.2. Các thành phần chính của Virtex 4. 21

3.2. Các phần mềm chuyên dụng hỗ trợ kit Virtex 4. 28

3.2.1. FUSE. 28

3.2.2. Matlab và các gói công cụ Xilinx hỗ trợ cho Matlab. 28

CHƯƠNG 4: THỰC HIỆN MÔ HÌNH THIẾT KẾ VỚI KIT VIRTEX-4 32

4.1. Giới thiệu. 32

4.2. Hai khối chức năng chính trong sơ đồ. 32

4.2.1. Khối tạo mã Walsh. 32

4.2.1.1. Lý thuyết về mã Walsh. 32

4.2.1.2. Thực hiện trong thiết kế. 35

4.2.1.3. Sơ đồ và kết quả mô phỏng bộ tạo 2 dãy Walsh (4,16) và (3,16). 35

4.2.2. Khối mã hóa cosin tăng (Raised-Cosine). 36

4.2.2.1. Lý thuyết. 36

4.2.2.2. Thực hiện trong thiết kế. 40

4.2.3. Khối tạo dữ liệu. 43

4.2.4. Các khối khác. 43

4.3. Mô hình thiết kế và kết quả thu được. 44

4.3.1. Mô hình mô phỏng với các khối trong gói cung cấp bới Xilinx và trong System Generator. 44

4.3.2. Kết quả mô phỏng. 45

4.3.3. Thực hiện chương trình trên Kit Virtex 4 và kết quả thu được. 45

4.3.3.1. Thực hiện trên Kit Virtex 4. 45

4.3.3.2. Kết quả thu được. 46

KẾT LUẬN 47

TÀI LIỆU THAM KHẢO 48

 

doc51 trang | Chia sẻ: lethao | Lượt xem: 2082 | Lượt tải: 5download
Bạn đang xem trước 20 trang tài liệu Đề tài Thiết kế bộ phát mã walsh cho hệ đo kênh mimo dùng công nghệ Fpga, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
hệ thống lớn (trong đó các hệ con đó được thiết kế độc lập). - Thứ sáu là khả năng hỗ trợ thiết kế mức lớn và khả năng sử dụng lại các thiết kế: VHDL được phát triển như một ngôn ngữ lập trình bậc cao, vì vậy nó có thể được sử dụng để thiết kế một hệ thống lớn với sự tham gia của một nhóm nhiều người. Bên trong ngôn ngữ VHDL có nhiều tính năng hỗ trợ việc quản lý, thử nghiệm và chia sẻ thiết kế. Và nó cũng cho phép dùng lại các phần đã có sẵn. 2.1.2.2. Cấu trúc một mô hình hệ thống mô tả bằng VHDL Mục đích của phần này là nhằm giới thiệu sơ qua về cấu trúc khung cơ bản của VHDL khi mô tả cho một mô hình thiết kế thực. Thông thường một mô hình VHDL bao gồm ba phần: thực thể (entity), kiến trúc (architecture) và các 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). + Thực thể (entity) Đây là nơi chứa các khai báo thực thể (là các port giao tiếp giữa FPGA và các tín hiệu bên ngoài các port này được sử dụng như là lớp vỏ của kiến trúc thiết kế) và có thể bao gồm các tùy chọn “generic” là khai báo chung có thể dễ dàng sửa đổi khi cần. + Kiến trúc (architecture) Phần thứ hai trong mô hình VHDL là khai báo kiến trúc của chương trình. Mỗi một khai báo thực thể đều phải đi kèm với ít nhất một kiến trúc tương ứng. VHDL cho phép tạo ra hơn một kiến trúc cho một thực thể. Phần khai báo kiến trúc 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ên trong 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 kiến trúc là nhãn được đặt tuỳ theo người xử dụng. Có hai cách mô tả kiến trúc của một phần tử (hoặc hệ thống) đó là mô hình hoạt động (Behaviour) hay mô tả theo mô hình cấu trúc (Structure). Tuy nhiên một hệ thống có thể bao gồm cả mô tả theo mô hình hoạt động và mô tả theo mô hình cấu trúc. + Mô tả kiến trúc theo mô hình hoạt động Mô hình hoạt động mô tả các hoạt động của hệ thống (hệ thống đáp ứng với các tín hiệu vào như thế nào và đưa ra kết quả gì ở đầu ra) dưới dạng các cấu trúc ngôn ngữ lập trình bậc cao. Cấu trúc đó có thể là PROCESS, WAIT, IF, CASE, FOR-LOOP… + Mô tả kiến trúc theo mô hình cấu trúc Mô hình cấu trúc của một phần tử (hoặc hệ thống) có thể bao gồm nhiều cấp cấu trúc bắt đầu từ một cổng logic đơn giản đến xây dựng mô tả cho một hệ thống hoàn thiện. Thực chất của việc mô tả theo mô hình cấu trúc là mô tả các phần tử con bên trong hệ thống và sự kết nối của các phần tử con đó. Như với ví dụ mô tả mô hình cấu trúc một flip-flop RS gồm hai cổng NAND có thể mô tả cổng NAND được định nghĩa tương tự như ví dụ với cổng NOT, sau đó mô tả sơ đồ móc nối các phần tử NAND tạo thành trigơ RS. + Cấu trúc process Process là khối cơ bản của việc mô tả theo hoạt động. Process được xét đến như là một chuỗi các hành động đơn trong suốt quá trình dịch. S S B S S/B S B B B B B B Hình 4: Cấu trúc process S: Mô hình cấu trúc B: Mô hình hoạt động S/B: Mô hình kết hợp Cấu trúc tổng quát [Process label] Process [(sensitive_list )] Process declarative part Begin …. End process Trong đó các phần đặt trong dấu [ ] thì có thể có hoặc không. - process_label: (nhãn lệnh) là tuỳ thuộc người lập trình đặt tên - sensitivity_list: Danh sách các yếu tố kích thích hoạt động. + Môi trường kiểm tra (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. Data Source (stimuli Generator) Observer DUT Generics Testbench Entity Hình 5: Sơ đồ khối của 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). 2.1.3. Giới thiệu khái quát về ngôn ngữ Verilog Verilog HDL là một trong hai ngôn ngữ mô phỏng phần cứng thông dụng nhất cùng với VHDL được dùng trong thiết kế IC. Verilog HDL cho phép mô phỏng các thiết kế dễ dàng, sửa chữa lỗi, hoặc thực nghiệm bằng những cấu trúc khác nhau. Các thiết kế được mô tả trong Verilog HDL là những kỹ thuật độc lập, dễ thiết kế, dễ tháo gỡ và thường dễ đọc hơn ở dạng biểu đồ, đặc biệt là ở các mạch điện lớn. Verilog thường được dùng để mô tả thiết kế ở bốn dạng Thuật toán (một số lệnh giống ngôn ngữ C như: if, case, for,while…). Chuyển đổi thanh ghi (kết nối bằng các biểu thức Boolean). Các cổng kết nối (cổng: OR, AND, NOT…). Chuyển mạch (BJT, MOSFET). Ngôn ngữ này cũng chỉ rõ cách thức kết nối, điều khiển vào/ra trong mô phỏng. Khai báo module Một module là bản thiết kế chủ yếu tồn tại trong Verilog. Dòng đầu tiên của khai báo module chỉ rõ danh sách tên và port (các đối số). Những dòng kế tiếp chỉ rõ dạng I/O (input, output, hoặc inout) và chiều rộng của mỗi port. Mặc định chiều rộng port là 1 bit. Sau đó, những biến port phải được khai báo wire, wand, …, reg. Mặc định là wire. Những ngõ vào đặc trưng là wire khi dữ liệu được chốt bean ngoài module. Các ngõ ra là dạng reg nếu những tín hiệu của chúng được chứa trong khối always hoặc initial. Chỉ thị liên tiếp Các chỉ định liên tiếp được dùng để gán một giá trị lên trên một wire trong một module. Đó là các chỉ định thông thường bên ngoài khối always hoặc khối initial. Các chỉ định liên tiếp được thực hiện với một lệnh gán (assign) rõ ràng hoặc bằng sự chỉ định một giá trị đến một wire trong lúc khai báo. Chú ý rằng, các lệnh chỉ định liên tiếp thì tồn tại và được chạy liên tục trong suốt quá trình mô phỏng. Thứ tự các lệnh gán không quan trọng. Mọi thay đổi bên phải của bất cứ ngõ vào sẽ lập tức thay đổi bên trái của các ngõ ra. Module instantiations Những khai báo module là những khuôn mẫu mà nó được tạo nên từ các đối tượng thực tế (instantiation). Các module đơn cử bên trong các module khác, và mỗi dẫn chứng tạo một đối tượng độc nhất từ khuôn mẫu. Ngoại trừ đó là module mức trên là những dẫn chứng từ chính chúng. Các port của module ví dụ phải thỏa những định nghĩa trong khuôn mẫu. Đây là mặt lý thuyết: bằng tên, sử dụng dấu chấm (.) ”.tên port khuôn mẫu (tên của wire kết nối đến port)”. Bằng vị trí, đặt những port ở những vị trí giống nhau trong danh sách port của cả khuôn mẫu lẫn instance. BEHAVIORAL Verilog có 4 mức khuôn mẫu: • Chuyển mạch. • Cổng. • Mức tràn dữ liệu. • Hành vi hoặc thủ tục được đề cập ở bên dưới. Các lệnh thủ tục Verilog được dùng tạo một mẫu thiết kế ở mức cao hơn. Chúng chỉ ra những cách thức mạnh của vệc làm ra những thiết kế phức tạp. Tuy nhiên, những thay đổi nhỏ n phương pháp mã hóa có thể gây ra biến đổi lớn trong phần cứng. Các lệnh thủ tục chỉ có thể được dùng trong những thủ tục. Những chỉ định theo thủ tục: Là những chỉ định dùng trong phạm vi thủ tục Verilog (khối always và initial). Chỉ biến reg và integers (hoặc chọn đơn bit/ nhóm bit của chúng hoặc kết nối thông tin) có thể được đặt bên trái dấu ‘=’ trong thủ tục. Bên phải của chỉ định là một biểu thức mà có thể dùng bất cứ dạng toán tử nào. Delay trong chỉ định: Trong chỉ định trễ ∆t là khoảng thời gian trải qua trước khi một lệnh được thực thi và bên trái lệnh gán được tạo ra. Với nhiều chỉ định trễ (intra-assignment delay), bên phải được định giá trị trực tiếp nhưng có một delay của ∆t trước khi kết quả được đặt bên trái lệnh gán. Nếu thêm một quá trình thay đổi nữa cạnh bên phải tín hiệu trong khoảng thơi gian ∆t, thì không cho kết quả ở ngõ ra. Delay không được hỗ trợ bởi các công cụ. Cấu trúc chương trình dùng ngôn ngữ Verilog // Khai báo module Module tên chương trình (tên biến I/O); // tên chương trình trùng tên file.v. Input [msb:lsb] biến; Output [msb:lsb] biến; Reg [msb:lsb] biến reg; Wire [msb: lsb] biến wire; // Khai báo khối always, hoặc khối initial. … các lệnh … 2.2. Môi trường lập trình cho FPGA Hiện nay, có nhiều nhà cung cấp sản phẩm FPGA trên thị trường như Altera, Xilinx, Actel… Sản phẩm của môi nhà cung cấp lại có những ưu, nhược điểm riêng do các hãng đều sản xuất theo công nghệ riêng của mình. Chính vì vậy mỗi hãng lại đưa ra một sản phẩm phần mềm riêng đi kèm làm môi trường thiết kế và nạp cho chip FPGA của hãng đó như của Altera là Quartus II, Actel có Actel Libero còn Xilinx có ISE. Trong khóa luận này em chỉ xin giới thiệu về ISE – phần mềm hỗ trợ cho Kit Virtex 4 của Xilinx mà em đã sử dụng để thực hiện khóa luận này. 2.2.1. ISE 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ế. Giao diện phần mềm ISE Hình 6: 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ó một 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 một thiết kế trong file nguồn đã chọn). Để chạy một thiết kế, ta click đúp vào thiết kế đó, khi thiết kế đã được thực thi thành công, một dấu tích xanh sẽ xuất hiện bên cạnh thiết kế đó. Khi chạy một thiết kế, ISE sẽ tự động chạy các thiết kế nhỏ hỗ trợ cho thiết kế đó. 2.2.2. Các bước để tạo ra một thiết kế với ISE 2.2.2.1. Tạo một Project Chọn File > New Project…xuất hiện thuật sĩ tạo Project mới. Gõ tên Project trong trường Project Name field. Chọn đến thư mục muốn chứa Project rồi chọn Next. Chú ý rằng HDL phải được lựa chọn từ danh sách Top-Level Source Type, các thông số khác chọn như trong hình 7. Hình 7: Các lựa chọn tạo project với Virtex 4. 2.2.2.2. Tạo mã nguồn VHDL Để tạo ra file mã nguồn VHDL cho Project ta làm như sau: Chọn New Source trong New Project Wizard. Chọn kiểu mã nguồn VHDL Module. Gõ từ bàn phím tên của file mã nguồn là counter (ví dụ là tạo ra mã nguồn cho counter). Quan sát thấy rằng hô kiểm tra Add to project được lựa chọn. Kích Next. Khai báo các cổng cho bộ counter bằng cách điền các thông tin như hình dưới đây: Hình 8: Khai báo các cổng cho một ví dụ tạo một counter 4 bit. Kich Next cho tới khi kết thúc và một file VHDL được tạo ra với các khai báo ban đầu là các cổng in, out… Từ đây ta có thể viết mã nguồn VHDL cho bộ counter nhưng ta cũng có thể lấy counter trong ví dụ có sẵn của ISE. Để sử dụng ví dụ này ta làm như sau: Mở ví dụ bằng cách: Edit > Language Template… Dùng biểu tượng “+” duyệt đến mã nguồn của ví dụ như sau: VHDL > Synthesis Constructs >Coding Examples>Counters>Binary>Up/Down Couter>Simple Counter. Để dùng lựa chọn Simple Counter ta chọn Edit > Use in File hoặc chọn nút Use Template in File trên Toolbar. Đóng cửa sổ Language Template. Như vậy mã VHDL trong ví dụ đã được chèn vào file mã nguồn mà ta muốn tạo. Để chương trình này có thể chạy đúng được ta phải quan sát và sửa lại một số chỗ cho phù hợp với khai báo ban đầu. Đó là những vị trí mà chương trình đã đánh dấu trong dấu “” để cuối cùng ta được file mã nguồn có nội dung như sau: entity counter is Port ( Clock : in STD_LOGIC; Direction : in STD_LOGIC; c : out STD_LOGIC_VECTOR (3 downto 0)); end counter; architecture Behavioral of counter is begin process (Clock) begin if Clock='1' and Clock'event then if Direction ='1' then c <= c + 1; else c <= c - 1; end if; end if; end process; end Behavioral; 2.2.2.3. Mô phỏng Ta có thể dùng chức năng mô phỏng của ISE để kiểm tra chức năng của thiết kế vừa được tạo ra: Tạo dạng sóng muốn kiểm tra ta làm như sau: Chọn file Counter từ cửa sổ Source. Tạo một test bench từ Project > New Source. Trong cửa sổ New Source Wizard chọn Test Bench WaveForm và gõ từ bàn phím counter_tbw trong trường tên file rồi kick Next cho đến khi xuất hiện cửa sổ: Hình 9: Thiết lập các tham số mô phỏng. Đặt các thông số như hình 9 và kích Finish: Để chạy mô phỏng ta thiết lập các thông số như khoảng thời gian đếm tiến, thời gian đếm lùi bằng cách kích chuột vào vị trí mà ta muốn cho kết thúc đếm tiến khi đó dạng xung bắt đầu từ đó sẽ ở vị trí logic 0 và bắt đầu đếm lùi. Ta có thể tùy chọn các khoảng đếm tiến hoặc lùi theo ý muốn. Hình 10: Thiết lập thời gian đếm tiến, lùi cho counter. Sau đó đóng cửa sổ này lại và chuyển sang bước mô phỏng. Mô phỏng Tại cửa sổ Source ta chọn Behavioral Simulation và chọn counter_tbw. Tại cửa sổ Process ta kích chuột vào dấu “+” rồi kích đúp vào Generate Expected Simulation Results để thực hiện mô phỏng. Ta được kết quả như sau: Hình 11: Kết quả mô phỏng của counter. 2.2.2.4. Tạo ràng buộc thời gian Bước này sẽ tạo ra ràng buộc về thời gian, là thời gian mà ta ràng buộc khi chạy trong FPGA. Chọn Synthesis/Implementatorn. Chọn file nguồn counter HDL. Kích vào dấu “+” ở User Constraints và chọn Create Timing Constraints. Sau bước này sẽ tạo ra cho bạn file.UCF và ta có thể thiết lập các thông số theo tính toán mà thiết kế sẽ phải đáp ứng. 2.2.2.5. Gán chân Chọn file nguồn là counter trên cửa sổ Source. Chọn Assign Package Pins trong cửa sổ Process. Từ đây ta có thể gắn chân để có thể đưa thiết kế vào phần cứng thật. Tùy từng dòng cụ thể mà ta đặt chân căn cứ vào bảng chân được cung cấp bởi nhà sản xuất. Kết thúc bước này ta có thể đưa thiết kế vào phần cứng và quan sát trên các lối vào ra của phần cứng bằng những thiết bị hỗ trợ quan sát như giao động ký hay đèn LED. CHƯƠNG 3: CÁC ĐẶC ĐIỂM CƠ BẢN CỦA VIRTEX 4 VÀ CÁC PHẦN MỀM HỖ TRỢ 3.1. Những đặc điểm cơ bản của  XtremeDSP Development Kit Pro (Virtex IV) 3.1.1. Giới thiệu chung Là công ty đầu tiên nghiên cứu ra FPGA, Xilinx luôn là một hãng đi đầu trong việc nghiên cứu và cho ra những dòng sản phẩm hỗ trợ cho giáo dục cũng như các bộ Kit chuyên dụng sử dụng trong nhiều ứng dụng cụ thể. The XtremeDSP Development Kit 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. Đây là một công cụ rất mạnh được sử dụng trong nhiều ứng dụng đặc biệt là các ứng dụng về DSP. Virtex 4 có hai bộ ADC và hai bộ DAC với độ phân giải là 14 bit với tốc độ xung nhịp cao cho phép người dùng có thể lập trình và xử lý cho nhiều ứng dụng không chỉ riêng trong DSP như các ứng dụng 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. BenONE-Kit là một đế dùng để gắn lên đó các module hỗ trợ cho các tính năng khác. Dưới đây là một số hỗ trợ của 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 160MSPS). • 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ị. Dưới đây là một số hình ảnh mô tả về Kit Virtex 4. Hình 12: Giao diện ngoài của XtremeDSP Development Kit Pro. Hình 13: Giao diện phía trong và các thành phần của Virtex IV Pro. 3.1.2. Các thành phần chính của Virtex 4 Chíp FPGA (XC4VSX35-10FF668) Các đặc điểm chính của XC4VSX35-10FF668: - Rocket IO Transceiver Blocks: 8 - PowerPC Processor Blocks: 2 - LogicCells: 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-II sử dụng trong XtremeDSP Development Kit Pro 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. Sơ đồ khối thể hiện kết nối giữa các bộ ADC được thể hiện như hình 14. Với kit Virtex 4 hay một số dòng kit của Xilinx có hỗ trợ XC2V80-4CS114 có nhiệm vụ điều khiển xung Clock cho ADC. Như vậy, ta có thể lựa chọn được tốc độ lấy mẫu phù hợp với yêu cầu thiết kế với từng bài toán cụ thể. Hình 14: 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. Hình 15: Sơ đồ khối của bộ ADC (AD6645). 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. Hình 16: Sơ đồ của ADC clock. Các bộ DAC (AD9772A) Module BenADDA DIME-II sử dụng trong XtremeDSP Development Kit Pro 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 qủa kết nối MCX. Hình 17: Sơ đồ giao tiếp bộ DAC với GPGA. 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ừ 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. Hình 18: Sơ đồ khối tiếp bộ DAC. 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ớ. Đặ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. Hình 19: Sơ đồ ZBT SRAM. ZBT SRAM Clocking Hai bộ nhớ ZBT SRAM trên bộ KIT có thể được gõ nhịp độc lập thông qua việc chèn thêm tín hiệu xung nhịp 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 xung nhịp giữa ZBT SRAM và chân phản hồi có xung nhịp cùng 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. Bảng1: Ký hiệu chân của ZBT SRAM clocking. 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 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 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, 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 20: Sơ đồ hệ thống clock. LED hiển thị XtremeDSP Development Kit 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 hoạt động của bộ KIT. Có các LED kiểm tra 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. Với sự trợ giúp của các LED hiển thị này người thiết kế có thể kiểm tra một cách trực quan phản ứng của phần cứng đối với các yêu cầu thiết kế. Tuy chỉ là một ứng dụng nhỏ nhưng đôi khi nó có ý nghĩa rất quan trọng đặc biệt cho những người bắt đầu tiếp cận với FPGA hay làm chức năng báo hiệu kể cả trong các project lớn. Hình 21: Sơ đồ các LED trạng thái nhìn từ ngoài. Hình 22: Các LED bên trong Kit Virtex 4. Trên đây chỉ là những nét giới thiệu rất sơ lược về một số đặc tính của Kit Virtex 4. Để có thể sử dụng Virtex 4 như một công cụ hỗ trợ đắc lực cho việc nghiên cứu, xây dựng các mô hình thử nghiệm thì còn cần phải đi sâu vào tìm hiểu, nghiên cứu từng đặc tính nhỏ như sơ đồ chân giao tiếp với các tín hiệu bên ngoài và các chân tín hiệu giao tiếp giữa các modul trong Kit... Ngoài ra việc sử dụng clock trong Virtex-IV cũng rất phức tạp đòi hỏi người nghiên cứu phải có một thời gian tìm hiểu và làm thực tập. 3.2. Các phần mềm chuyên dụng hỗ trợ kit Virtex 4 3.2.1. 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 một 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 23: Mô tả giao tiếp giữa FUSE với Computer và FPGA. 3.2.2. Matlab và các gói công cụ Xilinx hỗ trợ cho Matlab System Generator System generator là một công cụ thiết kế hệ thống giúp cho việc thiết kế các ứng dụng phần cứng trong FPGA và mô phỏng Simulink. Đó là 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 một thao tác đơn giản như ấn một 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 một bộ FPGA bằng System Generator bao gồm các bước sau: Mô phỏng thiết kế, tạo ra một 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

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

  • docThiết kế bộ phát mã walsh cho hệ đo kênh mimo dùng công nghệ fpga.doc