3 Signali in prireditveni stavki

Podobni dokumenti
DIGITALNE STRUKTURE Zapiski predavanj Branko Šter, Ljubo Pipan 2 Razdeljevalniki Razdeljevalnik (demultipleksor) opravlja funkcijo, ki je obratna funk

Delavnica Načrtovanje digitalnih vezij

DES

5 Programirljiva vezja 5.1 Kompleksna programirljiva vezja - CPLD Sodobna programirljiva vezja delimo v dve veliki skupini: CPLD in FPGA. Vezja CPLD (

Univerza v Ljubljani FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Tržaška c. 25, 1000 Ljubljana Realizacija n-bitnega polnega seštevalnika z uporabo kvan

Delavnica Načrtovanje digitalnih vezij

Microsoft Word - avd_vaje_ars1_1.doc

CelotniPraktikum_2011_verZaTisk.pdf

DES11_realno

Slide 1

Prekinitveni način delovanja PLK Glavni program (OB1; MAIN) se izvaja ciklično Prekinitev začasno ustavi izvajanje glavnega programa in zažene izvajan

Delavnica Načrtovanje digitalnih vezij

MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje prir

Datum in kraj

Microsoft PowerPoint - NDES_8_USB_LIN.ppt

ARS1

Diapozitiv 1

DES

DES11_vmesniki

Podatkovni model ER

Diapozitiv 1

Microsoft Word - M docx

Diapozitiv 1

Microsoft Word - UNI_Mlakar_Ziga_1987_E doc

Microsoft Word - CNC obdelava kazalo vsebine.doc

seminarska_naloga_za_ev

Microsoft PowerPoint - Java_spremenljivke

Microsoft Word - ELEKTROTEHNIKA2_ junij 2013_pola1 in 2

PowerPoint Presentation

Diapozitiv 1

UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNITVO IN INFORMATIKO tqca - Seštevalnik Seminarska naloga pri predmetu Optične in nanotehnologije Blaž Lampre

Microsoft Word - UP_Lekcija04_2014.docx

Microsoft Word - M docx

Microsoft Word - NAVODILA ZA UPORABO.docx

Delavnica Načrtovanje digitalnih vezij

STAVKI _5_

Strojna oprema

RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni

Naloge 1. Dva električna grelnika z ohmskima upornostma 60 Ω in 30 Ω vežemo vzporedno in priključimo na idealni enosmerni tokovni vir s tokom 10 A. Tr

Optimizacija z roji delcev - Seminarska naloga pri predmetu Izbrana poglavja iz optimizacije

COBISS3/Medknjižnična izposoja

VPRAŠANJA ZA USTNI IZPIT PRI PREDMETU OSNOVE ELEKTROTEHNIKE II PREDAVATELJ PROF. DR. DEJAN KRIŽAJ Vprašanja so v osnovi sestavljena iz naslovov poglav

Analiza vpliva materiala, maziva in aktuatorja na dinamiko pnevmatičnega ventila

17. Karakteristična impedanca LC sita Eden osnovnih gradnikov visokofrekvenčnih vezij so frekvenčna sita: nizko-prepustna, visoko-prepustna, pasovno-p

Logični modul LOGO!

Učinkovita izvedba algoritma Goldberg-Tarjan Teja Peklaj 26. februar Definicije Definicija 1 Naj bo (G, u, s, t) omrežje, f : E(G) R, za katero v

C:/Users/Matevž Èrepnjak/Dropbox/FKKT/testi in izpiti/ /IZPITI/FKKT-februar-14.dvi

REALIZACIJA ELEKTRONSKIH SKLOPOV

Microsoft Word - Analiza rezultatov NPZ matematika 2018.docx

Microsoft PowerPoint _12_15-11_predavanje(1_00)-IR-pdf

Microsoft PowerPoint - IPPU-V2.ppt

Uvodno predavanje

Turingov stroj in programiranje Barbara Strniša Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolo

1 Diskretni naklju ni vektorji 1 1 Diskretni naklju ni vektorji 1. Dopolni tabelo tako, da bosta X in Y neodvisni. X Y x x x x x

Univerza v Ljubljani

Vaje: Matrike 1. Ugani rezultat, nato pa dokaži z indukcijo: (a) (b) [ ] n 1 1 ; n N 0 1 n ; n N Pokaži, da je množica x 0 y 0 x

rm.dvi

5 SIMPLICIALNI KOMPLEKSI Definicija 5.1 Vektorji r 0,..., r k v R n so afino neodvisni, če so vektorji r 1 r 0, r 2 r 0,..., r k r 0 linearno neodvisn

Microsoft PowerPoint - Sirikt-SK-FV.ppt

4.Racionalna števila Ulomek je zapis oblike. Sestavljen je iz števila a (a ), ki ga imenujemo števec, in iz števila b (b, b 0), ki ga imenujemo imenov

60-77.qxd

Vgrajeni sistemi Uvod & ponovitev C

Slide 1

Luka Brinovšek Detektor fazne napake optičnega enkoderja Diplomsko delo Maribor, avgust 2011

PRIPOROČILA ZA OBLIKOVANJE KATALOGOV ZNANJA ZA MODULE V PROGRAMIH VIŠJEGA STROKOVNEGA IZOBRAŽEVANJA

Šolski center celje

Microsoft Word - EV,N_Poglavje o modulacijah.doc

Microsoft Word - ELEKTROTEHNIKA2_11. junij 2104

GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega)

DN5(Kor).dvi

Univerza v Ljubljani

Uvod v programiranje mikrokrmilnikov, zbrano gradivo za predavanja

UM FKKT, Bolonjski visoko²olski program Kemijska tehnologija Vpisna ²tevilka Priimek, ime 3. test pri predmetu MATEMATIKA II Ra unski del

Microsoft Word - Varnostna navodila - ucilo2.doc

LABORATORIJSKE VAJE IZ FIZIKE

Installation manuals

Diapozitiv 1

1. Električne lastnosti varikap diode Vsaka polprevodniška dioda ima zaporno plast, debelina katere narašča z zaporno napetostjo. Dioda se v zaporni s

Izmenični signali – metode reševanja vezij

Izmenicni_signali_metode_resevanja(23)

Mladi za napredek Maribora srečanje DOLŽINA»SPIRALE«Matematika Raziskovalna naloga Februar 2015

(Microsoft Word - 3. Pogre\232ki in negotovost-c.doc)

6.1 Uvod 6 Igra Chomp Marko Repše, Chomp je nepristranska igra dveh igralcev s popolno informacijo na dvo (ali vec) dimenzionalnem prostoru

C:/Users/Matevž Èrepnjak/Dropbox/FKKT/TESTI-IZPITI-REZULTATI/ /Izpiti/FKKT-junij-17.dvi

Microsoft Word doc

1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatk

NAVODILA AVTORJEM PRISPEVKOV

Univerza v Mariboru Fakulteta za naravoslovje in matematiko Oddelek za matematiko in računalništvo Enopredmetna matematika IZPIT IZ VERJETNOSTI IN STA

VIN Lab 1

Microsoft Word - diploma-b.doc

Microsoft Word - M

Brownova kovariancna razdalja

(Microsoft PowerPoint - vorsic ET 9.2 OES matri\350ne metode 2011.ppt [Compatibility Mode])

Microsoft Word - vaje2_ora.doc

PowerPoint Presentation

EKVITABILNE PARTICIJE IN TOEPLITZOVE MATRIKE Aleksandar Jurišić Politehnika Nova Gorica in IMFM Vipavska 13, p.p. 301, Nova Gorica Slovenija Štefko Mi

Orodje za izvoz podatkov

Osnove verjetnosti in statistika

Transkripcija:

3 Signali in prireditveni stavki Najpreprostejši stavek za opis kombinacijskih funkcij je prireditveni stavek, kjer signalu z operatorjem <= priredimo konstantno vrednost ali izraz. Enobitne konstantne vrednosti morajo biti zapisane med enojnimi narekovaji, za vektorske konstante pa uporabljamo dvojne narekovaje. Npr. -bitni vektor a postavimo na vredost 5: a <= "000001"; $e želimo vse bite vektorja postaviti na enako vrednost, uporabimo poseben zapis agregat. Agregat je zelo uporaben takrat, kadar imamo velike vektorje, ki jih želimo postaviti npr. na 0: a <= (others => '0'); Tabela 4. Vektorski signali Deklaracija -bitnega vektorja: a: std_logic_vector (7 downto 0); Prirejanje vrednosti: - celotnemu vektorju: a <= "0001"; - postavitev na ni*: a <= (others => '0'); - posameznemu bitu: a(7) <= '0'; - podvektorju: a(3 downto 0) <= "01"; Z vektorskimi signali lahko v jeziku VHDL izvajamo aritmeti.ne in logi.ne operacije. Logi.ni operatorji se pri sintezi vezja preslikajo direktno v logi.na vrata logi.ne operacije se izvajajo nad posameznimi biti, tako da dobimo toliko dvovhodnih logi.nih vrat kolikor imamo bitov. Primer: signal a, b: std_logic_vector(3 downto 0); c <= ( a and b ) xor "01"; Izrazi predstavljajo kombinacijsko logiko, katere izhod je signal, ki mu priredimo vrednost. V izrazu s 4-bitnimi vektorji je vsak logi.ni operator ponovljen štirikrat vezje vsebuje 4 vrata and in 4 vrata xor. Posameznemu signalu lahko le enkrat priredimo vrednost. $e zapišemo ve. prireditvenih stavkov za isti signal, bi dobili v vezju kratek stik!

3.1 Pogojni prireditveni stavek Kadar želimo nekemu signalu prirediti ve. razli.nih vrednosti ali izrazov pod dolo.enimi pogoji, uporabimo pogojni prireditveni stavek. Pogoj zapišemo z uporabo relacijskih operatorjev (glej tabelo 6). Tabela 5. Pogojni prireditveni stavek signal <= izraz1 when pogoj1 else izraz; signal <= izraz1 when pogoj1 else izraz when pogoj else izraz3; A Izbiralnik V splošnem s pogojnim prireditvenim stavkom izbiramo med dvema ali ve. izrazi, ki predstavljajo kombinacijske funkcije. Pogojni prireditveni stavek v osnovni obliki izbira med dvema izrazoma, zato vezje vsebuje dvovhodni izbiralnik (multipleksor): izraz1 izraz signal pogoj Slika 9. Dvovhodni izbiralnik Primer: dvovhodni štiribitni izbiralnik je vezje, ki postavi na izhod vrednost enega izmed dveh 4-bitnih vektorskih signalov a ali b. a(0) signal a, b: std_logic_vector(3 downto 0); izhod(0) b(0) izhod <= a when izbira='0' else b; a(1) izhod(1) b(1) $e je signal izbira postavljen na logi.no a() ni.lo, se prenese na izhod vrednost signala izhod() a, sicer pa vrednost signala b. Štiribitni b() vektorski izbiralnik je sestavljen iz štirih a(3) izhod(3) enobitnih izbiralnikov s skupnim izbirnim b(3) vhodom. izbira Slika. Štiribitni izbiralnik

Primer: narediti želimo kombinacijsko funkcijo, ki signalu x prišteje absolutno vrednost signala y. To lahko storimo z dvodelno funkcijo, ki naredi vsoto (x+y) kadar je y pozitiven oz. razliko (x-y),.e je y negativen: signal x, y: std_logic_vector(3 downto 0); izhod <= x+y when y>0 else x-y; Vezje dvodelne funkcije je narejeno z dvovhodnim vektorskim izbiralnikom, ki izbira med vektorskim signalom iz seštevalnika in signalom iz odštevalnika. Izbirni vhod vektorskega izbiralnika krmili primerjalnik, kot prikazuje slika. Kadar je vrednost signala y pozitivna, bo dal primerjalnik na izhod logi.no '1', sicer pa bo na izhodu primerjalnika logi.na '0'. x + y x izhod + izhod y >0 Slika. Vezje dvodelne funkcije >0 Slika. Sintetizirano vezje Program za sintezo vezij naredi vezje iz gradnikov, ki jih ima na voljo. $e je na voljo seštevalno-odštevalni gradnik, ga uporabi in naredi bolj optimalno vezje, kot prikazuje slika. B Primerjalnik Primerjalnik dobimo v vezju vsakokrat ko primerjamo vrednosti dveh vektorskih signalov z uporabo relacijskih operatorjev. Tabela 6. Relacijski operatorji = /= > >= < <= enako ni enako ve*je ve*je ali manjše manjše ali enako enako Operatorja enako in ni enako sta definirana za vse tipe podatkov, ostali pa za skalarne in vektorske tipe. Tabela 6 predstavlja relacijske operatorje v jeziku VHDL, ki jih lahko uporabljamo v pogojih pri pogojnem prireditvenem stavku. Preprost

primerjalnik opišemo tako, da uporabimo v pogojnem prireditvenem stavku namesto izrazov kar konstantne vrednosti: enako <= '1' when x=y else '0'; Pri primerjavi vrednosti vektorskih signalov se njihova vrednost interpretira kot nepredzna.eno ali predzna.eno število v dvojiškem zapisu, kar dolo.amo z uporabo knjižnjic in paketov. Primer: primerjalnik velikosti vhodne vrednosti 1 3 4 5 6 7 9 library IEEE; use IEEE.STD_LOGIC_64.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity Primerjalnik is port ( x : in std_logic_vector(7 downto 0); izhod : out std_logic); end Primerjalnik; architecture opis of Primerjalnik is izhod <= '1' when x> else '0'; end opis; V opis vezja je vklju.en paket STD_LOGIC_UNSIGNED v katerem so definirane operacije nad vektorji tipa std_logic_vector, ki predstavljajo nepredzna.ene vrednosti. Primerjalni operatorji so v knjižnjici definirani tako, da lahko primerjamo med seboj vektorske vrednosti (npr. x>"0000") ali pa vektorje in cela števila (npr. x>). $e bi uporabili paket STD_LOGIC_SIGNED, bi bil operator primerjave definiran za predzna.ene vrednosti. Rezultat primerjave bi bil enak '1' za vrednosti med "0000" (desetiško ) in "01" (desetiško 7). Kadar je najvišji bit vektorja x enak ena, se v tem primeru vrednost obravnava kot negativna in rezultat primerjave bo enak '0'. Kompleksnejše primerjave naredimo z uporabo logi.nih operatorjev: obmocje <= '1' when x> and x<0 else '0'; x > <0 obmocje Slika. Sestavljeni primerjalnik

C Prekinitveni kodirnik Naloga prekinitvenega kodirnika je, da med aktivnimi prekinitvenimi signali izbere tistega, ki ima prioriteto in izbiro sporo.i v obliki prekinitvenega vektorja. p1 p p3 PrekKod vektor prekini Slika. Model prekinitvenega kodirnika Poglejmo si primer kodirnika, ki ima na vhodu tri prekinitvene signale: p1, p in p3. Prekinitveni vektor naj bo dvobitna vrednost, ki pove zaporedno številko aktivne prekinitve. $e je hkrati postavljenih ve. prekinitev, je izbrana prekinitev z nižjo številko. Vezje naj ima tudi izhod prekini, ki naj bo postavljen na '1',.e je aktiven katerikoli prekinitveni vhod. 1 3 4 5 6 7 9 17 1 library IEEE; use IEEE.STD_LOGIC_64.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity PrekKod is port ( p1, p, p3 : in std_logic; vektor : out std_logic_vector(1 downto 0) ; prekini : out std_logic ); end PrekKod; architecture opis of PrekKod is vektor <= "01" when p1='1' else "" when p='1' else "" when p3='1' else "00"; prekini <= '1' when p1='1' or p='1' or p3='1' else '0'; end opis; Vezje je opisano s pogojnim prireditvenim stavkom v razširjeni obliki, kjer imajo zaporedni pogoji prioriteto. Pogoj, ki je napisan prvi (int1='1') se najprej preveri in.e ni izpolnjen, se preveri drugi pogoj (int='1') in tako naprej. $e sta torej dva pogoja hkrati izpolnjena, npr. int1 in int, bo obveljal prvi pogoj. Kadar ni izpolnjen noben pogoj, se izvede kon.ni else in prekinitveni vektor postavi na "00".

p1 p p3 vektor prekini 00 01 01 Slika. Simulacija prekinitvenega kodirnika Naloge 1. Naredi vezje za funkcijo maksimum. Vezje naj ima dva -bitna vhoda in en -bitni izhod. Na izhodu naj bo vedno maksimalna izmed obeh vhodnih vrednosti. x y FMaks maks. Opiši sestavljeni primerjalnik, ki preverja ali je 4-bitna vhodna vrednost znotraj nekega obmo.ja (npr. med 5 in ). Preveri na simulaciji delovanje primerjalnika in ugotovi, kaj se zgodi,.e vklju.iš knjižnjico za delo s predzna.enimi vrednostmi (STD_LOGIC_SIGNED). 3. Opiši vezje za kodiranje magnitude 7-bitnega vhodnega signala. Izhod vezja je 3-bitna vrednost, ki pove koliko bitov potrebujemo za zapis vhodne vrednosti. Kodiranje lahko opišemo z zaporedno (prioritetno) primerjavo bitov od najvišjega navzdol: -.e je na vhodu sedmi bit enak '1', bo izhod "1", sicer -.e je na vhodu šesti bit enak '1', bo izhod "0", sicer -.e je na vhodu peti bit enak '1', bo izhod "1"...

17 3. Izbirni stavek Pogojni prireditveni stavek v razširjeni obliki se nam kar sam ponuja za opis vezij, pri katerih izbiramo med ve.jim številom vhodnih signalov, ki jih ob dolo.enih pogojih pripeljemo na izhod. A Izbiralnik 4-1 Poglejmo si primer izbiralnika 4-1, ki z dvobitnim vektorjem izbira enega izmed štirih vhodov. Vhodni signali so lahko enobitni ali vektorski signali. vhod_a vhod_b vhod_c vhod_d 00 01 izhod izbira Slika. Izbiralnik 4-1 Izbiralnik opišemo s pogojnim prireditvenim stavkom v razširjeni obliki: architecture opis of mux is izhod <= vhod_a when izbira="00" else vhod_b when izbira="01" else vhod_c when izbira="" else vhod_d; end opis; Pri opisu izbiralnika nismo zapisali zadnjega pogoja (izbira=""), pa. pa smo priredili signal vhod_d v primeru da noben izmed predhodnih pogojev ni izpolnjen. To je dobra praksa pri opisovanju kombinacijskih vezij, kjer morajo biti izhodni signali definirani v vseh primerih. Kadar opisujemo kombinacijska vezja z razširjenim when-else stavkom zapišemo kon.ni else brez dodatnega pogoja. V nasprotnem primeru lahko dobimo v vezju zapah! Razširjeni pogojni prireditveni stavek obravnava zaporedne pogoje s prioriteto.e prvi pogoj ni izpoljen se preveri drugi pogoj in.e oba nista izpolnjena se preveri tretji pogoj itn. Pri sintezi vezja predstavljajo zaporedni pogoji

zaporedno (ve.nivojsko) logiko, kar pomeni ve.je in po.asnejše vezje. Kadar so pogoji s katerimi izbiramo razli.ne izhode vezani le na en signal (npr. signal izbira), lahko opišemo vezje s pomo.jo izbirnega stavka: 1 Tabela 7. Izbirni stavek with izbirni_signal select signal <= izraz1 when vrednost1, izraz when vrednost,... izrazn when others; 17 architecture opis of mux is with izbira select izhod <= vhod_a when "00", vhod_b when "01", vhod_c when "", vhod_d when others; end opis; Namesto zadnjega pogoja ("") smo uporabili rezervirano besedo others, s katero zaobjamemo vse ostale možne izbire. Ker so signali tipa std_logic, so med ostalimi možnimi vrednostmi tudi "UU", "ZZ", "XX" ipd. B 7-segmentni dekodirnik Izbirni stavek je uporaben za opis kombinacijskih dekodirnikov, pri katerih kombinacije vhodnega signala prekodiramo v kombinacije izhodnega signala. Vzemimo primer dekodirnika za 7-segmentni prikazovalnik, kot je prikazan na sliki. Tabela prikazuje prekodiranje desetiških cifer v 7-bitno kodo: število binarna vrednost 7-bitna koda 0 0000 0 1 0001 00000 00 0 3 00 0 4 00 000 5 01 001 6 00 1 7 01 00001 00 1 9 01 0 4 5 3 0 6 1 7 Slika 17. 7-segmentni prikazovalnik

Vezje dekodirnika naj ima 4-bitni BCD vhod in vhod, ki prižiga piko na prikazovalniku. Izhod je -bitni vektor pri katerem spodnjih 7 bitov prižiga segmente prikazovalnika, osmi bit pa je vezan na piko. bcd pika Dekoder 4 izhod Slika 1. Model vezja 7-segmentnega dekodirnika Za vse vhodne vrednosti, ki so izven obmo.ja BCD vrednosti, naj se na prikazovalniku pokaže znak F (7-bitna koda 001). 19 5 6 7 9 17 1 19 0 1 3 4 5 6 entity Dekoder is port ( bcd: in std_logic_vector (3 downto 0); pika: in std_logic; izhod: out std_logic_vector (7 downto 0)); end Dekoder; architecture opis of Dekoder is with bcd select izhod(6 downto 0) <= "0" when "0000", "00000" when "0001", "0" when "00", "0" when "00", "000" when "00", "001" when "01", "1" when "00", "00001" when "01", "1" when "00", "0" when "01", "001" when others; izhod(7) <= pika; end opis; V izbirnem stavku smo nastavili samo spodnjih 7 bitov vektorja izhod (vrs. ), osmi bit pa je z navadnim prireditvenim stavkom (vrs. 5) povezan na vhodni signal pika.

C Aritmetino-logina enota 0 Z izbirnim stavkom lahko na zelo kompakten na.in opišemo aritmeti.nologi.ne enote (ALE). Naredili bomo primer ALE z dvema aritmeti.nima in dvema logi.nima operacijama. Vrsto operacije dolo.a dvobitni vhodni signal: op operacija 00 a + b 01 a b a and b a or b a b ALE + IN ALI rezultat op Slika 19. Aritmeti*no-logi*na enota V opisu vezja prirejamo posamezne izraze znotraj izbirnega (with-select) stavka. Izbirni signal (op) dolo.a, kateri izraz bomo priredili rezultatu. Ko naštevamo vrednosti izbirnega signala, moramo namesto zadnje vrednosti uporabiti rezervirano besedo others. 5 6 7 9 17 1 entity ALE is port ( a, b: in std_logic_vector (7 downto 0); op: in std_logic_vector (1 downto 0); rezultat: out std_logic_vector (7 downto 0)); end ALE; architecture opis of ALE is with op select rezultat <= a + b when "00", a b when "01", a and b when "", a or b when others; end opis; Naloga 1. Naredi dekodirnik za -bitni digitalni VU-meter. Vrednost na 3-bitnem vhodu naj dolo.a koliko izhodnih bitov je postavljenih na '1'.