Advertisement
milanmetal

[VHDL] D-Latch // TSU, TH, TQ

Apr 26th, 2017
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VHDL 2.83 KB | None | 0 0
  1. ----------------------------------------------------------------------------------
  2. -- Company:
  3. -- Engineer:
  4. --
  5. -- Create Date:    22:04:46 04/26/2017
  6. -- Design Name:
  7. -- Module Name:    D_LATCH - Behavioral
  8.  
  9. ----Napisati VHDL model D leča sa dozvolom upisa koji će modelovati konačnu brzinu prostiranja signala kroz leč.
  10. ----Vremenske karakteristike D leča koji je potrebno modelovati imaju sledeće vrednosti:
  11. ----• vreme uspostavljanja, tsu = 2 ns
  12. ----• vreme držanja, th = 1.5 ns
  13. ----• kašnjenje na izlazu, tq = 3 ns
  14. ----Za tako napisani model D leča razviti i potrebno verifikaciono okruženje koje će moći da se
  15. ----iskoristi za njegovu funkcionalnu verifikaciju.
  16. ----------------------------------------------------------------------------------
  17. library IEEE;
  18. use IEEE.STD_LOGIC_1164.ALL;
  19.  
  20. entity D_LATCH is
  21.     Port ( D :      in  STD_LOGIC;
  22.            LOAD :   in  STD_LOGIC;
  23.            Q :      out  STD_LOGIC);
  24. end D_LATCH;
  25.  
  26. architecture Behavioral of D_LATCH is
  27.     constant tsu : time := 2ns;
  28.     constant th :   time := 1.5ns;
  29.     constant tq :   time := 3ns;
  30. begin
  31.     D_LATCH : process(D, LOAD) is
  32.     begin
  33.         -- ** Minimalni vremenski interval tokom kojega signal na D ulazu u leč mora biti stabilan pre nailaska
  34.         --    opadajuće ivice load signala naziva se vreme uspostavljanja (setup time), tsu.
  35.         -- ** Minimalni vremenski interval tokom kojega signal na D ulazu u leč mora biti stabilan nakon nailaska
  36.         --    opadajuće ivice load signala naziva se vreme držanja (hold time), th.
  37.         -- ** Poslednji vremenski parametera koji opisuje rad leča, jeste kašnjenje na izlazu Q, tq,
  38.         --    koje se definiše kao maksimalni vremenski interval koji mora da protekne od nailaska opadajuće
  39.         --    ivice load signala nakon kojega Q izlaz dobija novu stabilnu vrednost. Slika 4 ilustruje vremenske karakteristike D leča.
  40.         if(LOAD = '1') then
  41.             Q <= D after tq;
  42.         end if;
  43.        
  44.         -- SVE SE DESAVA NA OPADAJUCU IVICU!
  45.         -- SVE SE DESAVA NA OPADAJUCU IVICU! zato LOAD = '0'
  46.         -- SVE SE DESAVA NA OPADAJUCU IVICU!
  47.        
  48.        
  49.         -- S'EVENT    is true if signal S has had an event this simulation cycle.
  50.  
  51.        
  52.         -- DESIO SE DOGADJAJ NA LOAD i LOAD je pao na 0,
  53.         -- Stabilan ULAZ je bio krace nego sto je VREME DRZANJA
  54.         -- ODNOSNO VREME DRZANJA JE DUZE NEGO TRAJANJE POSLEDNJEG STABILNOG ULAZA.
  55.         if(LOAD = '0' and LOAD'event and D'last_event < tsu) then
  56.             report("Vreme uspostavljanja nije zadovoljeno!");
  57.             Q <= 'X' after tq;
  58.         end if;
  59.  
  60.         -- Za LOAD = 0, ULAZ se promenio i proteklo vreme od PADA LOADA NA NULU
  61.         -- je manje od vremena DRZANJA --> VREME DRZANJA KAZE KOLIKO ULAZ TREBA BITI STABILAN
  62.         -- nakon nailaska opadajuce ivice.
  63.         if(LOAD = '0' and D'event and LOAD'last_event < th) then
  64.             report("Vreme drzanja nije zadovoljeno!");
  65.             Q <= 'X' after tq;
  66.         end if;
  67.        
  68.     end process;
  69.  
  70. end Behavioral;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement