13
Konkurentne naredbe dodele Kôd sadržan u sekciji ARCHITECTURE k db ddl Konkurentne naredbe dodele: Jednostavna konkurentna naredba dodele Naredba WHEN - uslovna naredba dodele Naredba SELECT naredba dodele sa izborom Naredba SELECT - naredba dodele sa izborom vrednosti Arhitektura mikrosistema Jednostavna konkurentna nareba dodele signal <= izraz; i l ički ili i ički i ( d ži izraz – logički ili aritmetički izraz (sadrži operatore AND, NOT, +, sll i sl.) s <= a AND (b OR c); enable <= ´1´; sel <= (r1 AND r2) OR (r3 AND r4); sum <= a + b + c – 1; Za opis jednostavnih logičkih i aritmetičkih funkcija Arhitektura mikrosistema Jednostavna konkurentna nareba dodele Jednostavna konkurentna naredba dodele sa klauzulom after: signal <= izraz after kašnjenje; a <= b AND c after 10 ns; K i ti i l iji U i t i iji d lj Koristi se u simulaciji. U sintezi niji dozvoljen. a a b c a b c Tp = 10 ms Arhitektura mikrosistema 10 ms 10 ms Generisanje talasnog oblika sig <= ´0´, ´1´ after 10 ns, ´0´ after 10 ns, ´1´ after 20 ns; Tipična primena u testbenču za generisanje Tipična primena u testbenču za generisanje pobudnih signala složenog talasnog oblika Arhitektura mikrosistema

Arhitektura mikrosistema - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konkurentne naredbe1.pdfTp = 10 ms Arhitektura mikrosistema 10 ms 10 ms Generisanje talasnog oblika

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Arhitektura mikrosistema - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konkurentne naredbe1.pdfTp = 10 ms Arhitektura mikrosistema 10 ms 10 ms Generisanje talasnog oblika

Konkurentne naredbe dodele Kôd sadržan u sekciji ARCHITECTURE

k db d d l Konkurentne naredbe dodele: Jednostavna konkurentna naredba dodele Naredba WHEN - uslovna naredba dodele Naredba SELECT naredba dodele sa izborom Naredba SELECT - naredba dodele sa izborom

vrednosti

Arhitektura mikrosistema

Jednostavna konkurentna nareba dodele signal <= izraz;

i l ički ili i ički i ( d ži izraz – logički ili aritmetički izraz (sadrži operatore AND, NOT, +, sll i sl.) s <= a AND (b OR c); enable <= ´1´; sel <= (r1 AND r2) OR (r3 AND r4); sum <= a + b + c – 1;

Za opis jednostavnih logičkih i aritmetičkih funkcija

Arhitektura mikrosistema

Jednostavna konkurentna nareba dodele Jednostavna konkurentna naredba dodele sa

klauzulom after: signal <= izraz after kašnjenje; a <= b AND c after 10 ns;

K i ti i l iji U i t i iji d lj Koristi se u simulaciji. U sintezi niji dozvoljen.

aa

b

c

ab

c

Tp = 10 ms

Arhitektura mikrosistema

10 ms 10 ms

Generisanje talasnog oblika

sig <= ´0´, ´1´ after 10 ns, ´0´ after 10 ns, ´1´ after 20 ns;

Tipična primena u testbenču za generisanjeTipična primena u testbenču za generisanje pobudnih signala složenog talasnog oblika

Arhitektura mikrosistema

Page 2: Arhitektura mikrosistema - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konkurentne naredbe1.pdfTp = 10 ms Arhitektura mikrosistema 10 ms 10 ms Generisanje talasnog oblika

Konceptualna implementacijaKonceptualna implementacija konkurentne naredbe dodele enable <= ´1´; sel <= (r1 AND r2) OR (r3 AND r4); sum <= a + b + c – 1;

Arhitektura mikrosistema

Konkurentna nareba dodeleKonkurentna nareba dodelePrimer: multiplekser 4-u-1LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY mux ISENTITY mux IS

PORT ( a,b,c,d,s0,s1 : IN STD_LOGIC;y : OUT STD_LOGIC);

END mux;;ARCHITECTURE log_funk OF mux ISBEGIN

y <= (a AND NOT s1 AND NOT s0) OR(b AND NOT s1 AND s0) OR(c AND s1 AND NOT s0) OR(d AND s1 AND s0);

END log_funk;

Nizak nivo opisa

Arhitektura mikrosistema

Konkurentna naredba dodele saKonkurentna naredba dodele sa zatvorenom petljom q <= (q AND NOT en) OR (d AND en);

Nije zabranjeno, ali nije preporučljivo !( t j i t t j i i ti il ij k l )(stvaraju se interna stanja i mogu se izazvati oscilacije u kolu)

Za en=‘1’, q = d. Međutim, za en = ‘0’, q = q - zadržava svoju vrednost => stvara se memorijaj

q <= (NOT q AND NOT en) OR (d AND en);Za en=‘0’, q = NOT q - oscilovanje !

Za modelovanje sekvencijalnog ponašanja koriste seArhitektura mikrosistema

Za modelovanje sekvencijalnog ponašanja koriste se sekvencijalne naredbe !

WHEN - konkurentna naredba uslovne dodele Uopštenje konkurentne naredbe dodele

S desne strane znaka <= može se naći više od jednog izraza. Sintaksa:sig <= izraz_1 WHEN uslov_1 ELSE

izraz 2 WHEN uslov 2 ELSEizraz_2 WHEN uslov_2 ELSE...

izraz_n-1 WHEN uslov_n-1 ELSEizraz_n;

˝uslov˝ - logički/relacioni izraz koji može biti tačan ili netačan, npr: (a=’1’ OR b=’0’) ili (a > b)

˝uslovi˝ se ispituju redom a signal dobija vrednost prvog izraza uslovi se ispituju redom, a signal dobija vrednost prvog izraza čiji je uslov tačan

Ako ni jedan uslov nije tačan, izvršava se izraz iz poslednje grane

Arhitektura mikrosistema

Page 3: Arhitektura mikrosistema - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konkurentne naredbe1.pdfTp = 10 ms Arhitektura mikrosistema 10 ms 10 ms Generisanje talasnog oblika

WHEN - primer

outp <= “000” WHEN (inp=΄0΄ OR reset=΄1΄) ELSE“101” WHEN ctl=΄1΄ ELSE“010”“010”;

Ako važi inp=΄0΄ ili reset=΄1΄ tada outp <= “000” inačeAko važi inp= 0 ili reset= 1 , tada outp <= “000”, inače

ako važi ctl=΄1΄ , tada outp <= “101”, inače

outp <= “010”outp <= 010

Arhitektura mikrosistema

WHENWHEN Primer: MultiplekserLIBRARY ieee;USE ieee.std logic 1164.all;_ g _ ;ENTITY mux IS

PORT ( a,b,c,d : IN STD_LOGIC;sel: IN STD_LOGIC_VECTOR(1 DOWNTO 0);y : OUT STD LOGIC);y : OUT STD_LOGIC);

END mux;ARCHITECTURE when_arch OF mux ISBEGIN

y <= a WHEN sel = "00" ELSEb WHEN sel = "01" ELSEc WHEN sel = "10" ELSEc WHEN sel 10 ELSEd;

END when_arch; Pokriva sel=˝11˝, ali i sve preostale nebinarne

Arhitektura mikrosistema

preostale, nebinarne kombinacije, kao što su ˝0-˝,

˝LH˝, ˝ZW˝

WHENWHEN Primer: DekoderLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY dek2u4 ISPORT (d : IN STD_LOGIC_VECTOR(1 DOWNTO 0);

e : IN STD_LOGIC;y : OUT STD LOGIC VECTOR(3 DOWNTO 0));y : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));

END dek2u4;ARCHITECTURE when_arch OF dek2u4 ISBEGINy <= "0000" WHEN e = ´0´ ELSE

"0001" WHEN d = "00" ELSE"0010" WHEN d = "01" ELSE"0100" WHEN d = "10" ELSE"1000";

END when_arch; Arhitektura mikrosistema

WHENWHEN Primer: KoderLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY encoder ISPORT (x : IN STD_LOGIC_VECTOR(3 DOWNTO 0);

y : OUT STD_LOGIC_VECTOR(1 DOWNTO 0));END encoder;ARCHITECTURE when_arch OF encoder ISBEGIN

y <= "00" WHEN x="0001" ELSE01 0010

x3 x2 x1 x0 y1 y0 "01" WHEN x="0010" ELSE"10" WHEN x="0100" ELSE"11";

END h h

0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 END when_arch; 1 0 0 0 1 1 sve ostale komb. - -

Arhitektura mikrosistema

Page 4: Arhitektura mikrosistema - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konkurentne naredbe1.pdfTp = 10 ms Arhitektura mikrosistema 10 ms 10 ms Generisanje talasnog oblika

WHENWHEN Primer: Koder

˝ ˝ k k i iti i lj d t˝-˝ - kako izraziti proizvoljnu vrednost

