A PicoBlaze vezérlő alkalmazása a LOGSYS kártyán

Hasonló dokumentumok
Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika VIMIAA02 9. hét

Digitális technika (VIMIAA02) Laboratórium 5.5

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika VIMIAA02 9. hét Fehér Béla BME MIT

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika (VIMIAA02) Laboratórium 3

Digitális technika (VIMIAA02) Laboratórium 3

A MiniRISC processzor

Számítógépek felépítése, alapfogalmak

Digitális technika (VIMIAA02) Laboratórium 4

Digitális technika (VIMIAA01) Laboratórium 8

Digitális technika (VIMIAA02) Laboratórium 8

Digitális technika (VIMIAA02) Laboratórium 4

Digitális technika II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium

Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk

Digitális technika VIMIAA hét

Számítógépek felépítése, alapfogalmak

A Picoblaze Core implementálása FPGA-ba

Digitális technika (VIMIAA01) Laboratórium 4

Adatok ábrázolása, adattípusok

A LOGSYS rendszer ismertetése

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

Bevezetés az informatikába

A számítógép alapfelépítése

Architektúra, megszakítási rendszerek

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

Egyszerű RISC CPU tervezése

A MiniRISC processzor

1. Az utasítás beolvasása a processzorba

A MiniRISC processzor

Digitális rendszerek. Utasításarchitektúra szintje

Az interrupt Benesóczky Zoltán 2004

Digitális technika VIMIAA01

Digitális technika VIMIAA01

Perifériák hozzáadása a rendszerhez

Digitális technika (VIMIAA02) Laboratórium 2

Digitális technika (VIMIAA01) Laboratórium 9

A MiniRISC processzor (rövidített verzió)

Digitális technika (VIMIAA01) Laboratórium 9

Számítógép architektúrák

Mikrorendszerek tervezése

Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás

Mikrorendszerek tervezése

Digitális technika (VIMIAA01) Laboratórium 11

Bevezetés a számítástechnikába

Nagy Gergely április 4.

VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK

Digitális technika (VIMIAA01) Laboratórium 2

Digitális Technika. Dr. Oniga István Debreceni Egyetem, Informatikai Kar

Digitális Technika. Dr. Oniga István Debreceni Egyetem, Informatikai Kar

[cimke:] [feltétel] utasítás paraméterek [; megjegyzés]

Az MSP430 mikrovezérlők digitális I/O programozása

Informatika 1 2. el adás: Absztrakt számítógépek

Digitális technika VIMIAA hét

Digitális technika (VIMIAA01) Laboratórium 2

Digitális technika Xilinx ISE GUI használata

Digitális technika VIMIAA hét

Digitális technika (VIMIAA01) Laboratórium 11

A mikroszámítógép felépítése.

Labor gyakorlat Mikrovezérlők

Mikrorendszerek tervezése

A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg.

Digitális technika HF2 Elkészítési segédlet Gépi szintű programozás

LOGSYS LOGSYS SPARTAN-3E FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ szeptember 19. Verzió

Programozási segédlet DS89C450 Fejlesztőpanelhez

A Számítógépek felépítése, mőködési módjai

Labor gyakorlat Mikrovezérlők

A tervfeladat sorszáma: 1 A tervfeladat címe: ALU egység 8 regiszterrel és 8 utasítással

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Rendszerarchitektúrák labor Xilinx EDK

Mérési jegyzőkönyv. az ötödik méréshez

SZORGALMI FELADAT. 17. Oktober

Központi vezérlőegység

Az integrált áramkörök kimenetének kialakítása

A számítógép alapfelépítése

Digitális technika VIMIAA hét

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

LOGSYS LOGSYS LCD KIJELZŐ MODUL FELHASZNÁLÓI ÚTMUTATÓ november 8. Verzió

Operációs rendszerek. Bemutatkozás

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák

Verilog HDL ismertető 2. hét : 1. hét dia

Beágyazott és Ambiens Rendszerek Laboratórium BMEVIMIA350. Mérési feladatok az 1., 2. és 3. mérési alkalomhoz

Ellenőrző mérés mintafeladatok Mérés laboratórium 1., 2011 őszi félév

Digitális technika VIMIAA hét

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Összetett feladatok megoldása

Laborgyakorlat 3 A modul ellenőrzése szimulációval. Dr. Oniga István

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

Mintavételes szabályozás mikrovezérlő segítségével

Assembly. Iványi Péter

Karakteres LCD kijelző használata MiniRISC processzoron

találhatók. A memória-szervezési modell mondja meg azt, hogy miként

Labor gyakorlat Mikrovezérlők

Átírás:

BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK A PicoBlaze vezérlő alkalmazása a LOGSYS kártyán Fehér Béla BME MIT atórium

A PicoBlaze vezérlő 8 bites vezérlőegység egyszerű alkalmazásokra Jól illeszkedik a LOGSYS Spartan-3E FPGA kártya komplexitásához: Kis erőforrásigény, kevesebb mint 100 Slice Harvard felépítés, pipe-line utasításvégrehajtás max. 50MHz működési sebesség 1024 utasítás, assembly szintű programozhatóság Rugalmas perifériakezelés, bővíthetőség Korlátozott fejlesztési támogatás

PicoBlaze blokkvázlat

PicoBlaze programozói modell RISC típusú, nagyon egyszerű utasításkészlet 16 általános célú regiszter, tetszőleges használattal 8 bites adatméret, konstansok és alapműveletek Aritmetikai, logikai, shift és forgatási utasítások Z és C feltételbitek, továbbá paritásszámítás Feltételes vezérlési utasítások a tesztelések után Szubrutin hívás 31 szintű HW stack használatával Programelágazás a teljes címtartományban Egyszintű, egyszerű megszakítás használata

PicoBlaze programozói modell Minimális beépített adatmemória (64 byte) Elérhető abszolút és regiszter indirekt címzéssel 256 bemeneti és kimeneti perifériacím 2 órajelnyi periféria regiszter hozzáférés Művelet érvényesítése független WR és RD jellel LOAD/STORE architektúra Művelet csak a regiszterekkel végezhető, minden adatot ide kell mozgatni használat előtt Adatmemóriából FETCH/STORE, perifériából INPUT/OUTPUT utasításokkal

PicoBlaze utasításkészlet PicoBlaze3 PROGRAMOZÓI KÁRTYA FORDÍTÓ DIREKTÍVÁK ADDRESS cím CONSTANT név, konst NAMEREG reg, név UTASÍTÁSSOR FORMÁTUM CÍMKE: MŰVELET OP1 {,OP2} ; HASZNOS MEGJEGYZÉSEK VEZÉRLÉSI UT. ARITMETIKAI UT. ADAT MOZGATÁSI UT. JUMP felt, cím ADD reg, reg / konst INPUT reg, (reg) /paddr CALL felt, cím ADDCY reg, reg / konst OUTPUT reg, (reg) /paddr RETURN felt SUB reg, reg / konst STORE reg, (reg) /maddr cím 000. 3FF SUBCY reg, reg / konst FETCH reg, (reg) /maddr felt -, Z, NZ, C, NC COMPARE reg, reg / konst / vagylagos használat MEGSZAKÍTÁSI UT. LOGIKAI UT. LÉPTETŐ UT. MEGJEGYZÉS RETURNI ENABLE LOAD reg, reg / konst SR0 / SL0 reg reg s0 sf RETURNI DISABLE AND reg, reg / konst SR1 / SL1 reg konst 00 FF ENABLE INTERRUPT OR reg, reg / konst SRX / SLX reg paddr 00 FF DISABLE INTERRUPT XOR reg, reg / konst SRA / SLA reg maddr 00 3F 1 utasítás = 2 órajel ciklus TEST reg, reg / konst RR / RL reg (reg) ind. cím

PicoBlaze utasításkészlet (1) Vezérlő, programszervező utasítások JUMP felt, cím a felt lehet -, Z,NZ,C,NC CALL felt, cím cím tartomány 000 3FF RETURN felt Szubrutin hívások 31 szintig Megszakításhoz kapcsolódó utasítások ENABLE INTERRUPT egyszintű IT DISABLE INTERRUPT RETURNI ENABLE RETURNI DISABLE

PicoBlaze utasításkészlet (2) Adatmozgató utasítások regiszterekhez (16 regiszter) LOAD reg, reg/konst op2 töltése op1-be Memória kezelő utasítások (64 bájt címtartomány) STORE reg, (reg) / konst FETCH reg, (reg) / konst Periféria kezelő utasítások (256 bájt címtartomány) INPUT reg, (reg) / konst OUTPUT reg, (reg) / konst Operandus jelölés értelmezése Az op1 mindig regiszter operandus LOAD esetén op2 regiszter vagy 8 bites konstans az utasításkódból Az egyéb utasításoknál op2 egy címet specifikál, ami egy 6 vagy 8 bites konstans, illetve a (reg) jelölés regiszter indirekt címzést jelöl

PicoBlaze utasításkészlet (3) Aritmetikai utasítások ADD reg, (reg) / konst, ADDCY reg, (reg) / konst SUB reg, (reg) / konst, SUBCY reg, (reg) / konst COMPARE reg, (reg) / konst A műveletekben op1 mindig regiszter, op2 regiszter vagy 8 bites konstans az utasításkódból Az eredmény az op1 regiszterbe kerül A műveletek állítják a Z és C flag-eket A COMPARE utasítás az eredményt nem tárolja, de a flag-eket állítja Z=1, ha op2 és op1 egyenlő, C=1, ha op2 nagyobb, mint op1

