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

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

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

Transkript

1 Implementace procesorů v obvodech FPGA Výukový text pro kurs BTIC Zpracoval: Doc. Ing. Jaromír Kolouch, CSc. Červen 2007

2 OBSAH 1. Úvod Příklad procesorového jádra: procesor PicoBlaze Vývoj aplikací procesoru PicoBlaze postup pro pblazide Příklad konstrukce s použitím jádra PicoBlaze První část konstrukce: sečtení dvou čísel v kódu BCD v procesoru PicoBlaze (Projekt PicoAddBCD) Druhá část konstrukce: vysílač UART pro připojení k PC přes rozhraní RS-232 (Projekt PicoUART) Třetí část konstrukce: doplnění UARTu o přijímač pro přenos z PC do procesoru demonstrace přerušení (Projekt PicoUART2) Čtvrtá část konstrukce: PC jako terminál k zadávání vstupních údajů pro sčítačku a ke zobrazení výsledku (Projekt PicoUART3) Základní informace o cílových obvodech FPGA Obvod Spartan-II Obvod Spartan

3 1. Úvod Obvody FPGA představují spolu s procesory a mikrokontroléry perspektivní směr pro realizaci číslicových systémů. Doménou procesorů jsou zejména aplikace, kde tyto součástky postačují z hlediska výkonnosti a svého vybavení různými periferiemi a kde se využívá bohatého existujícího programového vybavení. Pokud je to potřebné, je možno výkonnost a vybavení zvyšovat připojováním dalších přídavných vnějších součástek. Nezřídka může být účelné připojovat k procesorům místo dalších běžných číslicových obvodů programovatelnou logiku realizovanou v podobě obvodů PLD nebo FPGA. Rozvoj technologie výroby těchto obvodů a soustavný pokles jejich ceny vedl v poslední době 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 je tak, že obsahují tzv. procesorové jádro, tj. konstrukci představující část hradlového pole s konfigurací v souhlasu se zapojením procesoru, která se v tomto poli připojí k dalším blokům. Ty pak budou generovat vstupní signály pro procesor a zpracovávat jeho výstupní signály. Jádro je pak obvykle doplněno dalšími logickými subsystémy vytvořenými z prvků obsažených v obvodu FPGA, například vstupně/výstupními obvody. Procesorové jádro bývá často vytvořeno s podporou výrobce obvodů FPGA jako blok IP (Intellectual Property) a do obvodu FPGA je vkládáno jako komponenta (nebo několik komponent). 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 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 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 téměř vyloučeno, že by s jeho dostupností mohly být v blízké budoucnosti problémy. Komerční procesorová jádra jsou vybavena vývojovými prostředky (v omezené míře to často plati i pro jádra volně dostupná, jako je procesor PicoBlaze). Programy pro ně je možno psát v rozšířených standardních jazycích (C) a 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ů. 3

4 Kromě výše uvedených procesorových jader, 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 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. 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 nebývá spojeno s nutností změn konkrétních součástek, vyvinutých motivů plošných spojů a podobně. 4

5 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. Je to 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. Soubor instrukcí asembleru a další podrobnosti jsou popsány v literatuře [4], [5]. Co obsahuje procesorové jádro PicoBlaze (verze pro FPGA Spartan-3, Virtex-II): paměť programu pro 1000 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. Obr. 1. Blokové schéma procesoru PicoBlaze, varianta pro FPGA typu Spartan-3 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. Nepotřebuje žádné vnější součástky, které by bylo nutno připojit 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. Procesor PicoBlaze je velmi vhodný zejména pro aplikace jako je řízení různých procesů, které nejsou kritické z hle- 5

6 diska rychlosti reakce, pro něž by bylo jinak potřebné použít stavové automaty vyšší složitosti. Jak se obecně postupuje při vývoji aplikace procesoru PicoBlaze: Především je nutno posoudit vhodnost použití tohoto procesoru zejména odhadnout velikost potřebné paměti programu, požadovanou rychlost reakce a možnost propojení procesoru s okolními částmi obvodu FPGA (viz blokové schéma procesoru). Pokud usoudíme, že je vhodné procesor použít, je nutné vytvořit v návrhovém systému (zde je to systém ISE firmy Xilinx) propojení procesoru a ostatních subsystémů, které budou implementovány do obvodu FPGA. Popis propojení může mít grafickou formu (schéma), s níž zde budeme pracovat, nebo formu textovou některý 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 často vhodnější hierarchicky rozdělit, popř. použít textovou (strukturální) nebo kombinovanou formu popisu. Z dílčích bloků konstrukce, které mohou být popsány textovou nebo i grafickou formou (schématem, stavovým diagramem), se v návrhovém systému vytvoří symbolické značky, které je možno vložit v grafické formě do schématu vyšší hierarchické úrovně. Tak bude také sestaveno schéma, s nímž budeme pracovat, a které bude popsáno dále. 6

7 3. Vývoj aplikací procesoru PicoBlaze postup pro pblazide K vývoji aplikací procesoru PicoBlaze je možno 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]. V tomto kurzu jej budeme využívat. Program pblazide.exe není třeba instalovat, stačí jej pouze nakopírovat do vhodného adresáře. Vývoj má dvě větve: sestavení obvodového uspořádání procesor s okolními obvody, jak bude implementován do cílového obvodu FPGA, a vytvoření programu procesoru. Pro sestavení obvodového uspořádání je za předpokladu implementace do Spartan-3 Starter Kitu Digilent možné vyjít z některé z šablon pro tento kit (pro samostatnou desku nebo s jejím doplněním o desku vstupů/výstupů DIO4). Do šablony se doplní symbol procesorového jádra a potřebné okolní obvody vstupy, výstupy a případné další, s nimž se jádro propojí. Symbol procesorového jádra se vytvoří ze souboru MPU.vhd známým postupem (Create Schematic Symbol). Propojením symbolu procesorového jádra s okolními obvody je obvodové uspořádání sestaveno. Program procesoru *.psm lze napsat v syntaxi Chapman a pak importovat do pblazide (File => Import, syntaxe se při importu automaticky konvertuje), nebo se píše rovnou v editoru pblazide. Programy zapsané v syntaxi Mediatronix je nutné otevřít (open), ne importovat! Pokud se program importuje, dělá se konverze syntaxe i u programu psaného v syntaxi Mediatronix, což způsobí chyby. V prostředí pblazide se může simulovat viz [5]. Direktivou VHDL "<template>.vhd", "<target>.vhd", "<ROM>" (viz pozn.) se určí názvy generovaných souborů VHDL. V adresáři se souborem *.psm musí při kompilaci být odpovídající šablona (ROM_blank.vhd). Prostředí se spustí poklepáním na pblazide.exe, výsledky jsou ukládány do adresáře, kde je zpracovávaný soubor *.psm. Při kompilaci (Assemble&Simulate) se v souboru <target>.vhd vytvoří údaje pro definici obsahu paměti programu. Doporučení pro organizaci adresářů v projektu ISE: Soubory *.psm s šablonou ROM_blank je vhodné mít v adresáři projektu ISE, podadresář psm. Popis paměti vygenerovaný při kompilaci (<target>.vhd, obsahující entitu <ROM> viz direktivu VHDL v programu *.psm) je pak vhodné přesunout (zkopírovat) do adresáře projektu ISE, kde se s ním dále normálně pracuje. Poznámka: Význam parametrů direktivě VHDL je: <template> je ROM_blank nebo ROM_blank_JTAG, <target> je požadované označení souboru odvozeného od <template>.vhd obsahujícího paměť programu a <ROM> je název entity v tomto souboru. 7

8 Které zdrojové soubory jsou potřebné v projektu (Mediatronix Design Flow): kcpsm3.vhd entita procesoru, viz kcpsm3.zip, lze stáhnout z www stránky: Soubor s entitou paměti programu vytvoří se kompilací souboru *.psm v prostředí pblazide. Soubor MPU.vhd tento soubor obsahuje popis procesorového jádra a paměti programu. Další jednotky připojené k procesoru (vstupy, výstupy, řadič displeje, blok časování atd. podle aktuální potřeby). V kurzu to budou jednotky obsažené v šabloně TplS3BdlBrd.vhd. Vrcholovou jednotku projektu (např. šablona TplS3BdlBrd.vhd). Soubor ucf přiřazení vstupních a výstupních vývodů FPGA a případně další informace pro syntetizér a pro implementační program. Poznámka: Soubor MPU.vhd pochází ze souborů firmy Mediatronix, kde byl původně nazván PicoTest.vhd. V konstrukcích, které jsou obsaženy v tomto kurzu, je přejmenován podle názvu entity MPU, kterou obsahuje. V ní je procesor (komponenta kcpsm3) propojen strukturálním popisem s pamětí programu, jejíž název je určen direktivou VHDL v souboru *.psm. Celek odpovídá souboru embedded_kcpsm3.vhd z archívu kcpsm3.zip, který je na www stránkách firmy Xilinx. Soubor MPU.vhd může být převeden i do tvaru schématu, které je obvykle bližší konstruktérům seznámeným s prací s mikroprocesory. Například pro projekt PicoUART2 může toto schéma mít tvar podle Obr. 2. Paměť v tomto schématu má vstup hodinového signálu, což odpovídá skutečnosti, že bloková paměť obsažená v obvodech FPGA je synchronní obsahuje výstupní registr, do něhož se data zapisují tímto signálem. Obr. 2. Komponenta MPU schéma jako alternativa ke strukturálnímu popisu Ve schématu jsou komponenty označeny symbolem odpovídajícím označení entity. Samotný procesor (kcpsm3) je stejný pro různé aplikace, jednotlivým aplikacím však přísluší pamět programu s obsahem vygenerovaným ze souboru *.psm. Zde má tato paměť označení AddUART ve shodě s příslušným parametrem v příkazu VHDL. V některých případech může být modifikována i entita procesoru, například v projektu PicoAddBCD neobsahuje procesor výstup int_ack. 8

9 4. Příklad konstrukce s použitím jádra PicoBlaze 4.1. První část konstrukce: sečtení dvou čísel v kódu BCD v procesoru PicoBlaze (Projekt PicoAddBCD) První část sečtení dvou čísel v kódu BCD představuje konstrukci sloužící především pro seznámení s procesorem a s prací s ním. 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. Podobná poznámka platí i pro druhou část jednoduchý obvod UART. Použití procesoru může být výhodné z i toho důvodu, že sestavení programu je pro mnoho konstruktérů snadnější a rychlejší než vytvoření UARTu a podobných konstrukcí ze základních strukturních prvků FPGA (zapsání jeho popisu v jazyku HDL), nebo je-li již hotový program 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é. K dispozici bude: šablona TplS3BdlBrdSch.ise, pblazide.exe, ROM_blank.vhd, MPU.vhd Funkce: Procesor zpracovává dekadická čísla v rozsahu Oba operandy jsou uloženy v registrech procesoru. Stlačením tlačítka BTN1 na desce 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, zobrazí se výsledek (rozsah 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 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. Nyní 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): je-li 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. Tím je korekce skončena. 9

10 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 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 10

11 ; 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, Sum1 eee: OUT Dig10Rg, POut0 OUT Dig32Rg, POut1 JUMP start Program začíná rozmístěním proměnných v registrech (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 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 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 bitem Sel(7) určuje, zda se čte hodnota z přepínačů nebo z tlačítek a bity Sel(0) a Sel(1) po dekódování v bloku BcdSel určují pozici na displeji, kde bude příslušná hodnota z výstupu OUT_PORT zobrazena. Symbol $ 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. 11

12 Postup při zpracování projektu zaměřeného na desku Spartan-3 Starter Kit: Obr. 3. Sčítačka v kódu BCD schéma vrcholové jednotky 1. Vyjdeme z šablony projektu ISE pro tuto zkušební desku. V této úloze použijeme šablonu se schématickou formou vrcholové jednotky (TplS3BdlBrdSch.ise). Šablonu zkopírujeme do pracovního adresáře a poklepáním na položku projektu spustíme systém ISE. Zobrazíme vrcholové schéma šablony poklepáním na položku TplS3BdlBrd. Ze schématu můžeme vypustit blok Debounce a LEDdrv (není to však nutné). Musíme naopak přidat blok pro zachycení signálů zobrazovaných na displeji BcdSel, jehož výstup bude obsahovat čtyři čtyřbitové skupiny, kde každá tato skupina představuje jednu číslici zobrazovanou na displeji (samotný procesor nemá vhodné výstupy pro budič displeje DispDriv). Dále přidáme blok InMux vstupní multiplexor, který bude na vstup procesoru přivádět signály ze spínačů nebo z tlačítek podle hodnoty řídicího signálu Sel, a blok MPU vrcholovou jednotku procesoru PicoBlaze (tu budeme dále nazývat procesor). Těmito dvěma bloky nahradíme v šabloně blok Test a propojíme je podle Obr. 3. Jako blok MPU můžeme použít jednotku PicoTest.vhd, která je dostupná na www stránkách firmy Mediatronix. K vytvoření symbolu pro vložení do schématu nejprve sestavíme popis příslušného bloku (schéma, HDL), přidáme jej do projektu a symbol pak vytvoříme procesem Design Utilites => Create Schematic Symbol. 2. V adresáři projektu ISE vytvoříme podadresář s označením psm a do něj nakopírujeme soubor ROM_blank.vhd (šablona pro komponentu paměti programu procesoru). V prostředí pblazide otevřeme nový text, v záložce Settings zvolíme Picoblaze 3. Text pod názvem např. BCDadd uložíme do adresáře psm. a vložíme do něj text programu pro sčítačku. Simulací ověříme jeho správnou funkci. Přepnutím do režimu simulace se současně vygeneruje komponenta pro paměť programu procesoru (PicoAddBCD.vhd), kterou (po ověření její funkce simulací) přesuneme do adresáře projektu ISE. 3. Ve zdrojovém textu MPU.vhd (dříve PicoTest.vhd) musí být označení komponenty paměti programu procesoru shodné s označením entity odpovídající této paměti, které je zadáno v příkazu VHDL v programu psm. Ve výše uvedeném programu je toto označení AddBCD (poslední slovo v uvozovkách v tomto příkazu). V původním textu MPU.vhd je tato komponenta označena mpu_rom toto označení je jednak v deklaraci komponenty (poslední příkaz component v souboru MPU.vhd), jednak i ve vložení 12

13 této komponenty (poslední vložení komponenty v souboru, s návěštím ROM :). Po změně označení tak, aby se označení komponenty shodovalo s označením entity, máme připraven projekt v systému ISE k implementaci. 4. Při implementaci do cílového obvodu Spartan-3, při naprogramování konfigurační paměti a ověření funkce v desce budou účastníci kurzu postupovat podle pokynů instruktora. Doporučuje se po implementaci prohlédnout Pinout Report (v okně Design Summary) a zkontrolovat, je-li u všech vstupních a výstupních signálů označení LOCATED a standard LVCMOS Druhá část konstrukce: vysílač UART pro připojení k PC přes rozhraní RS-232 (Projekt PicoUART) K dispozici bude: projekt sčítačky, tabulka ASCII Funkce: Po stlačení tlačítka BTN3 se vyšle 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 sestavíme pro přenosovou rychlost 9600 Bd. V klidovém stavu je 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). Pokyny pro vytvoření programu procesoru PicoBlaze pro vysílač UARTu: Kromě sestavení vlastního programu je samozřejmě nutné na začátku textu 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). Syntaxe je zřejmá z programu pro součet, který byl uveden výše. V příkazu VHDL nahraďte název souboru vytvářeného při kompilaci (PicoAddBCD.vhd) novým názvem PicoUART.vhd a označení entity v tomto souboru (AddBCD) novým označením AddUART. Je pak také nutné provést změny označení komponenty paměti programu procesoru, jak bylo popsáno v bodu 3 postupu zpracování první části projektu (PicoAddBCD). 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). 13

14 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. 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ů. Postup práce na projektu: 1. Vytvoří se nový projekt v ISE s označením PicoUART (adresář se automaticky vytvoří systémem ISE), do něj se nakopírují zdrojové texty z adresáře sčítačky z minulé konstrukce. Do adresáře projektu se zkopíruje podadresář psm z projektu sčítačky a v něm se program pro procesor PicoBlaze přejmenuje na AddUARTm.psm. 2. Program AddUARTm.psm se nyní v prostředí pblazide rozšíří podle výše uvedených pokynů o program pro UART. Po odladění programu AddUARTm.psm se soubor PicoUART.vhd vytvořený v pblazide představující komponentu paměti programu procesoru přesune do adresáře PicoUART, odkud se vynechá nyní již nepotřebný soubor PicoAddBCD.vhd. 3. Soubory v adresáři PicoUART (s rozšířením.sch,.vhd,.ucf) se přidají do projektu, čímž vznikne funkční sestava (hierarchie) projektu. 4. Ke schématu je nutno nyní přidat výstup UARTu registr, do něhož se zapíše nejnižší bit výstupní brány procesoru, tedy signálu UARTout, při provedení instrukce výstupu OUT UARTout, PUART. Bude-li adresa definována deklarací PUART DSOUT $04, bude zapojení odpovídat schématu na Obr Podle pokynů instruktora se provede implementace do zkušební desky. Opět se doporučuje po implementaci prohlédnout Pinout Report (v okně Design Summary) a zkontrolovat, je-li u všech vstupních a výstupních signálů označení LOCATED a standard LVCMOS33 (zvláště u výstupu TxD). Po připojení napájecího napětí k desce musí fungovat program pro součet z minulé konstrukce. V PC (předpokládá se, že je připojen kabelem RS-232 k desce) se spustí program HyperTerminal: Start => 14

15 Programy => Příslušenství => Komunikace => HyperTerminal, v okénku zvolit označení (identifikátor) => OK, připojit pomocí COM1 (obvykle), zvolit rychlost 9600 bitů/s, 8 datových bitů, parita žádná, počet stop-bitů 1, řízení toku žádné. Pokud je vše v pořádku, vypisuje se v okně HyperTerminalu po stlačení tlačítka BTN3 zpráva, která je dána programem procesoru. Obr. 4. Sčítačka doplněná vysílačem UARTu schéma vrcholové jednotky Postup kreslení: Bloky Timing, BcdSel, LEDdrv, DspDriv se odsunou doprava je nutno zvolit When you move an object, break the connections to other objects, pak vybrat uvedené bloky, odsunout je a doplnit přerušená spojení. Do schématu se přidá výstupní registr (nejlépe OFDXI je to klopný obvod s jedničkovým počátečním stavem viz [1]), k výstupu se přikreslí port, označí se TxD (ve shodě s ucf zde se musí zrušit symbol komentáře u signálu TxD). Projekt PicoUART1: je to PicoUART s přenosem obou sčítanců a výsledku sčítání UARTem na HyperTerminal Třetí část konstrukce: doplnění UARTu o přijímač pro přenos z PC do procesoru demonstrace přerušení (Projekt PicoUART2) K dispozici bude: projekt PicoUART1 Funkce: Všechny funkce z projektu PicoUART1 zůstanou beze změny. Navíc se budou přenášet data z PC (HyperTerminal) do FPGA: stlačením klávesy se vyšle příslušný kód, který se zobrazí na diodách LED v desce Spartan-3 Starter Kit. Řešení: Do vstupního multiplexoru InMux se přidá vstup RxD (vstupní signál UARTu), který se připojí k signálům z tlačítek jako nejvyšší bit. Do řídicího obvodu pro diody LED (LEDdrv) se zavede datová sběrnice procesoru a samotný obvod se upraví tak, aby se do jeho registru zapsaly údaje z datové sběrnice procesoru vyslané s příslušnou adresou (při aktivním signálu Sel(3)) viz Obr

16 Obr. 5. Vrcholová jednotka pro obousměrný přenos UARTem Data na vstupu RxD bude procesor vzorkovat s kmitočtem 16x vyšším, než je bitová rychlost přenášeného signálu, tj. s kmitočtem 16x9600 Hz. Vzorkovací impulsní signál s tímto kmitočtem bude z hodinového signálu clk50 (s kmitočtem 50 MHz) vytvořen jednotkou ClkUART, který obsahuje dělič s dělicím poměrem: 50000/(9.6*16) = V posledním stavu děliče bude nastaven registrový výstupní signál jednotky ClkUART. Tento signál bude přiveden na vstup přerušení procesoru, a procesor jej ve svém programu obsluhy přerušení signálem na svém výstupu int_ack (tento výstup v původní jednotce MPU není, jeho přidání bude popsáno dále) vynuluje obdoba zapojení ze snímku 58 ve [5] nebo obrázku Fig. 4-1 z [2]. Tak se zajistí, že přerušení bude skutečně rozpoznáno. Dělicí poměr nemusí být nastaven přesně, zcela podobně jako to bylo při konstrukci vysílače UARTu stačí zvolit poměr 325. Program obsluhy přerušení bude dále vzorkovat vstup RxD. Pokud je na něm klidová úroveň (log. I), obsluha přerušení bude ukončena. Při zjištění log. O na vstupu RxD (start bit) bude program obsluhy přerušení pokračovat příjmem dat rozsahu jednoho symbolu přenášeného UARTem a jeho zobrazením diodami LED, načež bude obsluha přerušení ukončena. Mimo dobu, kdy je obsluhováno přerušení, vykonává procesor dosavadní činnost z projektu PicoUART1. Každý bit přenášený UARTem má dobu trvání 16 period vzorkovacího signálu. To dovoluje zvýšit softwarovými prostředky odolnost přenosu proti rušení. V našem případě se ale omezíme na nejjednodušší provedení UARTu. Program bude následující: V klidu je na vstupu RxD signál s hodnotou log. I. Přijetí vzorku s hodnotou log. O bude považováno za začátek přicházejícího start bitu. Další bity se budou vzorkovat v okamžicích, kdy se očekává střed příslušného bitového intervalu. Od prvního vzorku se tedy odpočítá 8 dalších, kde se předpokládá střed start bitu (pro jednoduchost se nebude kontrolovat, jestli nulová hodnota na vstupu trvá), a dále se bude odpočítávat 16 vzorků a hodnota každého šestnáctého vzorku se bude zaznamenávat jako hodnota přijatého datového bitu. Po odpočítání posledního přijatého bitu se příjem ukončí (předpokládá se, že přichází stop bit s hodnotou log. I, tato hodnota se však nebude kontrolovat). Je zřejmé, že dodatečnými úpravami programu lze značně zvýšit spolehlivost funkce přijímače. Je také 16

17 zřejmé, že použití procesoru k vytvoření UARTu dovoluje takové úpravy poměrně snadno provádět. Zájemce si může příslušné úpravy programu navrhnout sám, přičemž zapojení použité v konstrukci (schémata, popis v jazyku VHDL) zůstává beze změn. Při vysílání signálu z procesoru do PC přichází signál pro vyvolání přerušení na vstup procesoru 16x během doby vysílání jednoho bitu z procesoru. Při vysílání je však nezbytné dodržet časové parametry vysílaného signálu, které jsou odměřovány programem procesoru. Aby tyto časy byly odměřeny správně, musí být přerušení během vysílání zakázáno. (Ve skutečnosti nebude v době, kdy je přerušení zakázáno, signál pro přerušení nulován, takže v této době bude na vstupu pro přerušení procesoru trvalá jedničková úroveň, která přejde do nuly až po opětném povolení přerušení, kdy procesor v programu obsluhy přerušení vyšle nulovací signál do jednotky ClkUART.) Pokud by měl být přenos uskutečněn současně oběma směry (současné stlačení klávesy na PC a tlačítka pro vyslání dat z procesoru do PC), může být zpracování přenášeného signálu procesorem narušeno. Předpokládá se, že obsluha zajistí, že k této situaci nedojde, nebo že v opačném případě chybně přenesený signál správně vyhodnotí. Nebudeme tedy tuto možnost při sestavování programu uvažovat a budeme předpokládat, že vždy dochází jen k přenosu jedním směrem. Postup úpravy zapojení (vychází se z projektu PicoUART1): 1. V popisu VHDL pro multiplexor InMux se přidá vstup RxD a odpovídající signál se přidá do osmibitového signálu adresovaného nulovou hodnotou signálu Sel (např. jako MSB). Vytvoří se nový symbol multiplexoru pro schéma. 2. Upraví se jednotka LEDdrv přidá se vstup datové sběrnice procesoru a potřebné řídicí signály podle schématu (viz výše), a upraví se jeho funkce, jak bylo uvedeno u obrázku. Opět se vytvoří nový symbol pro schéma. 3. Vytvoří se dělič ClkUART (čítač čítající v rozsahu 0 324, s výstupním klopným obvodem pro signál přerušení procesoru), a odpovídající symbol. 4. Do jednotky MPU.vhd se doplní výstup int_ack důvod viz výše: - tento výstup se doplní do deklarace portů entity MPU, - do deklarace komponenty kcpsm_3 se doplní výstup interrupt_ack, - ve vložení komponenty kcpsm_3 (příkaz generate) se v příkazu port map doplní interrupt_ack => int_ack, - vygeneruje se symbol pro schéma. Dále je nutno upravit program pro procesor (opět se vychází z programu pro projekt PicoUART1). Změny budou spočívat hlavně v přidání programu pro obsluhu přerušení, který bude zajišťovat vše, co souvisí s příjmem. V hlavním programu bude nutno pouze přidat deklarace, povolit na začátku programu přerušení a inicializovat vzorkovací počítadlo (bude označeno Cnt8). Z důvodů vyložených výše je dále nutné zakázat přerušení během vysílání UARTu. Mimo tyto změny a přidání obslužného programu přerušení zůstane výchozí program (z projektu PicoUART1) v původní podobě. Jak již bylo uvedeno, vzorkovací počítadlo Cnt8 je na začátku programu (a pak znovu po přijetí celého znaku) inicializováno na hodnotu -9 (tj. 247 v celočíselném formátu bez znaménka). Prvních 8 přijatých nul určí střed start bitu, a další bity se snímají s odstupem 17

18 16 inkrementů vzorkovacího počítadla. Po detekci příchodu start bitu se nastaví bit v registru Stav označený prijem (v programu je také návěští Prijem s velkým P). Do přijímacího registru postupně zapíše 9 bitů. První z nich je start bit, který se posouvá dalšími zápisy do nižších pozic a při posledním zápisu se z registru vysune, takže v přijímacím registru zůstane 8 přijatých datových bitů. Po přijetí posledního bitu probíhá ještě jednou celý cyklus 16 inkrementů vzorkovacího počítadla, čímž se najde střed stop bitu. Hodnota stop bitu se však již nekontroluje (opět z důvodu jednoduchosti programu), přejde se přímo na návěští Konec příjmu. Blokové schéma programu obsluhy přerušení pro projekt PicoUART2: isr: Je prijem = I? ano: JUMP Prijem ne test vstup. dat: Prijem: inkrement Cnt8 Cnt8 > 246? I RETI ENABLE (klid) O nastav bit prijem ano RETI ENABLE (není ještě střed start bitu) ne střed start bitu nebo datový bit: Jsou dolní 4 bity Cnt8 nulové? ne RETI ENABLE ano střed bitu: Jsou horní 4 bity Cnt8 aspoň rovny 9? ano stop bit, jdi na Konec příjmu ne: vzorkuj vstup dat, nasuň do MSB přijímacího registru (DataIn) RETI ENABLE Konec příjmu: nuluj bit prijem inicializuj Cnt8 na hodnotu -9 zapiš DataIn do LED RETI ENABLE 4.4. Čtvrtá část konstrukce: PC jako terminál k zadávání vstupních údajů pro sčítačku a ke zobrazení výsledku (Projekt PicoUART3) K dispozici bude: projekt PicoUART2 Funkce: Vstupní údaje pro sčítačku se zadávají z PC a přenášejí do procesoru UARTem. Procesor přijaté platné číslice vysílá zpět do PC, kde se vypisují na obrazovce. Po zadání obou sčítanců vznikne na obrazovce zápis XX + YY = SSS a přejde se na nový řádek. Řešení: Zapojení (schéma, popis VHDL) zůstává beze změny, úprava se týká jen programu pro procesor. Podrobnější popis funkce: XX a YY jsou dekadické číslice zadávané HyperTerminalem z klávesnice PC, jakékoliv jiné znaky procesor ignoruje kromě znaku ENTER, který způsobí návrat na začátek programu a odřádkování, stávající řádek zůstává neukončen. Přijaté platné číslice vysílá procesor zpět (echo) do HyperTerminalu, který je zobrazuje na obrazovce. Po zadání číslic XX procesor vyšle do PC ještě znak + (zobrazí se na obrazovce) a očekává 18

19 zadání dvou číslic YY nebo znaku ENTER, cokoliv jiného ignoruje. Po přijetí očekávaných znaků YY procesor vyšle řetězec = SSS (dekadický součet) a odřádkuje. ASCII kódy všech přijatých znaků se pro kontrolu zobrazují na LED. Případný reset procesoru se vyvolá opětným nakonfigurováním FPGA. Blokové schéma programu obsluhy přerušení pro projekt PicoUART3: isr: Je prijem = I? ano: JUMP Prijem ne test vstup. dat: Prijem: inkrement Cnt8 Cnt8 > 246? I RETI ENABLE (klid) O nastav bit prijem ano RETI ENABLE (není ještě střed start bitu) ne střed start bitu nebo datový bit: Jsou dolní 4 bity Cnt8 nulové? ne RETI ENABLE ano střed bitu: Jsou horní 4 bity Cnt8 aspoň rovny 9? ano stop bit, jdi na Konec příjmu ne: vzorkuj vstup dat, nasuň do MSB přijímacího registru (DataIn) RETI ENABLE KonecPrijmu: nuluj bit prijem, zapiš data do LED (až potud je to stejné jako u PicoUART2 přijetí znaku z klávesnice a nasunutí do LED) Je-li přijatý znak ENTER: JUMP End0 Byla-li přijata číslice 0 až 9, vyšli ji zpět a zapiš na patřičné místo sčítance byly-li přijaty všechny znaky XX: vyšli +, JUMP End1 byly-li přijaty všechny znaky YY vyšli = SSS Je-li přijat jiný znak: JUMP End1 (znak se ignoruje, pouze je zobrazen na LED) End0: End1: odřádkuj inicializuj Cnt8 a Stav, RETI ENABLE Časové parametry: Pro XC3S200-4 FT256 dává statická časová analýza (ISE i) max. kmitočet hodin cca 72 MHz, je-li vstupní multiplexor kombinační. Po úpravě multiplexoru na registrový (viz [5], snímek 67) vzroste tento kmitočet na 93 MHz (projekt PicoUART3pip). 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, 19

20 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. 20

21 5. Základní informace o cílových obvodech FPGA Procesor PicoBlaze je určen pro implementaci do obvodů FPGA vyráběných firmou Xilinx. Pro jednotlivé řady těchto cílových obvodů jsou zpracovány potřebné zdrojové texty (konstrukční jednotky popisující procesor), které jsou pro každou z těchto řad optimalizovány přehled je uveden například v [5], snímek PicoBlaze Comparison (Srovnání verzí PicoBlaze). V době psaní tohoto textu byly k dispozici verze pro cílové obvody řad Spartan-II, Spartan-IIE, Virtex, Virtex-E, Virtex-II, Virtex-II Pro a Spartan-3. Je pravděpodobné, že s rozvojem nových typů obvodů FPGA bude pokračovat také vývoj procesorů pro tyto obvody. Uvedeme zde základní vlastnosti obvodů FPGA typu Spartan-II a Spartan-3, v nichž je užití procesoru PicoBlaze nejčastější Obvod Spartan-II Pracovní napájecí napětí jádra: V CCINT = 2.5 V Pracovní napájecí napětí vstupně-výstupních bloků: V CCO = 1.4 až 3.6 V Možnost volby konfigurace I/O vývodů podle 16 standardů, některé z nich (LVTTL, LVCMOS a PCI33_5) umožňují přímou spolupráci s obvody napájenými ze zdroje 5 V (tzv. 5V tolerantní I/O). FPGA může mít nakonfigurováno několik různých standardů na různých vývodech (I/O bankách) Libovolný postup zapínání a vypínání zdrojů Odběr ve statickém stavu řádu desítek ma (v průběhu konfigurace je krátkodobě potřebný větší proud), při proměnných vstupních signálech může odběr výrazně vzrůst Nejdůležitější specializované strukturní prvky jsou: prvky vytvořitelné z tabulky LUT (distribuovaná paměť RAM DRAM nebo posuvný registr), smyčka DLL (Delay- Locked Loop), bloková paměť RAM (BRAM, jedno- nebo dvoubránová, 4Kb/blok) Nejmenší: XC2S15, systémových hradel, 192 řezů, bitů DRAM, 10Kb BRAM Největší: XC2S200, systémových hradel, 2352 řezů, bitů DRAM, 56Kb BRAM FPGA je organizováno jako pole konfigurovatelných logických bloků (CLB), které jsou hlavní složkou vytvářející logickou funkci obvodu, obklopených vstupně/výstupními bloky (IOB), které komunikují s vývody FPGA. Část plochy čipu zabírají dále specializované strukturní prvky (mimo ty, které se vytváření nakonfigurováním LUT). Každý blok CLB obsahuje dva vzájemně podobné řezy (slices), v každém řezu jsou dvě logické buňky (LC, logic cells). Každá buňka LC obsahuje 4vstupovou tabulku LUT (tabulky lze pomocí multiplexorů sdružovat k získání většího počtu vstupů) a paměťový prvek klopný obvod. Tabulka LUT (není-li použita ve své původní funkci) může být nakonfigurována do funkce 16bitové paměti RAM v několika modifikacích takto vytvořená paměť se nazývá distribuovaná (distributed) paměť viz níže, nebo do funkce až 16bitového posuvného registru. Kromě toho obsahují řezy další kombinační prvky, především multiplexory sloužící k řízení cesty signálu, využitelné však i obecně k vytváření kombinačních logických funkcí, a prvky přenosového řetězce, což je specializovaná kombinační struktura určená především pro efektivní realizaci aritmetických operací, ale využitelná i pro jiné účely. Tyto prvky mohou být použity i jako dodatečné prostředky pro vytváření logických funkcí. Přenosový řetězec může 21

