Chia sẻ trang này Lượt xem: 2,590
Administrator Staff MemberTham 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. - 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).
-
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);
- 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
|