use IEEE.STD_LOGIC_1164.ALL; entity VHDL_MOORE_FSM is port ( clock: in std_logic; --- clock signal reset: in std_logic; -- active high async reset input X : in std_logic; -- binary sequence input Z : out std_logic -- output of the VHDL FSM ); end VHDL_MOORE_FSM; architecture Behavioral of

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question
100%

Given the VHDL code:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity VHDL_MOORE_FSM is
port ( clock: in std_logic; --- clock signal
reset: in std_logic; -- active high async reset input
X : in std_logic; -- binary sequence input
Z : out std_logic -- output of the VHDL FSM
);
end VHDL_MOORE_FSM;

architecture Behavioral of VHDL_MOORE_FSM is
type MOORE_FSM is (S0,S1,S2,S3,S4);
signal current_state, next_state: MOORE_FSM;
begin
-- Sequential memory of the VHDL MOORE FSM
process(clock,reset)
begin
if(reset='1') then
current_state <= S0; --initial state considered as S0
elsif(rising_edge(clock)) then
current_state <= next_state;
end if;
end process;
-- Next state logic of the VHDL MOORE FSM Sequence Detector
-- Combinational logic
process(current_state,X)
begin
case(current_state) is
when S0=>
if(X='1') then -- "1"
next_state <= S1;
else
next_state <= S0;
end if;
when S1 =>
if(X='1') then -- "1"
next_state <= S3;
else
next_state <= S2;
end if;
when S2 =>
if(X='1') then -- "1"
next_state <= S2;
else
next_state <= S4;
end if;
when S3 =>
if(X='1') then -- "1"
next_state <= S2;
else
next_state <= S4;
end if;
when S4=>
next_state <= S0;
when others => next_state <= S0;
end case;
end process;
-- Output logic of the VHDL MOORE FSM
process(current_state)
begin
case current_state is
when S0 => Z <= '0';
when S1 => Z <= '0';
when S2 => Z <= '0';
when S3 => Z <= '0';
when S4 => Z <= '1';
when others => Z <= '0';  
end case;
end process;
end Behavioral;

Question: Write a TEST BENCH for this VHDL code. Add a SLOW CLOCK to the code.

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY