Modelownie ukłdów kombincyjnych w VHDL (c.1) jednostki (entity) i rchitektury (rchitecture) modele prostych brmek w VHDL typ bit i opertory logicne identyfiktory, spcje, komentre listy połąceń prypisni do sygnłu; opóźnieni kluul generic brmki o niewykorystywnych wejścich jednostki testowe PUE-w2 1
Jednostki (entity) i rchitektury (rchitecture) x y nd2 entity : "crn skrynk" końcówkmi we/wy rchitecture : opis funkcji i/lub struktury wewnętrnej entity nd2 is -- deklrcj jednostki port (x,y : in bit; -- opis wejsc : out bit); -- opis wyjsci end entity nd2; rchitecture rch1 of nd2 is -- deklrcj <= x nd y; -- cilo rchitektury end rchitecture rch1; PUE-w2 2
Modele prostych brmek not, or entity not1 is port (x : in bit; : out bit); end entity not1; x y not1 rchitecture rch1 of not1 is -- moe byc rch1 -- bo dotycy innej entity <= not x ; end rchitecture rch1; entity or2 is port (x,y : in bit; : out bit); end entity or2; x y or2 rchitecture rch1 of or2 is -- jesce r rch1 <= x or y ; end rchitecture rch1; PUE-w2 3
Typ bit i jego opertory; współbieżność -- sygnly mją tylko dwie wrtości: 0 lub 1 -- opertory logicne: not -- m njwyżsy priorytet nd, or, nnd, nor, xor, xnor - mją ten sm priorytet (!) -- prykłdy: <= or b nd c; -- =(+b)*c y <= or (b nd c); -- y= +b*c; -- nki <= twor opertor prypisni współbieżnego -- ob sygnły i y yskują nową wrtość w tym smym -- csie, nieleżnie od kolejności instrukcji PUE-w2 4
Identyfiktory, spcje, komentre 1. VHDL nie roróżni wielkości liter 2. Identyfiktor może wierć litery, cyfry i nk podkreśleni _. Pierwsym nkiem musi być liter 3. Wielokrotne nki spcji i nowej linii trktowne są tk, jk pojedynce 4. Komentre ropocynją się podwójnym nkiem minus -- i końcą wr prejściem do nowej linii (nie m komentry blokowych, jk /*.. */ w C) 5. Zsdy stosowni spcji, wcięć, komentry, ngłówk są tkie sme jk w lgorytmicnych jęykch progrmowni PUE-w2 5
Ukłd kombincyjny (rchitektur: wyrżenie logicne ) b c ukomb b c entity ukomb is port (, b, c : in bit; : out bit); end entity ukomb; rchitecture worek of ukomb is <= (not nd b) or ( nd c); end rchitecture worek; PUE-w2 6
Modelownie ukłdu kombincyjnego (rchitektur : list połąceń komponentów) rchitecture list of funkcj_komb is component nd2 is port(x,y: in bit; : out bit); end component nd2; component or2 is port(x,y: in bit; : out bit); end component or2; component not1 is port(x: in bit; : out bit); end component not1; -- deklrcj komponentu signl p, q, r : bit; -- dekl. sygnlow wewnetrnych b1: not1 port mp (, p); -- konkretycj brmki not b2: nd2 port mp (p, b, q); b3: nd2 port mp (=>r,x=>,y=>b); -- inn form b4: or2 port mp (q, r, ); -- kojreni sygn. end rchitecture list; c p b b r q c PUE-w2 7
Modelownie ukłdu kombincyjnego (komponenty biblioteki) b c rchitecture list of funkcj_komb is signl p, q, r : bit; b1: entity work.not1(rch1) port mp (, p); b2: entity work.nd2(rch1) port mp (p, b, q); b3: entity work.nd2(rch1) port mp (, c, r); b4: entity work.or2( rch1) port mp (q, r, ); end rchitecture list; c b p r q -- mist jwnych deklrcji komponentow -- wsknie gdie njduje sie model (bibliotek work ) - i jkiej rchitektury uyc PUE-w2 8
Opóźnienie inercyjne i trnsportowe -- prykłdy prypisń opóźnieniem inercyjnym <= x fter 4 ns; -- spcj miedy 4 ns! <= inertil x fter 4 ns; -- to smo co powyej y <= x nd u fter 8 ns; -- prykłd prypisni opóźnieniem trnsportowym v <= trnsport x fter 4 ns; -- nie usuw krotkich imp. -- wielokrotne miny 'w' w rekcji n 'x' w <= x fter 4 ns, not x fter 8 ns; PUE-w2 9
Kluul generic -- prykłd opóźnieniem prmetrycnym entity And2 is generic ( dely: dely_length); port ( x, y: in bit; : out bit); end entity And2; rchitecture OpPr of And2 is <= x nd y fter dely; end rchitecture OpPr; -- pry umiesceniu brmki n liscie polcen -- ustl sie konkretn wrtosc oponieni, np.5ns: b2: And2 generic mp (5ns) port mp (p, b, q) PUE-w2 10
Kluul generic (c.d.) -- mon deklrowc wrtosc domysln oponieni generic ( dely : dely_length := 5ns ); --... b2: And2 port mp (p, b, q); -- op.5ns --... b2: And2 generic mp (8 ns) port mp (p,b,q); -- op. 8ns --... b2: And2 generic mp (open) port mp (p, b, q); -- op. 5ns PUE-w2 11
Ndmirowe, niepodłącone porty -- brmk o 3 wejscich(x,y,invert) i 2 wyjscich (,o) -- wejscie invert wskuje, cy wyjsci -- mj byc negowne:=nand(x,y), o=nor(x,y) entity universl is port (x, y, invert : in bit;, o : out bit); end entity universl; rchitecture univ of universl is <= (y nd (x xor invert)) or (invert nd not y); o <= (not x nd (y xor invert)) or (x nd not invert); end rchitecture univ; PUE-w2 12
Ndmirowe, niepodłącone porty (c.d) -- by uyc brmke universln jko nd2 -- ustwimy invert n '0' -- wyjscie o poostwimy niepodlcone u0: univerl port mp (x, y, '0',, open); -- wejsci mog byc open tylko gdy podno w. domysln entity universl is port (x, y : in bit; invert: in bit := '0';, o: out bit); end entity universl; --... u0: universl port mp (x, y, open,, open); PUE-w2 13
Jednostki testowe -- jednostk testow dl 2-wejsciowej brmki nd entity TestAnd2 is end entity TestAnd2; rchitecture io of TestAnd2 is component And2 is port (x, y : in bit; : out bit); end component And2; signl,b,c : bit; g1: And2 port mp (x =>, y => b, => c); <= '0', '1' fter 100 ns; b <= '0', '1' fter 150 ns; end rchitecture io; PUE-w2 14
Instrukcj with.. select -- inny sposob opisu brmki AND entity And2 is port (x, y : in bit; : out bit); end entity And2; rchitecture rch3 of And2 is signl xy : bit_vector(0 to 1); xy <= x&y; with xy select <= '1' when "11", '0' when others; end rchitecture rch3; -- jesli mmy kilk rchitektur dl tej smej -- jednostki to domyslnie wykorystuje sie osttni PUE-w2 15
Konstrukcj for.. use -- prykld ukonkretnieni brmki for g1: And2 use entity work.and2(rch1); -- g1 jest etykiet brmki n liscie polcen -- jesli jest wiele brmek o tej smej rchitekt. -- to mon etykiete stpic slowem ll for ll: And2 use entity work.and2(rch1); PUE-w2 16
Pytni i ćwiceni 1. Dlcego w VHDL występują jednostki i rchitektury? 2. Npisć model 3-wejściowej brmki NAND opóźnieniem inercyjnym równym 5ns 3. Sumtor opisny jest nstępującą tblicą prwdy dl sumy S i preniesieni wyjsciowego Co: Wyprowdić wyrżenie n S i Co wykorystując jedynie opertory AND i OR or negcji. Nie uwglednic dnych opoźnień. Npisć w VHDL jednostke testujc sumtor A B Ci S Co 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 PUE-w2 17