x3 x2 x1 x0 y1 y0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0

y <= "00" WHEN x="0001" ELSE"01" WHEN x="0010" ELSE"10" WHEN x="0100" ELSE"11" WHEN "1000" ELSE 0 1 0 0 1 0

1 0 0 0 1 1 sve ostale komb. - -

"11" WHEN x="1000" ELSE"--";

Arhitektura mikrosistema

WHENWHEN Primer: Prioritetni koderLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY pencoder IS

PORT (x : IN STD_LOGIC_VECTOR(3 DOWNTO 0);y : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);z : OUT STD_LOGIC);

END pencoder;ARCHITECTURE when_arch OF pencoder ISBEGIN

y <= "11" WHEN x(3) = '1' ELSEx3 x2 x1 x0 y1 y0 z 0 0 0 0 0 0 0 y <= 11 WHEN x(3) = '1' ELSE

"10" WHEN x(2) = '1' ELSE"01" WHEN x(1) = '1' ELSE"00";

0 0 0 1 0 0 1 0 0 1 - 0 1 1 0 1 - - 1 0 1 1 1 1 100 ;

z <= '0' WHEN x = "0000" ELSE '1';

END when arch;

1 - - - 1 1 1

Arhitektura mikrosistema

END when_arch;

Konceptualna implementacija WHEN naredbesig <= izraz_1 WHEN uslov_1 ELSE

izraz 2;_ ;Apstraktni multiplekser:T (true) - uslov je tačan

F (false) - uslov je netačanF (false) uslov je netačan

Konceptualnidijagram

Arhitektura mikrosistema

Konceptualna implementacija WHEN naredbe

sig <= izraz_1 WHEN uslov_1 ELSEizraz_2 WHEN uslov_2 ELSE izraz_3 WHEN uslov_3 ELSEizraz_4;

Arhitektura mikrosistema

Page 5: Arhitektura mikrosistema - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konkurentne naredbe1.pdfTp = 10 ms Arhitektura mikrosistema 10 ms 10 ms Generisanje talasnog oblika

Sinteza WHEN naredbeSIGNAL a,b,y : STD_LOGIC;. . .y <= ´0´ WHEN a=b ELSE U sintezi STD_LOGIC ima dve

d i ‘0’ i ‘1’y 0 WHEN a b ELSE´1´;

. . .

vrednosti: ‘0’ i ‘1’

a b a=b 0 00 0 1 0 1 0 1 0 0 1 1 1 1

Arhitektura mikrosistemaU sintezi T - ‘1’, F - ‘0’

Konceptualna implementacija WHENKonceptualna implementacija WHEN naredbe - primerSIGNAL a,b,f : UNSIGNED(7 DOWNTO 0);SIGNAL x,y : UNSIGNED(3 DOWNTO 0);. . .

