Implementace procesorů v obvodech FPGA

Rozměr: px
Začít zobrazení ze stránky:

Download "Implementace procesorů v obvodech FPGA"

Transkript

1 Implementace procesorů v obvodech FPGA Doc. Ing. Jaromír Kolouch, CSc. Ústav radioelektroniky FEKT VUT v Brně, Purkyňova 118, Brno E -mail: kolouch@feec.vutbr.cz Článek podává informaci o jednom z moderních způsobů vytváření konstrukcí v obvodech FPGA o implementaci procesorů v těchto obvodech. Jsou zde uvedeny výhody a nevýhody tohoto řešení ve srovnání s tradičním řešením spočívajícím v sestavení konstrukce na základě behaviorálního popisu nebo schématu. Jako příklad je podrobně uvedena charakteristika procesoru PicoBlaze firmy Xilinx a postup při implementaci jednoduché konstrukce. 1. Úvod Obvody PLD a FPGA představují spolu s procesory a mikrokontroléry perspektivní směr pro realizaci číslicových systémů. Mikrokontroléry, případně procesory (pro stručnost budou tyto součástky v dalším textu označovány jako procesory) se dnes používají pro nejrůznější aplikace, což je dáno jejich velkou univerzálností jejich chování je v širokých mezích možno definovat programem. Přesto však existují meze jejich použitelnosti, mezi které patří především jejich výkonnost (udávaná zpravidla jako počet instrukcí vykonaných za sekundu v jednotkách MIPS Million Instructions Per Second). Pro vykonání určitého algoritmu musí procesor provést určitý počet instrukcí, čímž je určena doba reakce systému s procesorem na vnější podnět. Počet potřebných instrukcí může být i pro jednoduché algoritmy značný. Naproti tomu při použití pevně zapojených obvodů může tato doba reakce být mnohem kratší. Pokud je potřebné výkonnost určitého typu procesoru zvýšit, je to možné provést připojováním dalších přídavných součástek například známých podpůrných integrovaných obvodů. Nezřídka může být účelné použít pro tyto účely programovatelné obvody typu PLD nebo FPGA. Rozvoj technologie výroby obvodů FPGA a soustavný pokles jejich ceny vedl v posledních letech k řešení spočívajícímu v implementaci procesorů přímo do obvodů FPGA (tzv. embedded design). Dnešní obvody FPGA v principu obsahují vše, co je potřebné pro vytvoření struktury procesoru. Zejména to jsou paměťové bloky, které mohou sloužit jako paměť ROM, tedy paměť programu procesoru, i jako paměť RAM ve funkci paměti dat, zásobníku a dalších paměťových struktur. Je tedy možné nakonfigurovat obvody FPGA tak, že obsahují tzv. procesorové jádro, tj. konstrukci představující část hradlového pole s konfigurací v souhlasu se zapojením procesoru včetně paměťových subsystémů pro paměť programu a dat. Jádro pak bývá doplněno dalšími logickými subsystémy vytvořenými z prvků obsažených v obvodu FPGA, na které můžeme pohlížet jako na přídavné součástky zvyšující výkonnost procesoru, nebo naopak můžeme procesor implementovaný v obvodu FPGA považovat za prostředek k vykonávání logických funkcí, které by jinak mohly běžným způsobem být realizovány univerzálními strukturními prvky obvodu FPGA nejčastěji na základě popisu jazykem HDL (obvykle behaviorálním stylem, schématem apod.). Jde v podstatě o podobné úvahy, jaké můžeme 23-1

2 činit o použití procesoru ve formě fyzické součástky na desce plošného spoje jako o náhradě jiných číslicových obvodů, pouze s tím rozdílem, že je vše realizováno v obvodu FPGA. Procesorové jádro bývá obvykle vytvořeno s podporou výrobce obvodů FPGA nebo i bez ní jako blok IP (Intellectual Property) a do obvodu FPGA je zpravidla vkládáno strukturálním stylem jako komponenta (nebo několik komponent) nebo ekvivalentním blokovým schématem. Existují také procesory vytvořené v obvodu FPGA jako hotové funkční bloky (hard processors), například procesory PowerPC v obvodech řady Virtex firmy Xilinx. K výhodám tohto řešení patří: Možnost nakonfigurovat procesor, jeho periferie a stykové obvody podle potřeby aplikace. Rozsáhlejší procesory, jako je procesorové jádro MicroBlaze (Xilinx) nebo skupina jader řady Nios (Altera) dovolují uživateli zvolit v návrhovém systému konfiguraci procesoru tak, aby odpovídala potřebám vyvíjené aplikace, a případně tuto konfiguraci v průběhu vývoje rozšiřovat nebo i zužovat a tak ji přizpůsobovat vyvíjejícím se požadavkům. U jednodušších jader (např. PicoBlaze), kde tato možnost není nebo je omezená, lze k jádru připojovat další bloky vytvořené běžným způsobem v obvodu FPGA (to je samozřejmě možné i u složitějších jader). V případě potřeby je možno vložit do obvodu FPGA více procesorů, které pak pracují paralelně. Zmenšení rizika nedostupnosti součástek použitých v konstrukci, které není zanedbatelné zejména u ne zcela běžných procesorů a dalších součástek. Pokud se pro vývoj použije některý z obvodů FPGA, které jsou blízko začátku svého života, je málo pravděpodobné, že by s jeho dostupností mohly být v blízké budoucnosti problémy. A nedostupnost procesorového jádra, s nímž jsme dříve pracovali, lze zcela vyloučit. K procesorovým jádrům jsou dostupné vývojové prostředky (obvykle poměrně komfortní pro komerční procesory, s určitým omezením to však platí i pro jádra volně dostupná, jako je procesor PicoBlaze). Pro větší procesory bývají k dispozici kompilátory pro rozšířené standardní jazyky (např. C), takže lze využívat široké nabídky existujících programů v těchto jazycích. Řešení sdružuje více dříve používaných součástek na jeden čip výhody takového kompaktního řešení jsou dobře známé. Možnost provádět upgrade výrobku zasláním nového konfiguračního souboru uživateli, podobně jako je to u některých procesorů. Ke složitějším typům procesorů, jako jsou procesory MicroBlaze nebo PowerPC implementované v obvodech FPGA firmy Xilinx, jsou vyvinuty návrhové prostředky odpovídající dosti rozsáhlým programovým blokům typu průvodce (Embedded Development Kit, EDK u zmíněné firmy). Tyto prostředky již nebývají dostupné zdarma, k jejich použití je nutno zakoupit příslušnou licenci. Kromě výše uvedených procesorových jader (MicroBlaze, PicoBlaze, Nios), která nabízejí přímo výrobci obvodů FPGA, existuje řada dalších podobných konstrukcí zčásti volně dostupných na internetu, zčásti prodávaných dalšími firmami. Mezi jinými jsou to ekvivalenty (někdy jen přibližné) známých typů procesorů (8051, PIC atd.). Před jejich použitím je však vhodné seznámit se s jejich podporou dalšími softwarovými prostředky (simulátory, kompilátory atd.) a uvážit, jaká se dá očekávat jejich další perspektiva. 23-2

3 Procesory představují přece jen značně složitou konstrukci a vychytat v nich všechny chyby a nedostatky není právě jednoduché. Místo usnadnění práce tak může použití ne zcela dobře propracovaného a vyzkoušeného typu procesorového jádra přinést spíš komplikace. Přejít na jiný typ procesoru zde však bývá obecně snadnější než podobný přechod u procesorů vyráběných jako samostatné součástky už proto, že to není spojeno s nutností změn konkrétních součástek, vyvinutých a případně již vyrobených plošných spojů a podobně. 2. Příklad procesorového jádra: procesor PicoBlaze Procesor PicoBlaze byl vyvinut pracovníky firmy Xilinx a může být implementován do obvodů FPGA této firmy. Jeho autor Ken Chapman je známý svými četnými publikacemi zveřejněnými na www stránkách firmy Xilinx. PicoBlaze je osmibitový harvardský procesor typu RISC. Všechny podklady k jeho použití včetně dokumentace [1], [2], zdrojových souborů a vývojových prostředků jsou volně dostupné na www stránkách firmy Xilinx. Zdrojové soubory procesoru jsou zpracovány pro použití v konstrukcích využívajících jazyky HDL (VHDL, Verilog), po vygenerování příslušného symbolu může být procesor vložen i do schématu vytvořeného v editoru schémat systému ISE (návrhový systém pro práci s obvody FPGA firmy Xilinx). Soubor instrukcí asembleru a další podrobnosti jsou popsány v literatuře [4]. Procesor PicoBlaze má několik variant podle typu cílového obvodu. Zde budeme uvažovat variantu pro obvod FPGA typu Spartan-3. Její blokové schéma je nakresleno na Obr. 1. Procesor zabere 96 řezů a jeden blok paměti RAM v obvodu Spartan-3 a jeho výkonnost je kolem 50 MIPS. Nevyžaduje připojení žádných dalších vnějších součástek k obvodu FPGA, v němž je implementován. V jednom obvodu FPGA může být implementováno více procesorových jader: do nejmenšího obvodu FPGA rodiny Spartan- 3, tj. XC3S50, se teoreticky vejde 8 jader PicoBlaze (i když z praktického hlediska by taková konstrukce zřejmě nebyla příliš účelná). Zdrojová jednotka popisující tuto variantu procesoru PicoBlaze je označena kcpsm3.vhd.obr. 1. Blokové schéma procesoru PicoBlaze, varianta pro FPGA typu Spartan-3 Obr. 1. Blokové schéma procesoru PicoBlaze, varianta pro FPGA typu Spartan-3 Co procesorové jádro PicoBlaze (verze pro FPGA typu Spartan-3 a Virtex-II) obsahuje: 23-3

4 paměť programu pro 1024 instrukcí; 16 rovnoprávných osmibitových registrů označených s0 až sf, které mohou všechny být použity jako střadač; aritmeticko-logickou jednotku ALU pro provádění operací obvyklých u jednoduchých procesorů s příznaky nuly a přenosu, které lze použít ke větvení programu; zápisníkovou paměť s rozsahem 64 byte; zásobník dovolující provádění podprogramů až do 31 úrovní; jednoduchý přerušovací systém s jedním programově maskovatelným přerušením; 256 osmibitových vstupů a tentýž počet osmibitových výstupů se vzorkovacími signály a s přímým nebo nepřímým adresováním; nulovací vstup (reset) k vyvolání definovaného počátečního stavu procesoru. Kdy je použití procesoru PicoBlaze vhodné? Pro posouzení, zda je použití tohoto procesoru vhodné, je zapotřebí zejména odhadnout požadovanou rychlost reakce a možnost propojení procesoru s okolními částmi obvodu FPGA (viz blokové schéma procesoru). Samozřejmě bude také důležité, jak snadné či obtížné bude sestavení programu pro procesor, nebo jeho získání z jiných zdrojů. Obecně lze říci, že procesor implementovaný do obvodu FPGA má podobné výhody a nevýhody, popř. omezení jako procesor realizovaný jako diskrétní součástka: k omezením patří skutečnost, že doba jeho reakce na vnější podnět je dána počtem instrukcí, které musí procesor vykonat, a dobou trvání instrukčního cyklu, a je tedy obvykle větší, než doba reakce obvodového řešení. Na druhé straně je programování procesoru, popř. získání programu často snadnější a rychlejší než vývoj obvodové struktury se stejnou funkcí. Snadnější bývají pak také modifikace programu při potřebě upravit jeho funkci. Použití procesoru bývá tedy nejvhodnější pro realizaci algoritmických úloh, u nichž není kritické časové hledisko. Řešení s procesorem tak bývá vhodné mimo jiné pro řízení různých procesů jako náhrada jednoúčelových stavových automatů střední nebo vyšší složitosti. Tomu odpovídá také druhá část PSM označení procesoru PicoBlaze, tj. KCPSM: Programmable State Machine (první dvě písmena údajně znamenají, že procesor je kódován konstantami, jiné vysvětlení je pokládá za iniciály jména jeho tvůrce Kena Chapmana). Jak se při implementaci postupuje: Pokud usoudíme, že je vhodné procesor použít, je nutné sestavit nebo získat program pro procesor. Jeho kompilací se vytvoří komponenta paměti programu. Ta spolu s komponentou procesoru (kcpsm3) bude tvořit procesorové jádro. Dále je potřebné vytvořit v návrhovém systému (budeme uvažovat systém ISE firmy Xilinx) propojení procesorového jádra a ostatních subsystémů, které budou implementovány do obvodu FPGA. Popis propojení může mít grafickou formu (schéma), nebo formu textovou zápis v některém z jazyků HDL (Hardware Description Language, jako jsou jazyky VHDL nebo Verilog). Práce se schématem je snadná a intuitivní, pokud rozsah schématu není příliš velký. Větší konstrukce je obvykle vhodné hierarchicky rozdělit na menší části, pokud to jejich povaha dovoluje. Z dílčích bloků konstrukce, které mohou být popsány formou textovou (jazyk HDL) nebo grafickou (schéma, stavový diagram), se v návrhovém systému vytvoří komponenty (textová forma) nebo symbolické značky (grafická forma), které je možno vložit do jednotky vyšší hierarchické úrovně. 23-4

5 Nejvyšší hierarchickou úroveň představuje vrcholová jednotka konstrukce. Uvedené rozčlenění hierarchické struktury platí ovšem obecně, ne jen pro konstrukce s procesorem. Které programové nástroje potřebujeme k práci s procesorem PicoBlaze: Procesor se implementuje do obvodů FPGA firmy Xilinx, potřebujeme tedy návrhový systém pro práci s těmito obvody. Uvedená firma nabízí návrhový systém ISE (Integrated Software Environment), jehož bezplatnou verzi WebPACK můžeme stáhnout z www stránek této firmy. V současnosti je pro implementaci konstrukcí menší a střední velikosti vhodná některá z verzí obvodu Spartan-3. Ty jsou WebPACKem podporovány. Podobně jako při jiných pracích s obvody FPGA je pro ladění jednotek, s nimiž procesor spolupracuje, potřebný simulátor, například ModelSim nebo Simili (bezplatné verze vhodné pro malé konstrukce jsou opět bezplatně dostupné na www). Pro kompilaci programu, tedy vytvoření komponenty paměti programu procesoru, můžeme použít buď programové prostředky původně vytvořené pracovníky firmy Xilinx (Ken Chapman) nebo prostředky, které vyvinuly další firmy. Mezi nimi je zvláště zdařilý vývojový nástroj nazvaný pblazide firmy Mediatronix, který je zdarma dostupný na www stránkách této firmy [4]. Budeme dále předpokládat použití tohoto nástroje. Program pblazide.exe není třeba instalovat, stačí jej pouze nakopírovat do vhodného adresáře. Technické vybavení potřebné pro práci: Tak jako při práci s běžnými procesory je potřebné mít nějakou platformu, do níž budeme konstrukci implementovat. V uživatelských aplikacích je touto platformou deska plošných spojů, kterou si uživatel zpravidla sám navrhuje a vyrábí, s osazeným obvodem FPGA, do něhož se procesor implementuje. Pro účely seznámení s procesorem PicoBlaze nebo pro dílčí vývojové práce můžeme použít vývojové desky, které prodává řada firem zastupujících obchodně firmu Xilinx nebo s ní spolupracujících (lze snadno najít na internetu). K jednoduchým vývojovým deskám patří například Spartan-3 Starter Kit firmy Digilent, jejíž cena je kolem 150 USD (je potřebné počítat ještě s určitou marží, kterou si účtují prodejci), nebo podobné desky s dalšími obvody FPGA. Při příležitosti různých akcí bývají tyto desky dostupné i za nižší cenu. Vývojová deska Spartan-3 Starter Kit obsahuje mimo jiné osm přepínačů a čtyři tlačítka pro zadávání vstupních dat, čtyřmístný multiplexně řízený sedmisegmentový displej LED, generátor hodinového signálu s kmitočtem 50 MHz a stykový obvod pro linku RS-232. K programování obvodu FPGA potřebujeme programovací kabel, který se připojuje k počítači. Komfortním nástrojem pro tento účel jsou různé kabely určené pro připojení k rozhraní USB, jejichž ceny bývají rovněž kolem 150 USD. Levnější jsou kabely připojované k bráně LPT nebo COM, na internetu jsou také návody pro stavbu programovacích kabelů svépomocí. Podobný kabel i s napájecím zdrojem je již přímo součástí výše uvedeného Starter Kitu, nelze jej však použít pro programování uživatelských desek s jinou hodnotou napájecího napětí programovacího rozhraní než 3,3 V (výrobce jej doporučuje pouze k programování kitu). Implementační šablona a šablona procesorového jádra: 23-5

6 Deska plošného spoje (platforma) obsahuje obvykle kromě obvodu FPGA další obvody, které s obvodem FPGA spolupracují ve vývojových deskách to bývají typicky přepínače a další prostředky pro vytváření vstupních signálů, displeje LED či zobrazovače LCD pro vizualizaci výstupů a případně řada dalších periferních obvodů, podle vybavení příslušné vývojové desky. K některým z nich, jako například k multiplexním displejům LED, je nutné vytvořit obslužné bloky, jejichž číslicovou část je třeba implementovat do obvodu FPGA. Máme-li k dispozici určitou platformu, je jí určena také potřebná struktura a funkce těchto obslužných bloků. Bývá pak účelné vytvořit z nich šablonu, do níž se pak vkládá (nejlépe formou komponenty) vnitřní obvodová struktura, která představuje vlastní zkoušenou konstrukci. Při vytváření různých konstrukcí ve vývojové desce nebo při vývoji a postupných úpravách vnitřní obvodové struktury FPGA v uživatelské aplikaci pak bývá tato implementační šablona relativně stálá. Popis šablony v systému ISE zpravidla obsahuje: vrcholovou jednotku (zapsanou v textovém tvaru v některém z jazyků HDL nebo ve formě schématu, případně i v jiném formátu); soubor ucf (user constraints file) definující přiřazení signálů vývodům FPGA, I/O standardy (nejčastěji LVTTL, LVCMOS a podobné) pro jednotlivé vývody, časové požadavky (požadovaný kmitočet hodinového signálu a další); případné další soubory definující funkci dílčích bloků obsažených v šabloně. Výrobci vývojových desek často dodávají implementační šablony ke svým deskám, nebo k nim dodávají testovací konstrukce, z nichž si uživatel může šablonu sestavit vypuštěním přebytečných bloků nebo jejich nahrazením jednoduchými bloky, které mohou například představovat přímé přiřazení vstupních signálů výstupním signálům, pokud to obvody připojené k FPGA na platformě dovolují (například u multiplexně řízených displejů LED by výpadek skenování mohl vést k přetížení části displeje). Analogií tohoto přístupu je vytvoření šablony procesorového jádra, u procesoru PicoBlaze složeného v nejjednodušším případě z komponenty vlastního procesoru a komponenty paměti programu. V souhlasu s Obr. 1 bude pak šablona procesorového jádra obsahovat jednu vstupní a jednu výstupní bránu, obě osmibitové. Sestava šablony se pak popíše textem (jazykem HDL ve strukturálním stylu) nebo schématem a do konstrukce se vkládá jako komponenta. Obvykle se k výstupní bráně připojuje ještě registr, viz [2]. Má-li být bran více, je třeba k této sestavě přidat vstupní multiplexory, další výstupní registry a dekódovací logiku, a v případě potřeby ještě další obvody (pipelining a podobně). Tyto přídavné obvody můžeme zahrnout do šablony procesorového jádra, nebo je můžeme pokládat za obvody připojené k šabloně jádra v dalším výkladu budeme předpokládat tuto druhou interpretaci. 3. Vývoj aplikací procesoru PicoBlaze postup pro pblazide Vývoj má dvě větve: sestavení obvodového uspořádání určeného k implementaci do cílového obvodu FPGA, které zahrnuje procesorové jádro s dalšími spolupracujícími obvody, a vytvoření programu procesoru. Máme-li vytvořenu šablonu procesorového jádra, jsou tyto větve vzájemně nezávislé, pokud je použitá šablona postačující, tj. pokud se při vývoji neobjeví požadavky, které se stávající šablonou nelze splnit. Jinými slovy, program můžeme upravovat, aniž to bude nezbytně znamenat nutnost změny obvodového uspořádání. Při výše zvoleném přístupu, kdy je šablona procesorového jádra složena jen z 23-6

7 uvedených dvou komponent (z procesoru a paměti programu), bude tato šablona postačující, pokud výkonnost a vybavení procesoru PicoBlaze stačí pro danou úlohu. Kdyby například byl pro vyřešení úlohy nezbytný výkonnější systém přerušení, který by nebylo možno vytvořit přídavnými obvody, ale který by vyžadoval zásah do struktury procesoru, museli bychom patrně použít jiný typ procesoru. Sestavení obvodového uspořádání: Budeme dále předpokládat, že máme k dispozici jako platformu výše zmíněný Spartan-3 Starter Kit s příslušnou implementační šablonou. Pro implementaci procesoru PicoBlaze budeme kromě této šablony potřebovat následující soubory: kcpsm3.vhd soubor s entitou procesoru, viz kcpsm3.zip, což lze stáhnout z www stránky: soubor s entitou paměti programu vytvoří se kompilací souboru *.psm (program pro procesor) v prostředí pblazide; šablonu procesorového jádra, která bude zahrnovat obě tyto entity jako komponenty, a bude pak vložena do konstrukce. K této šabloně pak mohou být připojeny další obvody vstupní multiplexory, výstupní registry a podobně, pomocí kterých bude procesorové jádro komunikovat se svým okolím. Šablona procesorového jádra může být popsána jazykem HDL strukturálním stylem. Názornější je však popis schématem, který použijeme zde (Obr. 2). Obr. 2. Šablona procesorového jádra komponenta MPU Schéma z Obr. 2 obsahuje komponentu procesoru kcpsm3 a komponentu paměti programu ProgMem. Schematická forma (symbol) komponenty procesoru se vytvoří ze souboru kcpsm3.vhd v systému ISE běžným postupem pro vytvoření schematického symbolu ze zdrojového souboru. Vytvoření symbolu paměti programu však již není tak jednoduché (aspoň ne ve verzích ISE 8 a starších), protože soubor popisující komponentu paměti programu vytvořený v prostředí pblazide obsahuje jazykové konstrukty, které generátor symbolů v systému ISE není schopen správně zpracovat. Musíme tedy vytvořit komponentu paměti oklikou. Následující postup byl vyzkoušen pro verzi ISE 8.2. Nejprve v prostředí pblazide vygenerujeme komponentu paměti programu. K tomu můžeme použít jakýkoliv syntakticky správný úsek programu pro procesor, jen když bude obsahovat příkaz pro označení entity paměti programu, s níž budeme dále pracovat (při generování komponenty z Obr. 2 bylo toto označení ProgMem). Využijeme pak skutečnosti, že u komponent ve schématech můžeme měnit (upravovat) soubory *.vhd, máme-li k nim již symbol vytvořený. U souboru pro paměť programu vygenerovaného v 23-7

8 prostředí pblazide nyní odstraníme (přeměníme na komentář) části, které generátor symbolů není schopen správně zpracovat, z takto upraveného popisu paměti programu vytvoříme symbol a pak se opět vrátíme k původnímu souboru. V popisu komponenty paměti tedy zakomentujeme slohu (package) zvanou constants i odkaz na ni (use constants.all;) a v deklaraci entity paměti programu nahradíme parametr ADDRSIZE hodnotou 10 a INSTSIZE hodnotou 18 (to jsou číselné hodnoty těchto parametrů pro cílový obvod Spartan-3). Takto upravený soubor je již možno zpracovat generátorem symbolů (hlášení chyb ignorujeme). Někdy se stává, že se symbol vytvoří (v adresáři projektu se objeví soubor popisující symbol, zde ProgMem.sym), ale není zobrazen v nabídce symbolů. Obvykle pomůže zavření a opětné otevření okna schématu. Pro další práci opět odkomentujeme slohu constants i odkaz na ni a obnovíme definici šířky vektorů v deklaraci entity (parametry ADDRSIZE, INSTSIZE). Nyní již můžeme vytvořit schéma šablony (Obr. 2), které označíme jako jednotku MPU.sch, a z ní komponentu (schematický symbol, budeme-li jej vkládat do schématu vyšší úrovně), kterou budeme v další práci používat. Úpravy programu procesoru můžeme nyní provádět beze změny šablony, pokud nezměníme název entity paměti programu. Po vytvoření komponenty MPU můžeme dokončit první větev vývoje návrh obvodového uspořádání včetně vložení procesorového jádra, a tento návrh vložit do implementační šablony. Tím je obvodové uspořádání sestaveno. Poznámka: Komponenta MPU odpovídá souboru PicoTest.vhd ze souborů firmy Mediatronix, který obsahuje entitu MPU. V této entitě je procesor (komponenta kcpsm3) propojen strukturálním popisem s pamětí programu, jejíž název je určen direktivou VHDL v souboru *.psm. Paměť programu v tomto schématu má vstup hodinového signálu, což odpovídá skutečnosti, že bloková paměť obsažená v obvodech FPGA, kterou je paměť programu realizována, je synchronní obsahuje výstupní registr, do něhož se data zapisují tímto signálem. Sestavení programu pro procesor: Program pro procesor můžeme sestavit na základě příruček, například [2]. Je také možno inspirovat se vypracovanými programy, které jsou dostupné např. na internetu. Příklad sestavení jednoduchého programu je uveden v dalším odstavci. 4. Příklad konstrukce s použitím jádra PicoBlaze Jako ilustraci použití jádra zde uvedeme část konstrukce přídavného obvodu k počítači PC, která vykonává nějaké zpracování dat posílaných počítačem po sériové lince a odesílá je pak touto linkou zpět. Jádro PicoBlaze bude použito k tomuto zpracování a k vytvoření UARTu, který bude zajišťovat komunikaci mezi počítačem a procesorem. Pro jednoduchost bude zmíněné zpracování dat představovat v našem příkladu vytvoření součtu dvou dekadických čísel zapsaných v osmibitovém kódu BCD. Sčítačku se stejnou funkcí by samozřejmě bylo možno vytvořit v obvodu FPGA bez použití procesoru mnohem jednodušším způsobem. Pokud však je procesor v obvodu vhodné vytvořit pro další aplikace, může být výhodné jej použít i pro tento účel nespotřebují se přitom žádné další strukturní prvky obvodu FPGA kromě části paměti programu. Použití procesoru pro implementaci UARTu a podobných bloků může být výhodné z i toho důvodu, že sestavení programu je často pro mnoho konstruktérů snadnější a rychlejší než 23-8

9 vytvoření těchto konstrukcí ze základních strukturních prvků FPGA (zapsání jeho popisu v jazyku HDL), nebo tehdy, je-li již hotový program nebo aspoň vhodný algoritmus k dispozici (různé programy jsou dostupné na www). Je také výhodné, že přidávání dalších funkcí k bloku jako je UART realizovaný procesorem je vcelku snadné a přehledné, a totéž často v ještě větší míře platí i pro úpravy těchto funkcí. Budeme stále předpokládat implementaci do Spartan-3 Starter Kitu firmy Digilent První část konstrukce: sečtení dvou čísel v kódu BCD v procesoru PicoBlaze Funkce sčítačky: Procesor zpracovává dekadická čísla v rozsahu Oba operandy jsou uloženy v registrech procesoru. Stlačením tlačítka BTN1 na desce kitu se na displeji desky zobrazí první sčítanec, stlačením BTN0 druhý sčítanec. Při zobrazeném sčítanci (první či druhý) se do něj zapíše údaj ze spínačů stlačením BTN2. Není-li stlačeno žádné tlačítko, zobrazuje se výsledek operace součet (s rozsahem 0 198). Počáteční hodnota sčítanců (po připojení napájecího napětí) je určena programem procesoru. Popis programu pro součet dvou dvoumístných čísel v kódu BCD: Sčítání procesor provádí v binární soustavě, pro získání součtu čísel v kódu BCD je pak nutno výsledek sčítání korigovat (analogie instrukce DA A u běžných procesorů, jako je např. 8051). Pro správnou funkci programu je nezbytné, aby vstupní čísla měla rozsah odpovídající kódu BCD, tj. obě číslice každého sčítance musí být v rozsahu 0 až 9. V programu pro procesor PicoBlaze (AddBCD.psm) se nejprve testuje součet nižších čtveřic bitů (jednotky). Je-li výsledek součtu větší než 9, musí se pro nižší čtveřici bitů provést dekadická korekce tím, že se při následujícím vlastním sčítání přičte k jednotkám číslo 6. Tím bude na pozici jednotek ve výsledku vždy číslice v rozsahu 0 až 9 představující součet jednotek v kódu BCD. Po tomto testu se provede vlastní sčítání včetně případného přičtení čísla 6 pro korekci jednotek. Dále se musí podobně korigovat součet vyšší čtveřice bitů (desítek): jeli na pozici desítek ve výsledku číslice A až F (hexadecimálně) nebo vznikl-li přenos, znamená to, že k výsledku je nutno přičíst 60 (zapsáno opět hexadecimálně). Tím je korekce skončena. Algoritmus, který má procesor vykonávat, je nutné zapsat formou programu. Zde budeme pracovat s asemblerovským jazykem v syntaxi firmy Mediatronix [2]. Všechny programové nástroje, které budeme používat, jsou bezplatně dostupné na internetu. ; soucet 8bitovych cisel v kodu BCD, MEDIATRONIX syntax ; vstup: s2,s3 ; vystup: s1,s0 ; Sum0 EQU s0 Sum1 EQU s1 Op1 EQU s2 Op2 EQU s3 TlIn EQU s6 Dig10Rg EQU se Dig32Rg EQU sf 23-9

10 VHDL "ROM_blank.vhd", "PicoAddBCD.vhd", "AddBCD" PSwIn DSIN $80 ; spinace PTlIn DSIN $40 ; tlacitka POut0 DSOUT $01 POut1 DSOUT $02 LOAD Op1, 2 ; pocatecni hodnota LOAD Op2, 9 LOAD Dig32Rg, 0 LOAD Dig10Rg, 0 start: IN TlIn, PTlIn ; sejmuti tlacitek TEST TlIn, 3 ; test BTN0 a BTN1 JUMP Z, vypocet ; kdyz zadne neni stlacene LOAD Dig32Rg, 0 ; jinak nuluj stovky a tisice start0: TEST TlIn, 1 ; test BTN0 JUMP Z, start1 ; kdyz nestlaceno LOAD Dig10Rg, Op2 ; jinak zobraz Op2 start1: TEST TlIn, 2 ; test BTN1 JUMP Z, start2 ; kdyz nestlaceno LOAD Dig10Rg, Op1 ; jinak zobraz Op1 start2: TEST TlIn, 4 ; test BTN2 JUMP Z, eee ; kdyz nestlaceno TEST TlIn, 1 ; test BTN0 JUMP Z, start3 ; kdyz nestlaceno IN Op2, PSwIn ; jinak cti Op2 LOAD Dig10Rg, Op2 ; a zobraz start3: TEST TlIn, 2 ; test BTN1 JUMP Z, eee ; kdyz nestlaceno IN Op1, PSwIn ; jinak cti Op1 LOAD Dig10Rg, Op1 ; a zobraz JUMP eee vypocet: LOAD Sum1, Op1 AND Sum1, $0F LOAD Sum0, Op2 AND Sum0, $0F ADD Sum1, Sum0 LOAD Sum0, 0 COMP Sum1, $0A ; test souctu spodnich nibblu JUMP C, add1 LOAD Sum0, 6 ; je-li >9,bude se ; pricitat 6 k dolnimu nibblu add1: ADD Sum0, Op1 ADD Sum0, Op2 ; v Sum0 je vytvoren soucet nizsich nibblu v kodu BCD, ; vyssi jsou zatim secteny v binarnim kodu, nasleduje dek. korekce: ; je-li prenos nebo je-li horni nibble souctu >9, je nutno pricist $60 LOAD Sum1, 0 JUMP C, add5 ; je-li prenos COMP Sum0, $A0 JUMP NC, add2 ; je-li horni nibble Sum0 > 9 JUMP ee add2: ADD Sum0, $60 ADDC Sum1, 0 JUMP ee add5: ADDC Sum1, 0 ADD Sum0, $60 ee: LOAD Dig10Rg, Sum0 ; zobraz soucet LOAD Dig32Rg, Sum

11 eee: OUT Dig10Rg, POut0 OUT Dig32Rg, POut1 JUMP start Program začíná rozmístěním proměnných v registrech procesoru (příkazy EQU). Následující příkaz VHDL specifikuje šablonu pro vytvoření souboru VHDL popisujícího obsah paměti programu procesoru, který bude vytvořen při kompilaci (ROM_blank.vhd, lze stáhnout z internetu), dále název souboru vytvářeného při kompilaci (PicoAddBCD.vhd) a označení entity v tomto souboru (AddBCD). Poslední dva názvy zvolíme nejlépe tak, aby odpovídaly funkci programu. Příkazy DSIN a DSOUT definují vstupní a výstupní signály. Parametrem je hodnota adresy, která se objeví na výstupu PORT_ID (MPU_PORT) viz Obr. 3 v průběhu vstupní či výstupní operace. Po dekódování se adresní signály mohou použít jako signály výběru, odkud se vstupní hodnota čte či kam se výstupní hodnota zapisuje. V našem případě se při čtení určuje bitem Sel(7), zda se čte hodnota z přepínačů nebo z tlačítek (vstupní signály Sw, Btn). Při zápisu určují bity Sel(0) a Sel(1) po dekódování v bloku BcdSel pozici na displeji, kde bude příslušná hodnota z výstupu OUT_PORT zobrazena. Symbol $ v příkazech DSIN a DSOUT značí, že konstanta za ním je zapsána v hexadecimální soustavě. Funkce zbývající části programu odpovídá výše uvedenému algoritmu pro dekadické sčítání a je možno ji vysledovat z komentářů k jednotlivým instrukcím. Funkce instrukce TEST: Při jejím provedení se provede bitový součin obou operandů, tj. součin všech stejnolehlých bitů. Jsou-li všechny tyto dílčí součiny nulové, nastaví se příznak ZERO, jinak se nuluje. Je-li v druhém operandu konstanta, u níž je jen jeden bit jedničkový, dává tím výsledek informaci o tom, jestli je odpovídající bit prvního operandu jedničkový nebo nulový. Instrukce TEST ovlivňuje také příznak CARRY, což v našem programu není využito, popis viz [2]. Žádný další účinek tato instrukce nemá. Funkce instrukce COMP (compare): Tato instrukce ovlivňuje rovněž jen příznaky ZERO a CARRY. Příznak ZERO je nastaven, jsou-li oba operandy stejné, jinak je nulován. Příznak CARRY je nastaven, je-li první operand menší než druhý, jinak je nulován. Žádný další účinek tato instrukce nemá. Význam ostatních instrukcí je zřejmý z jejich zápisu. Obr. 3. Sčítačka v kódu BCD schéma vrcholové jednotky Na Obr. 3 je schéma vrcholové jednotky. Ta je vytvořena z implementační šablony Spartan-3 Starter Kitu vložením bloku MPU ve funkci sčítačky. Blok InMux je vstupní multiplexor, kterým se do procesoru přivádějí vstupní signály z přepínačů Sw nebo tlačítek Btn ve shodě s adresovým signálem Sel. Výběrový blok BcdSel má na svém 23-11

12 výstupu čtyři čtveřice bitů Bcd, které představují číslice zobrazované blokem DspDriv (řadič displeje) na displeji kitu. Generátor skenovacích taktů Timing vytváří ze systémového hodinového signálu clk50 s kmitočtem 50 MHz vzorkovací signál s kmitočtem přibližně 1 khz, který určuje přepínání výstupů budiče displeje. Popis těchto bloků v jazyku VHDL následuje. Vstupní multiplexor: ENTITY InMux IS PORT(In1: IN std_logic_vector (7 DOWNTO 0); In0: IN std_logic_vector (3 DOWNTO 0); Sel: IN std_logic; MxOut: OUT std_logic_vector (7 DOWNTO 0)); END InMux; ARCHITECTURE Behavioral OF InMux IS BEGIN MxOut <= In1 WHEN Sel = '1' ELSE ("0000" & In0); END Behavioral; Výběrový blok: ENTITY BcdSel IS PORT(DBin: IN std_logic_vector (7 downto 0); Bcd: OUT std_logic_vector (15 downto 0); SelHi,SelLo: IN std_logic; write,clk: IN std_logic; END BcdSel; ARCHITECTURE Behavioral OF BcdSel IS BEGIN PROCESS(clk) BEGIN IF clk'event AND clk = '1' THEN IF write = '1' THEN IF (SelLo = '1') THEN Bcd( 7 DOWNTO 0) <= DBin; IF (SelHi = '1') THEN Bcd(15 DOWNTO 8) <= DBin; END PROCESS; END Behavioral; Generátor skenovacích taktů: ENTITY Timing IS PORT(Clk: IN std_logic; KHzEn: OUT std_logic; SecEn: OUT std_logic); END Timing; ARCHITECTURE Behavioral OF Timing IS SIGNAL mhertz_count,khertz_count: std_logic_vector(9 DOWNTO 0); SIGNAL mhertz_en,khertz_en: std_logic; BEGIN -- generates a 1 MHz signal from a 50 MHz signal - mhertz_en PROCESS (clk) BEGIN IF clk'event AND clk = '1' THEN mhertz_count <= mhertz_count + 1; IF mhertz_count = "110010" THEN mhertz_en <= '1'; mhertz_count <= (OTHERS => '0'); ELSE 23-12

13 mhertz_en <= '0'; END PROCESS; -- generates a 1 khz signal from a 1MHz signal - khertz_en PROCESS (clk) BEGIN IF clk'event AND clk = '1' THEN IF mhertz_en = '1' THEN khertz_count <= khertz_count + 1; IF khertz_count = " " THEN khertz_en <= '1'; khertz_count <= (OTHERS => '0'); ELSE khertz_en <= '0'; ELSE khertz_en <= '0'; END PROCESS; KHzEn <= khertz_en; END Behavioral; Řadič displeje: ENTITY DspDriv IS PORT(clk50: IN std_logic; khertz_en: IN std_logic; bcdint: IN std_logic_vector(15 DOWNTO 0); dp3,dp2,dp1,dp0: IN std_logic; digit: OUT std_logic_vector(3 DOWNTO 0); seg: OUT std_logic_vector(7 DOWNTO 0)); END DspDriv; ARCHITECTURE Behavioral OF DspDriv IS SIGNAL cd: std_logic_vector(1 DOWNTO 0); SIGNAL curr: std_logic_vector(3 DOWNTO 0); SIGNAL dp: std_logic; BEGIN PROCESS (clk50) BEGIN IF clk50'event AND clk50 = '1' THEN IF khertz_en = '1' THEN cd(1 DOWNTO 0) <= cd(1 DOWNTO 0) + 1; CASE cd(1 DOWNTO 0) IS -- curr je soucasne zobrazena cifra, digit je jeji pozice na displeji WHEN "00" => curr <= bcdint(3 DOWNTO 0); digit <="1110"; dp <= dp0; WHEN "01" => curr <= bcdint(7 DOWNTO 4); digit <="1101"; dp <= dp1; WHEN "10" => curr <= bcdint(11 DOWNTO 8);digit <="1011"; dp <= dp2; WHEN OTHERS=>curr <= bcdint(15 DOWNTO 12);digit<="0111"; dp <= dp3; END CASE ; CASE curr IS WHEN "0000" => seg <= " " & dp; -- 0 WHEN "0001" => seg <= " " & dp; -- 1 WHEN "0010" => seg <= " " & dp; -- 2 WHEN "0011" => seg <= " " & dp; -- 3 WHEN "0100" => seg <= " " & dp; -- 4 WHEN "0101" => seg <= " " & dp;

14 WHEN "0110" => seg <= " " & dp; -- 6 WHEN "0111" => seg <= " " & dp; -- 7 WHEN "1000" => seg <= " " & dp; -- 8 WHEN OTHERS => seg <= " " & dp; -- 9 END CASE; END PROCESS; END Behavioral; 4.2. Druhá část konstrukce: vysílač UART pro připojení k PC přes rozhraní RS-232 Funkce: Po stlačení tlačítka BTN3 se vyšle z kitu rozhraním RS-232 (sériová linka) řetězec znaků, který se zobrazí na monitoru počítače (připojeného např. k COM1) v programu HyperTerminal. UART bude naprogramován do procesoru PicoBlaze současně se sčítačkou z první části konstrukce. Na desce Spartan-3 Starter Kit je pro přenos do PC použit obvod interface sběrnice RS-232 typu MAX3232. Řešení: Program procesoru bude sestaven pro přenosovou rychlost 9600 Bd. V klidovém stavu má být na výstupu obvodu FPGA, na nějž navazuje sběrnice RS-232, napětí s úrovní H. Vysílání každého znaku začíná start bitem (L), pak následuje 8 datových bitů (LSB první) a končí se stop bitem (H). Trvání každého bitu na lince musí odpovídat přenosové rychlosti. HyperTerminal zobrazuje obvyklým způsobem znaky v rozsahu kódu 20 až 7E. Nový řádek se vytvoří po vyslání znaků CR, LF (hex kód: 13, 10). Kromě sestavení vlastního programu je samozřejmě nutné na jeho začátku definovat instrukcí EQU registr pro výstupní signál procesoru (nazvěme ho např. UARTout) a instrukcí DSOUT adresu, kam se výstupní signál zapisuje (hodnota této adresy bude během výstupu na bráně procesoru MPU_PORT, označení adresy může být např. PUART). Algoritmus programu: 1. Sejmutí tlačítek a test na stlačení BTN3; není-li stlačené, pokračuje se programem pro sčítačku. Aby při odskakování kontaktů nedošlo k vícenásobnému vyslání znaku, bude po zjištění změny stavu tlačítka zařazena časová prodleva (cca 5 ms), během níž odskakování dozní. Pro odměření prodlevy je vhodné sestavit podprogram. 2. Vytvoření kódu znaku ve vysílacím registru (UARTout). 3. Vyslání obsahu vysílacího registru je vhodné vytvořit pro ně podprogram (SendByte). Postupně se vysílá start bit, 8 datových bitů a stop bit. Opět je vhodné vytvořit podprogram pro odměření doby trvání bitů. 4. Test na to, zda byly vyslány všechny požadované znaky; pokud ne, pokračuje se bodem Po ukončení se program vrátí na bod 1. Program pro vysílač UART, který po stlačení tlačítka PB3 vyšle posloupnost : TlIn EQU s6 ; UART + scit TmpReg EQU sa ; pro UART TmpRg1 EQU sb ; pro UART 23-14

15 UARTcnt EQU sc ; pocitadlo vyslanych bitu UARTout EQU sd ; vysilaci registr UART Dig10Rg EQU se Dig32Rg EQU sf VHDL "ROM_blank.vhd", "PicoAddUART.vhd", "AddUART" PSwIn DSIN $80 ; spinace PTlIn DSIN $40 ; tlacitka POut0 DSOUT $01 POut1 DSOUT $02 PUart DSOUT $04 ; UART port LOAD Op1, 2 ; pocatecni hodnota LOAD Op2, 9 LOAD Dig32Rg, 0 LOAD Dig10Rg, 0 start: IN TlIn, PTlIn ; sejmuti tlacitek TEST TlIn, 8 ; test PB3 JUMP Z, scitani ; kdyz neni stlacene ; kdyz je stlacene PB3 - UART vysle posloupnost CR LF LOAD UARTout, $2F ; ASCII znak / (nasleduje 0) Dalsi: ADD UARTout, 1 ; dalsi vysilana slabika CALL SendByte ; vysli slabiku TEST UARTout, 8 ; test jednickoveho bitu UARTout(3) JUMP Z, Dalsi ; kdyz je nulovy - vysilej dal ; posloupnost je vyslana, vyslani CR LF LOAD UARTout, 13 ; ASCII CR CALL SendByte LOAD UARTout, 10 ; ASCII LF CALL SendByte CALL delay5ms ; debounce HIGH - zakmity jsou do 3 ms PB3dwn: IN TlIn, PTlIn ; sejmuti tlacitek TEST TlIn, 8 ; test PB3 JUMP NZ, PB3dwn ; cekej az bude uvolnene CALL delay5ms ; debounce LOW scitani:... Dále se pokračuje programem pro sčítačku (je nutno doplnit včetně deklarací). Podprogramy pro UART: ; Subrutiny zpozdeni delay: LOAD TmpRg1, 6 ; cca 5x cyklu LOAD TmpReg, 23 ; celkem cca 104 us d1: SUB TmpReg, 1 JUMP NZ, d1 SUB TmpRg1, 1 JUMP NZ, d1 RET delay5ms: LOAD TmpRg1, 0 ; cca 256x512 cyklu LOAD TmpReg, 0 ; celkem cca 5243 us d15: SUB TmpReg, 1 JUMP NZ, d15 SUB TmpRg1, 1 JUMP NZ, d15 RET ; Subrutina vysilani slabiky z registru UARTout, jeho obsah zustava nezmenen SendByte: LOAD TmpReg, 0 ; start bit (nulovy) OUT TmpReg, PUart ; vyslani 23-15

16 LOAD UARTcnt, 9 ByteCyc: CALL delay ; doba jednoho bitu OUT UARTout, PUart ; vyslani dalsiho bitu RR UARTout ; priprava dalsiho bitu SUB UARTcnt, 1 JUMP NZ, ByteCyc ; kdyz neni slabika vyslana RL UARTout LOAD TmpReg, 1 OUT TmpReg, PUart ; vysli stop bit CALL delay ; doba jednoho bitu RET Poznámka k odměřování časových intervalů: Není nezbytné, aby doba bitových intervalů byla dodržena s velkou přesností, stačí, když se během vysílání 10 bitů odpovídajících každému znaku neposunou okamžiky vzorkování mimo příslušný bitový interval. Teoreticky by mohla stačit přesnost 5 % (půl bitového intervalu během 10 bitů). Pro získání dostatečné rezervy bude vhodnější požadovat přesnost 2 % (i to je poměrně mírný a snadno splnitelný požadavek). Zpoždění bude vhodné vytvořit smyčkou, která bude zahrnovat dostatečný počet instrukcí. Každá instrukce u procesoru PicoBlaze se vykoná během 2 hodinových taktů, generátor hodinového signálu na desce má kmitočet 50 MHz. Pro přenosovou rychlost 9600 Bd je doba trvání 1 bitu 104,167 us s takovým odstupem musí PicoBlaze dávat na výstup jednotlivé bity. Provedení jedné instrukce při hodinovém kmitočtu 50 MHz trvá 40 ns (2 periody hodin), takže mezi změnami na výstupu pro UART musí proběhnout 104,167/0,04 = 2604 instrukčních cyklů. Schéma z Obr. 3 je ještě potřebné doplnit výstupním registrem pro vysílaný signál. Můžeme použít například registr OFDXI je to klopný obvod s jedničkovým počátečním stavem, což zajistí správnou klidovou hodnotu na výstupu vysílače po připojení napájecího napětí viz [1]. K jeho výstupu se přikreslí port TxD výstupní port vysílače, připojený ke vstupu obvodu MAX3232 na vývojové desce Možnosti pro další pokračování Pokud čtenář dočetl text až sem, nebude pro něj jistě velkým problémem pokračovat v dalším doplňování a modifikaci bloků. Například procesor může být doplněn o přijímač UARTu, který bude přijímat vstupní údaje z počítače, zpracovávat je a vysílat zpět do počítače místo řetězce znaků daného programem. UART může být doplněn o různé kontrolní funkce a o funkce zajišťující lepší odolnost proti rušivým signálům atd. Je celá řada možností dalších vylepšení, pro něž se můžeme inspirovat například u UARTů, které jsou součástí různých komerčních procesorů. Tyto úpravy je možno provést doplňováním programu procesoru PicoBlaze až do vyčerpání paměti programu o rozsahu 1024 instrukcí, přičemž výše uvedený program pro vysílač UARTu i se sčítačkou zabere z tohoto rozsahu necelou desetinu. K úpravám programu není nezbytné seznamovat se podrobně s jazykem VHDL, i když to je pro porozumění konstrukci užitečné pokud použijeme vývojovou desku Spartan-3 Starter Kit, stačí k práci s ní implementační šablona a šablona procesorového jádra, jak byly uvedeny výše

17 5. Stručná informace o dalších procesorových jádrech Procesor MicroBlaze: Jde o procesor s 32bitovou harvardskou architekturou typu RISC. Vývojovým systémem je možno zvolit velikost cache, druh a rozsah jeho výkonných a stykových obvodů. Tento procesor lze implementovat do obvodů FPGA řad Spartan i Virtex firmy Xilinx. K použití procesorového jádra MicroBlaze je zapotřebí zakoupit licenci, která je součástí programového nástroje EDK (Embedded Development Kit). Tento kit obsahuje programové prostředky k vývoji aplikací procesoru, včetně kompilátoru jazyka C. Procesor PowerPC: Je to 32bitové procesorové jádro typu RISC "natvrdo" vytvořené ve struktuře některých obvodů FPGA řady Virtex firmy Xilinx, plné označení je IBM PowerPC 405. Obsahuje řadu pokročilých procesorových prvků, jako je skalární 5stupňová struktura pipeliningu, zvláštní cache pro instrukce a pro data, bránu JTAG, několik časovačů a jednotku pro řízení paměti; v obvodech Virtex-4 je k procesoru PowerPC přidružena také pomocná procesorová řídicí jednotka APU (Auxiliary Processor Unit). Při kmitočtu kolem 400 MHz je výkonnost přes 600 DMIPS. Licence k použití procesoru PowerPC je také součástí nástroje EDK. Procesor Nios II: Toto označení představuje řadu přizpůsobitelných procesorových jader, které se implementují do obvodů FPGA a strukturovaných obvodů ASIC firmy Altera. Svými vlastnostmi se blíží procesorovému jádru MicroBlaze. 6. Závěr Cílem článku bylo ukázat možnosti implementace jednoduchých procesorů v obvodech FPGA. Procesory obecně představují poměrně složité konstrukce a jejich bezchybná funkce se prakticky může zajistit jen rozsáhlým užíváním a průběžným odstraňováním problémů, na něž se přitom narazí. První verze procesoru PicoBlaze pro obvody FPGA typu Virtex-II byla vyvinuta v r a od té doby byly již vytvořeny tisíce, snad i desetitisíce jeho aplikací. Diskuse k tomuto procesoru na www stránkách firmy Xilinx je stále živá, objevují se stále nové příspěvky. Je tedy v současné době již možno pokládat jej za vyzrálý procesor, u něhož je vychytána většina nedostatků. Může tak představovat jeden z účinných nástrojů pro vývoj číslicových systémů a je tedy žádoucí, aby jej konstruktéři těchto systémů měli ve své výbavě a tam, kde je jeho použití vhodné, dokázali využít výhod tohoto přístupu. Literatura [1] CHAPMAN, K. PicoBlaze KCPSM3 8-bit Micro Controller for Spartan-3, Virtex-II and Virtex-II Pro. Viz: [2] PicoBlaze 8-bit Embedded Microcontroller User Guide for Spartan-3, Virtex-II, and Virtex-II Pro FPGAs. Uživatelská příručka firmy Xilinx, UG129, November 21, 2005 [3] Libraries Guide ISE 8.1i. Dokument firmy Xilinx [4]

Implementace procesorů v obvodech FPGA. Výukový text pro kurs BTIC

Implementace procesorů v obvodech FPGA. Výukový text pro kurs BTIC Implementace procesorů v obvodech FPGA Výukový text pro kurs BTIC Zpracoval: Doc. Ing. Jaromír Kolouch, CSc. Červen 2007 OBSAH 1. Úvod... 3 2. Příklad procesorového jádra: procesor PicoBlaze... 5 3. Vývoj

Více

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

Vzorový příklad. Postup v prostředí ISE. Zadání: x 1 x 0 y Rovnicí y = x 1. Přiřazení signálů: Vzorový příklad. Zadání: Na přípravku realizujte kombinační obvod představující funkci logického součinu dvou vstupů. Mající následující pravdivostní tabulku. x 1 x 0 y 0 0 0 0 1 0 1 0 0 1 1 1 Rovnicí

Více

Návrh. číslicových obvodů

Návrh. číslicových obvodů Návrh číslicových obvodů SW Aritmetika HW Periférie CPU function AddSub(a,b,s); var c; a b k k a+b mpx c if (s==1) c=a+b; else c=a-b; a-b return c; End; PAMĚŤ s Princip: univerzální stroj Výhoda: univerzalita

Více

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

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 Vzorový příklad. Zadání: Na přípravku realizujte kombinační obvod představující funkci logického součinu dvou vstupů. Mající následující pravdivostní tabulku. x 1 x 0 y 0 0 0 0 1 0 1 0 0 1 1 1 Rovnicí

Více

FPGA + mikroprocesorové jádro:

FPGA + mikroprocesorové jádro: Úvod: V tomto dokumentu je stručný popis programovatelných obvodů od firmy ALTERA www.altera.com, které umožňují realizovat číslicové systémy s procesorem v jenom programovatelném integrovaném obvodu (SOPC

Více

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

Procesory, mikroprocesory, procesory na FPGA. 30.1.2013 O. Novák, CIE 11 1 Procesory, mikroprocesory, procesory na FPGA 30.1.2013 O. Novák, CIE 11 1 Od sekvenčních automatů k mikroprocesorům 30.1.2013 O. Novák, CIE 11 2 30.1.2013 O. Novák, CIE 11 3 Architektura počítačů Von Neumannovská,

Více

Příklady popisu základních obvodů ve VHDL

Příklady popisu základních obvodů ve VHDL Příklady popisu základních obvodů ve VHDL INP - cvičení 2 Michal Bidlo, 2008 bidlom@fit.vutbr.cz entity Circuit is port ( -- rozhraní obvodu ); end Circuit; Proces architecture Behavioral of Circuit is

Více

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D. Digitální obvody Doc. Ing. Lukáš Fujcik, Ph.D. Stavové automaty enkódování Proces, který rozhoduje kolik paměťových prvků bude využito v paměťové části. Binární enkódování je nejpoužívanější. j počet stavů

Více

Mikrokontroléry. Doplňující text pro POS K. D. 2001

Mikrokontroléry. Doplňující text pro POS K. D. 2001 Mikrokontroléry Doplňující text pro POS K. D. 2001 Úvod Mikrokontroléry, jinak též označované jako jednočipové mikropočítače, obsahují v jediném pouzdře všechny podstatné části mikropočítače: Řadič a aritmetickou

Více

Návrh ovládání zdroje ATX

Návrh ovládání zdroje ATX Návrh ovládání zdroje ATX Zapínání a vypínání PC zdroj ATX se zapíná spojením řídicího signálu \PS_ON se zemí zapnutí PC stiskem tlačítka POWER vypnutí PC (hardwarové) stiskem tlačítka POWER a jeho podržením

Více

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

... sekvenční výstupy. Obr. 1: Obecné schéma stavového automatu Předmět Ústav Úloha č. 10 BDIO - Digitální obvody Ústav mikroelektroniky Komplexní příklad - návrh řídicí logiky pro jednoduchý nápojový automat, kombinační + sekvenční logika (stavové automaty) Student

Více

Návod k obsluze výukové desky CPLD

Návod k obsluze výukové desky CPLD Návod k obsluze výukové desky CPLD FEKT Brno 2008 Obsah 1 Úvod... 3 2 Popis desky... 4 2.1 Hodinový signál... 5 2.2 7- Segmentový displej... 5 2.3 LED zobrazení... 6 2.4 Přepínače... 6 2.5 PORT 1 - Externí

Více

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

PicoBlaze lekce 1: assembler, C překladač a simulační prostředí Jiří Svozil, Leoš Kafka, Jiří Kadlec svozil@utia.cas.cz 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...

Více

Pohled do nitra mikroprocesoru Josef Horálek

Pohled do nitra mikroprocesoru Josef Horálek Pohled do nitra mikroprocesoru Josef Horálek Z čeho vycházíme = Vycházíme z Von Neumannovy architektury = Celý počítač se tak skládá z pěti koncepčních bloků: = Operační paměť = Programový řadič = Aritmeticko-logická

Více

1. Seznamte se s výukovou platformou FITkit (http://merlin.fit.vutbr.cz/fitkit/).

1. Seznamte se s výukovou platformou FITkit (http://merlin.fit.vutbr.cz/fitkit/). Zadání: Fakulta informačních technologií VUT v Brně Ústav počítačových systémů Technika personálních počítačů, cvičení ITP FITkit Řízení 7mi-segmentového displeje Úloha č. 3. 1. Seznamte se s výukovou

Více

Koncept pokročilého návrhu ve VHDL. INP - cvičení 2

Koncept pokročilého návrhu ve VHDL. INP - cvičení 2 Koncept pokročilého návrhu ve VHDL INP - cvičení 2 architecture behv of Cnt is process (CLK,RST,CE) variable value: std_logic_vector(3 downto 0 if (RST = '1') then value := (others => '0' elsif (CLK'event

Více

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D. Digitální obvody Doc. Ing. Lukáš Fujcik, Ph.D. Základní invertor v technologii CMOS dva tranzistory: T1 vodivostní kanál typ N T2 vodivostní kanál typ P při u VST = H nebo L je klidový proud velmi malý

Více

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

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus Činnost CPU Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus Hodinový cyklus CPU je synchronní obvod nutné hodiny (f CLK ) Instrukční cyklus IF = doba potřebná

Více

Číselné vyjádření hodnoty. Kolik váží hrouda zlata?

Číselné vyjádření hodnoty. Kolik váží hrouda zlata? Čísla a logika Číselné vyjádření hodnoty Au Kolik váží hrouda zlata? Dekadické vážení Když přidám osmé závaží g, váha se převáží => závaží zase odeberu a začnu přidávat závaží x menší 7 závaží g 2 závaží

Více

Princip funkce počítače

Princip funkce počítače Princip funkce počítače Princip funkce počítače prvotní úlohou počítačů bylo zrychlit provádění matematických výpočtů první počítače kopírovaly obvyklý postup manuálního provádění výpočtů pokyny pro zpracování

Více

PROGRAMOVATELNÁ LOGICKÁ POLE A JAZYKY HDL

PROGRAMOVATELNÁ LOGICKÁ POLE A JAZYKY HDL PROGRAMOVATELNÁ LOGICKÁ POLE A JAZYKY HDL Doc. Ing. Jaromír Kolouch, CSc. Ústav radioelektroniky FEKT VUT v Brně, Purkyňova 118, kolouch@feec.vutbr.cz Přednáška má přinést informaci o současném stavu v

Více

Architektury počítačů a procesorů

Architektury počítačů a procesorů Kapitola 3 Architektury počítačů a procesorů 3.1 Von Neumannova (a harvardská) architektura Von Neumann 1. počítač se skládá z funkčních jednotek - paměť, řadič, aritmetická jednotka, vstupní a výstupní

Více

Strojový kód. Instrukce počítače

Strojový kód. Instrukce počítače Strojový kód Strojový kód (Machine code) je program vyjádřený v počítači jako posloupnost instrukcí procesoru (posloupnost bajtů, resp. bitů). Z hlediska uživatele je strojový kód nesrozumitelný, z hlediska

Více

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D. Digitální obvody Doc. Ing. Lukáš Fujcik, Ph.D. Realizace kombinačních logických funkcí Realizace kombinační logické funkce = sestavení zapojení obvodu, který ze vstupních proměnných vytvoří výstupní proměnné

Více

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

Profilová část maturitní zkoušky 2014/2015 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2014/2015 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 26-41-M/01 Elektrotechnika Zaměření: technika

Více

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

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC Informační systémy 2 Obsah: Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC ROM RAM Paměti typu CACHE IS2-4 1 Dnešní info: Informační systémy 2 03 Informační systémy

Více

Akademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor:

Akademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor: Západočeská univerzita v Plzni Písemná zkouška z předmětu: Zkoušející: Katedra informatiky a výpočetní techniky Počítačová technika KIV/POT Dr. Ing. Karel Dudáček Akademický rok: 2004/05 Datum: Příjmení:

Více

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

Cíle. Teoretický úvod. BDIO - Digitální obvody Ústav mikroelektroniky Základní logická hradla, Booleova algebra, De Morganovy zákony Student Předmět Ústav Úloha č. DIO - Digitální obvody Ústav mikroelektroniky Základní logická hradla, ooleova algebra, De Morganovy zákony Student Cíle Porozumění základním logickým hradlům NND, NOR a dalším,

Více

Cíle. Teoretický úvod

Cíle. Teoretický úvod Předmět Ú Úloha č. 7 BIO - igitální obvody Ú mikroelektroniky Sekvenční logika návrh asynchronních a synchronních binárních čítačů, výhody a nevýhody, využití Student Cíle Funkce čítačů a použití v digitálních

Více

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

Přerušovací systém s prioritním řetězem Přerušovací systém s prioritním řetězem Doplňující text pro přednášky z POT Úvod Přerušovací systém mikropočítače může být koncipován několika způsoby. Jednou z možností je přerušovací systém s prioritním

Více

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D. Digitální obvody Doc. Ing. Lukáš Fujcik, Ph.D. Klopné obvody jsou nejjednodušší sekvenční součástky Záleží na předcházejícím stavu Asynchronní klopné obvody reagují na změny vstupu okamžitě Synchronní

Více

SEKVENČNÍ LOGICKÉ OBVODY

SEKVENČNÍ LOGICKÉ OBVODY Sekvenční logický obvod je elektronický obvod složený z logických členů. Sekvenční obvod se skládá ze dvou částí kombinační a paměťové. Abychom mohli určit hodnotu výstupní proměnné, je potřeba u sekvenčních

Více

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

Profilová část maturitní zkoušky 2015/2016 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2015/2016 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 26-41-M/01 Elektrotechnika Zaměření: technika

Více

Řízení IO přenosů DMA řadičem

Řízení IO přenosů DMA řadičem Řízení IO přenosů DMA řadičem Doplňující text pro POT K. D. 2001 DMA řadič Při přímém řízení IO operací procesorem i při použití přerušovacího systému je rychlost přenosu dat mezi IO řadičem a pamětí limitována

Více

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2013 1.3 2/14

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2013 1.3 2/14 ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2013 1.3 2/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 14 0:40 1.3. Vliv hardware počítače na programování Vliv

Více

Principy komunikace s adaptéry periferních zařízení (PZ)

Principy komunikace s adaptéry periferních zařízení (PZ) Principy komunikace s adaptéry periferních zařízení (PZ) Několik možností kategorizace principů komunikace s externími adaptéry, např.: 1. Podle způsobu adresace registrů, které jsou součástí adaptérů.

Více

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV RADIOELEKTRONIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF

Více

PROCESOR. Typy procesorů

PROCESOR. Typy procesorů PROCESOR Procesor je ústřední výkonnou jednotkou počítače, která čte z paměti instrukce a na jejich základě vykonává program. Primárním úkolem procesoru je řídit činnost ostatních částí počítače včetně

Více

9. Rozšiřující desky Evb_Display a Evb_keyboard

9. Rozšiřující desky Evb_Display a Evb_keyboard 9. Rozšiřující desky Evb_Display a Evb_keyboard Čas ke studiu: 2-3 hodiny Cíl Po prostudování tohoto odstavce budete něco vědět o Výklad Zobrazovacích displejích Principu činnosti a programování čtyřřádkového

Více

Jako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr.

Jako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr. Model procesoru Jedná se o blokové schéma složené z registrů, paměti RAM, programového čítače, instrukčního registru, sčítačky a řídicí jednotky, které jsou propojeny sběrnicemi. Tento model má dva stavy:

Více

Rozšiřující desce s dalšími paralelními porty Rozšiřující desce s motorkem Elektrickém zapojení Principu činnosti Způsobu programování

Rozšiřující desce s dalšími paralelními porty Rozšiřující desce s motorkem Elektrickém zapojení Principu činnosti Způsobu programování 8. Rozšiřující deska Evb_IO a Evb_Motor Čas ke studiu: 2-3 hodiny Cíl Po prostudování tohoto odstavce budete něco vědět o Výklad Rozšiřující desce s dalšími paralelními porty Rozšiřující desce s motorkem

Více

Cíle. Teoretický úvod. BDIO - Digitální obvody Ústav mikroelektroniky Sekvenční logika - debouncer, čítače, měření doby stisknutí tlačítka Student

Cíle. Teoretický úvod. BDIO - Digitální obvody Ústav mikroelektroniky Sekvenční logika - debouncer, čítače, měření doby stisknutí tlačítka Student Předmět Ústav Úloha č. 9 BIO - igitální obvody Ústav mikroelektroniky Sekvenční logika - debouncer, čítače, měření doby stisknutí tlačítka Student Cíle Pochopení funkce obvodu pro odstranění zákmitů na

Více

Integrovaná střední škola, Sokolnice 496

Integrovaná střední škola, Sokolnice 496 Integrovaná střední škola, Sokolnice 496 Název projektu: Moderní škola Registrační číslo: CZ.1.07/1.5.00/34.0467 Název klíčové aktivity: III/2 - Inovace a zkvalitnění výuky prostřednictvím ICT Kód výstupu:

Více

Logické funkce a obvody, zobrazení výstupů

Logické funkce a obvody, zobrazení výstupů Logické funkce a obvody, zobrazení výstupů Digitální obvody (na rozdíl od analogových) využívají jen dvě napěťové úrovně, vyjádřené stavy logické nuly a logické jedničky. Je na nich založeno hodně elektronických

Více

Integrované obvody. Obvody malé, střední a velké integrace Programovatelné obvody

Integrované obvody. Obvody malé, střední a velké integrace Programovatelné obvody Integrované obvody Obvody malé, střední a velké integrace Programovatelné obvody Integrovaný obvod zkratka: IO anglický termín: integrated circuit = IC Co to je? elekrotechnická součástka na malé ploše

Více

Úvod do jazyka VHDL. Jan Kořenek korenek@fit.vutbr.cz. Návrh číslicových systémů 2007-2008

Úvod do jazyka VHDL. Jan Kořenek korenek@fit.vutbr.cz. Návrh číslicových systémů 2007-2008 Úvod do jazyka VHDL Návrh číslicových systémů 2007-2008 Jan Kořenek korenek@fit.vutbr.cz Jak popsat číslicový obvod Slovně Navrhněte (číslicový) obvod, který spočte sumu všech členů dané posloupnosti slovní

Více

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

Struktura a architektura počítačů (BI-SAP) 7 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 7 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii

Více

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

PicoBlaze lekce 4: Aplikace pro výuku asembleru procesoru PicoBlaze Jiří Svozil, Jaroslav Stejskal, Leoš Kafka, Jiří Kadlec Technická zpráva PicoBlaze lekce 4: Aplikace pro výuku asembleru procesoru PicoBlaze Jiří Svozil, Jaroslav Stejskal, Leoš Kafka, Jiří Kadlec svozil@utia.cas.cz, kafkal@utia.cas.cz Obsah 1. Úvod... 2 2.

Více

Návrh konstrukce odchovny 3. dil

Návrh konstrukce odchovny 3. dil 1 Portál pre odborné publikovanie ISSN 1338-0087 Návrh konstrukce odchovny 3. dil Pikner Michal Elektrotechnika 16.02.2011 V minulém díle jsme se seznámily s elektronickým zapojením. Popsali jsme si principy

Více

Počítač jako prostředek řízení. Struktura a organizace počítače

Počítač jako prostředek řízení. Struktura a organizace počítače Řídicí počítače - pro řízení technologických procesů. Specielní přídavná zařízení - I/O, přerušovací systém, reálný čas, Č/A a A/Č převodníky a j. s obsluhou - operátorské periferie bez obsluhy - operátorský

Více

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

Kubatova 19.4.2007 Y36SAP - 13. procesor - control unit obvodový a mikroprogramový řadič RISC. 19.4.2007 Y36SAP-control unit 1 Y36SAP - 13 procesor - control unit obvodový a mikroprogramový řadič RISC 19.4.2007 Y36SAP-control unit 1 Von Neumannova architektura (UPS1) Instrukce a data jsou uloženy v téže paměti. Paměť je organizována

Více

Operace ALU. INP 2008 FIT VUT v Brně

Operace ALU. INP 2008 FIT VUT v Brně Operace ALU INP 2008 FIT VUT v Brně 1 Princip ALU (FX) Požadavky: Logické operace Sčítání (v doplňkovém kódu) Posuvy/rotace Násobení ělení B A not AN OR XOR + Y 1) Implementace logických operací je zřejmá

Více

Architektura počítače

Architektura počítače Architektura počítače Výpočetní systém HIERARCHICKÁ STRUKTURA Úroveň aplikačních programů Úroveň obecných funkčních programů Úroveň vyšších programovacích jazyků a prostředí Úroveň základních programovacích

Více

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu: Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury

Více

Základní pojmy. Program: Algoritmus zapsaný v programovacím jazyce, který řeší nějaký konkrétní úkol. Jedná se o posloupnost instrukcí.

Základní pojmy. Program: Algoritmus zapsaný v programovacím jazyce, který řeší nějaký konkrétní úkol. Jedná se o posloupnost instrukcí. Základní pojmy IT, číselné soustavy, logické funkce Základní pojmy Počítač: Stroj na zpracování informací Informace: 1. data, která se strojově zpracovávají 2. vše co nám nebo něčemu podává (popř. předává)

Více

Systém řízení sběrnice

Systém řízení sběrnice Systém řízení sběrnice Sběrnice je komunikační cesta, která spojuje dvě či více zařízení. V určitý okamžik je možné aby pouze jedno z připojených zařízení vložilo na sběrnici data. Vložená data pak mohou

Více

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

Semestrální práce z předmětu Speciální číslicové systémy X31SCS Semestrální práce z předmětu Speciální číslicové systémy X31SCS Katedra obvodů DSP16411 ZPRACOVAL: Roman Holubec Školní rok: 2006/2007 Úvod DSP16411 patří do rodiny DSP16411 rozšiřuje DSP16410 o vyšší

Více

Architektura Intel Atom

Architektura Intel Atom Architektura Intel Atom Štěpán Sojka 5. prosince 2008 1 Úvod Hlavní rysem Atomu je podpora platformy x86, která umožňuje spouštět a běžně používat řadu let vyvíjené aplikace, na které jsou uživatelé zvyklí

Více

SYSTÉMY NAČIPU MI-SOC

SYSTÉMY NAČIPU MI-SOC Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti SYSTÉMY NAČIPU MI-SOC doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii ČVUT v Praze Hana Kubátová

Více

PROGRAMOVATELNÉ LOGICKÉ OBVODY

PROGRAMOVATELNÉ LOGICKÉ OBVODY PROGRAMOVATELNÉ LOGICKÉ OBVODY (PROGRAMMABLE LOGIC DEVICE PLD) Programovatelné logické obvody jsou číslicové obvody, jejichž logická funkce může být programována uživatelem. Výhody: snížení počtu integrovaných

Více

Sběrnicová architektura POT POT. Jednotlivé subsystémy počítače jsou propojeny sběrnicí, po které se přenáší data oběma směry.

Sběrnicová architektura POT POT. Jednotlivé subsystémy počítače jsou propojeny sběrnicí, po které se přenáší data oběma směry. Systémov mová sběrnice 1 Sběrnicová architektura Jednotlivé subsystémy počítače jsou propojeny sběrnicí, po které se přenáší data oběma směry. Single master jeden procesor na sběrnici, Multi master více

Více

Počítač jako elektronické, Číslicové zařízení

Počítač jako elektronické, Číslicové zařízení Počítač jako elektronické, Číslicové Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1135_Počítač jako elektrornické, číslicové _PWP Název školy: Číslo a název projektu: Číslo a název šablony

Více

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

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů). Strojový kód k d a asembler procesoru MIPS Použit ití simulátoru SPIM K.D. - cvičení ÚPA 1 MIPS - prostředí 32 ks 32bitových registrů ( adresa registru = 5 bitů). Registr $0 je zero čte se jako 0x0, zápis

Více

Manuál přípravku FPGA University Board (FUB)

Manuál přípravku FPGA University Board (FUB) Manuál přípravku FPGA University Board (FUB) Rozmístění prvků na přípravku Obr. 1: Rozmístění prvků na přípravku Na obrázku (Obr. 1) je osazený přípravek s FPGA obvodem Altera Cyclone III EP3C5E144C8 a

Více

Algoritmizace. 1. Úvod. Algoritmus

Algoritmizace. 1. Úvod. Algoritmus 1. Úvod Algoritmizace V dnešní době již počítače pronikly snad do všech oblastí lidské činnosti, využívají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá

Více

OVLÁDACÍ OBVODY ELEKTRICKÝCH ZAŘÍZENÍ

OVLÁDACÍ OBVODY ELEKTRICKÝCH ZAŘÍZENÍ OVLÁDACÍ OBVODY ELEKTRICKÝCH ZAŘÍZENÍ Odlišnosti silových a ovládacích obvodů Logické funkce ovládacích obvodů Přístrojová realizace logických funkcí Programátory pro řízení procesů Akční členy ovládacích

Více

Vrstvy periferních rozhraní

Vrstvy periferních rozhraní Vrstvy periferních rozhraní Cíl přednášky Prezentovat, jak postupovat při analýze konkrétního rozhraní. Vysvětlit pojem vrstvy periferních rozhraní. Ukázat způsob využití tohoto pojmu na rozhraní RS 232.

Více

Souhrn Apendixu A doporučení VHDL

Souhrn Apendixu A doporučení VHDL Fakulta elektrotechniky a informatiky Univerzita Pardubice Souhrn Apendixu A doporučení VHDL Práce ke zkoušce z předmětu Programovatelné logické obvody Jméno: Jiří Paar Datum: 17. 2. 2010 Poznámka k jazyku

Více

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Assembler pro Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Zápis instrukcí umíme už zapisovat instrukce v binárním tvaru to je silně nešikovné pro snazší vývoj

Více

Program "Světla" pro mikropočítač PMI-80

Program Světla pro mikropočítač PMI-80 Program "Světla" pro mikropočítač PMI-80 Dokument věnovaný mikropočítači PMI-80, jeho programování a praktickým ukázkám. Verze dokumentu:. Autor: Blackhead Datum: rok 1997, 4.3.004 1 Úvod Tento program

Více

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010 Přednášky o výpočetní technice Hardware teoreticky Adam Dominec 2010 Rozvržení Historie Procesor Paměť Základní deska přednášky o výpočetní technice Počítací stroje Mechanické počítačky se rozvíjely už

Více

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti MI-SOC: 2 KOMUNIKACE NAČIPU, LATENCE, PROPUSTNOST, ARCHITEKTURY doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních

Více

Stanovit nezbytná pravidla pro tvorbu dokumentace vytvářenou ve SITRONICS centru využitelnou firmou SITRONICS TS.

Stanovit nezbytná pravidla pro tvorbu dokumentace vytvářenou ve SITRONICS centru využitelnou firmou SITRONICS TS. Tvorba dokumentace SITRONICS centrum 1. Cíl Usnadnit tvorbu jednotné dokumentace SITRONICS centra. 2. Účel Stanovit nezbytná pravidla pro tvorbu dokumentace vytvářenou ve SITRONICS centru využitelnou firmou

Více

Procesor z pohledu programátora

Procesor z pohledu programátora Procesor z pohledu programátora Terminologie Procesor (CPU) = řadič + ALU. Mikroprocesor = procesor vyrobený monolitickou technologií na čipu. Mikropočítač = počítač postavený na bázi mikroprocesoru. Mikrokontrolér

Více

Jak do počítače. aneb. Co je vlastně uvnitř

Jak do počítače. aneb. Co je vlastně uvnitř Jak do počítače aneb Co je vlastně uvnitř Po odkrytí svrchních desek uvidíme... Von Neumannovo schéma Řadič ALU Vstupně/výstupní zař. Operační paměť Počítač je zařízení, které vstupní údaje transformuje

Více

Praktické úlohy- 2.oblast zaměření

Praktické úlohy- 2.oblast zaměření Praktické úlohy- 2.oblast zaměření Realizace praktických úloh zaměřených na dovednosti v oblastech: Měření specializovanými přístroji, jejich obsluha a parametrizace; Diagnostika a specifikace závad, měření

Více

Organizace předmětu, podmínky pro získání klasifikovaného zápočtu

Organizace předmětu, podmínky pro získání klasifikovaného zápočtu ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Ing. Radek Sedláček, Ph.D., katedra měření K13138 Organizace předmětu, podmínky pro získání klasifikovaného zápočtu Kurz A0B38FPGA Aplikace

Více

Témata profilové maturitní zkoušky

Témata profilové maturitní zkoušky Střední průmyslová škola elektrotechniky, informatiky a řemesel, Frenštát pod Radhoštěm, příspěvková organizace Témata profilové maturitní zkoušky Obor: Elektrotechnika Třída: E4A Školní rok: 2010/2011

Více

Číslicový zobrazovač CZ 5.7

Číslicový zobrazovač CZ 5.7 Určení - Číslicový zobrazovač CZ 5.7 pro zobrazování libovolné veličiny, kterou lze převést na elektrický signál, přednostně 4 až 20 ma. Zobrazovaná veličina může být až čtyřmístná, s libovolnou polohou

Více

Číslicové obvody a jazyk VHDL

Číslicové obvody a jazyk VHDL Číslicové obvody a jazyk VHDL Návrh počítačových systémů 2007-2008 Jan Kořenek korenek@fit.vutbr.cz Proč HW realizace algoritmu Vyšší rychlost paralelní nebo zřetězené zpracování, přizpůsobení výpočetních

Více

Technické vývojové prostředky

Technické vývojové prostředky Technické vývojové prostředky Budeme-li realizovat mikroový systém včetně programového vybave-ní, budeme v závěrečné fázi stát před problémem oživení jak obvodového zapojení (hadrware), tak jeho programového

Více

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

8. Laboratoř: Aritmetika a řídicí struktury programu 8. Laboratoř: Aritmetika a řídicí struktury programu Programy v JSA aritmetika, posuvy, využití příznaků Navrhněte a simulujte v AVR studiu prográmky pro 24 bitovou (32 bitovou) aritmetiku: sčítání, odčítání,

Více

Logické řízení s logickým modulem LOGO!

Logické řízení s logickým modulem LOGO! Logické řízení s logickým modulem LOGO! Cíl: Seznámit se s programováním jednoduchého programovatelného automatu (logického modulu) LOGO! a vyzkoušet jeho funkčnost na konkrétních zapojeních. Úkol: 1)

Více

Laboratorní cvičení z předmětu Elektrická měření 2. ročník KMT

Laboratorní cvičení z předmětu Elektrická měření 2. ročník KMT MĚŘENÍ S LOGICKÝM ANALYZÁTOREM Jména: Jiří Paar, Zdeněk Nepraš Datum: 2. 1. 2008 Pracovní skupina: 4 Úkol: 1. Seznamte se s ovládáním logického analyzátoru M611 2. Dle postupu měření zapojte pracoviště

Více

Způsoby realizace této funkce:

Způsoby realizace této funkce: KOMBINAČNÍ LOGICKÉ OBVODY U těchto obvodů je výstup určen jen výhradně kombinací vstupních veličin. Hodnoty výstupních veličin nezávisejí na předcházejícím stavu logického obvodu, což znamená, že kombinační

Více

Direct Digital Synthesis (DDS)

Direct Digital Synthesis (DDS) ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Ing. Radek Sedláček, Ph.D., katedra měření K13138 Direct Digital Synthesis (DDS) Přímá číslicová syntéza Tyto materiály vznikly za podpory

Více

BI-JPO (Jednotky počítače) Cvičení

BI-JPO (Jednotky počítače) Cvičení BI-JPO (Jednotky počítače) Cvičení Ing. Pavel Kubalík, Ph.D., 2010 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Evropský sociální fond Praha & EU: Investujeme

Více

Architektury CISC a RISC, uplatnění v personálních počítačích

Architektury CISC a RISC, uplatnění v personálních počítačích Architektury CISC a RISC, uplatnění v personálních počítačích 1 Cíl přednášky Vysvětlit, jak pracují architektury CISC a RISC, upozornit na rozdíly. Zdůraznit, jak se typické rysy obou typů architektur

Více

Popis programu EnicomD

Popis programu EnicomD Popis programu EnicomD Pomocí programu ENICOM D lze konfigurovat výstup RS 232 přijímačů Rx1 DIN/DATA a Rx1 DATA (přidělovat textové řetězce k jednotlivým vysílačům resp. tlačítkům a nastavovat parametry

Více

Architektura procesoru ARM

Architektura procesoru ARM Architektura procesoru ARM Bc. Jan Grygerek GRY095 Obsah ARM...3 Historie...3 Charakteristika procesoru ARM...4 Architektura procesoru ARM...5 Specifikace procesoru...6 Instrukční soubor procesoru...6

Více

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2 Základy informatiky 2. Přednáška HW Lenka Carr Motyčková February 22, 2011 Základy informatiky 1 February 22, 2011 Základy informatiky 2 February 22, 2011 Základy informatiky 3 February 22, 2011 Základy

Více

Přednáška A3B38MMP. Bloky mikropočítače vestavné aplikace, dohlížecí obvody. 2015, kat. měření, ČVUT - FEL, Praha J. Fischer

Přednáška A3B38MMP. Bloky mikropočítače vestavné aplikace, dohlížecí obvody. 2015, kat. měření, ČVUT - FEL, Praha J. Fischer Přednáška A3B38MMP Bloky mikropočítače vestavné aplikace, dohlížecí obvody 2015, kat. měření, ČVUT - FEL, Praha J. Fischer A3B38MMP, 2015, J.Fischer, kat. měření, ČVUT - FEL Praha 1 Hlavní bloky procesoru

Více

PŘÍLOHY. PRESTO USB programátor

PŘÍLOHY. PRESTO USB programátor PŘÍLOHY PRESTO USB programátor 1. Příručka PRESTO USB programátor Popis indikátorů a ovládacích prvků Zelená LED (ON-LINE) - PRESTO úspěšně komunikuje s PC Žlutá LED (ACTIVE) - právě se komunikuje s uživatelskou

Více

Zadání semestrálního projektu PAM

Zadání semestrálního projektu PAM P ř evaděč RS485 Navrhněte s procesorem AT89C2051 převaděč komunikační sběrnice RS485 s automatickým obracením směru převodníku po přenosu bytu. Převaděč vybavte manuálním nastavením přenosové rychlosti

Více

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011 Jiří Douša, katedra číslicového návrhu (K18103), České vysoké učení technické

Více

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

MODERNÍ TRENDY V PROGRAMOVATELNÉ LOGICE, APLIKACE V AUTOMATIZAČNÍ A MĚŘICÍ TECHNICE MODERNÍ TRENDY V PROGRAMOVATELNÉ LOGICE, APLIKACE V AUTOMATIZAČNÍ A MĚŘICÍ TECHNICE Soběslav Valach UAMT FEEC VUT Brno, Kolejní 2906/4, 612 00 Brno, valach@feec.vutbr.cz Abstract: Článek popisuje základní

Více

Hardware - komponenty počítačů Von Neumannova koncepce počítače. Von Neumannova koncepce počítače

Hardware - komponenty počítačů Von Neumannova koncepce počítače. Von Neumannova koncepce počítače V roce 1945 vystoupil na přednášce v USA matematik John von Neumann a představil architekturu samočinného univerzálního počítače (von Neumannova koncepce/schéma/architektura). Základy této koncepce se

Více

PCKIT LPT MODUL SBĚRNICE IOBUS PRO PC LPT. Příručka uživatele. Střešovická 49, Praha 6, s o f c o s o f c o n.

PCKIT LPT MODUL SBĚRNICE IOBUS PRO PC LPT. Příručka uživatele. Střešovická 49, Praha 6,   s o f c o s o f c o n. PCKIT LPT MODUL SBĚRNICE IOBUS PRO PC LPT Příručka uživatele Střešovická 49, 162 00 Praha 6, e-mail: s o f c o n @ s o f c o n. c z tel./fax : (02) 20 61 03 48 / (02) 20 18 04 54, http :// w w w. s o f

Více

ASYNCHRONNÍ ČÍTAČE Použité zdroje:

ASYNCHRONNÍ ČÍTAČE Použité zdroje: ASYNCHRONNÍ ČÍTAČE Použité zdroje: Antošová, A., Davídek, V.: Číslicová technika, KOPP, České Budějovice 2007 http://www.edunet.souepl.cz www.sse-lipniknb.cz http://www.dmaster.wz.cz www.spszl.cz http://mikroelektro.utb.cz

Více