Fpga vi xử lý cứng

Chia sẻ trang này

Lượt xem: 2,590

  1. Fpga vi xử lý cứng

    Administrator Staff Member

    Tham gia ngày:25 Tháng bảy 2014Bài viết:481Đã được thích:115

    1. Giới thiệu
    - Các bộ vi xử lý có sẵn dùng cho dòng FPGA (Field Programmable Gate Arrays) của Xillinx sử dụng với các công cụ phần mềm có trong phần mềm EDK (Embedded Development kit) được phân thành 2 loại: Bộ vi xử lý mềm MicrroBlaze. Bộ vi xử lý cứng đã được nhúng sẵn PowerPC. MicrroBlaze là bộ vi xử lý được dùng hầu hết trong FPGA các dòng như Spartan-II, Spartan-III, Virtex của hãng Xillinx. MicroBlaze là một vi điều khiển ảo,nó tồn tại dưới dạng phần mềm đã được phát triển của hãng Xillinx, chúng ta có thể thiết lập các thông số để sử dụng đối với vi điều khiển này (UART, các cổng vào ra ngoại vi, ..) thông qua phần mềm EDK. MicroBlaze là bộ xử lý mềm nhúng 32-bit của Xillinx. Tập lệnh thu gọn RISC (Reduced Instruction Set Computer), với các bus riêng biệt để truy xuất dữ liệu và lệnh từ bộ nhớ on-chip và bộ nhớ ngoài tại cùng một thời điểm.

    2. Kiến trúc cơ bản của MicroBlaze
    - Kiến trúc của MicroBlaze có các đặc điểm sau: Từ lệnh 32 bit với 3 toán hạng và 2 chế độ định địa chỉ. Đường bus 32 bit địa chỉ. 1 khối ghi dịch. 2 cấp độ ngắt. Khối ALU(Arithmetic Logic Unit): gồm các bộ cộng/trừ, ghi dịch/logic, nhân.

    Fpga vi xử lý cứng

    - Trong đó có các thành phần sau:

    • Bus IF: (Bus interface) đường bus giao tiếp;
    • Instruction Buffer: bộ đệm lệnh.;
    • Instruction Decode: bộ giải mã lệnh;
    • Program Counter: bộ đếm chương trình;
    • Add/Sub: khối cộng/trừ;
    • Shift/Logical: khối ghi dịch/lôgic;
    • Multiply: khối nhân;
    • Register File: thanh ghi dữ liệu 32thanh x 32bit;
    3. Kiến trúc Pipeline của vi xử lý mềm MicroBlaze
    -
    Vi điều khiển MicroBlaze xử lý lệnh theo kiến trúc pipeline song song, hầu hết các lệnh của nó, mỗi giai đoạn mất 1 chu kỳ đồng hồ để thực hiện xong. Quá trình xử lý lệnh được chia làm 3 giai đoạn: nhận lệnh (Fetch), giải mã lệnh (Decode), thi hành lệnh (Execute).
    Fpga vi xử lý cứng

    - Thông thường, nếu bỏ qua thời gian trễ nghỉ “stall” thì mỗi giai đoạn trên chỉ mất 1 chu kỳ đồng hồ, khi đó 3 lệnh có thể được xử lý cùng một lúc, mỗi lệnh được thi hành trong 1 đường ống gồm 3 giai đoạn. MicroBlaze có 1 bộ đệm tiền nhận lệnh (Instruction Prefetch Buffer) để làm giảm xung đột tiềm ẩn trong bộ nhớ khi thực hiện các lệnh đa chu kỳ. Khi Pipeline được tạo trễ nghỉ “stall” do thực hiện lệnh đa chu kỳ trong giai đoạn thi hành, bộ đệm tiền nhận lệnh sẽ tiếp tục nhận các lệnh ngay sau đó. Và khi Pipeline thi hành trở lại, giai đoạn nhận lệnh có thể lấy lệnh trực tiếp từ bộ đệm tiền nhận lệnh, thay vì đợi cho bộ nhớ lệnh truy cập để thi hành.

    4. Giao tiếp tính hiệu trong MicroBlaze
    - MicroBlaze cung cấp 3 giao tiếp bộ nhớ:
    + LMB: Local Memory Bus;
    + PLB: Processor Local Bus;
    OPB (On-Chip Peripheral Bus) và XCL (Xillinx Cache Link);

    Fpga vi xử lý cứng

    - Trong đó:

    • IXC: Instruction side Xillinx Cache Link Interface (cặp liên kết đơn FSL chủ/tớ);
    • DXCL: Data side Xillinx Cache Link Interface (cặp liên kết đơn FSL chủ/tớ);
    • ILMB: Instruction interface, Local Memory Bus: giao tiếp lệnh theo chuẩn bus LMB, chỉ dùng cho giao tiếp BRAM.;
    • DLMB: Data interface, Local Memory Bus: giao tiếp dữ liệu theo chuẩn bus LMB, chỉ dùng cho giao tiếp BRAM;
    • IOPB: Instruction interface, On-chip Peripheral Bus: giao tiếp lệnh theo chuẩn bus OPB;
    • DOPB: Data interface, On-chip Peripheral Bus: giao tiếp dữ liệu theo chuẩn bus OPB;
    - MicroBlaze có kiến trúc kết nối lõi theo chuẩn IBM, chuẩn này cung cấp 3 loại bus giành cho kết nối liên tục đa lõi, các thư viện macro và logic người dùng:
    · Bus lõi xử lý nội PLB (Processor Local Bus);
    · Bus ngoại vi on-chip OPB (On-chip Peripheral Bus);
    · Bus thanh ghi điều khiển thiết bị DCR (Device Control Register);

    Bài viết cùng chủ đề:

    • LCD trên FPGA dùng verilog 17 Tháng sáu 2015
    • Nhận GET LINK TỪ TRANG XILINX.COM 16 Tháng bảy 2016
    • Thiết kế số trên FPGA . 11 Tháng một 2015
    • Bộ đếm từ 00-99 hiển thị trên led 7 đoạn 15 Tháng bảy 2015
    • Các bài thí nghiệm cơ bản trên FPGA 25 Tháng mười 2014
    • Thiết kế phần cứng đơn giản dùng EDK... 8 Tháng bảy 2016
    • Thiết kế phần cứng đơn giản dùng EDK... 14 Tháng bảy 2016
    • Thiết kế phần cứng đơn giản dùng... 15 Tháng bảy 2016
    • Thiết kế phần cứng đơn giản dùng... 15 Tháng bảy 2016
    • Chia tần số trên FPGA 16 Tháng sáu 2015

Fpga vi xử lý cứng