Nije kraj sinteze !Sledi zamen apstraktnih blokova

f <= a+b WHEN x+y>1 ELSEa-b-1 WHEN x>y AND y!=0 ELSEa+1;

Sledi zamen apstraktnih blokovaOdgovarajućim modulima realizovanim

pomoću logičkih kola. . .

Arhitektura mikrosistema

SELECET - naredba dodele saSELECET naredba dodele sa izborom vrednosti Sintaksa:

WITH selekcioni_izraz SELECTsig <= izraz 1 WHEN vrednost 1sig <= izraz_1 WHEN vrednost_1,

izraz_2 WHEN vrednost_2,...izraz n WHEN vrednost n;izraz_n WHEN vrednost_n;

selekcioni_izraz –aritmetički ili logički izraz Izračunata vrednost selekcioni_izraz, poredi se sa vrednostima iz

svih grana a signal dobija vrednost izraza iz grane gde se javilosvih grana, a signal dobija vrednost izraza iz grane gde se javilo slaganje.

Zahtev: svaka moguća vrednost selekcionog_izraza mora biti pokrivena tačno jednom granompokrivena tačno jednom granom.

˝WHEN vrednost˝ može biti: WHEN vrednost; -- jedinstvena vrednost

WHEN d t 1 TO d t 2 d tiArhitektura mikrosistema

WHEN vrednost_1 TO vrednost_2; -- opseg vrednosti WHEN vrednost_1 | vrednost_2 | vrednost_3 ... -- više vrednosti

SELECT Dozvoljeno korišćenje reči OTHERS:

WITH selekcioni izraz SELECT_sig <= izraz_1 WHEN vrednost_1,

izraz_2 WHEN vrednost_2,...izraz_n WHEN OTHERS;

Primer: Bira se ako vrednost Primer:

WITH contol SELECToutp <= “000” WHEN “00”

selekcionog izraza nije jednaka ni jednoj

navedenoj vrednostip“111” WHEN “01” | “10”“010” WHEN OTHERS;

Arhitektura mikrosistema

Page 6: Arhitektura mikrosistema - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konkurentne naredbe1.pdfTp = 10 ms Arhitektura mikrosistema 10 ms 10 ms Generisanje talasnog oblika

Realizacija tabele istinitosti1 --------------------------------------------- 2 LIBRARY ieee; 3 USE ieee.std_logic_1164.all; 4 --------------------------------------------- 5 ENTITY tabela_istinitosti IS 6 PORT (a,b : IN STD_LOGIC; 7 y : OUT STD LOGIC);7 y : OUT STD_LOGIC); 8 END tabela_istinitosti; 9---------------------------------------------- 10 ARCHITECTURE arch OF tabela_istinitosti IS

b

11 SIGNAL tmp : STD_LOGIC_VECTOR(1 DOWNTO 0); 12 BEGIN 13 tmp <= a & b; 14 WITH tmp SELECTa b y

0 0 0 0 1 1 1 0 1

14 WITH tmp SELECT 15 y <= '0' WHEN "00", 16 '1' WHEN "01", 17 '1' WHEN "10",,

Arhitektura mikrosistema

1 0 1 1 1 1

18 '1' WHEN OTHERS; 19 END arch;

OTHERS grana je neophodna kad seOTHERS grana je neophodna kad se radi s tipom std_logic !

a b y 0 0 0 0 1 1

tmp <= a & b;WITH tmp SELECTy <= '0' WHEN "00",

0 1 1 1 0 0 1 1 1

y'1' WHEN "01",'0' WHEN "10",'1' WHEN "11";

Sve moguće vrednosti selekcionog signala moraju biti pokrivene Za tipSve moguće vrednosti selekcionog signala moraju biti pokrivene. Za tip std_logic to nisu samo ˝00˝, ˝01˝, ˝10˝, ˝11˝, već i ˝0X˝, ˝HL˝, … (ukupno 64).

Arhitektura mikrosistema

Realizacija tabele istinitosti

a b y 0 0 0 0 1 1 1 0 0

Kompaktnije zapisivanje1 0 0 1 1 1

y <= '1' WHEN "01" | "11", '0' WHEN OTHERS;

y <= '0' WHEN "00" | "10", '1' WHEN OTHERS;

Arhitektura mikrosistema

SELECTSELECTPrimer: Multiplekser

ARCHITECTURE select_arch OF mux4u1 ISBEGINWITH sel SELECT

y <= a WHEN "00", -- "," umesto ";"b WHEN "01",c WHEN "10",d WHEN OTHERS; -- ne moze d WHEN "11"

END select_arch;Arhitektura mikrosistema

Page 7: Arhitektura mikrosistema - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konkurentne naredbe1.pdfTp = 10 ms Arhitektura mikrosistema 10 ms 10 ms Generisanje talasnog oblika

SELECTSELECTPrimer: Dekoder

ARCHITECTURE select_arch OF dek2u4 ISSIGNAL ed : STD_LOGIC_VECTOR(2 DOWNTO 0);

BEGINBEGINed <= e & d;WITH ed SELECTy <= “0001" WHEN "100",y < 0001 WHEN 100 ,

"0010" WHEN "101","0100" WHEN "110",“1000" WHEN "111",,"0000" WHEN OTHERS;

END select_arch;

Arhitektura mikrosistema

SELECTSELECTPrimer: KoderARCHITECTURE select_arch OF encoder ISBEGIN

WITH x SELECTWITH x SELECTy <= "00" WHEN "0001",

"01" WHEN "0010", "10" WHEN "0100",10 WHEN 0100 , "11" WHEN OTHERS;

END select_arch;

WITH x SELECTy <= "00" WHEN "0001",

x3 x2 x1 x0 y1 y0 0 0 0 1 0 0 y < 00 WHEN 0001 ,

"01" WHEN "0010", "10" WHEN "0100", "11" WHEN "1000",

0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 0 1 1

Arhitektura mikrosistema

,"--" WHEN OTHERS; sve ostale komb. - -

SELECTSELECTPrimer: Prioritetni koder

x3 x2 x1 x0 y1 y0 z 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 - 0 1 1 0 1 - - 1 0 1 1 - - - 1 1 1

ARCHITECTURE select_arch OF pencoder ISBEGINWITH x SELECTy <="00" WHEN "0001",

"01" WHEN "0010" | "0011";"10" WHEN "0100" | "0101" | "0110" | "0111","11" WHEN OTHERS;

WITH x SELECT z <= '0' WHEN "0000",

1Arhitektura mikrosistema

'1' WHEN OTHERS;END select_arch;

SELECTSELECTPrimer: ALU Microsoft Word

Document

sel Operacija Funkcija Jedinica 0000 y <= a Transfer a 0001 y <= a + 1 Inkrement a y0010 y <= a - 1 Dekrement a 0011 y <= b Transfer b 0100 y <= b + 1 Inkrement b 0101 b 1 D k b

Aritmetička

0101 y <= b - 1 Dekrement b 0110 y <= a + b Sabiranje 0111 y <= a-b Oduzimanje 1000 y <= NOT a Komplement a y p1001 y <= NOT b Komplement b 1010 y <= a AND b I 1011 y <= a OR b ILI 1100 y <= a NAND b NI

Logička

1100 y < a NAND b NI 1101 y <= a NOR b NILI 1110 y <= a XOR b Iskljucivo ILI 1111 y <= a NXOR b Iskljucivo NILI

Arhitektura mikrosistema

(a) (b)

Page 8: Arhitektura mikrosistema - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konkurentne naredbe1.pdfTp = 10 ms Arhitektura mikrosistema 10 ms 10 ms Generisanje talasnog oblika

Konceptualna implementacija naredbeKonceptualna implementacija naredbe SELECTWITH sel SELECT

