Advertisement
Guest User

mega_sim

a guest
Nov 20th, 2019
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.15 KB | None | 0 0
  1. ----------------------------------------------------------------------------------
  2. -- Company:
  3. -- Engineer:
  4. --
  5. -- Create Date: 11/20/2019 04:51:33 PM
  6. -- Design Name:
  7. -- Module Name: ent - Behavioral
  8. -- Project Name:
  9. -- Target Devices:
  10. -- Tool Versions:
  11. -- Description:
  12. --
  13. -- Dependencies:
  14. --
  15. -- Revision:
  16. -- Revision 0.01 - File Created
  17. -- Additional Comments:
  18. --
  19. ----------------------------------------------------------------------------------
  20.  
  21.  
  22. library IEEE;
  23. use IEEE.STD_LOGIC_1164.ALL;
  24. use IEEE.STD_LOGIC_UNSIGNED.ALL;
  25.  
  26. ENTITY mealy IS
  27. PORT (
  28. i: IN BIT;
  29. reset, clock:IN BIT;
  30. O: OUT std_logic);
  31. END mealy;
  32.  
  33.  
  34. ARCHITECTURE arc_mealy OF mealy IS
  35.  
  36. TYPE state IS (s0, s1, s2, s3, s4, s5, s6);
  37. SIGNAL pr_state, nx_state: state;
  38.  
  39. BEGIN
  40.  
  41. PROCESS (reset, clock)
  42. BEGIN
  43. IF (reset='1') THEN
  44. pr_state <= s0;
  45. ELSIF (clock'EVENT AND clock='1') THEN
  46. pr_state <= nx_state;
  47. END IF;
  48. END PROCESS;
  49.  
  50. PROCESS (I, pr_state)
  51. BEGIN
  52. CASE pr_state IS
  53.  
  54. WHEN s0 => IF (i = '0') THEN
  55. O <= '1';
  56. nx_state <= s1;
  57. else
  58. O <= '0';
  59. nx_state <= s2;
  60. END IF;
  61.  
  62. WHEN s1 => IF (i = '0') THEN
  63. O <= '1';
  64. nx_state <= s3;
  65. ELSE
  66. O <= '0';
  67. nx_state <= s4;
  68. END IF;
  69.  
  70. WHEN s2 => IF (i= '0') THEN
  71. O <= '0';
  72. nx_state <= s4;
  73. ELSE
  74. O <= '1';
  75. nx_state <= s4;
  76. END IF;
  77.  
  78. WHEN s3 => IF (i = '0') THEN
  79. O <= '0';
  80. nx_state <= s5;
  81. else
  82. O <= '0';
  83. nx_state <= s5;
  84. END IF;
  85.  
  86. WHEN s4 => IF (i = '0') THEN
  87. O <= '1';
  88. nx_state <= s5;
  89. else
  90. O <= '0';
  91. nx_state <= s6;
  92. END IF;
  93.  
  94. WHEN s5 => IF (i = '0') THEN
  95. O <= '0';
  96. nx_state <= s0;
  97. else
  98. O <= '1';
  99. nx_state <= s0;
  100. END IF;
  101.  
  102.  
  103. WHEN s6 => IF ( i = '0') THEN
  104. O <= '1';
  105. nx_state <= s0;
  106. END IF;
  107.  
  108. END CASE;
  109. END PROCESS;
  110. END arc_mealy;
  111.  
  112.  
  113.  
  114. library IEEE;
  115. use IEEE.STD_LOGIC_1164.ALL;
  116. use IEEE.STD_LOGIC_UNSIGNED.ALL;
  117.  
  118.  
  119.  
  120. entity tb_mealy is
  121. end tb_mealy;
  122.  
  123.  
  124. architecture arc_tb_mealy of tb_mealy is
  125.  
  126. component mealy is
  127. PORT (
  128. i: IN BIT;
  129. reset, clock:IN BIT;
  130. O: OUT std_logic);
  131. end component;
  132.  
  133. signal tb_input : bit;
  134. signal tb_rst : bit;
  135. signal tb_clk : bit;
  136. signal tb_output : std_logic;
  137.  
  138. begin
  139. moor : mealy port map(tb_input,tb_rst,tb_clk,tb_output);
  140. tb_rst <='1' after 25 ns,'0' after 30 ns,'1' after 65 ns,'0' after 70 ns;
  141. tb_input <= '0' after 0 ns,'1' after 44ns,'0' after 54 ns,'1' after 60 ns,'0' after 115 ns;-- s0-s1-3 2ns
  142. tb_clk <= '0','1' after 5 ns, '0' after 10 ns, '1' after 15ns, '0' after 20 ns, '1' after 25 ns,'0' after 30 ns,'1' after 35ns, '0' after 40 ns, '1' after 45 ns, '0' after 50 ns, '1' after 55 ns, '0' after 60 ns,'1' after 65 ns, '0' after 70 ns,'1' after 75 ns, '0' after 80 ns, '1' after 85 ns, '0' after 90 ns,'1' after 95 ns, '0' after 100 ns,'1' after 105 ns, '0' after 110 ns,'1' after 115 ns, '0' after 120 ns;--3ns -> s0 +1n
  143. --tb_rst <= ;
  144. --tb_input <= ;--s4
  145. --tb_input <= ;--s5
  146. --tb_rst <= ;
  147. --tb_rst <= ;
  148. --tb_input <=;--s1-s2-s4-s6
  149. --tb_rst <= ;
  150.  
  151. end arc_tb_mealy;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement