Top Banner
Arhitektura mikrosistema Konkurentne naredbe dodele Kôd sadržan u sekciji ARCHITECTURE Konkurentne naredbe dodele: Jednostavna konkurentna naredba dodele Naredba WHEN - uslovna naredba dodele Naredba SELECT - naredba dodele sa izborom vrednosti
41

Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Nov 21, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

Konkurentne naredbe dodele Kôd sadržan u sekciji ARCHITECTURE Konkurentne naredbe dodele: Jednostavna konkurentna naredba dodele Naredba WHEN - uslovna naredba dodele Naredba SELECT - naredba dodele sa izborom

vrednosti

Page 2: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

Jednostavna konkurentna nareba dodele signal <= izraz; 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

Page 3: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

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

enable

sel

++

-1

abc sum

r1r2

r3r4

1

Page 4: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

Konkurentna nareba dodelePrimer: multiplekser 4-u-1LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY 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;

y

a

b

c

d

s1

s0

Nizak nivo opisa

Page 5: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

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 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 OR b) ili (a > b)

˝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

Page 6: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

WHEN - primer

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

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

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

outp <= “010”

Page 7: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

WHEN Primer: MultiplekserLIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY mux IS

PORT ( a,b,c,d : IN STD_LOGIC;sel: IN STD_LOGIC_VECTOR(1 DOWNTO 0);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" ELSEd;

END when_arch;

abcd

y

2sel

00011011

Pokriva sel=˝11˝, ali i sve preostale, nebinarne

kombinacije, kao što su ˝0-˝, ˝LH˝, ˝ZW˝

Page 8: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

WHEN 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));

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;

Dekoder2-u-4

e

d0 y0

y1

y2

y3

d1

e d1 d0 y3 y2 y1 y0

1 0 0 0 0 0 11 0 1 0 0 1 01 1 0 0 1 0 01 1 1 1 0 0 00 X X 0 0 0 0

Page 9: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

WHEN 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" ELSE"01" WHEN x="0010" ELSE"10" WHEN x="0100" ELSE"11";

END when_arch;

Koder4-u-2

x3

x2

x1

x0

y1

y0

x3 x2 x1 x0 y1 y0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 0 1 1 sve ostale komb. - -

Page 10: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

WHEN 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' ELSE"10" WHEN x(2) = '1' ELSE"01" WHEN x(1) = '1' ELSE"00";

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

END when_arch;

Prioritetnikoder4-u-2

x3

x2

x1

x0

y1y0

z

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

Page 11: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

Konceptualna implementacija WHEN naredbesig <= izraz_1 WHEN uslov_1 ELSE

izraz_2;

T

F

izraz_1

izraz_2

uslov_1

sig

Apstraktni multiplekser:T (true) - uslov je tačan

F (false) - uslov je netačan

Konceptualnidijagram

Page 12: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

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;

T

F

izraz_1

izraz_2

izraz_3

izraz_4

uslov_3

T

F

T

F

uslov_2

uslov_1

sig

Page 13: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

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

´1´;. . .

T

F

=ab

y0

1

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

ab

1

0y

U sintezi STD_LOGIC ima dve vrednosti: ‘0’ i ‘1’

U sintezi T - ‘1’, F - ‘0’

Page 14: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

Konceptualna implementacija WHEN naredbe - primerSIGNAL a,b,f : UNSIGNED(7 DOWNTO 0);SIGNAL x,y : UNSIGNED(3 DOWNTO 0);. . .f <= a+b WHEN x+y>1 ELSE

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

. . .

T

F

T

Ff

a+b

a-b-1

a+1

x>y and y!=0

x+y>1

+

- -1

+1

>

!=

+

T

F

T

F

0

>1

xy

ab

f

Nije kraj sinteze !Sledi zamen apstraktnih blokova

Odgovarajućim modulima realizovanim pomoću logičkih kola

Page 15: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

SELECET - naredba dodele sa izborom vrednosti Sintaksa:

WITH selekcioni_izraz SELECTsig <= izraz_1 WHEN vrednost_1,

izraz_2 WHEN vrednost_2,...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 javilo slaganje.

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

˝WHEN vrednost˝ može biti: WHEN vrednost; -- jedinstvena vrednost WHEN vrednost_1 TO vrednost_2; -- opseg vrednosti WHEN vrednost_1 | vrednost_2 | vrednost_3 ... -- više vrednosti

Page 16: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

SELECT Dozvoljeno korišćenje reči OTHERS:

WITH selekcioni_izraz SELECTsig <= izraz_1 WHEN vrednost_1,

izraz_2 WHEN vrednost_2,...izraz_n WHEN OTHERS;

Primer:WITH contol SELECT

outp <= “000” WHEN “00”“111” WHEN “01” | “10”“010” WHEN OTHERS;

Bira se ako vrednost selekcionog izraza nije

jednaka ni jednoj navedenoj vrednosti

Page 17: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

Realizacija tabele istinitosti

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

1 --------------------------------------------- 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); 8 END tabela_istinitosti; 9---------------------------------------------- 10 ARCHITECTURE arch OF tabela_istinitosti IS 11 SIGNAL tmp : STD_LOGIC_VECTOR(1 DOWNTO 0); 12 BEGIN 13 tmp <= a & b; 14 WITH tmp SELECT 15 y <= '0' WHEN "00", 16 '1' WHEN "01", 17 '1' WHEN "10",, 18 '1' WHEN OTHERS; 19 END arch;

Page 18: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

OTHERS grana je neophodna kad se radi s tipom std_logic !

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

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

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

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

Page 19: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

SELECTPrimer: 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;

abcd

y

2sel

00011011

Page 20: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

SELECTPrimer: Dekoder

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

BEGINed <= e & d;WITH ed SELECTy <= "1000" WHEN "100",

"0100" WHEN "101","0010" WHEN "110","0001" WHEN "111","0000" WHEN OTHERS;

END select_arch;

Dekoder2-u-4

e

d0 y0

y1

y2

y3

d1

Page 21: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

SELECTPrimer: KoderARCHITECTURE select_arch OF encoder ISBEGIN

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

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

END select_arch;

Koder4-u-2

x3

x2

x1

x0

y1

y0

x3 x2 x1 x0 y1 y0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 0 1 1 sve ostale komb. - -

Page 22: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

SELECTPrimer: Prioritetni koder

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",

'1' WHEN OTHERS;END select_arch;

Prioritetnikoder4-u-2

x3

x2

x1

x0

y1y0

z

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

Page 23: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

Konceptualna implementacija naredbe SELECTWITH sel SELECT

sig <= izraz_1 WHEN v1,izraz_2 WHEN v2,

...izraz_n WHEN vn;

WITH sel SELECTsig <= izraz_1 WHEN v1,

izraz_2 WHEN v2,

izraz_3 WHEN OTHERS

izraz_1

izraz_2

izraz_n

sel

v1

sig

v2

vn

.

.

....

izraz_1

izraz_2

izraz_3

v1

v2

v3

v4

v5

sel

sig

Page 24: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

and

or

11

10

01

00

x

ab

0

s

x

ab

0

s(1)

s(0)

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

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

. . .

Page 25: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

Konceptualna 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;

. . .

11

10

01

00

+1

-

+

-1

a

b

s

r

Page 26: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

Optimizacija konkurentnog koda Cilj: sa što manje hardverskih resursa

realizovati željenu funkciju Minimizacija broja aritmetičkih i relacionih

operatora u kodu Dve tehnike: Deoba operatora i Deoba funkcija

Page 27: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

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

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

r <= a + b WHEN uslov ELSEa + c;

uslov

+ TF

+

ab

c

ostaliulazi

r

+

uslov

TF

ra

b

costaliulazi

x

x <= b WHEN uslov ELSEc;

r <= a + x;

Page 28: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

Složenost vs. kašnjenje

uslov

+ TF

+

ab

c

ostaliulazi

r

+

uslov

TF

ra

b

costaliulazi

x

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

Složenost: 2 sabirača + multiplekser

Kašnjenje: Tsab + Tuslov + Tmux

Složenost: 1 sabirač + multiplekser

Page 29: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

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

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

+

+

ab

c

+1d

00011011

uslovostaliulazi

r

00011011

00011011

+ r

uslovostaliulazi

a

d

bc1

x0

x1

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

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

c WHEN ˝01˝,˝00000001˝ WHEN OTHERS;

r <= x0 + x1;

Nivo ostvarene uštede zavisi od relativnog odnosa složenosti operatora i dodatnih multipleksera

Page 30: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

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

ili se jedna funkcija koristi za realizaciju neke druge funkcije.

+

-

ab 0

1

ctrl

r

ctrl operacija 0 a + b 1 a - b

ARCHITECTURE arch_v1 OF ADDSUB ISSIGNAL x0, x1, sum : SIGNED(7 DOWNTO 0);BEGINx0 <= SIGNED(a);x1 <= SIGNED(b);sum <= x0 + x1 WHEN ctrl = ‘0’ ELSE

x0 - x1;r <= STD_LOGIC_VECTOR(sum);END arch_v1;

Sabirač/oduzimač

Funkcionalna tabela

Page 31: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

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

+01

rab

ctrl

cin

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

a - b = a + b’ + 1 ARCHITECTURE arch_v2 OF ADDSUB ISSIGNAL x0, x1, sum : UNSIGNED(7 DOWNTO 0)SIGNAL cin : UNSIGNED(0 DOWNTO 0); BEGINx0 <= UNSIGNED(a);x1 <= UNSIGNED(b) WHEN ctrl=´0´ ELSE

UNSIGNED(NOT b);cin <= ˝0˝ WHEN ctrl=´0´ ELSE

˝1˝;sum <= x0 + x1 + cin;r <= STD_LOGIC_VECTOR(sum);END arch_v2;

˝multiplekser + niz invertora˝ < ˝oduzimač˝

Page 32: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

Deoba funkcija na primeru komparatora

Ka

b

gtlteq

a > b

a < b

a = b

Komparator (potpuni komparator)gt <= '1' WHEN a > b ELSE

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

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

'0';

>

<

=

ab gt

lt

eq

Page 33: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

Deoba funkcija na primeru komparatora

>

<

ab gt

lteq

a je jednako b, ako a nije ni veće ni manje od b

xgt <= '1' WHEN a > b ELSE'0';

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

gt <= xgt;lt <= xlt; eq <= xgt NOR xlt;

Još efikasnije:

>

=

ab gt

lteq

Page 34: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

Tipovi podataka iz paketa IEEE numeric_std Uključuje se sa:

LIBRARY IEEE; USE IEEE.NUMERIC_STD.ALL;

Podrška za aritmetičke operacije Uvodi dva tipa podataka:

UNSIGNED – za neoznačene binarne brojeve SIGNED – za označene binarne brojeve

SIGNAL a, b : SIGNED(7 DOWNTO 0);

SIGNAL x : UNSIGNED(7 DOWNTO 0);

Page 35: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

Označeni i neoznačeni brojevi Šta predstavlja ˝˝1100˝ ? Zavisi od konteksta (tipa signala/varijable kome se dodeljuje) a <= ˝1100˝

a je tipa std_logic_vector Niz od 4 nezavisna bita

a <= ˝˝1100˝ a je tipa unsigned Neoznačen binarni broj, vrednosti 12

a <= ˝˝1100˝ a je tipa signed Označen binarni broj, vrednosti -4

Page 36: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

Operacije nad UNSIGNED i SIGNED

SIGNAL au, bu, cu, du, eu : UNSIGNED(7 DOWNTO 0);SIGNAL as, bs, cs, ds : SIGNED(7 DOWNTO 0);. . .au <= bu + cu; -- unsigned i unsigneddu <= cu + 1; -- unsigned i naturaleu <= (3 + au + bu) - cu; -- unsigned i naturalas <= bs + cs; -- signed i signedds <= bs – 1; -- signed i integer

Page 37: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

Dozvoljene i nedozvoljene operacijeLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.NUMERIC_STD.ALL;. . .SIGNAL a, b, c: SIGNED(7 DOWNTO 0);SIGNAL x, y, z: STD_LOGIC_VECTOR(7 DOWNTO 0);. . .c <= a + b; -- ispravno, aritmetičke operacije su dozvoljene nad tipom signedc <= a AND b; -- neispravno, logičke operacije nisu dozvoljene nad tipom signedz <= x + y; -- neispravno, aritmetičke operacije nisu dozvoljene nad -- tipom std_logic_vectorz <= x AND y; -- ispravno, logičke operacije su dozvoljene u tipu std_logic_vector

Page 38: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

Relacije nad UNSIGNED/SIGNED Da li važi ˝011˝ > ˝1000˝ ? Ako su: Std_logic_vector: NETAČNO Unsigned: NETAČNO

˝011˝ je 3, a ˝1000˝ je 8 Signed: TAČNO

˝011˝ je 3, a ˝1000˝ je -8

Page 39: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

Funkcije za konverziju iz paketa numeric_stdIz tipa U tip Funkcija za konverziju /

eksplicitna konverzija

unsigned, signed std_logic_vector std_logic_vector(a)

signed,std_logic_vector

unsigned unsigned(a)

unsigned,std_logic_vector

signed signed(a)

unsigned, signed integer to_integer(a)

natural unsigned to_unsigned(a, size)

integer signed to_signed(a, size)

Page 40: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

Eksplicitna konverzija tipa

SIGNAL u1, u2 : UNSIGNED(7 DOWNTO 0);SIGNAL v1, v2 : STD_LOGIC_VECTOR(7 DOWNTO 0);. . .u1<= UNSIGNED(v1); -- konvertuje std_logic_vector u unsignedv2<= STD_LOGIC_VECTOR(u1); -- konvertuje unsigned u std_logic_vector

Za konverziju podataka između tipova std_logic_vector, unsigned i signed

Page 41: Konkurentne naredbe dodele - es.elfak.ni.ac.rs

Arhitektura mikrosistema

Funkcija za konverziju

SIGNAL u: UNSIGNED(7 DOWNTO 0);

u <= 5;-- neispravno, neusklađeni tipovi

u <= TO_UNSIGNED(5, 8);

Treba ovako: Broj bita u rezultujućoj

binarnoj vrednosti

Vrednost koja se

konvertuje