- Write a paragraph that descibes your approach
to design this circuit using plain text.
- Discuss how a Moore state machine can be
to match the conditions over multiple clock cycles
(4 pts)
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
- Draw a Moore state machine that implements the state machine
described above.
Indicate the name of each state and the value of
HEADER_MATCH in each state.
Draw the state transitions using arrows with labels
that identify the condition for the transition. (5 pts)
- Hint: Both ModelSim and Xilinx include tools
for drawing and implementing state machines.
Alternatively, use a program like Visio or PowerPoint
to generate the graphic, then paste the image
into your solutions.
(4 pts)
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
- Write the VHDL code for the circuit that generates
the header_match signal.
(You will need more space than the area provided below)
(8 pts)
entity Check_Header is
port (
DATA_IN : in std_logic_vector (31 downto 0); -- data
DATAEN_IN : in std_logic; -- data enable
SOF_IN : in std_logic; -- start of frame
SOIP_IN : in std_logic; -- start of ip header
EOF_IN : in std_logic; -- end of frame
SOP_IN : in std_logic; -- start of ip payload
ISTCP_IN : in std_logic; -- is tcp packet
TDE_IN : in std_logic; -- tcp data enable
BYTES_IN : in std_logic_vector (3 downto 0); -- valid bytes
FLOWSTATE_IN : in std_logic_vector (31 downto 0); -- flow id
FLOWSTATE_EN_IN:in std_logic;
NEWFLOW_IN : in std_logic; -- new flow
ENDFLOW_IN : in std_logic; -- end of flow
TCA_IN : out std_logic; -- xmit cell avail
HEADER_MATCH : out std_logic; -- Signal to be generated
end Check_Header;
architecture behavior of Check_Header is
-- internal signals
...
begin -- behavior
match_flop: process (CLK)
begin
if (CLK = '1' and CLK'event) then
if (reset_l = '0') then
HEADER_MATCH <= '0';
else
...
end if;
end if;
end process match_flop;
...
end behavior;
|
- Explain the purpose of the BYTES field, as it is used
for the TCP/IP processor (2 pts)
____________________________________________________________
____________________________________________________________
- Explain how you could use the HEADER_MATCH signal,
in conjunction with the BYTES field, to determine how many bytes of data
pass through the system that matched a given header rule.
(4 pts)
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
- In which Endian format does the TCP/IP wrapper present data?
(1 pt)
____________________
- Describe the purpose of the State Store, as it is used for
the TCP/IP wrappers(2 pts)
____________________________________________________________
____________________________________________________________
- Explain why the ScanApp module requires the use of the a State Store.
(2 pts)
____________________________________________________________
____________________________________________________________