PicoBlaze utasításkészlet (4) Logikai utasítások AND reg, (reg) / konst, OR reg, (reg) / konst, XOR reg, (reg) / konst, TEST reg, (reg) / konst A műveletekben op1 mindig regiszter, op2 regiszter vagy 8 bites konstans az utasításkódból Az eredmény az op1 regiszterbe kerül A műveletek állítják a Z flag-et és ált. törlik a C flag-et A TEST utasítás egy speciális AND művelet, az eredményt nem tárolja, de a flag-eket állítja Z=1, ha a művelet eredménye nullát ad C=1, ha a művelet eredménye páratlan paritású

PicoBlaze utasításkészlet (5) Léptető és forgató utasítások SR0 reg, SL0 reg, SR1 reg, SL1 reg SRX reg, SLX reg, SRA reg, SLA reg RR reg, RL reg A műveletekben az operandus mindig regiszter, a mozgatás egyetlen bitpozíciót jelent A kódban a 0, és 1 a belépő új bitet jelenti, az X esetén az aktuális bitet ismétli, az A esetén kiterjesztett, 9 bites műveletet hajt végre a C flag-et is felhasználva A forgató utasítások a kilépő bitet visszaléptetik A műveletek állítják a Z flag-et és a kilépő bitet minden esetben a C flag-be másolják

Általános használati módok Egyedi alkalmazásokhoz: A vezérlő és a hozzátartozó programmemória modul beépítése egy tetszőleges HDL tervbe Periféria eszközök specifikálása, megtervezése Az alkalmazás elkészítése a rendelkezésre álló gépi szintű nyelven (assembly programozás) A program futtatható kódjának generálása az assembler futtatásával A programmemória tartalom aktualizálása A terv lefordítása és letöltése a kívánt kártyára

Általános használati módok A beépítendő modulok és interfészeik: KCPSM3 vezérlő egység PROGRAM BlokkRAM memória

A forrásfájlok formátuma A PicoBlaze vezérlő forrásfájl részben titkosított HDL nyelven rendelkezésre áll, de strukturális leírás formájában A leírás FPGA primitívek elemi példányosítása, a logikai hálózatokat LUT tartalomként megadva Nehéz átlátni/módosítani, de ha valakit érdekel. Megírható lenne RTL szinten, de nem érdemes A programmemória fájl egy BlokkRAM példány, az aktuális alkalmazás kódjával felinicializálva

A PicoBlaze LOGSYS rendszer Egyszerű minta alkalmazás a vezérlő használatának bemutatásához A KCPSM3 blokk beépítése a szokásos A programmemória kiegészítve a tartalom JTAG interfészen keresztüli letölthetőségéhez Alapvető be- és kimeneti interfészek a LOGSYS kártyán található perifériákhoz Csak regiszterek, semmi kiegészítő funkcionalitás BE: Kapcsolók, nyomógombok KI: LED-ek, numerikus és pontmátrix kijelzők

A PicoBlaze LOGSYS konfiguráció

A PicoBlaze LOGSYS konfiguráció

PicoBlaze LOGSYS perifériák PicoBlaze LOGSYS mintarendszer periféria regiszterek CÍM REG MÓD BITEK használata, funkciója HEXA NÉV WR/RD B7 B6 B5 B4 B3 B2 B1 B0 00 ld wr ld7 ld6 ld5 ld4 ld3 ld2 ld1 ld0 01 sw rd sw7 sw6 sw5 sw4 sw3 sw2 sw1 sw0 02 bt rd 0 0 0 0 bt3 bt2 bt1 bt0 03 sg wr sg7 sg6 sg5 sg4 sg3 sg2 sg1 sg0 04 dg wr 0 0 0 0 dg3 dg2 dg1 dg0 05 cl wr 0 0 0 cl4 cl3 cl2 cl1 cl0 06 xd wr/rd xd7 xd6 xd5 xd4 xd3 xd2 xd1 xd0 07 xal wr xa7 xa6 xa5 xa4 xa3 xa2 xa1 xa0 08 xah wr xa15 xa14 xa13 xa12 xa11 xa10 xa9 xa8 09 xmc wr xa16 0 0 0 0 xcs xoe xwe 0A pr wr pr7 pr6 pr5 pr4 pr3 pr2 pr1 pr0 0A tm rd tm7 tm6 tm5 tm4 tm3 tm2 tm1 tm0 0B tc wr iten tps2 tps1 tps0 0 0 trep ten 0B ts rd irq tps2 tps1 tps0 0 tout trep ten

Programfejlesztés A programok elkészítését egy assembler támogatja Az assembler a vezérlőhöz hasonlóan korlátozott képességű Egyszerű DOS alkalmazás, használata nem túl kényelmes Hiba esetén leáll az adott ponton, hibaüzenettel Javítás, újraindítás, következő hiba,.. Különböző kimeneti formátumokat generál, teljes HW rendszer generálásához vagy csak program frissítéshez

PicoBlaze assembler Használata: > kcpsm3 filename.psm A filename.psm assembler forrást beolvassa és ha nincs hiba, lefordítja, és generálja a következőket: filename.v Verilog BokkRAM module fájl, amivel a program befordítható a tervbe HW modul szinten filename.log Assembler riport fájl, címekkel, cimkékkel, azonosítókkal, utasításkódokkal filename.hex A lefordított kód ( image ), ami a alapján SVF formátumú letölthető programfájl generálható Egy make.bat batch fájl összefogja a fenti műveleteket és generálja az SVF fájlt, ami egy PicoBlaze-t tartalmazó felkonfigurált FPGA-ra JTAG letöltővel letölthető

Az assembler jellemzői Forrásfájl: egyszerű szövegfájl.psm kiterjesztés Feldolgozás soronként: 1 sor 1 utasítás Az assembly forrássorok formátuma: CÍMKE: UT_NÉV OP1, {OP2} ; MEGJ CÍMKE: Egy adott utasítást nevez meg (Az utasítás címét képviseli az ugrások megvalósításához) UT_NÉV reprezentálja a funkciót, pl. ADD, LOAD, CALL OP1 {,OP2} a művelet operandusai, OP2 nincs mindig ; MEGJ A ; karakter a megjegyzés kezdete, ami ezután található, az a programra nincs hatással JAVASLAT: Minden utasításhoz írjunk megjegyzést

Az assembler tulajdonságai Kevés szabály van Konstansok értelmzése mindig HEXA rendszerben Lehet konstansokhoz azonosítót rendelni CONSTANT sw, 02 ; Az sw periféria címe A munkaregiszterek alapelnevzése s0, s1, sf Használhatók így is, pl. LOAD s3, s9 Vagy átnevezhetők NAMEREG s3, first ; NAMEREG s9, second ; Ezután LOAD first, second ; Azaz LOAD s3, s9

Az assembler jellemzői Az utasítások címe sorrendben növekszik Lehetséges a PC értékének közvetlen előírása is ADDRESS xxx, ahol xxx <= 3FF Használata indokolt, ha bizonyos kódrészletet adott címtől szeretnénk fordítani pl. szubrutin, vagy IT vektor ugró utasítása Az assembler által generált LOG fájl-ban ellenőrizhető az utasítások cím szerinti kódja és a fordító által használt értelmezés (címkék, változó nevek) Ha a kód hibátlanul lefordult, beépíthető a HW tervbe (.V kimeneti fájl) vagy letölthető a kész konfigurációra (.HEX ill..svf kimeneti fájl)

Az SVF fájl letöltése A forrásprogramot fordítsuk le a make filename paranccsal (pl. make kr1) A LOGSYS GUI-ban kapcsoljuk be a tápfeszültséget Töltsük le a PicoBlaze konfigurációt Töltsük rá a filename.svf program fájlt

PicoBlaze Periféria illesztés A PicoBlaze processzor interfésze nagyon egyszerű Szinkron busz működés, érvényesítés CLK felfutó élre 2 ütemnyi buszciklusok, nincs várakozáskérés Adatátvitel végrehajtása CLK felfutó élre 8 bit IO cím, 8 bit adat szétválasztott ki- és bemenet RD és WR pulzusok a művelet ütemezésére RD használata FIFO bemenet esetén érdekes WR mindig kell

PicoBlaze Periféria illesztés A PicoBlaze beolvasási művelet időbeli lefolyás Címzés a PORT_ID vonalakon Érvényes adat az IN_PORT-on Beolvasás a RD pulzus által kijelölt órjel ciklusban

PicoBlaze Periféria illesztés A PicoBlaze kiírási művelet időbeli lefolyás Címzés a PORT_ID vonalakon Érvényes adat az OUT_PORT-on Kiírás a WR pulzus által kijelölt órjel ciklusban

PicoBlaze Periféria illesztés A PicoBlaze illesztési feladat lépései A periféria típusa alapján az igények felmérése Regiszterek száma, használati módja (IN, OUT) Parancs, státusz, üzemmód regiszterek Esetleg FIFO vagy kisebb memória blokk Báziscím kijelölés, címtartomány használat megtervezése Címdekódolás kialakítása Kiíró jelek ADDR_SEL & WR Olvasó jelek ADDR_SEL & RD Olvasott regiszterek kimenetei MUX-on keresztül, egy időben csak egy érvényes, a többi nullát ad