Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ----------------------------------------------------------------------------------
- -- Company:
- -- Engineer:
- --
- -- Create Date: 22:04:46 04/26/2017
- -- Design Name:
- -- Module Name: D_LATCH - Behavioral
- ----Napisati VHDL model D leča sa dozvolom upisa koji će modelovati konačnu brzinu prostiranja signala kroz leč.
- ----Vremenske karakteristike D leča koji je potrebno modelovati imaju sledeće vrednosti:
- ----• vreme uspostavljanja, tsu = 2 ns
- ----• vreme držanja, th = 1.5 ns
- ----• kašnjenje na izlazu, tq = 3 ns
- ----Za tako napisani model D leča razviti i potrebno verifikaciono okruženje koje će moći da se
- ----iskoristi za njegovu funkcionalnu verifikaciju.
- ----------------------------------------------------------------------------------
- library IEEE;
- use IEEE.STD_LOGIC_1164.ALL;
- entity D_LATCH is
- Port ( D : in STD_LOGIC;
- LOAD : in STD_LOGIC;
- Q : out STD_LOGIC);
- end D_LATCH;
- architecture Behavioral of D_LATCH is
- constant tsu : time := 2ns;
- constant th : time := 1.5ns;
- constant tq : time := 3ns;
- begin
- D_LATCH : process(D, LOAD) is
- begin
- -- ** Minimalni vremenski interval tokom kojega signal na D ulazu u leč mora biti stabilan pre nailaska
- -- opadajuće ivice load signala naziva se vreme uspostavljanja (setup time), tsu.
- -- ** Minimalni vremenski interval tokom kojega signal na D ulazu u leč mora biti stabilan nakon nailaska
- -- opadajuće ivice load signala naziva se vreme držanja (hold time), th.
- -- ** Poslednji vremenski parametera koji opisuje rad leča, jeste kašnjenje na izlazu Q, tq,
- -- koje se definiše kao maksimalni vremenski interval koji mora da protekne od nailaska opadajuće
- -- ivice load signala nakon kojega Q izlaz dobija novu stabilnu vrednost. Slika 4 ilustruje vremenske karakteristike D leča.
- if(LOAD = '1') then
- Q <= D after tq;
- end if;
- -- SVE SE DESAVA NA OPADAJUCU IVICU!
- -- SVE SE DESAVA NA OPADAJUCU IVICU! zato LOAD = '0'
- -- SVE SE DESAVA NA OPADAJUCU IVICU!
- -- S'EVENT is true if signal S has had an event this simulation cycle.
- -- DESIO SE DOGADJAJ NA LOAD i LOAD je pao na 0,
- -- Stabilan ULAZ je bio krace nego sto je VREME DRZANJA
- -- ODNOSNO VREME DRZANJA JE DUZE NEGO TRAJANJE POSLEDNJEG STABILNOG ULAZA.
- if(LOAD = '0' and LOAD'event and D'last_event < tsu) then
- report("Vreme uspostavljanja nije zadovoljeno!");
- Q <= 'X' after tq;
- end if;
- -- Za LOAD = 0, ULAZ se promenio i proteklo vreme od PADA LOADA NA NULU
- -- je manje od vremena DRZANJA --> VREME DRZANJA KAZE KOLIKO ULAZ TREBA BITI STABILAN
- -- nakon nailaska opadajuce ivice.
- if(LOAD = '0' and D'event and LOAD'last_event < th) then
- report("Vreme drzanja nije zadovoljeno!");
- Q <= 'X' after tq;
- end if;
- end process;
- end Behavioral;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement