PicoBlaze lekce 1: assembler, C překladač a simulační prostředí Jiří Svozil, Leoš Kafka, Jiří Kadlec svozil@utia.cas.cz



Podobné dokumenty
PicoBlaze lekce 4: Aplikace pro výuku asembleru procesoru PicoBlaze Jiří Svozil, Jaroslav Stejskal, Leoš Kafka, Jiří Kadlec

Řadiče periferií pro vývojovou desku Spartan3E Starter Kit Jaroslav Stejskal, Jiří Svozil, Leoš Kafka, Jiří Kadlec.

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Použití programu uscope k simulaci výukového přípravku pro předmět PMP

Projekt: Přístupový terminál

Příloha č. I: Schéma zapojení vývojové desky PVK-PRO

Přerušovací systém s prioritním řetězem

Návod na použití programu 8051 IDE

Procesor z pohledu programátora

Vzorový příklad. Postup v prostředí ISE. Zadání: x 1 x 0 y Rovnicí y = x 1. Přiřazení signálů:

Vysoké učení technické v Brně Fakulta informačních technologií ITP Technika personálních počítačů Služby ROM BIOS a BootROM

Vzorový příklad. Postup v prostředí ISE. Zadání: x 1 x 0 y. Rovnicí y = x 1. x 0. Přiřazení signálů: ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Procesory, mikroprocesory, procesory na FPGA O. Novák, CIE 11 1

Struktura a architektura počítačů (BI-SAP) 7

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

Správa zařízení Scan Station Pro 550 a Servisní nástroje zařízení Scan Station

Pohled do nitra mikroprocesoru Josef Horálek

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru

VYUŽITÍ KNIHOVNY SWING PROGRAMOVACÍHO JAZYKU JAVA PŘI TVORBĚ UŽIVATELSKÉHO ROZHRANÍ SYSTÉMU "HOST PC - TARGET PC" PRO ŘÍZENÍ POLOVODIČOVÝCH MĚNIČŮ

PicoBlaze lekce 3: sériová komunikace RS232 a testování IP jader pomocí procesoru PicoBlaze Jiří Svozil, Jaroslav Stejskal, Leoš Kafka, Jiří Kadlec

... sekvenční výstupy. Obr. 1: Obecné schéma stavového automatu

Kubatova Y36SAP procesor - control unit obvodový a mikroprogramový řadič RISC Y36SAP-control unit 1

První kroky s METEL IEC IDE

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

.NET Framework verze Program pro připojení ke vzdálené ploše (RDC) verze

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

MIDAM Simulátor Verze 1.5

MIDAM Verze 1.1. Hlavní okno :

Architektura procesoru ARM

Ing. Michal Martin. Spojení PLC CLICK s NA-9289

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Profilová část maturitní zkoušky 2014/2015

Nastavení programu pro práci v síti

PK Design. MB-S2-150-PQ208 v1.4. Základová deska modulárního vývojového systému MVS. Verze dokumentu 1.0 ( )

Téma 8: Konfigurace počítačů se systémem Windows 7 IV

USB Dokovací stanice. Uživatelský manuál

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

P D S - 5 P. Psychologický diagnostický systém. Instalační manuál. Popis instalace a odinstalace programu Popis instalace USB driverů

Projekt: Přístupový terminál

ZÁKLADNÍ POKYNY PRO INSTALACI PROID+ Z INSTALAČNÍHO MÉDIA

Instalace a první spuštění Programu Job Abacus Pro

Návod k simulaci výukového přípravku v programu Hybrid Circuit Simulator (HyCiSim) verze 0.4

ČEMU ROZUMÍ MIKROPROCESOR?

POKYNY K INSTALACI JAVA PLUGINU A ELEKTRONICKÉHO PODPISU V SYSTÉMU ELZA. Stav ke dni verze 1.0

Témata profilové maturitní zkoušky

T-Mobile Internet. Manager. pro Windows NÁVOD PRO UŽIVATELE

Reliance 3 design OBSAH

HelenOS ARM port. Pavel Jančík Michal Kebrt Petr Štěpán

MBus Explorer MULTI. Uživatelský manuál V. 1.1

Instalace elišky 3.0 na Windows 7 (32-bitová verze) ČMSS a.s.

Datacard. Instrukce k aktualizaci firmware tiskáren. Aktualizační aplikace pro operační systémy Windows

Importy a exporty KLIENTSKÝ DOPLNĚK PRO PODPORU IMPORTŮ VERZE 3.2.0

MPASM a IDE pro vývoj aplikací MCU (Microchip)

KP KP KP DIAGNOSTIKA KOTLŮ KP

Nastavení Java pro aplikaci G-Client Str. 1/8

CS OTE. Dokumentace pro externí uživatele

1. Diagnostika kotle prostřednictvím řídící jednotky

Nastavení DCOM. Uživatelský manuál

TACHOTel manuál 2015 AURIS CZ

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

Postup získání licence programu DesignBuilder v4

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

8. Laboratoř: Aritmetika a řídicí struktury programu

Obsluha periferních operací, přerušení a jeho obsluha, vybavení systémových sběrnic

Popis programu: Popis přípon důležitých souborů: *.qpf projektový soubor Quartusu

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

2) Nový druh připojení Ethernet-CA5 umožňující připojit nové zařízení CA5 a to přes Ethernet nebo přes GPRS

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

CS OTE. Dokumentace pro externí uživatele

4.2. Odhlásit se Šifrování hesla Sepnutí výstupních relé Antipassback Zobrazení všech dat...

Uživatelský modul. DF1 Ethernet

MODERNÍ TRENDY V PROGRAMOVATELNÉ LOGICE, APLIKACE V AUTOMATIZAČNÍ A MĚŘICÍ TECHNICE

Windows a real-time. Windows Embedded

Zpracování obrazu v FPGA. Leoš Maršálek ATEsystem s.r.o.

Programování PICAXE18M2 v Assembleru

Cíle. Teoretický úvod. BDIO - Digitální obvody Ústav mikroelektroniky Základní logická hradla, Booleova algebra, De Morganovy zákony Student

A4300BDL. Ref: JC

Popis programu EnicomD

Technické prostředky počítačové techniky

Value Adaptér USB -> telefon (RJ11) Katalogové číslo: Typ: EzSKY050

FORTANNS. 22. února 2010

1. Konfigurace projektu a prostředí

Témata profilové maturitní zkoušky

Assembler RISC RISC MIPS. T.Mainzer, kiv.zcu.cz

INSTALACE SOFTWARE PROID+ NA MS WINDOWS

1. Seznamte se s výukovou platformou FITkit (

POTŘEBA A PRODUKCE ENERGIÍ V ZEMĚDĚLSKÉ VÝROBĚ V ČR V KRIZOVÉ SITUACI. Specializovaná mapa. Návod k používání programu

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

IMTEE Přednáška č. 8. interrupt vector table CPU při vzniku přerušení skáče na pevně dané místo v paměti (obvykle začátek CODE seg.

konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian

Návod na práci s přípravkem a programy uscope a FLIP na cvičeních

Instalační manuál pixel-fox

Pro označení disku se používají písmena velké abecedy, za nimiž následuje dvojtečka.

Aplikace a služba Money Dnes Publisher v deseti krocích

Profilová část maturitní zkoušky 2015/2016

Téma 10: Správa hardwarových zařízení a ovladačů II

Nastavení služby T-Mobile GPRS. pro přístup na Internet z počítače s operačním systémem Windows

Architektura počítače

Transkript:

Technická zpráva PicoBlaze lekce 1: assembler, C překladač a simulační prostředí Jiří Svozil, Leoš Kafka, Jiří Kadlec svozil@utia.cas.cz Obsah 1. Úvod... 2 2. Xilinx PicoBlaze... 2 2.1 Architektura procesoru... 3 2.2 Instrukční sada... 3 2.3 Přerušení... 4 3. KCPSM3 Assembler... 5 3.1 Překlad pomocí KCPSM3... 5 4. C překladač PCCOMP... 6 4.1 Vlastnosti PCCOMP... 6 4.2 Překlad kódu... 6 4.3 Obsluha přerušení v C... 6 5. Simulační prostředí pblaze IDE... 7 5.1 Konfigurace pblazeide pro procesor KCPSM3... 7 5.2 Simulace I/O portů... 8 6. Použité/Potřebné vybavení a nástroje... 9 7. Ukázkové příklady... 9 7.1 Příklad 1 Překlad assemblerového kódu a simulace procesoru... 9 7.2 Příklad 2 C překladač... 11 8. Obsah a popis přiloženého balíku... 12 9. Reference... 12 Revize Revize Datum Autor Popis změn v dokumentu 0 5.3.2007 J.Svozil Vytvoření dokumentu 1 20.8.2007 J.Svozil Revize 1 2.

1. Úvod Tato zpráva popisuje první lekci ze série lekcí, zabývajících se procesorem PicoBlaze. Lekce jsou připraveny jako vodítko práce s tímto procesorem a umožňují uživateli překonat počáteční bariéru spojenou s návrhem obvodů založených na procesoru PicoBlaze. Každá lekce je doplněna řešeným projektem. Všechny lekce a související projekty jsou navrženy a připraveny tak, aby je bylo možné absolvovat individuálně na vlastním PC, a to na těchto kartách: Na přípravku FITkit z VUT Brno s obvodem Spartan 3 XC3S50 a Xilinx ISE WebPack. Na kartě s3esk (Xilinx Starter Kit) se Spartan 3E XC3S500E a Xilinx ISE WebPack Na kartě ML402 s Virtex 4 SX Na kartě ML403 s Virtex 4 FX Xilinx ISE WebPack Tato první lekce seznámí uživatele s procesorem PicoBlaze a se simulačním prostředím pblazeide, dovolujícím modelovat a ladit PicoBlaze včetně jednoduchých periferií na PC. Současně seznámí uživatele s assemblerem procesoru a jednoduchým C překladačem a na příkladu vysvětlí obsluhu přerušení v asembleru a v jazyce C. 2. Xilinx PicoBlaze Xilinx PicoBlaze je velmi jednoduchý 8-bitový RISC procesor vytvořený pro FPGA čipy Spartan-3, Virtex-II, Virtex-II Pro a Virtex-4. Jeho hlavní předností je jeho velikost; v případě obvodu Spartan-3 zabírá procesor PicoBlaze pouze 96 slice, což odpovídá 5% z XC3S200 a méně než 0,3% z XC3S5000. Rychlost procesoru se pohybuje od 43 do 100 MIPS v závislosti na cílovém FPGA a jeho speed grade. Procesor PicoBlaze je plně začlenitelný do cílového FPGA a nevyžaduje žádné dodatečné externí zdroje. Jeho užití je výhodné především ve složitějších aplikacích, kde lze obsluhu časově nenáročných části realizovat právě pomocí tohoto procesoru a tím návrh značně zjednodušit. Procesor PicoBlaze je dodáván v několika verzích. V těchto lekcích bude použita verze KCPSM3 ((K)constant Coded Programmable State Machine). 2/12

2.1 Architektura procesoru Základní parametry a architektura procesoru PicoBlaze (KCPSM3) je na obrázku 1. 8-bitový procesor 1024 instrukcí (1 BlockRAM) 256 I/O adres 64 Byte uživatelská paměť 1 zdroj přerušení HW stack 31x10 Obrázek 1: Architektura procesoru Picoblaze [1] 2.2 Instrukční sada Kompletní instrukční sada procesoru PicoBlaze je na obrázku 2. Podrobný popis jednotlivých instrukcí lze nalézt v manuálu [1]. Obrázek 2: Instrukční soubor procesoru Picoblaze [2] 3/12

2.3 Přerušení Procesor PicoBlaze poskytuje pouze jeden zdroj přerušení. Pokud některá aplikace potřebuje zdrojů více, je toto možno realizovat pomocí jednoduché FPGA logiky a vytvořit tak další zdroje přerušení. Doporučené zapojení pro zpracování požadavku na jeden zdroj přerušení je znázorněno na obrázku 3. Obrázek 3: Přerušení u procesoru PicoBlaze [1] Po resetu procesoru je přerušení implicitně zakázáno a pro jeho použití je třeba jej aktivovat pomocí instrukce ENABLE INTERRUPT. K jeho opětovnému zakázání slouží instrukce DISABLE INTERRUPT. V okamžiku přerušení se po dokončení aktuálně zpracovávané instrukce provede instrukce CALL 3FF. Tato instrukce představuje skok na konec paměti programu. Zde bývá obvykle instrukce skoku na funkci pro obsluhu přerušení (ISR - interrupt service routine), viz obrázek 4. Přerušení automaticky zachovává jak Zero tak Carry flags, avšak pouze pro jednu úroveň volání obsluhy přerušení. (1) přerušení je třeba po resetu vždy povolit pomocí instrukce ENABLE INTERRUPT (2) vznik prerušení (3) automatický skok na adresu 3FF při žádosti o přerušení (4) skok na funkci pro obsluhu přerušení (ISR) (5) vlastní obsluha přerušení (6) návrat z funkce obsluhy přerušení s opětovným povolením přerušení (RETURNI ENABLE) Obrázek 4: Ukázka běhu obsluhy přerušení [1] 4/12

3. KCPSM3 Assembler 3.1 Překlad pomocí KCPSM3 Překlad se provádí pomocí programu KCPSM3.EXE (k dispozici na [4]). Pro překlad je nutné do společného adresáře nakopírovat zdrojový kód (filename.psm), program KCPSM3.EXE a šablony ROM_form.vhd, ROM_form.v a ROM_form.coe. Překlad se pak provede příkazem: kcpsm3 filename.psm <enter> Výstupem překladu je patnáct souborů popsaných na obrázku 5. Soubor filename.vhd představuje komponentu s programovou pamětí procesoru. Připojení programové paměti k procesoru PicoBlaze je na obrázku 6. Obrázek 5: Vstupní a výstupní soubory assembleru KCPSM3 [2] Obrázek 6: Procesor PicoBlaze (KCPSM3) s připojenou pamětí programu [2] 5/12

4. C překladač PCCOMP 4.1 Vlastnosti PCCOMP Překladač PCCOMP (the Picolaze's C Compiler) [5] byl vyvinut pro FPGA návrháře pracující s procesorem PicoBlaze. Překladač podporuje přerušení a in-line ASM, nepodporuje však celé ANSI C ani celé K&R C. Současná verze překladače umožňuje překlad pouze zjednodušeného C a překladač neprovádí žádné optimalizace. Přeložený kód bývá v některých případech nefunkční. 4.2 Překlad kódu K překladu zdrojového kódu z C do assembleru lze použít následující příkaz: pccomp [-c] [-v] [-s] file.c <enter> Parametr -c slouží k zobrazení zdrojového C kódu v psm souboru vygenerovaným pomocí pccomp. Parametr v se používá při překladu pro procesor KCPSM2. Parametr s určuje, zda bude pro datový zásobník použita vnitřní paměť (scratchpad), nebo externí paměť, připojená na vstupně výstupní porty procesoru. PCCOMP vytvoří soubor s názvem file.psm a současně také zobrazí zprávu o průběhu překladu a případná chybová hlášení. S PCCOMP lze překládat vždy jen jeden soubor a ten musí obsahovat funkci main(). 4.3 Obsluha přerušení v C Jak už bylo zmíněno výše, PicoBlaze má jeden zdroj přerušení a ten může být povolen, či zakázán. Příkaz na povolení přerušení je IRQ_ON;, příkaz pro zakázání pak IRQ_OFF;. Rutina přerušení musí být psána v asembleru a smí používat pouze registry s0,s1,s2 a s3. Funkce pro obsluhu přerušení musí být deklarována jako všechny ostatní funkce v programu. Deklarace funkce pro obsluhu přerušení se provádí pomocí klíčového slova interrupt. Ukázkový příklad na obsluhu přerušení v jazyce C je na obrázku 7. interrupt my_irq(void); char a,b,c; char had_an_irq; void main(){ IRQ_ON; while (1>0) while(had_an_irq) { IRQ_OFF; had_an_irq = 0; c=a+b; IRQ_ON; } } interrupt my_irq (void){ #asm load s0,1 store s0,had_an_irq ; had_an_irq = 1 #endasm } Obrázek 7: Obsluha přerušení v C 6/12

5. Simulační prostředí pblaze IDE Prostředí pblaze IDE [6] (obrázek 8) od společnosti Mediatronix je bezplatné grafické vývojové prostředí pro Windows sloužící k simulaci procesoru PicoBlaze. Vstupním souborem je soubor typu FMT, který vzniká při překladu pomocí assembleru KCPSM3. Obrázek 8: Simulační prostředí pblaze IDE. (Obrázek z [1]) 5.1 Konfigurace pblazeide pro procesor KCPSM3 Prostředí podporuje všechny čtyři typy procesoru Picoblaze, proto je třeba před otevřením simulovaného souboru nastavit, o jaký typ se jedná. To se provádí v záložce Settings (obrázek 9) Samotné otevření souboru se pak děje pomocí položky File Import (obrázek 10). Assembler vygenerovaný pomocí KCPSM3 se liší od assembleru používaného v simulátoru a tímto dojde k jeho automatické konverzi. Zdrojový soubor nelze pouze otevřít pomocí File Open, protože takto by se neprovedly potřebné změny ve zdrojovém souboru! 7/12

Obrázek 9: Nastavení typu Picoblaze Obrázek 10: Načtení simulovaného souboru 5.2 Simulace I/O portů Simulace I/O portů v prostředí pblazeide je zobrazeno a popsáno na obrázku 11, obrázku 12 a obrázku 13. Obrázek 11: Simulace dat na vstupních portech (Obrázek z [1]) Obrázek 12: Simulace dat na výstupních portech (Obrázek z [1]) 8/12

Obrázek 13: Simulace dat na I/O portech. (Obrázek z [1]) 6. Použité/Potřebné vybavení a nástroje K realizaci všech příkladů uvedených v této lekci je třeba stáhnout z internetu balíček procesoru PicoBlaze [4] (verzi PicoBlaze for Virtex-II and Virtex-II Pro), obsahující VHDL popis procesoru kcpsm3.vhd, překladač KCPSM3.EXE a obecný popis programové paměti procesoru ROM_form.vhd, ROM_form.c, ROM_form.coe. Dále je nutné stáhnout C překladač PCCOMP z adresy [5] a simulační prostředí pblaze IDE z adresy [7]. K realizaci obou ukázkových příkladů byla vyžita verze KCPSM 1.30, verze pblaze IDE 3.7.4 ß a verze PPCOMP 1.7.7. 7. Ukázkové příklady Následující kapitola je věnována praktickému vyzkoušení C překladače, assembleru a simulace procesoru na dvou připravených ukázkových příkladech. Oba níže uvedené příklady ve svém postupu využívají překladač KCPSM3 včetně popisu programové paměti procesoru. Proto je třeba nejprve z internetového odkazu [4] stáhnout balíček procesoru Picoblaze obsahující vše zmíněné. K simulaci assemblerovského kódu je použito simulační prostředí pblazeide (viz kapitola 5). To je třeba také stáhnout a to z internetových stránek společnosti Mediatronix [7]. Simulátor pblazeide je tvořen pouze jedním souborem pblazeide.exe. 7.1 Příklad 1 Překlad asemblerového kódu a simulace procesoru 1) Zkopírujte z přiloženého CD z adresáře src soubor io_v0.zip a rozbalte jej. Pomocí assembleru KCPSM3 přeložte vzorový kód souboru io_test.psm (postup viz kapitola 3). 2) Přeložený soubor io_test.fmt importujte do prostředí pblaze IDE (obrázek 14). Důležité je provést import souboru (položka Import ), ne pouze otevření pomocí Open. 9/12

Obrázek 14: Načtení souboru do simulačního prostředí pblaze IDE 3) V záložce Settings zkontrolujeme nastavení simulace Picoblaze. Správná hodnota je Picoblaze 3, jak je prezentováno na obrázku 15:. Obrázek 15: Nastavení simulace PB 4) Před samotnou simulací je třeba odkomentovat část deklarace portů určenou pro simulaci a stávající deklaraci určenou pro překlad naopak zakomentovat, viz obrázek 16:. Obrázek 16: Změna definice portů takto má vypadat zdrojový soubor pro simulaci 10/12

5) Nyní můžeme pomocí tlačítek na ovládacím panelu spustit simulaci a uvést ji do režimu RUN, viz obrázek 17. Dále lze pomocí tlačítek v položce BTN_port a diod v položce LED_port vyzkoušejte funkčnost programu. Program v tomto příkladu má velmi jednoduchou funkci, a to že v nekonečné smyčce čte hodnoty z BTN_portu a beze změny je zapisuje na výstupní port LED_port. I. Simulační mód II. Start simulace (RUN) III. Testovací tlačítka a diody Obrázek 17: Simulace programu io_test.fmt v pblaze IDE 7.2 Příklad 2 C překladač 1) Z internetových stránek [5] stáhněte program PCCOMP (C překladač). 2) Z přiloženého cd zkopírujte z adresáře src z balíku io_c_v0.zip soubor io_test.c. Ten rozbalte do adresáře s programem PCCOMP. 3) Proveďte překlad zdrojového souboru io_test.c pomocí příkazu pccomp -c -s io_test.c (obrázek 18) Obrázek 18: Překlad pomocí PCCOMP 4) Překladem jsme získali assemblerovský soubor io_test.psm, na který teď použijeme stejný postup jako u příkladu 1. Tzn. přeložíme jej pomocí programu KCPSM3.EXE a simulujeme programem pblazeide. Důležité je zachovat doporučený postup jednotlivých kroků tak, jak je popsáno v předchozí kapitole 7.1. 11/12

8. Obsah a popis přiloženého balíku PicoBlaze_Lekce1/ src/ io_v0.zip Příklad 1 io_c_v0.zip Příklad 2 doc/ PicoBlaze_lekce1.pdf Tento dokument pccomp.zip pccomp.exe C překladač 9. Reference [1] Xilinx, PicoBlaze 8-bit Embedded Microcontroller User Guide for Spartan-3, Virtex-II, and Virtex-II Pro FPGAs, http://www.xilinx.com/bvdocs/userguides/ug129.pdf [2] Xilinx, KCPSM3 Manual [3] Xilinx, PicoBlaze User Resources http://www.xilinx.com/ipcenter/processor_central/picoblaze/picoblaze_user_resources.htm [4] Xilinx, PicoBlaze, http://www.xilinx.com/picoblaze [5] 1 Francesco Poderico, PCCOMP C compiler download page, http://www.poderico.co.uk/index.htm [6] Mediatronix, PicoBlaze IDE, http://www.mediatronix.com/pblazeide.htm [7] Mediatronix, PicoBlaze IDE, stažení pblazide.exe http://www.mediatronix.com/tools/pblazide36.zip Poděkování Tato práce byla podpořena projektem ministerstva školství a tělovýchovy číslo 2C06008, http://www.vlam.cz. 1 Tyto stránky jsou dočasně nedostupné. PCCOMP je součástí přiloženého CD (v souboru pccomp.zip). 12/12