Скинути презентацију
Отпремање презентације траје. Молимо да сачекате
1
Logičko projektovanje računarskih sistema 2
L05. Sekvencijalne mreže
2
Da ponovimo ... kombinacione mreže
process (iA, iB, iSEL) begin case (iSEL) is when “00” => oY <= iA + iB; -- operacije when “01” => oY <= iA + 1; -- su samo when “10” => oY <= iA - 1; -- primer when “11” => oY <= iA(7) & iA(7 downto 1); when others => oY <= “0000”; end case; end process; Ostalo od prošlog puta: aritmetika (ponovi II komplement, sabiranje, pomeranje, ALU – statusni biti) 06 Mar 2019 L05. Sekvencijalne mreže
3
Pitanja? O čemu treba voditi računa kada opisujemo kombinacione mreže?
Da li znate da opišete sve standardne kombinacione mreže? Da li znate da opišete proceduru provere sistema (Test Bench)? Da li znate sve predstave negativnih brojeva i njihova pomeranja? Nismo raditi Test Bench – sumiraj! 06 Mar 2019 L05. Sekvencijalne mreže
4
Šta ne možemo još da napravimo?
Funkcija sistema: Ako pritisnemo dugme: Ako je svetlo upaljeno, ugasi ga Ako je svetlo ugašeno, upali ga Ako ne pritisnemo dugme: Ako je svetlo upaljeno, upali ga Ako je svetlo ugašeno, ugasi ga dugme svetlo Svetlo nije funkcija samo dugmeta! Tabela funkcije sistema? 06 Mar 2019 L05. Sekvencijalne mreže
5
Šta nam treba da bismo to napravili?
dugme Ulazi: Dugme Trenutna vrednost svetla Izlaz: Naredna vrednost svetla svetlo svetlo Tabela funkcije sistema? Ne smemo napraviti kombinacionu petlju! 06 Mar 2019 L05. Sekvencijalne mreže
6
Šta nam treba da bi to napravili?
dugme svetlo [n+1] svetlo [n] svetlo [n] trigger Memorija Povratna sprega! 06 Mar 2019 L05. Sekvencijalne mreže
7
Osnovne sekvencijalne mreže
06 Mar 2019 L05. Sekvencijalne mreže
8
Kako napraviti memorijski element?
Kondenzator? Šta se dešava ako invertore povežemo sa povratnom spregom? 06 Mar 2019 L05. Sekvencijalne mreže
9
Treba nam mogućnost izbora promene ...
iD D Latch iSEL 06 Mar 2019 L05. Sekvencijalne mreže
10
Karakteristike komponente Latch
Ima mogućnost pamćenja starog stanja, dok god je selekcioni ulaz neaktivan i tada nema kombinacione veze ulaza sa izlazom. Menja vrednost ako je selekcioni izlaz aktivan i tada formira direktnu kombinacionu vezu ulaza sa izlazom. Bilo bi dobro da u oba slučaja nemamo kombinacionu vezu ulaza sa izlazom jer nam treba petlja, a ne želimo da bude kombinaciona! Ideje? 06 Mar 2019 L05. Sekvencijalne mreže
11
D registar oQ iD not(iSEL) iCLK iSEL 06 Mar 2019
L05. Sekvencijalne mreže
12
Karakteristike komponente D-registar
Ima mogućnost pamćenja starog stanja, dok god je selekcioni ulaz na konstantnoj vrednosti i tada nema kombinacione veze ulaza sa izlazom. Menja vrednost na rastućoj ili opadajućoj ivici selekcionog signala i tada nema kombinacione veze ulaza sa izlazom. Nikada nema kombinacionu vezu ulaza sa izlazom! Može da se iskoristi za memorijski element u sekvencijalnoj mreži. 06 Mar 2019 L05. Sekvencijalne mreže
13
Specijalni ulazi D-registra
Signal takta (iCLK) Periodičan signal sa faktorom ispune 50% Osetljivost na rastuću ili opadajuću ivicu Signal reseta (iRST, inRST) Vraća registar u početno stanje (u Spartan6 arhitekturi mora na 0) Aktivan na visokoj ili niskoj logičkoj vrednosti Dva tipa reseta: Asinhron reset (podržan arhitekturom registra) Sinhron reset (deo logike na ulazu registra) 06 Mar 2019 L05. Sekvencijalne mreže
14
VHDL opis sekvencijalnih mreža
Sekvencijalne mreže se mogu opisati pomoću sekvencijalnog procesa. Svaka memorijska komponenta (D-registar) mora biti opisana kao interni signal osim ukoliko je: direktno vezana na izlaz i njena naredna vrednost ne zavisi od prethodne vrednosti. 06 Mar 2019 L05. Sekvencijalne mreže
15
VHDL Sekvencijalni proces – asinhroni reset
process (iCLK, inRST) begin if (inRST = ‘0’) then sREG <= (others => ‘0’); elsif (iCLK’event and iCLK = ‘1’) then -- opis logike promene vrednosti -- sREG <= ... end if; end process; 06 Mar 2019 L05. Sekvencijalne mreže
16
VHDL Sekvencijalni proces – sinhroni reset
process (iCLK) begin if (iCLK’event and iCLK = ‘1’) then if (inRST = ‘0’) then sREG <= (others => ‘0’); else -- opis logike promene vrednosti -- sREG <= ... end if; end process; 06 Mar 2019 L05. Sekvencijalne mreže
17
© 123RF 06 Mar 2019 L05. Sekvencijalne mreže
18
Standardne sekvencijalne mreže
06 Mar 2019 L05. Sekvencijalne mreže
19
Registar process (iCLK, inRST) begin if (inRST = ‘0’) then sREG <= (others => ‘0’); elsif (iCLK’event and iCLK = ‘1’) then sREG <= iD; end if; end process; 06 Mar 2019 L05. Sekvencijalne mreže
20
Registar – varijacije ponašanja
Dozvola upisa u registar if (iEN = ‘1’) then sREG <= iD; end if; 06 Mar 2019 L05. Sekvencijalne mreže
21
Pomerački registar process (iCLK, inRST) begin if (inRST = ‘0’) then sREG <= (others => ‘0’); elsif (iCLK’event and iCLK = ‘1’) then -- primer: logičko pomeranje u levo sREG <= sREG(6 downto 0) & ‘0’; end if; end process; 06 Mar 2019 L05. Sekvencijalne mreže
22
Pomerački registar – podsetnik pomeranja
Logičko pomeranje u levo / desno Aritmetičko pomeranje u levo / desno (II komplement) VHDL (primer logičkog pomeranja u levo) oY <= iX(6 downto 0) & ‘0‘; 7 6 5 4 3 2 1 7 6 5 4 3 2 1 6 5 4 3 2 1 ‘0’ ‘0’ 7 6 5 4 3 2 1 7 6 5 4 3 2 1 7 6 5 4 3 2 1 6 5 4 3 2 1 ‘0’ 7 6 5 4 3 2 1 06 Mar 2019 L05. Sekvencijalne mreže
23
Pomerački registar – podsetnik pomeranja
Aritmetičko pomeranje u predstavi znak-moduo Aritmetičko pomeranje u predstavi I komplementa 7 6 5 4 3 2 1 7 6 5 4 3 2 1 7 5 4 3 2 1 ‘0’ 7 ‘0’ 6 5 4 3 2 1 7 6 5 4 3 2 1 7 6 5 4 3 2 1 6 5 4 3 2 1 7 7 6 5 4 3 2 1 06 Mar 2019 L05. Sekvencijalne mreže
24
Pomerački registar – varijacije ponašanja
Dozvola pomeranja if (iEN = ‘1’) then sREG <= sREG(6 downto 0) & ‘0’; end if; 06 Mar 2019 L05. Sekvencijalne mreže
25
Pomerački registar – varijacije ponašanja
Paralelni upis nove vrednosti if (iLOAD = ‘1’) then sREG <= iD; else sREG <= sREG(6 downto 0) & ‘0’; end if; 06 Mar 2019 L05. Sekvencijalne mreže
26
Pomerački registar – varijacije ponašanja
Različiti tipovi pomeranja if (iDIR = ‘1’) then sREG <= sREG(7) & sREG(7 downto 1); else sREG <= sREG(6 downto 0) & ‘0’; end if; 06 Mar 2019 L05. Sekvencijalne mreže
27
Barrel pomerač 06 Mar 2019 L05. Sekvencijalne mreže
28
Brojač process (iCLK, inRST) begin if (inRST = ‘0’) then sREG <= (others => ‘0’); elsif (iCLK’event and iCLK = ‘1’) then sREG <= sREG + 1; end if; end process; 06 Mar 2019 L05. Sekvencijalne mreže
29
Brojač – varijacije ponašanja
Dozvola brojanja, smer brojanja, korak brojanja if (iEN = ‘1’) then sREG <= sREG - 4; end if; 06 Mar 2019 L05. Sekvencijalne mreže
30
Brojač – varijacije ponašanja
Paralelni upis nove vrednosti if (iLOAD = ‘1’) then sREG <= iD; else sREG <= sREG + 1; end if; 06 Mar 2019 L05. Sekvencijalne mreže
31
Brojač – varijacije ponašanja
Moduo brojanja if (sCNT = 99) then sREG <= (others => ‘0’); else sREG <= sREG + 1; end if; 06 Mar 2019 L05. Sekvencijalne mreže
32
Brojač – varijacije ponašanja
Terminal Count – komparator sTC <= ‘1’ when sCNT = 99 else ‘0’; 06 Mar 2019 L05. Sekvencijalne mreže
33
Složeni sekvencijalni sistemi
Kako se ponaša sistem kada registri pričaju među sobom? Redna veza registara i kombinacionih mreža Protočnost podataka Ako bude vremena, uraditi primer protočnosti podataka kroz neko računanje kroz nekoliko registara. 06 Mar 2019 L05. Sekvencijalne mreže
34
Provera rada sekvencijalnih sistema
Stimulus proces treba da počne sa resetom sistema inRST <= ‘0’; wait for 5 * iCLK_period; inRST <= ‘1’; Nakon toga vreme igra ulogu, paziti koliko taktova traje ulaz! 06 Mar 2019 L05. Sekvencijalne mreže
35
06 Mar 2019 L05. Sekvencijalne mreže
Сличне презентације
© 2023 SlidePlayer.rs Inc.
All rights reserved.