Procesor MicroBlaze został opracowany w 2002 roku, aby zintegrować kilka skomplikowanych funkcji, aby sprostać nowym i rosnącym wymaganiom rynku. Tak więc procesor MicroBlaze jest niezbędnym elementem w ofercie produktów Xilinx Low-End, aby umożliwić szybszy rozwój systemu, który zawiera Artix®-7 FPGA , Spartan®-6, Zynq®-7000 AP SoC. Ten procesor jest niezwykle konfigurowalny, dzięki czemu może być używany jako wbudowany procesor lub mikrokontroler w układach FPGA, a także jako koprocesor w układach SoC Zynq-7000 AP opartych na ARM Cortex-A9. Ten artykuł zawiera krótkie informacje na temat Procesor MicroBlaze – architektura i praca z aplikacjami.
Co to jest procesor Microblaze?
Miękki mikroprocesor, który jest przeznaczony głównie do układów FPGA firmy Xilinx, jest znany jako procesor MicroBlaze. Ten procesor jest po prostu zaimplementowany w pamięci ogólnego przeznaczenia i strukturze logicznej układów FPGA firmy Xilinx. Ten procesor jest podobny do architektury DLX opartej na RISC i ma elastyczny system połączeń, dzięki czemu obsługuje różne aplikacje wbudowane. Główna magistrala we/wy i połączenie AXI MicroBlaze to mapowana w pamięci magistrala transakcyjna z funkcją master-slave.
MicroBlaze wykorzystuje dedykowaną magistralę LMB, aby uzyskać dostęp do pamięci lokalnej i zapewnia szybkie przechowywanie na chipie. Wiele części tego procesora może być skonfigurowanych przez użytkownika, takich jak rozmiar pamięci podręcznej, głębokość jednostki zarządzania pamięcią potoku, wbudowane urządzenia peryferyjne i interfejsy magistrali.
Funkcje Microblaze
The cechy Microblaz e obejmują następujące. Posiada 32 rejestry ogólnego przeznaczenia.
- Zawiera 32-bitowe słowa instrukcji, w tym 2 tryby adresowania i 3 operandy.
- Magistrala adresowa jest 32-bitowa.
- Posiada potok 3-stopniowy lub potok 5-stopniowy.
- Blok blokowy ALU z manetką.
- Architektura Harvardu obejmuje 32-bitową magistralę danych i adresową.
- Interfejs danych i instrukcja LMB lub lokalnej magistrali pamięci.
- Interfejsy strumieniowe AX14 i AX14.
- Jednostka zmiennoprzecinkowa i jednostka zarządzania pamięcią.
- Obsługuje lockstep.
- Interfejs debugowania i śledzenia.
Architektura mikrobazy
Schemat blokowy procesora MicroBlaze pokazano poniżej. Ten procesor MicroBlaze jest niezwykle konfigurowalny i obsługuje ponad 70 opcji projektowych. Ta architektura zawiera stałe funkcje sprzętowe, a także konfigurowalne opcje, takie jak pamięć podręczna instrukcji lub danych, jednostka zarządzania pamięcią, jednostka zmiennoprzecinkowa itp.
jakiś Wbudowany system montowane wokół procesora MicroBlaze obejmują głównie rdzeń procesora MicroBlaze Soft, pamięć lokalną na chipie, standardowe połączenia magistrali i urządzenia peryferyjne OPB (On-chip Peripheral Bus). System procesorowy MicroBlaze obejmuje głównie rdzeń procesora przez pamięć lokalną do dużego systemu zawierającego kilka MicroBlaze przetwórcy , pamięć zewnętrzna i wiele urządzeń peryferyjnych OPB.
Miękki rdzeń procesora
Miękki rdzeń procesora MicroBlaze jest centralnym elementem systemu wbudowanego MicroBlaze. Jest to bardzo szybki i wydajny 32-bitowy procesor RISC, który posiada następujące cechy.
- Zestaw instrukcji jest ortogonalny.
- Oddzielne magistrale danych i instrukcji.
- 32-bitowe rejestry ogólnego przeznaczenia.
- Posiada opcjonalny kompletny 32-bitowy przesuwnik lufy.
- Wbudowane interfejsy do szybkiej obsługi OCM lub pamięci wbudowanej w układy oraz standardu branżowego IBM OPB (On-chip Peripheral Bus).
Wdrożenia w Virtex-II i późniejszych urządzeniach obsługują wiele urządzeń.
Wbudowana pamięć lokalna
Pamięć synchroniczna jest pamięcią lokalną, która jest używana głównie do zezwalania na blokową pamięć RAM w układzie.
Standardowe połączenia magistrali
Interfejsy magistrali po stronie instrukcji i danych obejmują interfejs do pamięci lokalnej, który nazywa się LMB (Local Memory Bus) oraz interfejs do On-chip Peripheral Bus firmy IBM. Możemy więc projektować systemy, które ściśle trzymają się architektury Harvarda, w przeciwnym razie, aby współdzielić zasoby, możemy wykorzystać pojedynczą OPB w kombinacji za pośrednictwem arbitra magistrali.
Lokalna magistrala pamięci zapewnia gwarantowane jednocyklowe wejście dla wbudowanej pamięci RAM. Jest to bardzo wydajny, prosty i jednorzędowy protokół magistrali, który doskonale nadaje się do łączenia szybkiej pamięci lokalnej. OPB lub On-chip Peripheral Bus to 32-bitowa szeroka magistrala multi-master, która jest idealna do łączenia urządzeń peryferyjnych i pamięci zewnętrznej z rdzeniem procesora MicroBlaze.
Peryferyjne urządzenia peryferyjne do autobusów na chipie
System sprzętowy MicroBlaze jest uzupełniany przez urządzenia peryferyjne OPB zapewniające różne funkcje, takie jak zegar watchdog lub podstawa czasu, zegar lub licznik ogólnego przeznaczenia, układ scalony (kontroler przerwań), różne kontrolery, takie jak SRAM, pamięć Flash, pamięć ZBT, BRAM, DDR, SDRAM, UART Lite , SPI, I2C, We/Wy ogólnego przeznaczenia, UART 16450/550 i Ethernet 10/100 MAC. Dodatkowo możemy również dodawać i definiować urządzenia peryferyjne głównie dla funkcji niestandardowych, w przeciwnym razie interfejs do projektu, który istnieje w FPGA.
Zestaw instrukcji Microblaze
Zestawy instrukcji Microblaze to arytmetyka, logika, gałąź, ładowanie/zapisywanie i inne. Rozmiar wszystkich instrukcji jest stały. Jako operandy można podać co najwyżej 3 rejestry. Microblaze zawiera dwa formaty instrukcji Typ A i Typ B, które pokazano poniżej.
Format instrukcji typu A jest używany głównie w instrukcjach rejestr-rejestr. Zawiera więc kod operacyjny, jedno miejsce docelowe i dwa rejestry źródłowe. Format instrukcji typu B jest używany głównie dla instrukcji rejestrowych, które zawierają kod operacji, rejestry pojedynczego przeznaczenia i pojedynczego źródła. 16-bitowe źródło wartości natychmiastowej.
W powyższych dwóch formatach instrukcji, kod operacyjny jest kodem operacji, Rd jest rejestrem docelowym zakodowanym za pomocą 5-bitów, Ra i Rb są rejestrami źródłowymi, w których każdy jest zakodowany za pomocą 5-bitów, a Natychmiastowy jest wartością 16-bitową.
Instrukcje arytmetyczne
Instrukcje arytmetyczne typu A i typu B podano poniżej.
Typ A
|
DODAJ Rd, Ra, Rb Dodaj |
Rd = Ra+Rb, dotyczy flagi przenoszenia |
|
DODAJ K Rd, Ra, Rb Dodaj i zachowaj noszenie |
Rd = Ra+Rb, nie dotyczy flagi przenoszenia |
| RSUB Rd, Ra, Rb Odwrotne odejmowanie |
Rd = R-Rb, nie dotyczy flagi przenoszenia |
Typ B
|
DODAJ I Rd, Ra, Imm dodaj natychmiast |
Rd = Ra+znakExtend32 (Imm) |
|
DODAJ IK Rd, Ra, Imm dodaj natychmiast i zachowaj noszenie |
Rd = znak Ra+Extend32 (Imm) |
| RSUBIK Rd, Ra, Imm odwrotne odejmowanie z natychmiastowym |
Rd = Ra+ znakExtend32 (Imm) -Ra |
| SRA Rd, Ra przesunięcie arytmetyczne w prawo |
Rd = (Ra>>1) |
Instrukcje logiczne
Instrukcje logiczne typu A i typu B podano poniżej.
Typ A
|
LUB Rd, Ra, Rb Logiczne lub |
Rd = Ra| Rb |
|
ORAZ Rd,Ra,Rb Dodaj logiczny |
Rd = Ra i Rb |
| XOR Rd, Ra, Rb logiczny xor |
Rd = Rb ^ Rb |
| ANDN Rd, Ra, Rb Logiczne i nie |
Rd = Ra i (Rb) |
Typ B
|
ORI Rd, Ra, Imm logiczne OR z natychmiastowym |
Rd = Ra | znakExtend32 (Imm) |
| ANDI Rd, Ra, Imm logiczne AND z natychmiastowym |
Rd = Ra i znakExtend32 (Imm) |
| XORI Rd, Ra, Imm logiczny XOR z natychmiastowym |
Rd = znak Ra ^Extend32 (Imm) |
| ANDNI Rd, Ra, Imm Logiczne I NIE z natychmiastowym |
Rd = Ra & (znakExtend32 (Imm)) |
Instrukcje oddziałowe — bezwarunkowe
Zmodyfikuj rejestr licznika programu
| BRID Imm oddział natychmiast z natychmiastowym opóźnieniem |
PC = PC+ znakExtend32 (Imm) zezwól na wykonanie slotu opóźnienia |
| BRLID Rd, Imm rozgałęzienie i połączenie natychmiastowe z natychmiastowym opóźnieniem (wywołanie funkcji) |
Rd = PC PC = PC+i znakExtend32 (Imm) zezwól na wykonanie slotu opóźnienia |
| RTSD Ra, Imm powrót z podprogramu |
PC = Ra + znakExtend32 (Imm) zezwól na wykonanie slotu opóźnienia |
| RTID Ra, Imm powrót z przerwania |
PC = Ra + znakExtend32 (Imm) zezwól na wykonanie slotu opóźnienia ustaw włączanie przerwań w MSR |
Instrukcje oddziału — bezwarunkowe1
Zmień rejestr licznika programu, gdy warunek jest spełniony
| BEQI Ra, Imm oddział, jeśli jest równy |
PC = PC+ znakExtend32 (Imm) Jeśli Ra = = 0 |
| MASH Ra, Imm oddział, jeśli nie jest równy |
Rd = PC PC = PC+i znakExtend32 (Imm) Jeśli Ra! = 0 |
Instrukcje oddziału — bezwarunkowe2
Zmień rejestr licznika programu, gdy warunek jest spełniony
| BLTI Ra, Imm oddział, jeśli jest niższy niż |
PC = PC+ znakExtend32 (Imm) Jeśli Ra < 0 |
| BLEI Ra, Imm gałąź, jeśli mniejsza równa niż |
Rd = PC PC = PC+i znakExtend32 (Imm) Jeśli Ra!< = 0 |
| BGTI Ra, Imm oddział, jeśli jest większy niż |
PC = PC+ znakExtend32 (Imm) Jeśli Ra!> 0 |
| BGEI Ra, Imm gałąź, jeśli większa równa niż |
PC = PC+znakExtend32 (Imm) Jeśli Ra!>= 0 |
Instrukcje ładowania/przechowywania — typ A
| LW Rd, Ra, Rb Załaduj słowo |
Adres = Ra+Rb Rd = *Adres |
| SW Rd, Ra, Rb Przechowuj słowo |
Adres – Ra+Rb *Adres = Rd |
Typ B
| LWI Rd, Ra, Imn Załaduj słowo natychmiast |
Adres = Ra + znakExtend32 (Imm) Rd = *Adres |
| SW Rd, Ra, Imm Zapisz słowo natychmiast |
Adres = Ra + znakExtend32 (Imm) *Adres = Rd |
Inne instrukcje
| IMM, Imm natychmiastowy |
Rozszerz Imm poprzedniej instrukcji typu B do 32 bitów. |
| MFS Rd, Sa Przejdź z rejestru specjalnego przeznaczenia |
Rd = Sa Sa- rejestr specjalnego przeznaczenia, operand źródłowy
|
| MTS Sd, Ra Przejdź do rejestru specjalnego przeznaczenia |
Sd = Ra Sd – rejestr specjalnego przeznaczenia, operand przeznaczenia |
Rejestry
Architektura procesora MicroBlaze jest całkowicie ortogonalna i obejmuje 32-bitowe rejestry ogólnego przeznaczenia i 32-bitowe rejestry specjalnego przeznaczenia, takie jak licznik programu i rejestr stanu maszyny.
Architektura rurociągów
MicroBlaze wykorzystuje 3-stopniową architekturę potoku, w tym etapy pobierania, dekodowania i kompletowania. Przekazywanie danych, rozgałęzienia i przestoje w rurociągu są automatycznie określane w sprzęcie.
Załaduj lub przechowuj architekturę
MicroBlaze obsługuje pamięć w trzech rozmiarach danych 8 bitów (Byte), 16 bitów (Halfword) i 32 bitów (Word). Tak więc dostępy do pamięci są zawsze dopasowane do rozmiaru danych. Jest to procesor Big-Endian, który używa adresu adresu Big-Endian, a także konwencji etykietowania po uzyskaniu dostępu do pamięci.
Przerwania
Po wystąpieniu przerwania, ten procesor zakończy obecne wykonywanie, aby zarządzać żądaniem przerwania poprzez rozgałęzienie do adresu wektora przerwań i przechowywać adres instrukcji, który ma zostać wykonany. Ten procesor zatrzyma przyszłe przerwania, usuwając flagę IE (Interrupt Enable) w MSR (Machine Status Register).
Jak działa Microblaze?
Procesor MicroBlaze obsługuje szynę o szerokości 32 bitów, a ten rdzeń procesora to silnik oparty na RISC, który zawiera plik rejestru oparty na 32-bitowej pamięci LUT RAM za pomocą oddzielnych instrukcji dotyczących dostępu do pamięci i danych.
Ten procesor po prostu obsługuje zarówno wbudowaną pamięć BlockRAM, jak i pamięć zewnętrzną. Podobny do IBM PowerPC; wszystkie urządzenia peryferyjne wykorzystują podobną magistralę CoreConnect OPB; peryferia procesora są dobrze dopasowane do PowerPC na Virtex-II Pro.
Procesor MicroBlaze zapewnia pełną elastyczność w wyborze kombinacji funkcji pamięci, urządzeń peryferyjnych i interfejsów, które zapewnią Ci precyzyjny system, jakiego potrzebujesz na pojedynczym układzie FPGA przy niższych kosztach.
Różnica między B/W Microblaze a Risc-V
The różnica między MicroBlaze i RISC v obejmują następujące elementy.
|
Mikroblaze |
Ryzyko-V |
| Jest to miękki rdzeń mikroprocesorowy zaprojektowany głównie dla Xilinx FPGA.
|
RISC-V to architektura zestawu instrukcji zakorzeniona w zasadach RISC.
|
| Wykorzystuje architekturę Harvard RISC. | Wykorzystuje architekturę zestawu instrukcji. |
| Jego licencja jest zastrzeżona (Xilinx) | Jego licencja jest open source. |
| Głębokość rurociągu wynosi 3 lub 5. | Głębokość rurociągu wynosi 5. |
| Jego wydajność to 280 DMIPs. | Jego wydajność to 250 DMIPs. |
| Jego prędkość wynosi 235 MHz. | Jego prędkość wynosi 250 MHz. |
| Ma 1027 LUT. | Ma 4125 LUT. |
| Zastosowaną implementacją technologii jest Xilinx FPGA. | Zastosowaną implementacją technologii jest FPGA/ASIC. |
Zalety Microblaze
The zalety MicroBlaze obejmują następujące elementy.
- Jest ekonomiczny.
- Jest wysoce konfigurowalny.
- Jego wydajność jest wysoka w porównaniu do ARM.
- Jest obsługiwany przez wbudowany zestaw deweloperski.
- To jest miękkie mikroprocesor rdzeń.
- Aby pomóc w szybkim zorganizowaniu aplikacji, ten procesor zawiera trzy stałe konfiguracje, które są związane z dobrze znanymi klasami procesorów: mikrokontrolerem, procesorem czasu rzeczywistego i procesorem aplikacji.
Aplikacje Microblaze
The zastosowania MicroBlaze obejmują następujące elementy.
- Ten procesor spełnia wiele różnych wymagań aplikacji, takich jak przemysł, motoryzacja, medycyna i konsumpcja itp.
- Zastosowania MicroBlaze sięgają od prostych maszyn stanowych opartych na oprogramowaniu do złożonych kontrolerów używanych w aplikacjach wbudowanych lub urządzeniach internetowych.
- Jest zoptymalizowany pod kątem aplikacji wbudowanych, takich jak sterowanie przemysłowe, automatyka biurowa i motoryzacja.
- MicroBlaze jest w stanie komunikować się z dużym zestawem urządzeń peryferyjnych, aby zmieścić się w aplikacjach o średniej skali.
- Miękka natura tego procesora sprawia, że można go dostosować do różnych zastosowań, w których projektanci mogą wymieniać cechy w zależności od rozmiaru, aby spełnić cele dotyczące ceny i wydajności w zastosowaniach medycznych, motoryzacyjnych, przemysłowych i związanych z bezpieczeństwem.
Tak więc o to chodzi przegląd Microblaze edytor. Jest to w pełni funkcjonalny, 32-bitowy programowalny rdzeń procesora RISC. Ten procesor spełnia różne wymagania w różnych dziedzinach, takich jak rynek infrastruktury konsumenckiej, medycznej, przemysłowej, motoryzacyjnej i komunikacyjnej. Jest niezwykle konfigurowalny, więc używany jako wbudowany procesor lub mikrokontroler w FPGA, podobnie jak koprocesor dla ARM. Oto pytanie do Ciebie, co to jest FPGA?