Отпремање презентације траје. Молимо да сачекате

Отпремање презентације траје. Молимо да сачекате

Logičko projektovanje računarskih sistema 2

Сличне презентације


Презентација на тему: "Logičko projektovanje računarskih sistema 2"— Транскрипт презентације:

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


Скинути ppt "Logičko projektovanje računarskih sistema 2"

Сличне презентације


Реклама од Google