Guest User

Untitled

a guest
Sep 13th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VHDL 1.25 KB | None | 0 0
  1. 1 --------------------------------------------
  2. 2 LIBRARY ieee;
  3. 3 USE ieee.std_logic_1164.all;
  4. 4 --------------------------------------------
  5. 5 ENTITY string_detector IS
  6. 6 PORT ( d, clk, rst: IN BIT;
  7. 7 q: OUT BIT);
  8. 8 END string_detector;
  9. 9 --------------------------------------------
  10. 10 ARCHITECTURE my_arch OF string_detector IS
  11. 11 TYPE state IS (zero, one, two, three);
  12. 12 SIGNAL pr_state, nx_state: state;
  13. 13 BEGIN
  14. 14 ----- Lower section: --------------------
  15. 15 PROCESS (rst, clk)
  16. 16 BEGIN
  17. 17 IF (rst='1') THEN
  18. 18 pr_state <= zero;
  19. 19 ELSIF (clk'EVENT AND clk='1') THEN
  20. 20 pr_state <= nx_state;
  21. 21 END IF;
  22. 22 END PROCESS;
  23. 23 ---------- Upper section: ---------------
  24. 24 PROCESS (d, pr_state)
  25. 25 BEGIN
  26. 26 CASE pr_state IS
  27. 27 WHEN zero =>
  28. 28 q <= '0';
  29. 29 IF (d='1') THEN nx_state <= one;
  30. 30 ELSE nx_state <= zero;
  31. 31 END IF;
  32. 32 WHEN one =>
  33. 33 q <= '0';
  34. 34 IF (d='1') THEN nx_state <= two;
  35. 35 ELSE nx_state <= zero;
  36. 36 END IF;
  37. 37 WHEN two =>
  38. 38 q <= '0';
  39. 39 IF (d='1') THEN nx_state <= three;
  40. 40 ELSE nx_state <= zero;
  41. 41 END IF;
  42. 42 WHEN three =>
  43. 43 q <= '1';
  44. 44 IF (d='0') THEN nx_state <= zero;
  45. 45 ELSE nx_state <= three;
  46. 46 END IF;
  47. 47 END CASE;
  48. 48 END PROCESS;
  49. 49 END my_arch;
  50. 50 --------------------------------------------
Add Comment
Please, Sign In to add comment