Advertisement
Endrerl

dd

Mar 16th, 2020
365
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. library ieee;
  2. use ieee.std_logic_1164.all;
  3. use ieee.numeric_std.all;
  4.  
  5. entity Delay_gen is
  6. generic(
  7. clk_speed : integer := 50_000_000;
  8. delay_multiplier : integer := 100); --100 is 100Khz(max in normal operation). 25 is max in fastmode ( 400Khz). >100 is less Hz
  9. port (clock_50 : in std_logic;
  10. resetn : in std_logic;
  11. T : out std_logic; -- sender ut T når klokken har telt clk_speed/i2c_speed ganger.
  12. ENABLE : in std_logic);
  13. end;
  14.  
  15. architecture rtl of Delay_gen is
  16.  
  17. constant delay : integer := ((5*delay_multiplier)/clk_speed);
  18. signal teller : integer := 0;
  19.  
  20. begin
  21. -- teller til clk_speed/i2c_speed som er en fast delay mellom endring av signaler
  22. process(clock_50) is
  23. begin
  24. if rising_edge(clock_50) then
  25. if (resetn = '0' or ENABLE = '1') then
  26. teller <= 0;
  27. else
  28. teller <= teller +1;
  29. if teller = delay then
  30. T <= '1';
  31. teller <= 0;
  32. else
  33. T <= '0';
  34. end if;
  35. end if;
  36. end if;
  37. end process;
  38. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement