6.1.1. Các khái niệm cơ bản
XPS: XPS (Xilinx Platform Studio) là một phần mềm đi kèm với bộ Kit phát triển nhúng EDK (Embedded Development Kit) của Xilinx.
XPS bao gồm một giao diện người dùng và các tất cả các công cụ cần thiết để thiết kế cả phần cứng và phần mềm của các hệ thống nhúng. Trong đó người dùng đồng thời có thể kiểm tra, gỡ rối ngay trong môi trường XPS.
EDK: EDK bao gồm các thành phần sau:
o Các bộ xử lý cứng IP được xây dựng sẵn cùng với ngoại vi của chúng.
o Thư viện cùng với các driver cho việc thiết kế phát triển phần mềm nhúng.
o Trình dịch và gỡ rối GNU cho các chương trình xây dựng trên C và C++ với MicroBlaze và PowerPC.
ISE: Môi trường phần mềm tích hợp ISE (Integrated Software Environment) là một phần mềm hệ phát triển của Xilinx cho phép nạp sản phẩm thiết kế trên các thiết bị logic khả trình Xilinx.
XPS sẽ tổng hợp các thiết kế phần cứng vi xử lý dựa trên các thành phần của ISE. Sau đó ánh xạ lên các chip FPGA đích, dịch thành chuỗi bit và nạp lên thiết bị. Do vậy chúng ta cần cài đặt cả EDK và ISE để thiết kế hệ xử lý nhúng.
Thiết kế hệ thống với XPS và ISE.
Khi một thiết kế FPGA bao gồm một bộ xử lý nhúng và các mạch logic, trước tiên chúng ta sẽ sử dụng XPS để xây dựng hệ thống xử lý nhúng. Sau đó, ISE sẽ phát triển các thành phần logic và các bước tiếp theo nhằm nạp sản phẩm cuối cùng lên FPGA.
6.1.2. Các công cụ hỗ trợ trong EDK
6.1.2.1. Thư viện nền XPS (Xilinx Platforme Studio)
XPS cung cấp một môi trường tích hợp để thiết kế phần cứng và phần mềm ứng dụng cho các hệ vi xử lý nhúng dựa trên các bộ vi xử lý MicroBlaze và PowerPC. XPS cũng bao gồm một trình soạn thảo và một giao diện quản lý project để người dùng soạn thảo mã nguồn cho chương trình ứng dụng. Thêm vào đó, XPS cho phép thiết lập cấu hình cho các bộ vi xử lý, thiết bị ngoại vi và bus kết nối với một trình soạn thảo hệ thống đồ hoạ.
6.1.2.2. Công cụ thiết kế phần cứng cơ bản Platgen (Hardware Platform Generation Tool)
Công cụ thiết kế phần cứng cho phép thiết kế hệ vi xử lý nhúng theo dạng mạng kết nối (netlists). Kết quả là ta nhận được các tệp có đuôi dạng HDL (Hardware Description Language) và EDIF (Electronic Data Interchange Format ).
Platgen sẽ tổng hợp và biên dịch các bộ vi xử lý nhúng trong mỗi thiết kế phần cứng bằng trình biên dịch XST.
6.1.2.3. Trình xây dựng hệ thống cơ bản BSB (Base System Builder)
BSB cho phép chúng ta xây dựng một thiết kế nhúng một cách nhanh chóng bằng cách sử dụng các chức năng và cấu hình cơ bản có sẵn phỏng theo các board mạch phát triển. Sau khi một hệ vi xử lý nhúng cơ bản đã được xây dựng, chúng ta có thể phát triển chúng bằng các công cụ trên XPS và ISE.
6.1.2.4. Công cụ tạo mẫu mô phỏng Simgen (Simulation Model Generation Tool)
Simgen cho phép chúng ta xây dựng các mẫu mô phỏng cho hệ xử lý nhúng dựa trên thiết kế phần cứng nhúng nguyên gốc (behavioral) hoặc mô phỏng cho một thiết kế hoàn chỉnh trên FPGA (timing-accurate).
6.1.2.5. Tạo dựng ngoại vi người dùng (Create and Import Peripheral) Công cụ này cho phép chúng ta xây dựng các ngoại vi phần cứng cho hệ vi xử lý nhúng, các ngoại vi này sau đó được sử dụng như tài nguyên của EDK.
6.1.2.6. Công cụ khởi tạo thư viện Libgen (Library Generation Tool) Libgen cho phép cấu hình và tạo ra các thư viện, driver cho các thiết bị ngoại vi, các file hệ thống và các trình quản lý ngắt cho hệ xử lý nhúng. Tức là tạo ra một môi trường cơ bản cần thiết cho chương trình ứng dụng của người dùng làm việc.
6.1.2.7. Công cụ tạo chuỗi bit Bitinit (Bitstream Initializer)
Bitinit thực hiện biên dịch mã lệnh phần mềm ứng dụng, khởi tạo bộ nhớ trên chip tạo ra file chạy.
6.1.2.8. Công cụ phát triển phần mềm GNU (Software Development Tools) Các chương trình ứng dụng nhúng được viết bởi C, C++ hoặc Assembler được dịch sang mã máy bởi trình biên dịch GNU. GNU là một phần của EDK với mục đích dùng riêng cho các bộ xử lý PowerPC và MicroBlaze.
6.1.2.9. Công cụ gỡ rối cho các bộ vi xử lý của Xilinx XMD (Xilinx Microprocessor Debugger)
Chúng ta có thể sử dụng các công cụ XMD và GDB (GNU Debugger) để gỡ rối cho các chương trình ứng dụng hoặc trên hệ phát triển với bộ mô phỏng hoặc gỡ rối trực tiếp trên các board FPGA.
6.1.3. Giao diện người dùng của XPS
Giao diện XPS bao gồm các cửa sổ chính được mô tả trong (Hình 6.1).
6.1.3.1. Cửa sổ giao tiếp người dùng (1)
Các thông báo đầu ra, cảnh báo, lỗi được XPS đưa ra trên cửa sổ này. Bằng việc kích vào các thông báo này, XPS sẽ trỏ đến file và dòng lệnh liên quan trong trình biên dịch.
6.1.3.2. Cửa sổ thông tin project (2) Cửa sổ này bao gồm 3 menu sau:
6.1.3.2.1. Danh mục Project (4)
Danh mục này liệt kê các file tham chiếu liên quan đến dự án. Các thông tin này được nhóm theo các chủ đề chính sau:
- Các file project: File đặc điểm kỹ thuật phần cứng vi xử lý MHS (Microprocessor Hardware Specification), File đặc điểm kỹ thuật phần mềm vi xử lý MSS (Microprocessor Software Specification), file định nghĩa người dùng UCF (User Constraints File), các file mã lệnh iMPACT, các file lựa chọn thực thi và biên dịch mã lệnh cho FPGA.
- Các tuỳ chọn cho project: Cho phép người dùng lựa chọn các tính năng phù hợp với phần cứng và mục đích của project, như các tuỳ chọn cho thiết bị FPGA, tối ưu mạch kết nối, thực thi, ngôn ngữ mô tả phần cứng HDL và mô phỏng trên ModelSim.
- Các File tham chiếu: Bao gồm tất cả các file đầu ra được tạo ra trong quá trình thực thi trên XPS.
6.1.3.2.2. Danh mục Applications (5)
Danh mục liệt kê các file nguồn, header liên quan đến mỗi ứng dụng. Như chúng ta có thể tạo một chương trình ứng dụng mới, mỗi project phải được gắn kết với một bộ vi xử lý trong phần cứng. Chúng ta cũng có thể thiết lập các tuỳ chọn cho project hoặc tạo các liên kết cho trình biên dịch. Nếu muốn nạp chương trình này vào block RAM trong quá trình khởi tạo thì chúng ta có thể lựa chọn trong các tuỳ chọn của cửa sổ này. Ta cũng có thể thêm các file nguồn hoặc header có sẵn vào project.
6.1.3.2.3. Danh mục IP Catalog (6)
Trong danh mục này, các IP core được xây dựng sẵn trong EDK cũng như các IP core mà người dùng tự xây dựng được liệt kê cho người dùng lựa chọn. Nếu một project đang mở, chỉ các IP core tương thích với cấu trúc của thiết bị mạch cứng FPGA mới được hiển thị.
Hình 6.1: Giao diện XPS 6.1.3.3. Cửa sổ ghép nối hệ thống (3)
Cửa sổ này cho phép chúng ta soạn thảo, thiết lập phần cứng. Người dùng có thể thay đổi các kết nối giữa các thiết bị ngoại vi với bộ vi xử lý cũng như lựa chọn địa chỉ cho chúng.
6.1.3.4. Cửa sổ kết nối bus (7)
Cửa sổ này là một phần của cửa sổ ghép nối hệ thống khi chúng ta muốn hiển thị giao tiếp Bus. Các liên kết này chỉ thị các IP core được liên kết với bộ vi xử lý bằng những loại bus nào. Thông qua cửa sổ này chúng ta có thể thực hiện nối, thay đổi các kết nối hay xoá bỏ các kết nối này.
6.1.3.5. Filter (9)
- Bus Interface filter: Khi tuỳ chọn này được kích hoạt, các đường kết nối bus giữa các IP được mở ra, cho phép người dùng thực hiện nối hoặc ngắt các kết nối này.
- Ports filter: Cho phép hiển thị các kết nối cổng của các IP core.
Tuỳ chọn này giúp người dùng bổ sung hoặc xoá bỏ các cổng mở rộng.
- Addresses filter: Các địa chỉ của các IP core sẽ được hiển thị, người dùng có thể thay đổi các địa chỉ này một cách phù hợp.
6.1.4. Xây dựng nền phần cứng (Hardware Platform) 6.1.4.1. Nền phần cứng
Công nghệ FPGA cho phép chúng ta thay đổi các mạch logic phần cứng trong hệ vi xử lý nhúng. Điều này là không thể thực hiện được đối với các bộ vi xử lý và các chip điều khiển truyền thống.
Nền phần cứng bao gồm một hoặc một vài bộ vi xử lý kết hợp với các thiết bị ngoại vi thông qua các đường bus. File đặc tính phần cứng vi xử lý MHS định nghĩa kiến trúc hệ thống, thiết bị ngoại vi và các bộ vi xử lý nhúng. Cùng với nó là các kết nối giữa các thành phần trong hệ thống, địa chỉ của mỗi thiết bị ngoại vi cũng như các tuỳ chọn cấu hình cho chúng.
6.1.4.2. Xây dựng nền phần cứng trong thư viện nền (Platform Studio) Chúng ta có thể xây dựng nền phần cứng trong môi trường Xilinx® Platform Studio (XPS) như sau:
- Bổ xung các bộ vi xử lý và các thiết bị ngoại vi vào thiết kế.
- Thay đổi việc thực thi của các bộ vi xử lý và thiết bị ngoại vi bằng cách thiết lập các tham số thông qua hộp thoại cấu hình gắn kết với thiết bị đang được xây dựng.
- Thiết lập các kết nối giữa các bộ vi xử lý và các thiết bị ngoại vi thông qua bus và các cổng kết nối.
- Xây dựng hệ thống địa chỉ của các thiết bị ngoại vi với các vi xử lý.
- Sau khi thiết kế cơ bản đã xây dựng xong, XPS sẽ tạo ra nền phần cứng. Nền phần cứng này sau đó sẽ được kiểm tra lại bởi phần mềm mô phỏng hoặc gỡ rối trên phần cứng hoặc trên board phát triển.
6.1.5. Xây dựng nền phần mềm (Software Platform) 6.1.5.1. Nền phần mềm.
Nền phần mềm là một tập hợp các driver phần mềm và hệ điều hành mà chúng ta xây dựng ứng dụng trên đó. Với Xilinx, người dùng có thể thiết kế nhiều nền phần mềm cho bất kỳ một nền phần cứng nào.
6.1.5.2. Xây dựng nền phần mềm
Trong giao diện người dùng của XPS, lựa chọn Software > Software Platform Settings, một hộp thoại sẽ xuất hiện và cho phép chúng ta định rõ driver và các tham số cho hệ vi xử lý cũng như các thiết bị ngoại vi, các thiết bị vào ra chuẩn, trình quản lý ngắt và các đặc tính phần mềm khác liên quan. XPS sẽ tạo ra nền phần mềm dựa trên các chỉ định mà người dùng vừa thực hiện. Dựa trên nền phần mềm này chúng ta có thể tiếp tục phát triển các đoạn mã lệnh phần mềm ứng dụng.
Sau khi người dùng đã định rõ nền phần mềm, XPS sẽ tự động tạo ra file đặc tính phần mềm vi xử lý MSS (Microprocessor Software Specification). File này lưu trữ thông tin về nền phần mềm mà người dùng đã định nghĩa.
6.1.6. Hỗ trợ phần mềm ứng dụng
XPS cung cấp một trình quản lý phần mềm ứng dụng. Trong đó các thông tin về ứng dụng người dùng được thiết lập trong quá trình xây dựng project. Nhiều ứng dụng có thể được tạo ra và thực thi trên một nền phần mềm. Trình tự xây dựng một phần mềm ứng dụng điển hình được thực hiện theo các bước như trong Hình 6.2:
Hình 6.2: Trình tự thiết kế một project.
- Xây dựng một phần mềm ứng dụng trong XPS cho một hệ vi xử lý.
- Biên dịch ứng dụng này ta sẽ được một file định dạng liên kết thực thi ELF (Executable Linked Format).
- Khởi tạo RAM block với các thông tin trong file ELF.
- Tải dòng chuỗi bit lên thiết bị FPGA.
- Thực hiện gỡ rối ứng dụng.
XPS cho phép chúng ta thiết kế nhiều project người dùng. Mỗi ứng dụng được gắn kết với một bộ xử lý mà ứng dụng này chạy trên nó. XPS gọi công cụ tạo dựng thư viện Libgen để cấu hình phần mềm ứng dụng. Trong đó Libgen sẽ sinh ra các thư viện, driver cho các thiết bị ngoại vi, các file hệ thống, trình phục vụ ngắt cho hệ xử lý nhúng.
Phần mềm ứng dụng là mã lệnh chạy trên các nền phần mềm và phần cứng.
Mã nguồn cho các ứng dụng được viết bằng các ngôn ngữ bậc cao như C hoặc C++, hoặc bằng hợp ngữ Assembler. XPS hỗ trợ chúng ta với trình biên soạn mã nguồn để xây dựng các file mã. Sau khi đã được tạo, các file mã nguồn được dịch, liên kết để sinh ra các file chạy ELF.
6.1.7. Các hỗ trợ của EDK và yêu cầu cấu hình cho máy tính
Phần này sẽ thảo luận về các dòng FPGA được hỗ trợ bởi EDK, đồng thời đưa ra yêu cầu về cấu hình của máy tính đảm bảo cho EDK hoạt động.
Các dòng FPGA được EDK hỗ trợ cho việc thiết kế với vi xử lý nhúng MicroBlaze:
- Spartan™-3 - Spartan-3E
- Virtex™-II (XC2V250 hoặc các dòng chip lớn hơn) - Virtex-E (XCV50 hoặc các dòng chip lớn hơn) - Virtex-4 (LX & SX)
Các dòng FPGA được EDK hỗ trợ cho việc thiết kế với vi xử lý nhúng MicroBlaze và PowerPC:
- Virtex-II Pro - Virtex-II Pro X - Virtex-4 (FX)
Các board được EDK hỗ trợ như:
- Xilinx® ML300 Board - Xilinx® ML310 Board - Xilinx® Spartan-3 Board - Xilinx® Spartan-3E Board - Xilinx® ML401
- Xilinx® ML402 - Xilinx® ML403 - Xilinx® ML405 - Xilinx® ML410 - Xilinx® AFX Boards
Yêu cầu các hệ điều hành cho phép chạy ứng dụng EDK:
Hệ điều hành Phiên bản
Windows® 2000 (Service Pack 2) or XP
Professional
Unix Solaris 2.8 or 2.9
Linux Red Hat Enterprise Linux 3.0