sig <= izraz_1 WHEN v1,izraz 2 WHEN v2

WITH sel SELECTsig <= izraz_1 WHEN v1,izraz_2 WHEN v2,

...izraz_n WHEN vn;

izraz_2 WHEN v2,

izraz_3 WHEN OTHERS

Arhitektura mikrosistema

Konceptualna implementacija naredbeKonceptualna implementacija naredbe SELECT - primerSIGNAL s: STD_LOGIC_VECTOR(1 DOWNTO 0);. . .WITH s SELECTWITH s SELECT

x <= (a AND b) WHEN "11",(a OR b) WHEN "01" | "10",’0’ WHEN OTHERS’0’ WHEN OTHERS;

. . .

Arhitektura mikrosistema

Konceptualna implementacija naredbeKonceptualna implementacija naredbe SELECT - primerSIGNAL a,b,r: UNSIGNED(7 DOWNTO 0);SIGNAL s: STD_LOGIC_VECTOR(1 DOWNTO 0);. . .. . .WITH s SELECT

r <= a+1 WHEN "11",a-b-1 WHEN "10",,a+b WHEN OTHERS;

. . .

Arhitektura mikrosistema

SELECT vs. WHEN/ELSE SELECT

Kada je kolo opisano tabelom istinitosti ili nekom formom funkcionalne tabele (npr. dekoder, multiplekser, ...) ( p , p , )

WHEN/ELSE Kada se nekim ulazima ili operacijama daje viši prioritet (npr. prioritetni

koder) Koncizno opisivanje složenih uslova, kao na primer:

r <= a+b WHEN (x+y>1 AND x>3) ELSEa-b-1 WHEN (z>v AND f = ’1’) ELSE

M j fik k d t b i ti t b l i ti it ti Manje efikasna kada treba opisati tabelu istinitosti:

x <= a WHEN (s=“00”) ELSE b WHEN (s=“01”) ELSE

c WHEN (s=“10”) ELSEx <= b WHEN (s=“01”) ELSE a WHEN (s=“00”) ELSE

c WHEN (s=“10”) ELSEx <= c WHEN (s=“10”) ELSE b WHEN (s=“01”) ELSE

a WHEN (s=“00”) ELSE c WHEN (s 10 ) ELSE d;

c WHEN (s 10 ) ELSE d;

a WHEN (s 00 ) ELSE d;

Nije pogrešno, ali uvodi nepotrebna ograničenja (prioriteti) koji mogu otežati sintezu i uneti nepotreban hardver

Arhitektura mikrosistema

Page 9: Arhitektura mikrosistema - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konkurentne naredbe1.pdfTp = 10 ms Arhitektura mikrosistema 10 ms 10 ms Generisanje talasnog oblika

´Z´LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY tri state ISENTITY tri_state IS

PORT (ena : IN STD_LOGIC;input : IN STD_LOGIC_VECTOR(7 DOWNTO 0);

t t OUT STD LOGIC VECTOR(7 DOWNTO 0))output : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END tri_state;ARCHITECTURE tri_state OF tri_state ISBEGIN

output <= input WHEN (ena = '0') ELSE(OTHERS => 'Z');

ena output0 input ( );

END tri_state; 1 Z

Arhitektura mikrosistema

´Z´ - ograničenja u sintezi Ne može se koristiti kao ulazna vrednost, niti se s

ovom vrednošću može manipulisati na način kao sa plogičkim vrednostima ´0´ i ´1´.

Sledeće dve naredbe se ne mogu sintetizovati:g

r <= ’Z’ AND a;g <= d - c WHEN a = ’Z’ ELSE

d - b;d b;

Arhitektura mikrosistema

Bidirekcioni (ulazno/izlazni) port Port koji se po potrebi može koristiti bilo kao ulaz bilo kao

izlaz.

ENTITY bi_port ISPORT(...

Princip:

Za dir=´1´, bi je izlaz

´ ´ j l

bi : INOUT STD_LOGIC;...);

