Programování obvodů PLD v ORCADu verze
|
|
- Sára Kadlecová
- před 8 lety
- Počet zobrazení:
Transkript
1 Programování obvodů PLD v ORCADu verze Richard Šusta a Josef Šivic Katedra řídicí techniky, ČVUT-FEL Praha Domovská stránka dokumentu: Obsah: 1 Úvod Překladač PLD Testovací program VECTORS Základní syntaxe PLD jazyka ORCADu Výrazy Přiřazení signálů automatické a manuální Příklad deklarace proměnných Přídavné popisy za definicemi signálu Synchronní dělička 3/ Přehled metod programování PLD obvodů Booleovské rovnice Numerické rovnice Indexované rovnice Numerické mapy Pravdivostní tabulky Streamy Stavový automat Úvodní příklad - čítač v Grayově kódu: Procedura v jazyce PLD Shrnutí Příklad: Přidělovač sběrnice Příklad: Synchronní Moorův automat Příklad: Synchronní Mealyho automat Příklad: Asynchronní Moorův automat Další syntaktické definice jazyka PLD Literály Identifikátory Kondicionály Rozsah (..) a posloupnost (...) Indexování Precedence a asociativita Vestavěné funkce Literatura...25 R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 1 z 25
2 1 Úvod Od roku 1975 se používají součástky typu PLD, Programmable Logic Device, které nahrazují složité propojování logických obvodů. K prvním použitelnějším PLD patřily PALy, založené na technologii podobné pamětem PROM, které byly jednorázově programovatelné. V roce 1983 se objevily GALy, vycházející z analogie pamětí typu EEPROM a nabízející opakované programovaní (až 100 cyklů). Princip všech PLD obvodů vychází z předdefinované struktury logického obvodu. Tu lze v omezené míře modifikovat. OLMC 32 vstupové hradlo AND, uvedené nahoře, se ve schématech GALů kreslí zjednodušeně: Zjednodušuje se i kreslení přívodů k svislým čarám, s pozitivními i negativními signály. Zkratky ve schématech GALů. (Modré tečky naznačují programovatelné propojky) V schématech GALů, resp. PALů, se vyskytují zkratky uvedené na dolním obrázku. Struktura obsahuje pole hradel a za ním buňky OLMC, Output Logic Macrocell, výstupní obvod s programovatelnou funkcí. OLMC se může změnit třeba na jednoduché vícevstupové hradlo, to případně rozšířit o třístavový výstup, resp. klopný obvod, apod. Konkrétní možnosti proměny OLMC závisí na zvoleném typu GALU a popisují se detailně v dokumentaci, včetně podrobných schémat jednotlivých možných variant OLMC. R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 2 z 25
3 Například obvod typu GAL16V8 nabízí, jako jednu z řady možností, osmici klopných obvodů typu D, tj. obvodů řízených náběžnou hranou hodinového signálu. Jejich vstupy D by se daly při naprogramovaní všech možných propojek vyjádřit rovnicemi ve tvaru: 8 8 D = a. a. q. q ; n = 1..8 n i= 1 j= 1 j j j j kde a j hodnota jednoho z osmi vstupů; q j hodnota z osmi výstupů; násobení zastupuje operaci AND a sčítaní operaci OR. Žádný term se samozřejmě neprogramuje jako maximální, neboť použít pozitivní i negativní hodnotu od jedné logické proměnné v AND-termu nedává ani smysl, a proto lze použít nejvýše pouze polovinu možných členů. Často se využije ještě méně a vstup prvního klopného obvodu může mít například jenom tvar D1=a1+q Překladač PLD Obvody typu PLD (jako GALy a PALy) šetří konstruktérovi práci se zapojováním, ale nezbavují ho nutnosti navrhnout strukturu obvodu a popsat ji výrazy závislými na použitém nástroji. V tomto textu se probírá programování v PLD překladači z MS-DOS verze ORCADu, který sice nepatří k nejmodernějším nástrojům, ale na druhou stranu se vejde na jednu disketu a disponuje propracovaným jazykem PLD. Pro běžné použití zcela stačí. Překlad se spouští z příkazového řádku a jako parametr se zadává soubor vytvořený libovolným textovým editorem, ale před prvním použitím se napřed musí správně nakonfigurovat pro konkrétní adresář. Výchozí cesty uložené v PLD.EXE lze změnit spuštěním programu s parametrem /C a poté se jen vyplní údaje LP a MP. Konfigurace se však nedá provést pod Windows NT, protože v nich není možné přepisovat spuštěné EXE soubory. Svoje vlastní soubory si uložte do zvoleného adresáře, například G:\ORCAD, který je nastavený jako výchozí ve verzi překladače dávané k dispozici pro tento předmět. Zdrojové texty musí mít bezpodmínečně příponu *.PLD a lze je vytvářet kterýmkoliv textovým editorem, pozor jméno musí být samozřejmě MS-DOS formátu 8.3. Mujsoub.PLD PLD.EXE mujsoub Mujsoub.JED Mujsoub.LST Mujsoub.VEC Programátor PLD obvodů VECTORS.EXE mujsoub Mujsoub.LOG Překlad a ladění souboru Když napíšete třeba soubor mujsoub.pld a uložíte si ho do adresáře překladače, přeložíte ho příkazem PLD.EXE mujsoub. Všimněte si, že se nezadává přípona. Výsledek překladu se objeví ve 3 sou- R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 3 z 25
4 borech mujsoub.jed (pro programátor), mujsoub.lst (protokol o překladu) a mujsoub.vec (informace pro testovací program VECTORS.EXE) Program VECTORS.EXE umí zobrazit odezvu obvodu na zadanou vstupní sekvenci, pro náš příklad se spustí příkazem VECTORS.EXE mujsoub. Opět se nezadává přípona souboru. Výsledek bude uložený v mujsoub.log. Pro fyzické vytvoření GALu, resp. PALu, programátorem potřebujete jedině soubor mujsoub.jed. Soubory typu JED (čti džedek) mají mezinárodně normovaný formát a lze je překládat i jinými prostředky. 1.2 Testovací program VECTORS Program VECTORS.EXE dovoluje testovat funkci navrženého GALu. Příkazy pro změny vstupních signálů lze zapisovat ručně nebo je spustit v dávce popsané ve zdrojovém kódu. Použití je ukázáno v příkladech dále v textu. Příkazy: Display idsignalu1, idsignalu2 [,... ] - definice zobrazení, lze uvést i textový řetězec, např. Display EN,CL,DEL4,R," -> ",Q0,Q1 Set idvstupu - nastav do aktivního stavu, což může být "1", ale i "0" závisí to na tom, je-li signál aktivní v 1 nebo 0. Vstup určený popisem Enable je aktivní v "0" implicitně, ostatní vstupy a výstupy jsou implicitně aktivní v 1, což lze změnit popisem Low: Set idvstupu = 1 - nastav vstup do "1", fyzická hodnota na vstupu pouzdra obvodu může být opačná, je-li signál aktivní v "0". Set idvstupu = 0 - nastav vstup do "0" Clear idvstupu - nastav vstup do neaktivního stavu Test idvstupu = posloupnost - vyzkoušejte tuto posloupnost, např. Test A = 0, 1, 0, 0, 0, 1, 1 Test A = 3(0,1), 0, 0 definice opakovaní signálu, výsledek 0,1,0,1,0,1,0,0 Test A, B = 01, 11, 2(00, 01) dtto pro 2 vstupy = 01, 11, 00, 01, 00, 01, lze rozšířit na libovolný počet vstupů Test idvstupu1, idvstupu2 - vyzkoušejte všechny kombinace, tj. 00, 01, 10, 11 lze použít pro libovolný počet vstupu Výstupy simulace: 0,1 - stavy příslušného bitu Z U - vysoká impedance, výstup je ve třetím stavu - nedefinováno. Z dat, která jste poskytli, nelze jednoznačně odvodit výstup. Značka se generuje obvykle tehdy, když opomenete synchronně inicializovat výstup u klopného obvodu do výchozího stavu. Například GAL 16V8 nemá asynchronní inicializaci, takže musíte naprogramovat vstup RESET pro synchronní nulování. Pokud ho opominete, klopný obvod nemá jasný počáteční stav a tudíž nemusí mít ani následný. To označuje značka U. Příklady najdete dále. R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 4 z 25
5 2 Základní syntaxe PLD jazyka ORCADu 2.1 Výrazy Symbol Alter. symbol Význam Příklad = Přiřazení Q = A & B '! NOT Q = A' & AND Q = A & B # OR Q = A # B ## $ XOR Q = A##B Q = A $ B &'!& NAND Q = A &' B Q =A!& B #'!# NOR Q = A #' B Q =A!# B == Rovnost A == 0!= /= <> Nerovnost A!= B A /= B A<>B < Menší A < B <= menší nebo rovno A <= B > Větší A > B >= větší nebo rovno A >= 0 + Součet A = A+1 - Rozdíl A = A-5 * Násobení Q = B * 2 / Dělení Q = A / 2 \ Zbytek po dělení A \ 2 <> 0 ** Mocnina Q = Q**2?? Třístavový výstup Enable?? Q // Náběžná hrana Clock // Q \\ Spádová hrana Clock \\ Q.. ~ určení rozsahu ~10 ( ) Závorky Q = A & (B # C) [ ] Skupina signálů Q[0..3] = Q[0..3]+1 R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 5 z 25
6 2.2 Přiřazení signálů automatické a manuální Definované vstupní a výstupní proměnné se přiřazují konkrétním vstupům a výstupům zpravidla automaticky, tj. volbu provede programovací nástroj, což nám ve výpisu sdělí, nebo lze definovat propojení na konkrétní číslo vývodu. V prvním případě se použije deklarace proměnných: in vstup out čistý výstup, což znamená takový výstup, který se nezavádí zpět do propojovacího pole a nelze ho tedy použít na pravé straně logických rovnic. Ne všechny GALy mají podobné výstupy. Například v GAL16V8 nelze použít out, protože všechny výstupy používají v programovacím poli; io výstup vedený zpět do programovacího pole, viz. popis u out; clock vstup hodinového signálu; enable vstup ovládající třístavových výstupů Příklad deklarace proměnných Ve zdrojovém kódu mají význam pouze řádky se znakem (svislá čára) na první pozici, ostatní se považují za poznámky. Jako první se vždy uvádí typ GALu, resp. PALu, za nímž následují seznamy proměnných jednotlivých typů: GAL16V8 in:(del4,r), io:(q[0..1]), enable: EN, clock: CL Výpis překladače uvede přiřazení vývodům pouzdra: SIGNAL ASSIGNMENT 1. CL 2. DEL4 3. R 11. EN 18. Q1 19. Q0 Pokud potřebujeme přesné přiřazení vstupů a výstupů na konkrétní vývody pouzdra, použijeme absolutní deklarace. Na prvním řádku zdrojového kódu je opět typ GALu, resp. PALu, a pod ním čísla vývodů pouzdra se seznamy proměnných. Jejich typ není uveden; bude přidělen automaticky podle vlastnosti příslušného vývodu. Například u GALu 16V8 znamená přiřazení špičce 1 vždy typ hodiny, čísla vývodů 2-9 jsou vstupy, 11 enable, výstupy. Výše uvedené automatické přiřazení lze popsat i absolutně: GAL16V8 2..3:(DEL4,R), :(Q[0..1]), 11: EN, 1: CL Chceme-li ale jiné, můžeme ho změnit: GAL16V8 5:DEL4, 9:R, :(Q[0..1]), 11: EN, 1: CL SIGNAL ASSIGNMENT 1. CL 5. DEL4 9. R 11. EN 12. Q1 13. Q0 R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 6 z 25
7 Vlastní činnost obvodu lze popsat ve formě logických rovnic pro výstupy. Překladač si sám vytvoří logické rovnice pro jednotlivé výstupy a nastaví správně konfiguraci OLMC podle definovaného typu GALu, resp. PALu. Q1 = HODINY//A1.A2+A1'.A2' Zápis znamená: Q1 bude po náběžné hraně hodin rovno výsledku logické funkce A1 A2. Změníme-li výše uvedený vztah: Q1 = A1.A2+A1'.A2' bude výstup Q1 pouhou logickou kombinací vstupů bez klopného obvodu. Zápis: Q[7..0] = CLK // Q[7..0]+1 (číslo na výstupech Q7 až Q0 bude po náběžné hraně o 1 vyšší) převede ORCAD na rovnice výstupních bitů osmibitového čítače. Lze také popsat celý synchronní automat tabulkou přechodů, viz. příklady ke konci textu Přídavné popisy za definicemi signálu Low - např. Low: R vstup R aktivní v "0", bude-li "0" na vstupu, bude R="1" High - např. High: S vstup S aktivní v "1", bude-li "1" na vstupu, bude R="1" Všechny signály mají výchozí (default) stav High Registers např. Registers: CL // Q Q řízeno náběžnou hranou signálu CL Conditioning např. Conditioning: EN?? Q Q třístavový výstup řízený EN Q = A & B Q = EN?? A & B totéž lze popsat jako Conditioning: EN?? Q Q = A & B EN?? se vloží automaticky A B EN A B Q Q = CL // A & B totéž lze definovat jako Reqisters: CL // Q Q = A & B CL // se teď vkládá automaticky EN Q = CL // A & B Q = EN?? A & B tj- dvě současně platné podmínky totéž lze přehledněji definovat jako Conditioning: EN?? Q Reqisters: CL // Q Q = A & B A B D Q Q A B D Q Q CL CL CL CL R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 7 z 25
8 2.2.3 Synchronní dělička 3/4 Poznámka: V příkladu se pro přehlednost používá diakritika v komentářích. ORCAD ji však nedovoluje a komentáře se musejí vytvářet bez českých znaků. Obvod je dělička hodinového signálu s dělicími poměry 3 a 4 DEL4 přepíná dělící poměr DEL4 = 0 - obvod dělí 3 DEL4 = 1 - obvod dělí 4 R - vstup synchronního nulování, který musíme vytvořit. GAL 16V8 nemá asynchronní nulování. R = 0 - výstupy Q0 a Q1 přejdou po náběžné hraně hodin do 0 R = 1 - obvod dělí poměrem nastaveným na vstupu DEL4 GAL16V8 definice typu použitého GALu in:(del4,r), io:(q[0..1]), enable: EN, clock: CL Použijme dva vstupy DEL4 a R, dva výstupy Q0 a Q1 vedené zpět do programovacího pole, dále třístavové ovládání výstupu EN a hodiny CL. Příkaz io by šel psát i jako io:(q0,q1) Low: R vstup R aktivní v "0", bude-li "0" na vstupu, bude R="1" Registers: CL // Q[0..1] Definují se výstupy Q0 a Q1 jako synchronní registry, jinak by vznikly prosté kombinační obvody. Vytvoří se D-klopné obvody 74, ale v 16V8 bez vstupů R a S pro asynchronní nulovaní. Conditioning: EN?? Q[0..1] Definují se použité výstupy jako 3-stavové. Pro GAL16V8 v REGISTER konfiguraci jsou výstupy vždy 3-stavové. Pokud by definice EN chyběla, překladač by si ji sám doplnil a vypsal varování. EN vstup je aktivní v 0 a na špičce pouzdra musí být 0, aby byly výstupy uvolněné. Q0 = R' & (( Q0' & Q1' ) # ( Q0' & DEL4 )) Q1 = R' & (( Q0 & Q1' ) # ( Q0' & Q1 & DEL4 )) R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 8 z 25
9 ************* Příkazy pro program VECTORS ********************* Vectors: { Display EN,CL,DEL4,R," -> ",Q0,Q1 Vypisuj ve formátu - uvedené vstupy oddělené čárkami, text "->" a za ním výstupy Clear EN výstupy ve třetím stavu (na fyz. vstupu 1) Test CL,DEL4,R vyzkoušíme všechny kombinace Set EN EN do aktivního stavu Set R test reset Test CL = 0,1 reset se projeví až po první hraně hodin Clear R R do neaktivního stavu Set DEL4 = 0 test děliče 3 Test CL = 8(0,1) pošli na vstup posloupnost Set DEL4 = 1 test děliče 4 Test CL = 8(0,1) Set R opětný test reset Test CL = 0,1 reset se projeví až po první hraně hodin End } Výstup programu Vectors děličky 3/4 OrCAD TEST VECTOR GENERATOR V1.20E 6/6/90 { Display EN,CL,DEL4,R," -> ",Q0,Q1 Clear EN Test CL,DEL4,R > Z Z > Z Z > Z Z > Z Z > Z Z > Z Z > Z Z > Z Z Set EN Set R Test CL = 0, > U U > 0 0 Clear R Set DEL4 = 0 Test CL = 8(0,1) > > > > > > > > > > > > > > > > 0 1 Set DEL4 = 1 Test CL = 8(0,1) > > > > > > > > > > > > > > > > 0 1 Set R Test CL = 0, > > 0 0 End R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 9 z 25
10 3 Přehled metod programování PLD obvodů Jazyk pro programování PLD obsahuje zajímavé prvky, které mohou významně ulehčit programování určitých typů logických obvodů. 3.1 Booleovské rovnice Booleovské rovnice jsou nejjednodušší, ale zároveň nejuniverzálnější forma popisu logického obvodu v jazyce PLD. Příklad I: PAL12L6 in:(a, B, C, D), out:(y[1..5]) ekvivalentni out:(y1, Y2, Y3, Y4, Y5) Y1 = A & B AND Y2 = A # B OR Y3 = A ## B EXCLUSIVE OR Y4 = A4 NOT T1 = A & B Lze pouzit docasne promenne, T2 = C # D ktere nedefinujeme v in: ani v out: Y5 = T1 ## T2 A /= 0 Vyraz je pravdivy, je-li signal A neaktivni A[2..0] == 0 Ekvivalentni s A2==0 & A1==0 & A0==0 3.2 Numerické rovnice V této části ukážeme, jak lze v rovnicích jazyka PLD používat numerické operace. Příklad I: Y[2..0] = A[1..0] + B[1..0] Aritmeticky soucet Předchozí rovnice představuje dvoubitovou sčítačku, vyjádřenou pomocí jediné operace (+). Výčet všech numerických operací lze nalézt v tabulce na str.5. Příklad II: Y = A[2..0] > B[2..0] Y bude aktivni,jeli A[2..0] vetsi nez B[2..0] C[3..0] = sqrt(a[3..0]**2 + B[3..0]**2) Prepona pravouhleho trojuhelniku Signály C[3..0], A[3..0], B[3..0] z předchozího příkladu si lze představit jako binární reprezentace dekadických čísel, s kterými lze jednoduše provádět všechny numerické operace. Některé takové operace ale pro syntézu logického obvodu potřebují mnoho termů. Například obvod počítající Pythagorovu větu z předchozího příkladu by měl 43 termů. R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 10 z 25
11 3.3 Indexované rovnice Jednotlivé signály lze indexovat a tím výrazně snížit počet rovnic ve výrazech. Příklad I: Indexace čísel 13[2] = 1101b[2] = 1b 13[9] = 1101b[9] = 0b 13[2..1] = 13[2,1] = 1101b[2,1] = 10b 13[1..3] = 13[1,2,3] = 1101b[1,2,3] = 011b Příklad II: Indexace signálů i=1,2,3,4: Y[i] = A[i] & B[i] Kompilator vytvori 4 rovnice. Příklad III: Operace s indexovanými signály Y[1..3] = A[1..3] & B[1..3] Y1 = A1 & B1 Y2 = A2 & B2 Y3 = A3 & B3 Y[4..1] = A[3..1] + B[3..1] y4y3y2y1 = a3a2a1 + b3b2b1 Operace & je bitová, a proto vznikly 3 rovnice, zatímco u + jedna. Q = A[3..1] > B[3..1] Q = a3a2a1 > b3b2b1 Q = A[8..1] < 128 Q = A8' Q = A[8..1] < 127 Q = A8' & (A1' # A2' #... A7') A8 je 0 a současně některý bit je 0 Y[2..1] = (A[2..1] + 1) & A3 A[0..5] == 17 A[5,1,2] == 5 Y1=A3 & A1' Y2=A3 & (A2 & A1' # A2 & A1') A0' & A1 & A2'& A3'& A4'& A5 A1' & A2 & A5 Příklad IV - Dekodér 3:8: Dekodér 3:8 má tři vstupy A2, A1, A0 (A[2..0]) a osm výstupů Q[7..0]. Každá z osmi binárních kombinací tří vstupních signálů aktivuje jeden výstupní signál. Dekodér můžeme přepsat pomocí osmi rovnic takto: Q0 = A[2..0]==000b dekadicky 0 Q1 = A[2..0]==001b dekadicky 1 Q2 = A[2..0]==010b dekadicky 2 Q3 = A[2..0]==011b dekadicky 3 Q4 = A[2..0]==100b dekadicky 4 Q5 = A[2..0]==101b dekadicky 5 Q6 = A[2..0]==110b dekadicky 6 Q7 = A[2..0]==111b dekadicky 7 Tuto soustavu osmi rovnic, lze efektivně přepsat do rovnice jedné. Celý dekodér se pak zapíše takto: in:a[2..0], out:q[7..0] Title: 3:8 Decoder n=0..7: Q[n] = A[2..0]==n R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 11 z 25
12 Příklad V - 4 bitový čítač: Jednoduchý 4bitový čítač prochází binární posloupnost , podíváme-li se podrobně na jednotlivé přechody, zjistíme, že poslední bit se překlápí v každém kroku. Každý jiný bit (=ne poslední) se překlopí právě tehdy, když a) je 1 a všechny nižší bity jsou 0 b) je 0 a všechny nižší bity jsou 1. Tomu odpovídá následující program. in:reset, io:q[3..0], clock:clk i=3..1: Q[i] = CLK // RESET & ostatni bity ( (Q[i] & Q[i-1..0]==1111b) # a) (Q[i] & Q[i-1..0]/=1111b) ) b) i=0: Q[i] = CLK // RESET & Q[i] nejnizsi bit Příklad VI 8:1 Multiplexor 8:1 multiplexor je obvod, který má 8 datových vstupů Q[7..0], tři adresové vstupy A[2..0] a jeden datový výstup D. Na výstup D se přenášejí data ze vstupu Q[n], který je právě adresován vstupy A[2..0]. V jazyce PLD lze zapsat celý obvod takto. in:(q[7..0], A[2..0]), out:d Title: 8:1 Multiplexor n=0..7: D = Q[n] & A[2..0]==m Příklad VII Něco na dlouhé zimní večery - Dekodér prvočísel GAL16V8 in:(a[0..4]), io:(y) k = 5 počet bitů vstupu n = 2..2**k - 1: od 2 do 31 { j= 0 n>3: i=2..sqrt(n): Najdi kolik celych cisel deli j = j+(n\i==0) vstupni hodnotu beze zbytku j==0: Y = A[k-1..0]==n nedeli zadne } 3.4 Numerické mapy V PLD jazyce je mapa určitá definice vztahu vstupních a výstupních hodnot. Nemusíme ani podrobně znát logické funkce. V mapě musíme vždy použít proměnnou n. Jiné proměnné i, j, k,... nejsou možné. Příklad I: Map: Q[3..0] -> Q[3..0] { n -> n+1 } vstupy výstupy mapa Předchozí příklad říká, že dostane-li automat na vstupu číslo n, má na výstup poslat číslo n+1. Mapami lze definovat pouze kombinační logické obvody. Chceme-li použít registry, musíme je definovat explicitně pomocí klíčového slova Conditioning:. R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 12 z 25
13 Příklad II: Obousměrný čítač. Směr je řízený signálem UP. Signál RESET čítač nuluje. PAL22V10 in:reset, io:q[3..0], clock:clk Conditioning: CLK // Q[3..0] Map: Q[3..0] -> Q[3..0] { n -> n + 1, RESET & UP n -> n - 1, RESET & UP n -> 0, RESET } Příklad III: Čítač modulo 10 Map: Q[3..0] -> Q[3..0] { n -> (n+1)\10 } Dekadické hodnoty se mapují na dekadické Příklad IV: Čítač modulo 10 podruhé Map: Q[3..0] -> Q[3..0] { n -> n+1, n<9 n -> 0, n>=9 } Dekadické hodnoty se mapují na dekadickou Pravdivostní tabulky Pravdivostní tabulka definuje logickou funkci vypsáním všech možných kombinací vstupních a výstupních hodnot. Příklad I: Mějme následující booleovské rovnice. PAL12H6 in:(a, B, C, D), out:y T = B # C Y = (A & T) # (D & T) Tyto rovnice lze též zadat pomocí pravdivostní tabulky. V tabulce lze řádky se stejnou výstupní pravdivostní hodnotou sdružovat. Následující dvě pravdivostní tabulky jsou si v jazyce PLD ekvivalentní. Table: A, B, C, D -> Y { 0000b -> b -> b -> b -> b -> b -> b -> b -> b -> b -> b -> b -> b -> b -> b -> b -> 1 Table: A, B, C, D -> Y { 000Xb -> b -> b -> b -> b -> b -> b -> 1 100Xb -> 0 0XXXXb -> 1 Tabulku lze zadat i pomocí dekadické reprezentace vstupních hodnot. Table: A, B, C, D -> Y { 0..2, 4, 6, > 0 3, 5, 7, > 1 } R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 13 z 25
14 Příklad II: Tabulky je možné zadávat i pomocí výrazů. Tabulka s každým třetím řádkem aktivním by vypadala takto: Table: A[12..0] -> Y { n\3 == 0 -> 1 n\3 /= 0 -> 0 } Má-li logický obvod více výstupů, lze vyrobit pro každý výstup tabulku zvlášť nebo tabulky zkombinovat do jedné. Podrobný popis lze nalézt v [1] na str Streamy Streamy stejně jako tabulky definují logické obvody výpisem všech možných pravdivostních hodnot. U streamů ale nespecifikujeme hodnoty vstupů. Ty jsou implicitně předpokládané jako posloupnost čísel 0, 1, 2,... n, 0. Streamy jsou tedy vhodné pro programování složitých čítačů. Příklad I: Tabulku z příkladu I z odstavce 3.5 lze zapsat i pomocí streamu. Při použití streamu je ale přesnější mluvit o vstupní posloupnosti než o vstupních signálech a proto vstupy A, B, C, D přejmenujeme na STEP[3..0] Stream: STEP[3..0] -> Y {0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1} První tři nuly lze přepsat jako 3(0) a následující tři kombinace 1,0 jako 3(1,0). Celou posloupnost můžeme tedy přepsat na PAL12H6 in:step[3..0], out:y Stream: STEP[3..0] -> Y { 3(0), 3(1,0), 0, 6(1) } R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 14 z 25
15 3.7 Stavový automat Úvodní příklad - čítač v Grayově kódu: Grayův kód je posloupnost čísel, kde mezi sousedními čísly je v binární reprezentaci změna právě v jednom bitu. Dekadicky tato posloupnost pro 4-bitový čítač vypadá takto 0, 1, 3, 2, 6, 7, 5, 4, 12, 13, 15, 14, 10, 11, 9, 8, 0. Chceme-li čítač v Grayově kódu převést do tvaru stavového automatu, můžeme si tuto posloupnost představit jako sekvenci stavů, kterou má automat neustále a nezávisle na vstupu procházet. Výstupem automatu-čítače pak budou 4 dráty odpovídající přímo binární reprezentaci jeho stavů. Jak by se takovýto jednoduchý automat, který má neustále procházet předepsanou sekvenci stavů, zapsal jako procedura v jazyce PLD? PAL16R4 in:reset, out:q[3..0], clock:clock Title: Grayuv citac jako procedura Conditioning: CLOCK // Q[3..0] Active-low: Q[3..0] Procedure: RESET, Q[3..0] { 0. ->1 1. ->3 3. ->2 2. -> >8 8. ->0 } Levý sloupec následovaný tečkou popisuje starý stav, pravý sloupec popisuje nový stav. Šipka -> má podobný význam jako příkaz go-to. Tabulka tedy říká, že pokud se automat vyskytne ve stavu 0, má pokračovat do stavu 1; pokud se vyskytne ve stavu 1, má pokračovat do stavu 3 atd. Na pořadí, ve kterém jsou jednotlivé přechody v tabulce zapsány, nezáleží Procedura v jazyce PLD Stavový automat tedy lze popsat procedurou, která obsahuje následující části: 1 Klíčové slovo Procedure: Uvádí začátek procedury. 2 Řídící signály Definují signál RESET a stavové signály(proměnné). 3 Jména stavů Jednoznačně určují jednotlivé stavy. 4 Příkazy větvení Definují přechody mezi stavy. 5 Příkazy přiřazení Nastavují výstupní signály. 6 Podmínkové příkazy Testují vstupní signály. 7 Vnořené příkazy Tvoří skupiny příkazů. 8 Explicitní čísla stavů Přiřadí čísla ke jménům stavů. a) Klíčové slovo Procedure: a řídicí signály Každá procedura stavového automatu musí začínat klíčovým slovem Procedure: následovaném dvěma množinami signálů. První z nich je přiřazení nulovacího signálu. Je-li nulovací signál aktivní, automat přejde do stavu nula a zůstává v něm. Specifikace nulovacího signálu je nepovinná. Druhá množina signálů specifikuje stavové proměnné. Je nutné nadefinovat tolik stavových proměnných (signálů), aby bylo možné popsat všechny stavy definované dále v proceduře. Platí známé pravidlo, že n stavových proměnných popisuje 2 n stavů. R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 15 z 25
16 Příklad: Vstupní nulovací signál se jmenuje LMARK a 3 výstupy jsou stavové signály Q2, Q1, Q0. PAL16R4 in:lmark, out:q[3..0], clock:clock... Procedure: LMARK, Q[2..0] { } b) Jména stavů Stav může být označen jménem nebo číslem. Jméno stavu musí začínat písmenem a následovat může jakákoli kombinace čísel a písmen. Konvence navíc doporučuje, aby stavy byly označovány velkými písmeny, např. STAV1. Tímto lze předejít záměně s proměnnými označovanými písmeny i..n. V proceduře lze mezi jménem stavu a signálem rozlišit lehce, protože za stavem vždy následuje tečka (.) nebo mu předchází šipka (->). c) Explicitní čísla stavů Při překladu se stavu vždy přiřadí číslo. Ve většině případů je nejlepší nechat překladač čísla přiřadit automaticky. Někdy ale chceme, aby samotné číslo stavu neslo nějakou informaci (např. nejvyšší bit čísla stavu rozlišuje, zda v daném stavu čteme ze vstupu nebo informace zpracováváme) a pak je nutné čísla stavů definovat explicitně ve zdrojovém kódu procedury. V takovém případě je nutné stavy vypsat a seznam stavů musí následovat hned po otevřené složené závorce uvozující proceduru. Poznámka: Stavy neuvedené v seznamu jsou překladačem přiřazeny automaticky. Prvnímu stavu musíme vždy přiřadit číslo 0. Příklad: Procedure: LMARK, Q[2..0] { States: STAV1 = 8, STAV2 = 9, STAV3 = } d) Větvení Šipka (->) následována jménem stavu tvoří příkaz větvení. Automat čeká na začátek dalšího cyklu (náběžná nebo sestupná hrana hodinového signálu) a poté pokračuje v cílovém stavu. Vše, co následovalo v původním stavu za příkazem větvení, je ignorováno. Příklad: Příkaz ->STAV1 způsobí s náběžnou hranou hodinového signálu přechod automatu do stavu STAV1. e) Přiřazení Množina signálů následovaná znakem (=) tvoří přiřazení. Přiřazení lze provést jednotlivě pro každý signál zvlášť nebo jako jedno slovo pro celou množinu signálů. V následujícím příkladě jsou všechny řádky ekvivalentní. Příklad: LOAD[4..0] = 01101b binární LOAD[4..0] = 1101b binární bez úvodní nuly LOAD[4..0] = 15o Osmičková LOAD[4..0] = 13 Dekadická LOAD[4..0] = 0Dh Hexadecimální LOAD4=0 LOAD3=1 LOAD2=1 LOAD1=0 LOAD0=1 R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 16 z 25
17 f) Podmínky Booleovský výraz končící otazníkem tvoří podmínku. Je-li podmínka vyhodnocená jako nepravda, příkaz následující po podmínce je ignorován. Příklad: MARK # TEST? ->WAIT1 Přechod do stavu WAIT1 nastane pouze tehdy, jsou-li signály MARK nebo TEST aktivní. Ke skutečnému přechodu dojde ale až na začátku následujícího hodinového cyklu. Jsou-li naopak oba signály MARK i TEST neaktivní, automat pokračuje dalším příkazem procedury. g) Vnořené příkazy Ohraničením posloupnosti příkazů mezi závorky, lze vytvořit blok, který se pak chová jako jeden příkaz. Příklad I: R1? (A1=1 ->STAV1) Je-li R1 aktivní nastanou dvě události: 1.) A1 se aktivuje a 2.) automat přejde do stavu STAV1. Vnoření dvou podmínek ukazuje následující příklad. Příklad II:... REQ? (A=1 BTT[3..0]==2? (PREP[1..0]=3 ->STAV1) BCT=1) Shrnutí Stavový automat neustále přechází z jednoho stavu do druhého rychlostí jednoho přechodu za jeden hodinový cyklus. Na začátku každého hodinového cyklu jsou všechny signály předběžně nastaveny do nuly. Poté se v jednom hodinovém cyklu současně provedou všechny příkazy stavu, ve kterém se automat právě nachází, až do místa, kde je větvící příkaz (->). Větvící příkaz zajistí přechod do dalšího stavu Příklad: Přidělovač sběrnice RESET R1 R2 R3 CLOCK A1 A2 A3 Obr Mějme jednoduchý obvod (obr ), který má tři vstupní signály R1, R2, R3 a tři výstupní signály A1, A2, A3. Vstupní signály jsou žádosti třech různých zařízení o přidělení sběrnice a výstupy jsou potvrzovací signály o jejím přidělení jednotlivým zařízením. Hodinový signál CLOCK obvod časuje a signál RESET jej uvede do počátečního stavu. R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 17 z 25
18 Stavový diagram přidělovače sběrnice je na obrázku V této verzi mají signály pevně přidělenou prioritu. Prioritu nejvyšší má signál R1, nejnižší potom signál R3. Obr Obr Následuje kód pro programovací jazyk PLD. PAL16R6 in:(r[1..3], RESET), out:(a[1..3], Q[1..0]), clock:clock Active-high: CLOCK Conditioning: CLOCK // A[1..3], Q[1..0] Procedure: Q[1..0] { WAIT. R1? ->ACK1 Cekej na zadost 1, 2, nebo 3 R2? ->ACK2 ve stejnem poradi priorit R3? ->ACK3 ->WAIT ACK1. A1 = 1 Prirazuj sbernici zarizeni 1 R1? ->ACK1 dokud si o ni zada signalem R1 ->WAIT ACK2. A2 = 2 Prirazuj sbernici zarizeni 2 R2? ->ACK2 dokud si o ni zada signalem R2 ->WAIT ACK3. A3 = 3 Prirazuj sbernici zarizeni 3 R3? ->PRIRAD3 dokud si o ni zada signalem R3 ->WAIT } Otázka: Jak by se dal realizovat přidělovač sběrnice se stejnou prioritou pro všechny signály? Pomůcka: Použijte více čekacích stavů. R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 18 z 25
19 3.7.5 Příklad: Synchronní Moorův automat R R S x T B A Y 0 S R S S T 1 T R T T T 0 Automat můžeme realizovat známou metodou, najít rovnice pro synchronní klopné obvody typu D a ty vyjádřit jazykem překladače ORCAD. Kromě toho lze popsat přechodovou tabulku jazykem automatů a nechat nalezení rovnic na překladači. Popis tabulky se uvádí v bloku Procedure, který má dva parametry: reset_vstup, seznam_stavových_proměnných Doporučuje se dát překladači k dispozici vyšší počet proměnných stavu, aby se zjednodušily vztahy, je-li tabulka hodně složitá a nevejde-li se do GALu. GAL16V8 in:(a,b,r), io:(q[0..1],y), enable: EN, clock: CL Low: R Registers: CL // Q[0..1] Conditioning: EN?? Q[0..1] Procedure: R, Q[0..1] R je reset, Q0 a Q1 stavové proměnné { States: StavR=0, StavS=1, StavT=2 Přiřazení kódů stavům Tento řádek lze vynechat a nechat kódování na překladači, což je doporučeno,neboť se zjednoduší rovnice. StavR.A & B'? -> StavS ve stavu R, při A=1 B=0 přejdi do stavu S A' & B? -> StavT ve stavu R, při A=0 B=1 přejdi do stavu T -> StavR ve stavu R při ostatních neuvedených kombinacích A B přejdeme do stavu R. Pozor, příkaz dodefinovává i neurčený stav na R, což znamená složitější výsledné rovnice. Pokud chceme neurčený stav zachovat, použijeme raději A' & B'? -> StavR StavS.Y=1 ve stavu S generuj výstup Y A' & B'? -> StavR ve stavu S při A=0 B=0 přejdi do stavu R A' & B? -> StavT ve stavu T při A=0 B=1 přejdi do stavu T -> StavS ve stavu S při neuvedených kombinacích přejdi do stavu S StavT.A' & B'? -> StavR ve stavu T při A=0 B=0 přejdi do stavu R -> StavT zůstaň ve stavu T při neuvedených kombinacích vstupů } V praxi se nemusí automatický překlad podařit. Může vést na příliš složité rovnice, které se nedají realizovat, jelikož mají více termů, než struktura zvoleného obvodu dovoluje. V tom případě nezbývá než se pokusit o manuální zjednodušení. Například části automaticky nalezených rovnic, jejichž tvar nalezneme ve výpisu (*.lst), lze vyvést na pomocné výstupy a použít je ve výrazech. Za popisem následují povely pro VECTORS, které dovolují testovat chování automatu. Kvůli tisku byly zformátované do dvou sloupců, normálně jsou pod sebou. Všimněte si, že se automat testuje sekvencí dvou úplných hodinových pulsů. Jeden puls, příkaz Test CL = 0,1, rozhodně nestačí na vyzkoušení stability stavu! R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 19 z 25
20 Vectors: { Display EN,CL,R,A,B, " -> ",Q0,Q1,Y Clear EN Test CL,R,A,B Set EN Set R Test CL = 0,1 Clear R Set A,B = 00 Test CL = 2(0,1) Set A,B = 10 Test CL = 2(0,1) Set A,B = 11 Test CL = 2(0,1) Set A,B = 01 Test CL = 2(0,1) Set A,B = 00 Test CL = 2(0,1) Set A,B = 01 Test CL = 2(0,1) Set A,B = 11 Test CL = 2(0,1) Set R Test CL = 0,1 End } a) Výstup programu vectors OrCAD TEST VECTOR GENERATOR V1.20E 6/6/90 { Display EN,CL,R,A,B, " -> ",Q0,Q1,Y Clear EN Test CL,R,A,B > Z Z U > Z Z U > Z Z U > Z Z U > Z Z > Z Z > Z Z > Z Z > Z Z > Z Z > Z Z > Z Z > Z Z > Z Z > Z Z > Z Z 0 Set EN Set R Test CL = 0, > > Clear R Set A,B = 00 Test CL = 2(0,1) > > > > Set A,B = 10 Test CL = 2(0,1) > > > > Set A,B = 11 Test CL = 2(0,1) > > > > Set A,B = 01 Test CL = 2(0,1) > > > > Set A,B = 00 Test CL = 2(0,1) > > > > Set A,B = 01 Test CL = 2(0,1) > > > > Set A,B = 11 Test CL = 2(0,1) > > > > Set R Test CL = 0, > > End R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 20 z 25
21 3.7.6 Příklad: Synchronní Mealyho automat B Y B Z B A A A R R S x T S R S S T T R T T T GAL16V8 in:(a,b,r), io:(q[0..1], Y, Z), enable: EN, clock: CL Low: R Registers: CL // Q[0..1] Conditioning: EN?? Q[0..1] Procedure: R, Q[0..1] { StavR.A & B'? -> StavS A' & B? -> StavT -> StavR Pozor, tento zápis dodefinuje i neurčitý stav X na R Chceme-li zjednodušit výsledné rovnice, raději všechny přechody vyjmenujeme, tj. A' & B'? -> StavR StavS. A & B? (Y=1 -> StavS) Generujeme výstup Y při vstupech A a B v 1 A & B'? (Z=1 -> StavS) A' & B'? -> StavR A' & B? -> StavT StavT.A' & B'? -> StavR -> StavT } R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 21 z 25
22 3.7.7 Příklad: Asynchronní Moorův automat GAL16V8 in:(a,b,r), io:(q[0..1]) S0 = A' # Q1 pomocné proměnné R0 = A S1 = B' # Q0 R1 = A + B Q0 = S0' # (Q0 & R0 & R) S0' # Q0 & R0 & R - Pozor, není precedence # & Q1 = S1' # (Q1 & R1 & R) Vectors: { Display A,B, " -> ",Q0, " / ", Q1 Set R=0 Test A,B Set R=1 Test A,B = 00,10,00,10,11,01,00,01,00,01,11,10,00 End } Set R=0 Test A,B 0 0 -> 0 / > 0 / > 1 / > 1 / 0 Set R=1 Test A,B = 00,10,00,10,11,01,00,01,00,01,11,10, > 0 / > 1 / > 0 / > 1 / > 1 / > 0 / > 0 / > 0 / > 0 / > 0 / > 0 / > 0 / > 0 / 0 R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 22 z 25
23 4 Další syntaktické definice jazyka PLD 4.1 Literály Literáry reprezentují numerická nebo znaková data. V PLD jazyce jsou numerické literáry celá čísla (integers). Standardně jsou čísla v desítkové bázi, ale lze použít i bázi binární, osmičkovou nebo hexadecimální. Příklad: 10 číslo 10 v desítkové soustavě 10b binární číslo (2 v desítkové soustavě) 10o osmičkové číslo (8 v desítkové soustavě) 10h hexadecimální číslo (16 v desítkové soustavě) 3E8h hexadecimální číslo (1000 v desítkové soustavě) Znakové literáry jsou řetězce ohraničené uvozovkami ( ). Uvozovky nejsou součástí řetězce. Příklad: Literál reprezentující řetězec Řetězec Stop Stop 1, , Identifikátory Identifikátor Jak ho napsat Příklad Indexovací proměnné malá písmena i..n i, j, k, l, m, n Signály Kombinace písmen a číslic začínající písmenem, dle A, B, STEP konvence se signály označují velkými písmeny Jméno funkce Identifikátor bezprostředně následován otevřenou icot(p, q, a) závorkou Jméno stavu Identifikátor nebo číslo, vždy následuje tečka STAV1., Kondicionály Chceme-li určitou skupinu příkazů opakovat několikrát, lze použít následujících konstrukcí. 4: { prikazy } Zopakuje čtyřikrát příkazy uvedené ve složných závorkách. 0<k<4: { prikazy } Provede příkazy ve složených závorkách jen tehdy, pokud je podmínka před dvojtečkou splněna. n = 1, 5, 7: { prikazy } Příkazy ve složených závorkách se postupně provedou pro uvedené hodnoty proměnné n. 4.4 Rozsah (..) a posloupnost (...) Dvě tečky (..) nebo tilda (~) určují rozsah. Krok mezi dvěma po sobě jdoucími čísly je vždy 1. Příklad: 1..3 nebo 1~3 1,2, nebo 7~1 7,6,5,4,3,2,1 R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 23 z 25
24 Tři tečky (...) určují posloupnost. Krok mezi čísly je určen rozdílem prvních dvou čísel. Příklad: 1,3,...,15 1,3,5,7,9,11,13,15 16,14,...,2 16,14,12,10,8,6,4,2 Uvedené dva způsoby lze i kombinovat. Příklad: 1,3..5,(6,8,...,16),7 1,3,4,5,6,8,10,12,14,16,7 4.5 Indexování Celé skupiny signálů lze reprezentovat jedním identifikátorem následovaným výrazem v hranatých závorkách. Příklad I: Mějme 32-bitovou sběrnici, kde signál reprezentující nejvyšší bit má jméno ADR31 a signál reprezentující nejnižší bit má jméno ADR0. Celou sběrnici lze reprezentovat jediným výrazem ADR[31..0] Příklad II: V následujícím příkladě předpokládáme, že k = 7. CTL[15,13,...,5] CTL15, CTL13, CTL11, CTL9, CTL7, CTL5 CTL[0,3,...,15] CTL[k..k-3] CTL[2] CTL0, CTL3, CTL6, CTL9, CTL12, CTL15 CTL7, CTL6, CTL5, CTL4 CTL2 4.6 Precedence a asociativita Logické a aritmetické operátory se stejnou precedencí se vyhodnocují zleva. Příklad I: Výraz Vyznačení závorek Výsledek ((6-3)-2)-1 0 6/3/2/1 ((6/3)/2)/1 1 0#1#0#0 ((0#1)#0)#0 1 0&1&0&0 ((0&1)&0)&0 0 0#1#0&0 ((0#1)#0)&0) 0 Operátory logické AND(&) a logické OR(#) jsou ve stejné třídě precedence. Operátory porovnávání nejsou asociativní. Výraz x<y<z je pravdivý, jen pokud platí zároveň x<y a y<z. Nelze ho tedy chápat jako(x<y)<z, ani x<(y<z). Toto pravidlo platí pro jakoukoli kombinaci porovnávacích operátorů. Příklad II: Výraz Pravdivostní hodnota 0 < 5 <= == 1 < >= 5 > < 5 <= 10 <= R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 24 z 25
25 4.7 Vestavěné funkce Jazyk PLD obsahuje některé numerické funkce určené pro použití v indexovaných rovnicích a mapách. Argumenty funkcí mohou být aritmetické výrazy obsahující proměnné, celá čísla (integer) nebo jiné funkce. Vestavěné funkce vrací vždy celé číslo (integer). Podrobný popis všech funkcí lze nalézt ve [1] na str Funkce Popis Příklad abs(a) vrací absolutní hodnotu a abs(-15) 15 bit(n, a) Převede a do binárního tvaru a vrátí n-tý bit. bit(1, 1101b) 0 bitcount(n) Spočte počet jednotkových bitů v binárním vyjádření čísla n bitcount(0011b) 2 Gray(n) Vrátí n-tou hodnotu z posloupnosti Grayova kódu Gray(3) 2 icos(p, q, a) vrátí zaokrouhlenou celočíselnou hodnotu vzorce a*cos(2*pi*p/q) icot(p, q, a) vrátí zaokrouhlenou celočíselnou hodnotu vzorce a*cotg(2*pi*p/q) iexp(p, q, a) vrátí zaokrouhlenou celočíselnou hodnotu vzorce a*exp(p/q) iln(p, q, a) vrátí zaokrouhlenou celočíselnou hodnotu vzorce a*ln(p/q) ilog2(p, q, a) vrátí pozici nejvyššího jednotkového bitu v binární reprezentaci čísla n ilog2(27) = ilog2(11011b) 4 Iscale(p, q, a) vrátí zaokrouhlenou celočíselnou hodnotu vzorce a*(p/q) isin(p, q, a) vrátí zaokrouhlenou celočíselnou hodnotu vzorce a*sin(2*pi*p/q) itan(p, q, a) vrátí zaokrouhlenou celočíselnou hodnotu vzorce a*tan(2*pi*p/q) max(a 1,..,a n ) vrátí maximum ze zadaných čísel a 1,..,a n max(-5, 0, -3, 2) 2 min(a 1,..,a n ) vrátí minimum ze zadaných čísel a 1,..,a n min(-5, 0, -3, 2) -5 ones(n) vrátí řetězec obsahující n jednotkových bitů ones(3) 7 = 111b Parity(n) Sevenseg(n) sqrt(n) vrátí paritu čísla n. (0 při sudém počtu jedniček v n, 1 při lichém počtu jedniček v n) vrací kombinace bitů pro zobrazení čísla n na sedmi segmentovém displeji vrací odmocninu z čísla n, více o zaokrouhlování výsledku na str. 259 ve [1] parity(1101b) 1 seznam zobrazitelných znaků ve [1] na str. 259 Zeros(n) Vrací řetězec obsahující n nulových bitů ones(3) 000b 5 Literatura Programmable Logic Design Tools, dokumentace k ORCADu, Clarence Lehman, 1990 R. Šusta a J. Šivic, Programování obvodů PLD v ORCADu, učební text Katedry řídicí techniky ČVUT-FEL Praha str. 25 z 25
Řadič automatického kotle
Řadič automatického kotle Domovská URL dokumentu: http://dce.felk.cvut.cz/lsy/cviceni/pdf/radickotle.pdf Zdrojové kódy LOGO! programu http://dce.felk.cvut.cz/lsy/cviceni/zip/radickotle.zip Obsah ŘÍZENÍ
1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
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
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í
Programovací jazyk Pascal
Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce
Č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
5. Sekvenční logické obvody
5. Sekvenční logické obvody 3. Sekvenční logické obvody - úvod Sledujme chování jednoduchého logického obvodu se zpětnou vazbou 3. Sekvenční logické obvody - příklad asynchronního sekvenčního obvodu 3.
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
Čí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ží
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
Algoritmizace a programování
Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech
3. Sekvenční logické obvody
3. Sekvenční logické obvody 3. Sekvenční logické obvody - úvod Sledujme chování jednoduchého logického obvodu se zpětnou vazbou 3. Sekvenční logické obvody příklad sekv.o. Příklad sledování polohy vozíku
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é
1 z 16 11.5.2009 11:33 Test: "CIT_04_SLO_30z50" Otázka č. 1 U Mooreova automatu závisí okamžitý výstup Odpověď A: na okamžitém stavu pamětí Odpověď B: na minulém stavu pamětí Odpověď C: na okamžitém stavu
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:
Paměť počítače. alg2 1
Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových
Návrh synchronního čítače
Návrh synchronního čítače Zadání: Navrhněte synchronní čítač mod 7, který čítá vstupní impulsy na vstupu x. Při návrhu použijte klopné obvody typu -K a maximálně třívstupová hradla typu NAND. Řešení: Čítač
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
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í
LEKCE 6. Operátory. V této lekci najdete:
LEKCE 6 Operátory V této lekci najdete: Aritmetické operátory...94 Porovnávací operátory...96 Operátor řetězení...97 Bitové logické operátory...97 Další operátory...101 92 ČÁST I: Programování v jazyce
Návrh čítače jako automatu
ávrh čítače jako automatu Domovská URL dokumentu: http://dce.felk.cvut.cz/lsy/cviceni/pdf/citacavrh.pdf Obsah ÁVRH ČÍTAČE JAO AUTOMATU.... SYCHROÍ A ASYCHROÍ AUTOMAT... 2.a. Výstupy automatu mohou být
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í
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
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
1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5
Obsah Obsah 1 Programovací jazyk Pascal 1 1.1 Struktura programu v Pascalu.................... 1 2 Proměnné 2 2.1 Vstup a výstup............................ 3 3 Operátory a některé matematické funkce 5
Y36SAP Y36SAP-2. Logické obvody kombinační Formy popisu Příklad návrhu Sčítačka Kubátová Y36SAP-Logické obvody 1.
Y36SAP 26.2.27 Y36SAP-2 Logické obvody kombinační Formy popisu Příklad návrhu Sčítačka 27-Kubátová Y36SAP-Logické obvody Logický obvod Vstupy a výstupy nabývají pouze hodnot nebo Kombinační obvod popsán
Projekt: Přístupový terminál
Projekt: Přístupový terminál 1. Zadání 1. Seznamte se s přípravkem FITKit a způsobem připojení jeho periférií, zejména klávesnice a LCD displeje. 2. Prostudujte si zdrojové kódy projektu v jazyce VHDL.
Y36SAP 2007 Y36SAP-4. Logické obvody kombinační a sekvenční používané v číslicovém počítači Sčítačka, půlsčítačka, registr, čítač
Y36SAP 27 Y36SAP-4 Logické obvody kombinační a sekvenční používané v číslicovém počítači Sčítačka, půlsčítačka, registr, čítač 27-Kubátová Y36SAP-Logické obvody typické Často používané funkce Majorita:
Sekvenční logické obvody
Sekvenční logické obvody Sekvenční logické obvody - úvod Sledujme chování jednoduchého logického obvodu se zpětnou vazbou Sekvenční obvody - paměťové členy, klopné obvody flip-flop Asynchronní klopné obvody
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
KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM
KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM CÍLE KAPITOLY Využívat pokročilé možnosti formátování, jako je podmíněné formátování, používat vlastní formát čísel a umět pracovat s listy. Používat
Úvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty
Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)
Booleovská algebra. Booleovské binární a unární funkce. Základní zákony.
Booleovská algebra. Booleovské binární a unární funkce. Základní zákony. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz
ČÍSELNÉ SOUSTAVY PŘEVODY
ČÍSELNÉ SOUSTAVY V každodenním životě je soustava desítková (decimální, dekadická) o základu Z=10. Tato soustava používá číslice 0, 1, 2, 3, 4, 5, 6, 7, 8 a 9, není však vhodná pro počítače nebo číslicové
1. 5. Minimalizace logické funkce a implementace do cílového programovatelného obvodu CPLD
.. Minimalizace logické funkce a implementace do cílového programovatelného obvodu Zadání. Navrhněte obvod realizující neminimalizovanou funkci (úplný term) pomocí hradel AND, OR a invertorů. Zaznamenejte
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é
Stručný návod k programu Octave
Stručný návod k programu Octave Octave je interaktivní program vhodný pro technické výpočty. Je nápadně podobný programu MATLAB, na rozdíl od něho je zcela zadarmo. Jeho domovská vebová stránka je http://www.octave.org/,
Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false
Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární
Algoritmizace a programování
Algoritmizace a programování Typy Základní (primitivní) datové typy Deklarace Verze pro akademický rok 2012/2013 1 Typy v jazyce Java Základní datové typy (primitivní datové typy) Celočíselné byte, short,
Struktura a architektura počítačů (BI-SAP) 3
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 3 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii
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
Programy na PODMÍNĚNÝ příkaz IF a CASE
Vstupy a výstupy budou vždy upraveny tak, aby bylo zřejmé, co zadáváme a co se zobrazuje. Není-li určeno, zadáváme přirozená čísla. Je-li to možné, používej generátor náhodných čísel vysvětli, co a jak
Assembler - 5.část. poslední změna této stránky: Zpět
1 z 5 19.2.2007 7:52 Assembler - 5.část poslední změna této stránky: 9.2.2007 1. Pseudoinstrukce a direktivy Zpět Kromě instrukcí můžete v Assembleru psát také další konstrukce, které se obšem nepřekládají
2.9 Čítače. 2.9.1 Úkol měření:
2.9 Čítače 2.9.1 Úkol měření: 1. Zapište si použité přístroje 2. Ověřte časový diagram asynchronního binárního čítače 7493 3. Ověřte zkrácení početního cyklu čítače 7493 4. Zapojte binární čítač ve funkci
LOGICKÉ ŘÍZENÍ. Matematický základ logického řízení
Měřicí a řídicí technika bakalářské studium - přednášky LS 28/9 LOGICKÉ ŘÍZENÍ matematický základ logického řízení kombinační logické řízení sekvenční logické řízení programovatelné logické automaty Matematický
9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>
9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include int main(void) { int dcislo, kolikbcislic = 0, mezivysledek = 0, i; int vysledek[1000]; printf("zadejte
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
Vzorce. StatSoft. Vzorce. Kde všude se dá zadat vzorec
StatSoft Vzorce Jistě se Vám již stalo, že data, která máte přímo k dispozici, sama o sobě nestačí potřebujete je nějak upravit, vypočítat z nich nějaké další proměnné, provést nějaké transformace, Jinak
5 Přehled operátorů, příkazy, přetypování
5 Přehled operátorů, příkazy, přetypování Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně budou uvedeny detaily týkající se operátorů. Doba nutná k nastudování
Formátové specifikace formátovací řetězce
27.2.2007 Formátové specifikace formátovací řetězce - je to posloupnost podle které překladač pozná jaký formát má výstup mít - posloupnosti začínají znakem % a určující formát vstupu/výstupu - pokud chcete
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Lukáš Havrlant Univerzita Palackého 10. ledna 2014 Primární zdroj Jiří Adámek: Foundations of Coding. Strany 137 160. Na webu ke stažení, heslo:
LOGICKÉ OBVODY 2 kombinační obvody, minimalizace
LOGICKÉ OBVODY 2 kombinační obvody, minimalizace logické obvody kombinační logické funkce a jejich reprezentace formy popisu tabulka, n-rozměrné krychle algebraický zápis mapy 9..28 Logické obvody - 2
Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory
Jazyk C Program v jazyku C má následující strukturu: Direktivy procesoru Globální definice (platné a známé v celém programu) Funkce Hlavička funkce Tělo funkce je uzavřeno mezi složené závorky { Lokální
Binární logika Osnova kurzu
Osnova kurzu 1) Základní pojmy; algoritmizace úlohy 2) Teorie logického řízení 3) Fuzzy logika 4) Algebra blokových schémat 5) Vlastnosti členů regulačních obvodů 6) Vlastnosti regulátorů 7) Stabilita
Číslicové obvody základní pojmy
Číslicové obvody základní pojmy V číslicové technice se pracuje s fyzikálními veličinami, které lze popsat při určité míře zjednodušení dvěma stavy. Logické stavy binární proměnné nabývají dvou stavů:
2.8 Kodéry a Rekodéry
2.8 Kodéry a Rekodéry 2.8.1 Úkol měření 1. Navrhněte a realizujte rekodér z kódu BCD na kód 2421 a ověřte jeho funkčnost 2. Navrhněte a realizujte rekodér z kódu 2421 na kód BCD a ověřte jeho funkčnost
Úvod do programování. Lekce 1
Úvod do programování Lekce 1 Základní pojmy vytvoření spustitelného kódu editor - psaní zdrojových souborů preprocesor - zpracování zdrojových souborů (vypuštění komentářů atd.) kompilátor (compiler) -
Návrh asynchronního automatu
Návrh asynchronního automatu Domovská URL dokumentu: http://dce.felk.cvut.cz/lsy/cviceni/pdf/asyn_automat.pdf Obsah DEFINICE AUTOMATU... 2 KROK 1: ZADÁNÍ... 3 KROK 2: ANALÝZA ZADÁNÍ... 3 KROK 3: VYJÁDŘENÍ
Sada 1 - Základy programování
S třední škola stavební Jihlava Sada 1 - Základy programování 04. Datové typy, operace, logické operátory Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284
Lekce 01 Úvod do algoritmizace
Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů Lekce 01 Úvod do algoritmizace Tento projekt CZ.1.07/1.3.12/04.0006 je spolufinancován Evropským sociálním
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Programová realizace DKA typedef enum {q0, q1,... qn,
Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15
Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové
Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání
Čtvrtek 3. listopadu Makra v Excelu Obecná definice makra: Podle definice je makro strukturovanou definicí jedné nebo několika akcí, které chceme, aby MS Excel vykonal jako odezvu na nějakou námi definovanou
MQL4 COURSE. By Coders guru www.forex-tsd.com. -4 Operace & Výrazy
MQL4 COURSE By Coders guru www.forex-tsd.com -4 Operace & Výrazy Vítejte ve čtvrté lekci mého kurzu MQL4. Předchozí lekce Datové Typy prezentovaly mnoho nových konceptů ; Doufám, že jste všemu porozuměli,
Tabulkový procesor. Základní rysy
Tabulkový procesor Tabulkový procesor je počítačový program zpracovávající data uložená v buňkách tabulky. Program umožňuje použití vzorců pro práci s daty a zobrazuje výsledné hodnoty podle vstupních
Prezentace do předmětu Architektury a použití programovatelných obvodů 2
Prezentace do předmětu Architektury a použití programovatelných obvodů 2 Složité a méně běžné obvody PAL, sekvencery Obvody typu PAL jsou jedním z typů programovatelných logických obvodů (PLD). Jsou to
Konečný automat. Studium chování dynam. Systémů s diskrétním parametrem číslic. Počítae, nervové sys, jazyky...
Konečný automat. Syntéza kombinačních a sekvenčních logických obvodů. Sekvenční obvody asynchronní, synchronní a pulzní. Logické řízení technologických procesů, zápis algoritmů a formulace cílů řízení.
... 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
Komunikace modulu s procesorem SPI protokol
Komunikace modulu s procesorem SPI protokol Propojení dvouřádkového LCD zobrazovače se sběrnicí SPI k procesotru (dále již jen MCU microcontroller unit) a rozložení pinů na HSES LCD modulu. Komunikace
VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
ALGORITMIZACE A PROGRAMOVÁNÍ
Metodický list č. 1 Algoritmus a jeho implementace počítačovým programem Základním cílem tohoto tematického celku je vysvětlení pojmů algoritmus a programová implementace algoritmu. Dále je cílem seznámení
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í
Projekt Pospolu. Sekvenční logické obvody Klopné obvody. Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jiří Ulrych.
Projekt Pospolu Sekvenční logické obvody Klopné obvody Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jiří Ulrych. Rozlišujeme základní druhy klopných sekvenčních obvodů: Klopný obvod
Hardwarová realizace konečných automatů
BI-AAG - Automaty a gramatiky Katedra teoretické informatiky ČVUT FIT 11.1.21 Co potřebujeme Úvod Potřebujeme: zakódovat vstupní abecedu, zakódovat stavy automatu, pamatovat si současný stav, realizovat
Příklad elektrický obvod se stejnosměrným zdrojem napětí
Příklad elektrický obvod se stejnosměrným zdrojem napětí Určete proudy 18, 23, 4, 5, 67 v obvodu na obr., je-li dáno: 1 = 1 Ω, 2 = 2 Ω, 3 = 3 Ω, 4 = 5 Ω, 5 = 3 Ω, 6 = 2 Ω, 7 = 4 Ω, 8 = 4,5 Ω, U = 6 V.
BASPELIN CPM. Popis komunikačního protokolu verze EQ22 CPM EQ22 KOMPR
BASPELIN CPM Popis komunikačního protokolu verze EQ22 CPM EQ22 KOMPR říjen 2007 EQ22 CPM Obsah 1. Přehled příkazů 2 2. Popis příkazů 3 3. Časování přenosu 8 4. Připojení regulátorů na vedení 10 1. Přehled
Fz =a z + a z +...+a z +a z =
Polyadické číselné soustavy - převody M-místná skupina prvků se z-stavovou abecedou umožňuje zobrazit z m čísel. Zjistíme, že stačí vhodně zvolit číslo m, abychom mohli zobrazit libovolné číslo menší než
Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické
Jak v Javě primitivní datové typy a jejich reprezentace BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické Obsah Celočíselný datový typ Reálný datový typ Logický datový typ, typ Boolean
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
Čísla v plovoucířádovéčárce. INP 2008 FIT VUT v Brně
Čísla v plovoucířádovéčárce INP 2008 FIT VUT v Brně Čísla v pevné vs plovoucí řádové čárce Pevnářádováčárka FX bez desetinné části (8 bitů) Přímý kód: 0 až 255 Doplňkový kód: -128 až 127 aj. s desetinnou
Excel Matematické operátory. Excel předdefinované funkce
Excel Matematické operátory a) Sčítání + příklad =A1+A2 sečte obsah buněk A1 a A2 b) Odčítání - příklad =A1-A2 odečte hodnotu buňky A2 od hodnoty buňky A1 c) Násobení * příklad =A1*A2 vynásobí obsah buněk
CZ.1.07/1.5.00/
Celá čísla Celočíselný typ má označení INTEGER. Kromě tohoto základního jsou k dispozici ještě další celočíselné typy, které uvádí následující tabulka. Každý typ umožňuje definovat určitý rozsah celých
X37SGS Signály a systémy
X7SGS Signály a systémy Matlab minihelp (poslední změna: 0. září 2008) 1 Základní maticové operace Vytvoření matice (vektoru) a výběr konkrétního prvku matice vytvoření matice (vektoru) oddělovač sloupců
Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo
Operátory, výrazy Tomáš Pitner, upravil Marek Šabo Operátor "Znaménko operace", pokyn pro vykonání operace při vyhodnocení výrazu. V Javě mají operátory napevno daný význam, nelze je přetěžovat jako v
Algoritmy I. Číselné soustavy přečíst!!! ALGI 2018/19
Algoritmy I Číselné soustavy přečíst!!! Číselné soustavy Každé číslo lze zapsat v poziční číselné soustavě ve tvaru: a n *z n +a n-1 *z n-1 +. +a 1 *z 1 +a 0 *z 0 +a -1 *z n-1 +a -2 *z -2 +.. V dekadické
Základy algoritmizace a programování
Základy algoritmizace a programování Přednáška 1 Olga Majlingová Katedra matematiky, ČVUT v Praze 21. září 2009 Obsah Úvodní informace 1 Úvodní informace 2 3 4 Organizace předmětu Přednášky 1. 5. Základní
VY_32_INOVACE_OV_2.ME_CISLICOVA_TECHNIKA_19_SPOJENI KOMBINACNICH_A_SEKVENCNICH_OBVODU Střední odborná škola a Střední odborné učiliště, Dubno
Číslo projektu Číslo materiálu Název školy Autor Tematická oblast Ročník CZ.1.07/1.5.00/34.0581 VY_32_INOVACE_OV_2.ME_CISLICOVA_TECHNIKA_19_SPOJENI KOMBINACNICH_A_SEKVENCNICH_OBVODU Střední odborná škola
Číselné soustavy a převody mezi nimi
Číselné soustavy a převody mezi nimi Základní požadavek na počítač je schopnost zobrazovat a pamatovat si čísla a provádět operace s těmito čísly. Čísla mohou být zobrazena v různých číselných soustavách.
Programování. řídících systémů v reálném čase. Střední odborná škola a Střední odborné učiliště - - Centrum Odborné přípravy Sezimovo Ústí
Střední odborná škola a Střední odborné učiliště - - Centrum Odborné přípravy Sezimovo Ústí Studijní text pro 3. a 4. ročníky technických oborů Programování řídících systémů v reálném čase Verze: 1.11
for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }
5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu
DIGITÁLN LNÍ OBVODY A MIKROPROCESORY 1. ZÁKLADNÍ POJMY DIGITÁLNÍ TECHNIKY
DIGITÁLN LNÍ OBVODY A MIKROPROCESORY BDOM Prof. Ing. Radimír Vrba, CSc. Doc. Ing. Pavel Legát, CSc. Ing. Radek Kuchta Ing. Břetislav Mikel Ústav mikroelektroniky FEKT VUT @feec.vutbr.cz
EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI
EVROPSKÝ SOCIÁLNÍ FOND Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Úvod do PHP PHP Personal Home Page Hypertext Preprocessor jazyk na tvorbu dokumentů přípona: *.php skript je součást HTML stránky!
Struktura a architektura počítačů (BI-SAP) 5
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 5 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii
Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.
Základní principy konstrukce systémové sběrnice - shrnutí Shrnout základní principy konstrukce a fungování systémových sběrnic. 1 Co je to systémová sběrnice? Systémová sběrnice je prostředek sloužící
Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných
Tematický celek 03 3.1 Proměnné Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace. 3.1.1 Deklarace proměnných Dim jméno_proměnné [As typ] - deklarace uvnitř procedury platí pouze pro
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í
Logické obvody 10. Neúplné čítače Asynchronní čítače Hazardy v kombinačních obvodech Metastabilita Logické obvody - 10 hazardy 1
Logické obvody 10 Neúplné čítače Asynchronní čítače Hazardy v kombinačních obvodech Metastabilita 6.12.2007 Logické obvody - 10 hazardy 1 Neúplné čítače Návrh čítače M5 na tabuli v kódu binárním a Grayově