L ời cảm ơn
3.2.6.1. Khái quát PicoBlaze
Vi điều khiển PicoBlaze là vi điều khiển nhúng 8 bit có cấu trúc RISC được tối ưu phát triển cho các họ FPGA như Spartan 3, Virtex II và Virtex II Pro
của Xilinx. Với vi điều khiển này chúng ta có thể làm một bộ điều khiển dựa trên nền vi điều khiển rất hiệu quả, hay xửlý dữ liệu đơn giản.
Vi điều khiển PicoBlaze được tối ưu về mặt hiệu suất và chi phí phát triển thấp. Nó chiểm khoảng 96 FPGA slices, hay chỉ 12.5% của XC3S50 FPGA và chiếm một phần rất nhỏ ở mức 0.3% của XC3S5000 FPGA. Bình thường mỗi block RAM của FPGA có thể lưu trữtới 1024 câu lệnh chương trình (program instructions) và các lệnh này được tự động load trong khi cấu hình FPGA, khi
đó vi điều khiển PicoBlaze có thể hoạt động từ 44000 tới 100000 câu lệnh trên giây (MIPS – million instructions per second) tùy thuộc vào họ FPGA được dùng là loại gì và tốc độcủa họ đó.
Nhân của vi điều khiển PicoBlaze được nhúng hoàn toàn trong FPGA và không cần một nguồn thêm nào. Đơn giản là các ngoại vi của PicoBlaze có thể
tự do lựa chọn cho phù hợp với các mục đích đặc biệt, chức năng và yêu cầu về giá cả của sản phẩm cuối cùng. PicoBlaze được nhúng vào dưới dạng một mã nguồn VHDL vì thế nó có thể nhúng vào các đời FPGA sau này và do đó
project của chúng ta sẽcó tính kế thừa cao. Được nhúng trong FPGA, vi điều khiển PicoBlaze sẽgiảm kích thước mạch, giá thiết kếvà thực hiện.
PicoBlaze FPC được hỗtrợ bởi một số các công cụphát triển phù hợp bao gồm assembler và môi trường phát triển đồ họa tích hợp (IDE – integrated development environment), graphical instruction set simulator và mã nguồn
VHDL và khối mô phỏng. Và rất đơn giản là vi điều khiển PicoBlaze được hỗ
trợ trong môi trường phát triển Xilinx System Generator hay ISE.
Hình 3.24: Sơ đồkhối cấu trúc của PicoBlaze
Vi điều khiển PicoBlaze có các đặc điểm sau:
16 thanh ghi dữ liệu chức năng chung có độrộng 8 bit.
Lưu trữ được 1K lệnh trong chương trình có thê lâp trình được trong chip và tự động nạp khi cấu hình FPGA hay khi khởi động FPGA.
Khối tính toán logic (Arithmetic Logic Unit – ALU) với các cờCARRY và ZERO.
Một bảng RAM 64 byte.
256 đầu vào và 256 đầu ra dễdàng có thểmởrộng thêm.
Automatic 31 location CALL/RETURN stack.
Predictable performance, luôn luôn dùng 2 xung nhịp hệthống cho một câu lệnh, có thể đạt tới 200 MHz hoặc 100 MIPS trong Virtex – II Pro FPGA.
Đáp ứng ngắt nhanh; worst-case 5 clock cycles.
Được tối ưu cho cấu truc Spartan – 3, Virtex II, và Virtex II Pro FPGA của Xilinx chỉchiếm 96 slices và 0.5 tới 1 block RAM.
Hỗtrợmô phỏng tệp lệnh assembler.
Vi điều khiển PicoBlaze được cung cấp dưới file nguồn VHDL gọi là
Xilinx Synthesizs Tool (XST) cho tổng hợp logic và ModelSim cho mô phỏng. Các nhà thiết kế cũng thành công khi dùng các công cụtổng hợp logic và mô phỏng khác. Các mã nguồn VHDL không nên bịchỉnh sửa trong bất kì hoàn cảnh nào.
KCPSM3 Module
Module KCPSM3 bao gồm ALU, register file, scratchpad RAM, … Chỉduy nhất chức năng không nằm trong KCPSM3 là bộnhớ chương trình. Khai báo component và gắn chân như sau:
Bộnhớ ROM chương trình của PicoBlaze được dùng trong thiết kếVHDL. Từ file assembler tạo ra file VHDL, đã định nghĩa block RAM và khởi tạo nội dung cho RAM. File VHDL này có thể được dùng cho cả tổng hợp logic và mô phỏng vi điều khiển.
Sau đây là khai báo component và gán các thực thể của bộ nhớ chương
trình trong FPGA:
Do đó, sơ đồcấu trúc của vi điều khiển PicoBlaze như sau:
Hình 3.25: Sơ đồcấu trúc PicoBlaze Microcontroller
Để viết mã lệnh cho chương trình (với tên mở rộng là .psm) thì chúng ta có thể dùng bất cứ trình soạn thảo nào để lập trình dựa theo 31 lệnh được
của ROM dưới dạng file .vhd, .coe, .v để dịch ra các file .vhd, .v và cho vào
chương trình FPGA.
Để phối hợp hoạt động của tất cả các thành phần trên, đảm bảo hệ thống hoạt động chính xác, ta phải có một hệ thống điều khiển trung tâm. Trong đồ
án này, chúng em sử dụng một vi xử lý nhúng có tên là PicoBlaze để điều khiển hoạt động của các khối xử lý trong FPGA, đồng thời giao tiếp với máy tính thông qua cổng RS232 và khối điều khiển giao tiếp RS232 : UART Controller.