22 sloužit také ke kaskádování tabulek LUT pro realizaci složitějších kombinačních funkcí. Na tabulku LUT můžeme pohlížet také jako na paměť ROM. K přídavným logickým prvkům v bloku CLB patří dva multiplexory F5, které v každém řezu mohou sdružovat výstupy obou tabulek LUT, a multiplexor F6, který může kombinovat výstupy multiplexorů F5. Tyto multiplexory spolu s tabulkami LUT mohou být využity k vytvoření některých funkcí většího počtu vstupních signálů (může z nich být sestaven např. osmivstupový multiplexor). Paměťový prvek v každé buňce LC může být nakonfigurován jako klopný obvod DE řízený hranou nebo staticky (latch). Jeho vstup může být připojen k výstupu LUT nebo přímo ke vstupu buňky. Dvojice klopných obvodů v řezu je řízena sdílenými signály: hodinovým signálem, signálem pro povolení hodin (clock enable), signálem pro nulování a signálem pro nastavení, které lze nakonfigurovat jako asynchronní nebo synchronní. Všechny tyto signály mohou být invertovány a jsou společné pro oba obvody v řezu. Distribuovaná paměť může být jednobránová nebo dvoubránová. Zápis je synchronní řízený aktivní hranou hodinového signálu, čtení je asynchronní. Blokové schéma jednobránové distribuované paměti v obvodech řady Spartan je nakresleno na následujícím obrázku, číslo vstupu D0 a D1 patrně odpovídá první či druhé tabulce v řezu (v datasheetu není přesně uvedeno). Z jedné tabulky LUT lze vytvořit 16-bitovou paměť, obě tabulky v řezu lze sloučit do 32-bitové paměti viz [6]: U dvoubránové distribuované paměti jen jedna brána může sloužit pro zápis dat do paměti (je vybavena datovým a zapisovacím vstupem), obě brány však mají vlastní výstupy a mohou být nezávisle adresovány (každá svým adresovým vstupem). Obsah adresované paměťové buňky se pak objeví na odpovídajícím výstupu. Funkce dvoubránové distribuované paměti spočívá ve zdvojení 16bitové paměťové struktury v řezu. Každá z obou částí paměti je vytvořena z jedné ze dvou tabulek LUT v řezu. Do obou částí se zapisují tatáž data společným zapisovacím signálem na adresu určenou společným adresovým vstupem, ke čtení z každé části však slouží adresový vstup patřící příslušné části struktury. Blokové schéma dvoubránové distribuované paměti v obvodech řady Spartan viz [6]: 22

23 Bloková paměť může také být jednobránová nebo dvoubránová. Ve dvoubránové konfiguraci má pro každou bránu datové i zapisovací vstupy. 0bě brány jsou zcela nezávislé. Mají synchronní zápis i čtení, a jejich nezávislost dovoluje použít je pro styk mezi doménami se vzájemně nezávislými hodinovými signály. Řízení paměti je však v tomto případě citlivé na některé konfliktní situace (například pokud se z obou bran zapisuje ve stejném okamžiku do stejného paměťového místa), a je nezbytné věnovat mu patřičnou pozornost. Pro orientaci může posloužit knihovní symbol primitivy pro jednobránovou a dvoubránovou blokovou paměť RAM, jak je uveden v [7]: 23

24 Některé vlastnosti blokové paměti jsou odlišné od vlastností běžných pamětí vyráběných jako samostatné integrované obvody, a proto je zde stručně uvedeme. Počáteční obsah paměti po připojení napájecího napětí je možno specifikovat v popisu HDL (na rozdíl od běžných pamětí vyráběných zejména pro použití v mikropočítačích, kde je tento obsah nedefinovaný), takže se paměť může použít i jako paměť typu ROM. Toho se často využívá při implementaci procesorů do obvodů FPGA. Ve výstupu paměti je bufer, do něhož se zapisuje obsah adresovaného paměťového místa hranou hodinového signálu. Obě brány mohou mít šířku dat jeden až 16 bitů (celistvé mocniny 2). Vstup EN aktivuje příslušnou bránu jako celek, při jeho neaktivním stavu je výstup brány neměnný (nikoli ve stavu vysoké impedance, jak je obvyklé u běžných pamětí) a není možný zápis do paměti ani nulování výstupního buferu (paměť nereaguje na vstup CLK). Vstup WE povoluje zápis dat ze vstupu DI do paměťového místa určeného adresou při aktivní hraně signálu na vstupu CLK; současně se zapsaná data objeví na výstupu. Není-li signál na vstupu WE aktivní, pak tato hrana způsobí pouze aktualizaci obsahu výstupního buferu paměti v souhlasu s hodnotou signálu na adresovém vstupu. Vstup RST je synchronní a nuluje obsah výstupního buferu, neovlivňuje obsah vlastní paměti. Celkovou kapacitu obou typů paměti RAM (distribuovaná a bloková) lze pro jednotlivé členy řady najít např. v publikaci [8]. Distribuovaná paměť RAM je vhodná pro takové aplikace, kde jde o nepříliš velké paměti těsně svázané s další logikou, jako jsou posuvné registry, registry pro pipelining, a pro paměti s požadavkem asynchronního čtení. Bloková paměť RAM je určena pro středně velké paměťové subsystémy se synchronním zápisem i čtením. Při požadavku na realizaci rozsáhlých pamětí je k obvodu FPGA možno připojit vnější paměťové obvody, což usnadňují I/O bloky podporující standardy používané u těchto obvodů. Distribuovanou a blokovou paměť i posuvný registr realizovaný v LUT je možno popsat behaviorálním stylem nebo vložením příslušných komponent. Při behaviorálním popisu je nutno používat šablon, z nichž syntetizér příslušnou paměť inferuje. Má-li inference správně proběhnout, je nezbytné dodržet formální stavbu příslušné šablony. Podobně jako u blokové paměti, i u distribuované paměti a u posuvného registru vytvořeného z tabulky LUT je možno specifikovat počáteční obsah po připojení napájecího napětí. Poznámka: Popis jednotlivých typů pamětí v obvodech FPGA firmy Xilinx je často roztříštěn do dílčích katalogových listů různých obvodů FPGA a aplikačních zpráv a není jednoduché se v nich přesně orientovat. Například popis distribuované paměti RAM v katalogovém listu řady Spartan-II [7] je velmi stručný a neúplný, a na její uspořádání lze usuzovat nejspíše z popisu tohoto druhu paměti u předcházejících řad. Není zde však jednoznačně napsáno, co přesně je z těchto řad do uvedené řady převzato. Proto je patrně při práci s pamětmi nejvhodnější používat pokud možno behaviorální popis v jazyku HDL, který požadovanou funkci paměti přesně definuje, a tento popis vytvářet na základě doporučení a šablon uváděných v návrhovém systému (Edit => Language Templates...) a v publikacích pojednávajících o syntéze. Popis v katalogovém listu je v takovém případě vhodné brát jen jako orientační vodítko (někdy však, například v katalogovém listu řady Spartan-3, je vcelku vyčerpávající popis blokové paměti použité v této řadě a jsou zde odkazy na aplikační zprávy popisující použití distribuované paměti, jakož i dalších specializovaných bloků). 24

Implementace procesorů v obvodech FPGA

Implementace procesorů v obvodech FPGA Implementace procesorů v obvodech FPGA Doc. Ing. Jaromír Kolouch, CSc. Ústav radioelektroniky FEKT VUT v Brně, Purkyňova 118, 618 00 Brno E -mail: kolouch@feec.vutbr.cz Článek podává informaci o jednom

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

Č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

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

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

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

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

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

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

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

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

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

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

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

Čí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

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

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

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

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

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

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

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

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

Použití programovatelného čítače 8253

Použití programovatelného čítače 8253 Použití programovatelného čítače 8253 Zadání 1) Připojte obvod programovatelný čítač- časovač 8253 k mikropočítači 89C52. Pro čtení bude obvod mapován do prostoru vnější programové (CODE) i datové (XDATA)

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

Ří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

BDIO - Digitální obvody

BDIO - Digitální obvody BIO - igitální obvody Ústav Úloha č. 6 Ústav mikroelektroniky ekvenční logika klopné obvody,, JK, T, posuvný registr tudent Cíle ozdíl mezi kombinačními a sekvenčními logickými obvody. Objasnit principy

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

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

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

SNÍMAČOVÝ EXPANDÉR TB8.1x2 RS232 - ASCII

SNÍMAČOVÝ EXPANDÉR TB8.1x2 RS232 - ASCII KATALOGOVÝ LIST SNÍMAČOVÝ EXPANDÉR TB8.1x2 RS232 - ASCII 1. URČENÍ Jednotka TB8 je určena ke statickému měření s 1-8 indukčnostními snímači. Připojení jednotky k nadřízenému systému (PC, PLC) je sériovým

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

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

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

KOMBINAČNÍ LOGICKÉ OBVODY

KOMBINAČNÍ LOGICKÉ OBVODY Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/03.0009 KOMBINAČNÍ LOGICKÉ OBVODY U těchto obvodů je vstup určen jen výhradně kombinací vstupních veličin. Hodnoty

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

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

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

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

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

Pokročilé architektury počítačů

Pokročilé architektury počítačů Pokročilé architektury počítačů Architektura IO podsystému České vysoké učení technické, Fakulta elektrotechnická A4M36PAP Pokročílé architektury počítačů Ver.1.00 2010 1 Co je úkolem? Propojit jednotlivé

Více

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

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

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

TW15 KONCOVÝ PRVEK MSKP. Popis výrobku Technická data Návod k obsluze. Technologie 2000 s.r.o., Jablonec nad Nisou

TW15 KONCOVÝ PRVEK MSKP. Popis výrobku Technická data Návod k obsluze. Technologie 2000 s.r.o., Jablonec nad Nisou TW15 KONCOVÝ PRVEK MSKP Popis výrobku Technická data Návod k obsluze Technologie 2000 s.r.o., Jablonec nad Nisou Obsah: 1. CHARAKTERISTIKA... 3 2. TECHNICKÉ PARAMETRY... 4 2.1 VÝROBCE:... 4 3. POPIS TW15ADAM...

Více

TECHNICKÝ POPIS MODULU GRAFIK =============================

TECHNICKÝ POPIS MODULU GRAFIK ============================= listů: 8 list : 1 TECHNICKÝ POPIS MODULU GRAFIK ============================= zpracoval: Nevoral schválil: Cajthaml ZPA, k.p. Nový Bor, listopad 1985 4-151-00342-4 list: 1 list: 2 1. VŠEOBECNĚ Obvody realizované

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

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

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

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

SPARTAN - 3 Xilinx FPGA Device

SPARTAN - 3 Xilinx FPGA Device SPARTAN - 3 Xilinx FPGA Device 1. Úvod: 1.2V řada SPARTAN-3 navazuje na úspěch předchozí řady: SPARTAN-IIE. Od architektury SPARTAN-IIE se liší v počtu systémových hradel a logických buněk, velikosti RAM,

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

Seznámení s mikropočítačem. Architektura mikropočítače. Instrukce. Paměť. Čítače. Porovnání s AT89C2051

Seznámení s mikropočítačem. Architektura mikropočítače. Instrukce. Paměť. Čítače. Porovnání s AT89C2051 051 Seznámení s mikropočítačem Architektura mikropočítače Instrukce Paměť Čítače Porovnání s AT89C2051 Seznámení s mikropočítačem řady 8051 Mikroprocesor řady 8051 pochází z roku 1980 a je vytvořené firmou

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

Architektura počítačů Logické obvody

Architektura počítačů Logické obvody Architektura počítačů Logické obvody http://d3s.mff.cuni.cz/teaching/computer_architecture/ Lubomír Bulej bulej@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Digitální

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

Úloha 9. Stavové automaty: grafická a textová forma stavového diagramu, příklad: detektory posloupností bitů.

Úloha 9. Stavové automaty: grafická a textová forma stavového diagramu, příklad: detektory posloupností bitů. Úloha 9. Stavové automaty: grafická a textová forma ového diagramu, příklad: detektory posloupností bitů. Zadání 1. Navrhněte detektor posloupnosti 1011 jako ový automat s klopnými obvody typu. 2. Navržený

Více

TCP-Wedge ZDARMA. Přidává podporu TCP/IP: Sběr dat z adres portu IP na libovolné síti TCP/IP - ethernet / internet.

TCP-Wedge ZDARMA. Přidává podporu TCP/IP: Sběr dat z adres portu IP na libovolné síti TCP/IP - ethernet / internet. Katalogový list www.abetec.cz Software WinWedge Professional pro sběr dat 15-1003E Obj. číslo: 106001285 Výrobce: Mark-10 Corporation Anotace Přenáší data do libovolného programu Windows. Poskytuje plný

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

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

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

XC3000(A) / XC3100(A)

XC3000(A) / XC3100(A) FPGA Xilinx SPARTAN 1. FPGA Xilinx historie Řada XC2000 byla historicky první FPGA (rok 1984), v současné době se již nedodává. Principy použité pro její konstrukci byly natolik geniální, že jsou na nich

Více

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