BEGINZa dir=´0´, bi je ulaz...

bi <= sig_out WHEN dir = ’1’ ELSE’Z’;

i i < bisig_in <= bi;...

Arhitektura mikrosistemaSmer: inout

Trostatička magistralaLIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY mux IS sel(1:0)ENTITY mux IS

PORT ( a,b,c,d : IN STD_LOGIC;sel: IN STD_LOGIC_VECTOR(1 DOWNTO 0);

y : OUT STD LOGIC);Dekoder

3 2 1 0

00011011y _ );END mux;ARCHITECTURE tri_state OF mux ISBEGIN

a

00011011

y <= a WHEN sel = "00" ELSE 'Z';y <= b WHEN sel = "01" ELSE 'Z';y <= c WHEN sel = "10" ELSE 'Z';

b

y

y <= d WHEN sel = "11" ELSE 'Z';END tri_state;

c

d

Arhitektura mikrosistema

d

Magistrala

Page 10: Arhitektura mikrosistema - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konkurentne naredbe1.pdfTp = 10 ms Arhitektura mikrosistema 10 ms 10 ms Generisanje talasnog oblika

ROM ROM (prema eng. Read-Only Memory) je memorija

sa konstantnim sadržajem - memorijska komponenta k j d ikoja može samo da se čita.

Arhitektura mikrosistema

ROMLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.NUMERIC_STD.ALL;ENTITY ROM ISPORT (addr : IN STD_LOGIC_VECTOR(2 DOWNTO 0);

data : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END ROM;ARCHITECTURE rom OF ROM ISTYPE mem_array IS ARRAY (0 TO 7) OF STD_LOGIC_VECTOR(7 DOWNTO 0);CONSTANT ("00000000“CONSTANT memory : mem_array := ("00000000“

"00000010","00000100","00001000""00001000","00010000","00100000","01000000"

Zato što indeks polja može biti samo integer 01000000 ,

"10000000");BEGINdata <= memory(TO INTEGER(UNSIGNED(addr)));

Arhitektura mikrosistema

data < memory(TO_INTEGER(UNSIGNED(addr)));END rom;

Optimizacija konkurentnog koda Cilj: sa što manje hardverskih resursa

reali o ati željen f nkcijrealizovati željenu funkciju Minimizacija broja aritmetičkih i relacionih

operatora u kodu Dve tehnike: Dve tehnike: Deoba operatora i Deoba funkcija

Arhitektura mikrosistema

Deoba operatora Kako smanjiti broj aritmetičkih operatora u kodu?

Preurediti kôd tako da se se isti operator može iskoristiti Preurediti kôd tako da se se isti operator može iskoristiti za obavljanje više različitih operacija.

< + b WHEN l ELSr <= a + b WHEN uslov ELSa + c;

x <= b WHEN uslov ELSEc;

Arhitektura mikrosistema

;r <= a + x;

Page 11: Arhitektura mikrosistema - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konkurentne naredbe1.pdfTp = 10 ms Arhitektura mikrosistema 10 ms 10 ms Generisanje talasnog oblika

Složenost vs. kašnjenje

Kašnjenje: max{T T } + T

Složenost: 2 sabirača + multiplekser

Kašnjenje: T + T + T

Složenost: 1 sabirač + multiplekser

Kašnjenje: max{Tsab, Tuslov} + Tmux Kašnjenje: Tsab + Tuslov + Tmux

Arhitektura mikrosistema

Deoba operatora na primeru naredbe select:WITH uslov SELECTr <= a+b WHEN ˝00˝,

+ WHEN ˝01˝a+c WHEN ˝01˝,d+1 WHEN OTHERS;

WITH uslov SELECTx0 <= a WHEN ˝00˝ | ˝01˝,

d WHEN OTHERS;WITH uslov SELECTx1 <= b WHEN ˝00˝,

c WHEN ˝01˝,Nivo ostvarene uštede zavisi odArhitektura mikrosistema

,˝00000001˝ WHEN OTHERS;

r <= x0 + x1;Nivo ostvarene uštede zavisi od relativnog odnosa složenosti operatora i dodatnih multipleksera

Deoba funkcija Više funkcija realizuju se tako da dele neke zajedničke delove

ili se jedna funkcija koristi za realizaciju neke druge funkcije.

Sabirač/oduzimač

ARCHITECTURE arch_v1 OF ADDSUB ISSIGNAL x0, x1, sum : SIGNED(7 DOWNTO 0);BEGINx0 <= SIGNED(a);x1 <= SIGNED(b);

0 1 WHEN t l ‘0’ ELSEk i l b lctrl operacija 0 a + b

sum <= x0 + x1 WHEN ctrl = ‘0’ ELSEx0 - x1;

r <= STD_LOGIC_VECTOR(sum);END arch v1;

Funkcionalna tabela

Arhitektura mikrosistema

1 a - b

END arch_v1;

Deoba funkcija – optimizovanaDeoba funkcija optimizovana realizacija sabirača/oduzimača

Oduzimanje je isto što i sabiranje s potpunim komplementoms potpunim komplementom umanjioca:

a - b = a + b’ + 1 ARCHITECTURE arch_v2 OF ADDSUB IS_SIGNAL x0, x1, sum : UNSIGNED(7 DOWNTO 0);SIGNAL cin : UNSIGNED(0 DOWNTO 0);

BEGIN0 UNSIGNED( )x0 <= UNSIGNED(a);

x1 <= UNSIGNED(b) WHEN ctrl=´0´ ELSEUNSIGNED(NOT b);

cin <= ˝0˝ WHEN ctrl=´0´ ELSEcin <= 0 WHEN ctrl= 0 ELSE˝1˝;

sum <= x0 + x1 + cin;r <= STD LOGIC VECTOR(sum);˝multiplekser + niz invertora˝ <

Arhitektura mikrosistema

_ _ ( )END arch_v2;

p˝oduzimač˝

Page 12: Arhitektura mikrosistema - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konkurentne naredbe1.pdfTp = 10 ms Arhitektura mikrosistema 10 ms 10 ms Generisanje talasnog oblika

Deoba funkcija na primeru komparatoraKomparator (potpuni komparator) gt <= '1' WHEN a > b ELSE

'0';a > b

a < b

'0';lt <= '1' WHEN a < b ELSE

'0';eq <= '1' WHEN a = b ELSEa = b eq <= 1 WHEN a = b ELSE

'0';

ab gt

lt

eq

Arhitektura mikrosistema

eq

Deoba funkcija na primeru komparatora

a je jednako b ako a nije ni ć i j d b

xgt <= '1' WHEN a > b ELSE'0';veće ni manje od b 0 ;

xlt <= '1' WHEN a < b ELSE'0';

gt <= xgt;g glt <= xlt; eq <= xgt NOR xlt;

Još efikasnije (zato što je komparator za ˝=˝ jednostavniji od komparatora za ˝<˝:jednostavniji od komparatora za < :

Arhitektura mikrosistema

Konkurentni kod - Ispitni zadatak

Arhitektura mikrosistema

Konkurentni kod - Ispitni zadatakKonkurentni kod Ispitni zadatakRešenje

Arhitektura mikrosistema

Page 13: Arhitektura mikrosistema - es.elfak.ni.ac.rses.elfak.ni.ac.rs/am/Materijal/Predavanja/Konkurentne naredbe1.pdfTp = 10 ms Arhitektura mikrosistema 10 ms 10 ms Generisanje talasnog oblika

Konkurentni kod - Ispitni zadatak

Arhitektura mikrosistema

Konkurentni kod - Ispitni zadatakKonkurentni kod Ispitni zadatakRešenje

Zašto je neophodanZašto je neophodan pomoćni signal

mux_out ?

Arhitektura mikrosistema