MicroBlaze-processorn utvecklades 2002 för att integrera flera komplicerade funktioner för att möta nya såväl som växande efterfrågan på marknaden. Så, MicroBlaze-processorn är ett viktigt element i Xilinx Low-End Portfolio för att möjliggöra snabbare systemutveckling som innehåller Artix®-7 FPGA:er , Spartan®-6, Zynq®-7000 AP SoCs. Denna processor är extremt konfigurerbar, så den kan användas som en inbäddad processor eller mikrokontroller inom FPGA och även användas som en co-processor i Zynq-7000 AP SoCs baserade på ARM Cortex-A9. Den här artikeln ger kort information om MicroBlaze-processor – arkitektur och arbete med applikationer.
Vad är Microblaze-processor?
Den mjuka mikroprocessorn som huvudsakligen är designad för FPGA från Xilinx är känd som MicroBlaze-processorn. Denna processor är helt enkelt implementerad i det allmänna minnes- och logikstrukturen för FPGA:er från Xilinx. Denna processor liknar DLX-arkitekturen baserad på RISC och den har ett flexibelt sammankopplingssystem så att den stöder olika inbäddade applikationer. Den huvudsakliga I/O-bussen och AXI-sammankopplingen av MicroBlaze är en minnesmappad transaktionsbuss med en master-slav-funktion.
MicroBlaze använder en dedikerad LMB-buss för att komma åt lokalt minne och ger snabb lagring på chip. Många delar av denna processor kan användarkonfigureras som storleken på cachen, djupet på pipelineminneshanteringsenheten, inbyggd kringutrustning och bussgränssnitt.
Microblaze funktioner
De funktioner hos Microblaz e inkludera följande. Den har 32 allmänna register.
- Den har 32-bitars instruktionsord inklusive 2 adresseringslägen och 3 operander.
- Adressbussen är 32-bitars.
- Den har en 3-stegs pipeline eller en 5-stegs pipeline.
- En ALU-blockenhet med växelreglage.
- Harvard-arkitekturen inkluderar 32-bitars data- och adressbuss.
- Datagränssnitt & LMB eller lokal minnesbussinstruktion.
- AX14 och AX14 strömgränssnitt.
- Flyttalsenhet & minneshanteringsenhet.
- Den stöder lockstep.
- Debug & trace gränssnitt.
Microbaze arkitektur
Blockschemat för MicroBlaze-processorn visas nedan. Denna MicroBlaze-processor är extremt anpassningsbar och den stöder över 70 designalternativ. Den här arkitekturen visar permanenta hårdvarufunktioner såväl som konfigurerbara alternativ som instruktions- eller datacache, minneshanteringsenheten, flytpunktsenheten, etc.
En inbyggda system monterad kring en MicroBlaze-processor inkluderar huvudsakligen MicroBlaze Soft Processor Core, On-chip Local Memory, Standard Bus Interconnects och OPB Peripherals (On-chip Peripheral Bus). Ett MicroBlaze-processorsystem sträcker sig huvudsakligen från en kärna av processor med ett lokalt minne till ett stort system som inkluderar flera MicroBlaze processorer , externt minne och många OPB kringutrustning.
Mjuk processorkärna
Den mjuka processorkärnan i MicroBlaze är central för det inbyggda MicroBlaze-systemet. Detta är en mycket snabb och effektiv 32-bitars RISC-processor som har följande funktioner.
- Instruktionsuppsättningen är ortogonal.
- Separata data- och instruktionsbussar.
- 32-bitars register för allmänna ändamål.
- Den har en valfri komplett 32-bitars växelreglage.
- Inbyggda gränssnitt till snabb OCM eller on-chip-minne & IBM:s industristandard OPB (On-chip Peripheral Bus).
Implementeringar inom Virtex-II och efterföljande enheter stöder flerfaldig hårdvara.
On-chip lokalt minne
Det synkrona minnet är ett lokalt minne som huvudsakligen används för att tillåta on-chip Block RAM.
Standard bussförbindelser
Bussgränssnitten på instruktions- och datasidan inkluderar ett gränssnitt till lokalt minne som kallas LMB (Local Memory Bus) och ett gränssnitt till On-chip Peripheral Bus från IBM. Så vi kan designa system som strikt håller sig till Harvard-arkitekturen, annars kan vi, för att dela resurser, använda en enda OPB i kombination genom en bussarbiter.
Den lokala minnesbussen ger en säker encyklisk entré för on-chip block RAM. Detta är ett mycket effektivt, enkelt och enmaster bussprotokoll och det är perfekt för gränssnitt mellan snabbt lokalt minne. OPB eller On-chip Peripheral Bus är en 32-bitars bred multi-master buss som är perfekt för att förena kringutrustning och externt minne till kärnan i MicroBlaze-processorn.
On-chip kringutrustning för buss
MicroBlaze-hårdvarusystemet kompletteras av OPB kringutrustning för att tillhandahålla olika funktioner som Watchdog Timer eller Timebase, General purpose timer eller Counters, IC (Interrupt Controller), olika kontroller som SRAM, Flash Memory, ZBT Memory, BRAM, DDR, SDRAM, UART Lite , SPI, I2C, I/O för allmänt bruk, UART 16450/550 och Ethernet 10/100 MAC. Dessutom kan vi också lägga till och definiera kringutrustning främst för anpassade funktioner, annars ett gränssnitt till en design som finns i FPGA.
Microblaze instruktionsset
Microblaze-instruktionsuppsättningar är aritmetik, logik, gren, ladda/lager och andra. Storleken på alla instruktioner är fast. Högst 3-register kan ges som operander. Microblaze innehåller två instruktionsformat Typ A och Typ B som visas nedan.
Typ A-instruktionsformat används främst för register-register-instruktioner. Så det inkluderar opcode, enda destination och två källregister. Typ B-instruktionsformat används huvudsakligen för omedelbara registerinstruktioner som inkluderar opcode, single destination och single source register.& en 16-bitars omedelbar värdekälla.
I ovanstående två instruktionsformat är opkoden en operationskod, Rd är ett destinationsregister som är kodat med 5-bitar, Ra & Rb är källregister där var och en kodad med 5-bitar och Immediate är ett 16-bitars värde.
Aritmetiska instruktioner
Typ A och Typ B aritmetiska instruktioner ges nedan.
Typ A
ADD Rd, Ra, Rb Lägg till |
Rd = Ra+Rb, bärflagga påverkad |
ADD K Rd, Ra, Rb Lägg till och behåll bära |
Rd = Ra+Rb, bärflaggan påverkas inte |
RSUB Rd, Ra, Rb Omvänt subtrahera |
Rd = R-Rb, bärflaggan påverkas inte |
Typ B
ADD I Rd, Ra, Imm lägga till omedelbart |
Rd = Ra+signExtend32 (Imm) |
ADD IK Rd, Ra, Imm lägg till omedelbart och håll kvar |
Rd = Ra+ teckenExtend32 (Imm) |
RSUBIK Rd, Ra, Imm omvänd subtrahera med omedelbar |
Rd = Ra+ teckenExtend32 (Imm) -Ra |
SRA Rd, Ra aritmetiskt skift till höger |
Rd = (Ra>>1) |
Logiska instruktioner
De logiska instruktionerna för typ A och typ B ges nedan.
Typ A
ELLER Rd, Ra, Rb Logisk eller |
Rd = Ra| Rb |
OCH Rd,Ra,Rb Logiskt tillägg |
Rd = Ra & Rb |
XOR Rd, Ra, Rb Logoisk xor |
Rd = Rb ^ Rb |
ANDN Rd, Ra, Rb Logiskt och inte |
Rd = Ra & (Rb) |
Typ B
ORI Rd, Ra, Imm logisk ELLER med omedelbar |
Rd = Ra | signExtend32 (Imm) |
ANDI Rd, Ra, Imm logiskt OCH med omedelbar |
Rd = Ra & signExtend32 (Imm) |
XORI Rd, Ra, Imm logoisk XOR med omedelbar |
Rd = Ra ^ teckenExtend32 (Imm) |
ANDNI Rd, Ra, Imm Logisk OCH INTE med omedelbar |
Rd = Ra & (signExtend32 (Imm)) |
Branch Instruktioner- Ovillkorlig
Ändra programräknarens register
BRID Imm filial omedelbart med omedelbar fördröjning |
PC = PC+ signExtend32 (Imm) tillåt fördröjd slotexekvering |
BRLID Rd, Imm filial och länk omedelbart med omedelbar fördröjning (funktionsanrop) |
Rd = PC PC = PC+& signExtend32 (Imm) tillåt fördröjd slotexekvering |
RTSD Ra, Imm tillbaka från subrutinen |
PC = Ra + signExtend32 (Imm) tillåt fördröjd slotexekvering |
RTID Ra, Imm återvända från avbrott |
PC = Ra + signExtend32 (Imm) tillåt fördröjd slotexekvering ställ in avbrottsaktivering i MSR |
Branch Instruktioner- Ovillkorlig1
Ändra programräknareregistret när ett villkor är uppfyllt
BEQI Ra, Imm gren om lika |
PC = PC+ signExtend32 (Imm) Om Ra = = 0 |
MASH Ra, Imm gren om inte lika |
Rd = PC PC = PC+& signExtend32 (Imm) Om Ra! = 0 |
Branch Instruktioner- Ovillkorlig2
Ändra programräknareregistret när ett villkor är uppfyllt
BLTI Ra, Imm gren om lägre än |
PC = PC+ signExtend32 (Imm) Om Ra < 0 |
BLEI Ra, Imm gren om lägre lika än |
Rd = PC PC = PC+& signExtend32 (Imm) Om Ra!< = 0 |
BGTI Ra, Imm gren om större än |
PC = PC+ signExtend32 (Imm) Om Ra!> 0 |
BGEI Ra, Imm gren om större lika än |
PC = PC+signExtend32 (Imm) Om Ra!>= 0 |
Ladda/förvara instruktioner -Typ A
LW Rd, Ra, Rb Ladda ord |
Adress = Ra+Rb Rd = *Adress |
SW Rd, Ra, Rb Lagra ord |
Adress – Ra+Rb *Adress = Rd |
Typ B
LWI Rd, Ra, Imn Ladda ordet omedelbart |
Adress = Ra + teckenExtend32 (Imm) Rd = *Adress |
SW Rd, Ra, Imm Spara ordet omedelbart |
Adress = Ra + teckenExtend32 (Imm) *Adress = Rd |
Övriga instruktioner
IMM, Imm omedelbar |
Utöka Imm för en föregående typ B-instruktion till 32-bitar. |
MFS Rd, Sa Flytta från specialregistret |
Rd = Sa Sa- specialregister, källoperand
|
MTS Sd, Ra Flytta till specialregistret |
Sd = Ra Sd – specialregister, destinationsoperand |
Register
Arkitekturen hos MicroBlaze-processorn är helt ortogonal som inkluderar 32-bitars register för allmänna ändamål och 32-bitars register för specialändamål som programräknare och maskinstatusregister.
Pipeline arkitektur
MicroBlaze använder en 3-stegs pipeline-arkitektur inklusive hämtning, avkodning och kompletta steg. Automatiskt bestäms datavidarebefordran, grenar och pipelinestopp i hårdvaran.
Ladda eller lagra arkitektur
MicroBlaze stöder minne i tre datastorlekar 8 bitar (Byte), 16 bitar (Halvord) och 32 bitar (Word). Så minnesåtkomster är alltid datastorleksanpassade. Detta är en Big-Endian-processor som använder adressen till Big-Endian-adressen såväl som märkningskonventioner när den väl kommer åt minnet.
Avbryter
När väl ett avbrott äger rum, kommer denna processor att avsluta den aktuella exekveringen för att hantera avbrottsbegäran genom förgrening för att avbryta vektoradress och lagra instruktionsadressen som behöver exekveras. Denna processor kommer att stoppa framtida avbrott genom att rensa flaggan IE (Interrupt Enable) i MSR (Machine Status Register).
Hur fungerar Microblaze?
MicroBlaze-processorn stöder 32-bitars bussbredd och denna processorkärna är en RISC-baserad motor som inkluderar en registerfil baserad på 32-bitars LUT RAM genom separata instruktioner för minne och dataåtkomst.
Denna processor stöder helt enkelt både on-chip BlockRAM och externt minne. Liknar IBM PowerPC; all kringutrustning använder den liknande CoreConnect OPB-bussen så; processorns kringutrustning är väl matchad med PowerPC på Virtex-II Pro.
MicroBlaze-processorn ger fullständig flexibilitet att välja kombinationen av minne, kringutrustning och gränssnittsfunktioner som ger dig det exakta systemet som du behöver på en enda FPGA med lägre kostnad.
Skillnad B/W Microblaze Vs Risc-V
De skillnaden mellan MicroBlaze och RISC v inkluderar följande.
Microblaze |
Risc-V |
Det är en mjuk mikroprocessorkärna huvudsakligen designad för Xilinx FPGA.
|
RISC-V är en instruktionsuppsättningsarkitektur rotad i RISC-principer.
|
Den använder Harvard RISC-arkitektur. | Den använder instruktionsuppsättningsarkitektur. |
Dess licens är proprietär (Xilinx) | Dess licens är öppen källkod. |
Rörledningens djup är 3 eller 5. | Rörledningens djup är 5. |
Dess prestanda är 280 DMIPs. | Dess prestanda är 250 DMIPs. |
Dess hastighet är 235 MHz. | Dess hastighet är 250 MHz. |
Den har 1027 LUT. | Den har 4125 LUT. |
Implementeringen av tekniken som används är Xilinx FPGA. | Implementeringen av tekniken som används är FPGA/ASIC. |
Microblaze fördelar
De fördelarna med MicroBlaze inkluderar följande.
- Det är ekonomiskt.
- Den är mycket konfigurerbar.
- Dess prestanda är hög jämfört med ARM.
- Det stöds av ett inbäddat utvecklingskit.
- Det är en mjuk mikroprocessor kärna.
- För att hjälpa dig att snabbt ordna din applikation innehåller denna processor tre fasta konfigurationer som är relaterade till välkända processorklasser mikrokontroller, realtid och applikationsprocessor.
Microblaze-applikationer
De tillämpningar av MicroBlaze inkluderar följande.
- Denna processor uppfyller många olika applikationskrav som industri, fordon, medicin & konsument, etc.
- Tillämpningarna av MicroBlaze sträcker sig från enkla tillståndsmaskiner baserade på mjukvara till komplexa kontroller som används i inbyggda applikationer eller internetbaserade apparater.
- Den är optimerad för inbyggda applikationer som industriell styrning, kontorsautomation och fordon.
- MicroBlaze kan kommunicera med en stor uppsättning kringutrustning för att passa i medelstora applikationer.
- Den mjuka karaktären hos denna processor gör den anpassningsbar för olika applikationer där designers kan byta funktioner för storlek för att möta pris- och prestandamål för medicinska, fordons-, industri- och säkerhetsapplikationer.
Alltså handlar det här om en översikt över Microblaze processor. Detta är en fullt utrustad, 32-bitars programmerbar RISC mjuk processorkärna. Denna processor uppfyller olika krav inom olika områden som konsument-, medicin-, industri-, fordons- och kommunikationsinfrastrukturmarknader. Den är extremt konfigurerbar, så använd som den inbäddade processorn eller mikrokontrollern inom FPGA, annars som en co-processor för ARM. Här är en fråga till dig, vad är FPGA?