Příloha č. I: Schéma zapojení vývojové desky PVK-PRO Příloha č. I: Schéma zapojení vývojové desky PVK-PRO Schéma zapojení vývojové desky PVK-PRO (http://poli.cs.vsb.cz/edu/arp/down/pvk-pro.png) Příloha č. III: Organizace registrů v bankách PIC 16F84 Příloha

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

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

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

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

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

MPASM a IDE pro vývoj aplikací MCU (Microchip) MPASM a IDE pro vývoj aplikací MCU (Microchip) MPLAB, vývojové prostředí a jeho instalace; Založení nového projektu a jeho základní nastavení; Zásady tvorby a základní úprava formuláře zdrojového kódu;

Více

Inovace a zkvalitnění výuky směřující k rozvoji odborných kompetencí žáků středních škol CZ.1.07/1.5.00/

Inovace a zkvalitnění výuky směřující k rozvoji odborných kompetencí žáků středních škol CZ.1.07/1.5.00/ Inovace a zkvalitnění výuky směřující k rozvoji odborných kompetencí žáků středních škol CZ.1.07/1.5.00/34.0452 Číslo projektu Číslo materiálu CZ.1.07/1.5.00/34.0452 OV_2_51_Posuvné registry použití Název

Více

Architektura počítačů Logické obvody

Architektura počítačů Logické obvody Architektura počítačů Logické obvody http://d3s.mff.cuni.cz/teaching/computer_architecture/ Lubomír Bulej bulej@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics 2/36 Digitální

Více

Vestavné systémy BI-VES Přednáška 5

Vestavné systémy BI-VES Přednáška 5 Vestavné systémy BI-VES Přednáška 5 Ing. Miroslav Skrbek, Ph.D. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze Miroslav Skrbek 2010,2011 ZS2010/11 Evropský

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

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

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

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

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

MIDAM Verze 1.1. Hlavní okno :

MIDAM Verze 1.1. Hlavní okno : MIDAM Verze 1.1 Podporuje moduly Midam 100, Midam 200, Midam 300, Midam 400, Midam 401, Midam 410, Midam 411, Midam 500, Midam 600, Ghc 2x. Umožňuje nastavení parametrů, sledování výstupních nebo vstupních

Více

Disková pole (RAID) 1

Disková pole (RAID) 1 Disková pole (RAID) 1 Architektury RAID Důvod zavedení RAID: reakce na zvyšující se rychlost procesoru. Pozice diskové paměti v klasickém personálním počítači vyhovuje pro aplikace s jedním uživatelem.

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: 7 ČASOVÁNÍ A SYNCHRONIZACE TECHNICKÉHO VYBAVENÍ doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních

Více

MĚŘICÍ PŘÍSTROJ PRO PC. 4 VSTUPY: 0 10 V ZESÍLENÍ : 1x, 2x, 4x, 8x VÝSTUP: LINKA RS232 RS232 DRAK 4 U1 U2 U3 U4

MĚŘICÍ PŘÍSTROJ PRO PC. 4 VSTUPY: 0 10 V ZESÍLENÍ : 1x, 2x, 4x, 8x VÝSTUP: LINKA RS232 RS232 DRAK 4 U1 U2 U3 U4 MĚŘICÍ PŘÍSTROJ PRO PC 4 VSTUPY: 0 10 V ZESÍLENÍ : 1x, 2x, 4x, 8x VÝSTUP: LINKA RS232 U1 U2 U3 U4 DRAK 4 RS232 POPIS Měřicí přístroj DRAK 4 je určen pro měření napětí až čtyř signálů a jejich přenos po

Více

Reliance 3 design OBSAH

Reliance 3 design OBSAH Reliance 3 design Obsah OBSAH 1. První kroky... 3 1.1 Úvod... 3 1.2 Založení nového projektu... 4 1.3 Tvorba projektu... 6 1.3.1 Správce stanic definice stanic, proměnných, stavových hlášení a komunikačních

Více

5. A/Č převodník s postupnou aproximací

5. A/Č převodník s postupnou aproximací 5. A/Č převodník s postupnou aproximací Otázky k úloze domácí příprava a) Máte sebou USB flash-disc? b) Z jakých obvodů se v principu skládá převodník s postupnou aproximací? c) Proč je v zapojení použit

Více

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

Obsluha periferních operací, přerušení a jeho obsluha, vybavení systémových sběrnic Obsluha periferních operací, přerušení a jeho obsluha, vybavení systémových sběrnic 1 Cíl přednášky Zabývat se principy využití principů přerušení. Popsat, jak se tyto principy odrazily v konstrukci systémových

Více

UC485P. Převodník RS232 na RS485 nebo RS422. Průmyslové provedení s krytím

UC485P. Převodník RS232 na RS485 nebo RS422. Průmyslové provedení s krytím Převodník RS232 na RS485 nebo RS422 Průmyslové provedení s krytím. UC485P Katalogový list Vytvořen: 21.1.2005 Poslední aktualizace: 5.5 2008 12:30 Počet stran: 16 2008 Strana 2 UC485P OBSAH Základní informace...

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

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

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

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

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT Škola Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Název sady Téma Anotace Autor Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram CZ.1.07/1.5.00/34.0556

Více

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

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Vzorový příklad pro práci v prostředí MPLAB Zadání: Vytvořte program, který v intervalu 200ms točí doleva obsah registru reg, a který při stisku tlačítka RB0 nastaví bit 0 v registru reg na hodnotu 1.

Více

Systém adresace paměti

Systém adresace paměti Systém adresace paměti Základní pojmy Adresa fyzická - adresa, která je přenesena na adresní sběrnici a fyzicky adresuje hlavní paměť logická - adresa, kterou má k dispozici proces k adresaci přiděleného

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

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

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

Vstupně - výstupní moduly

Vstupně - výstupní moduly Vstupně - výstupní moduly Přídavná zařízení sloužící ke vstupu a výstupu dat bo k uchovávání a archivaci dat Nejsou připojována ke sběrnici přímo, ale prostřednictvím vstupně-výstupních modulů ( ů ). Hlavní

Více

Sekvenční logické obvody

Sekvenční logické obvody Název a adresa školy: Střední škola průmyslová a umělecká, Opava, příspěvková organizace, Praskova 399/8, Opava, 746 01 Název operačního programu: OP Vzdělávání pro konkurenceschopnost, oblast podpory

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 Informatika 2 Technické prostředky počítačové techniky - 2 Přednáší: doc. Ing. Jan Skrbek, Dr. - KIN Přednášky: středa 14 20 15 55 Spojení: e-mail: jan.skrbek@tul.cz 16 10 17 45 tel.: 48 535 2442 Obsah:

Více

Přerušení na PC. Fakulta informačních technologií VUT v Brně Ústav informatiky a výpočetní techniky. Personální počítače, technická péče cvičení

Přerušení na PC. Fakulta informačních technologií VUT v Brně Ústav informatiky a výpočetní techniky. Personální počítače, technická péče cvičení Fakulta informačních technologií VUT v Brně Ústav informatiky a výpočetní techniky Personální počítače, technická péče cvičení 5 Přerušení na PC Zadání Seznamte se s konstrukcí cvičné zásuvné adaptérové

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

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

Registry a čítače část 2

Registry a čítače část 2 Registry a čítače část 2 Vypracoval SOU Ohradní Vladimír Jelínek Aktualizace září 2012 Úvod Registry a čítače jsou častým stavebním blokem v číslicových systémech. Jsou založeny na funkci synchronních

Více