CSE/CoE 535 |
Acceleration of Algorithms in Reconfigurable Hardware |
Lockwood, Fall 2003 |
Use the document editor of your choice to electronically generate solutions to your homework.
Submit Solutions: A paper copy may be turned in before class starts, or given to Jing or Mike in Bryan 426.
Sudhakar Yalamanchili, VHDL: Starter's Guide: From Simulation to Synthesis, 2001. Chapters 2, 3, 4, 6, 7, 8, and 12.
Figure 1: Interface of a 2-input comparator.
Figure 2: Timing Diagram for Problem 3.
Figure 3: State Machine bubble diagram for Problem 3.
Assume that when OPCODE = "00", the upper input to the Mux is selected; when OPCODE = "01", the middle input to the Mux is selected; the lower input to the Mux is selected when OPCODE takes other values. Given the following input waveforms, draw the waveforms for the Result and c_out signals.
Figure 4: Input waveform.
The Protocol Wrappers provide an abstraction of ATM-based cell processing in order to format input data. In this way, our application can focus on processing data at the IP layer. In order to process packets, the wrappers provide the following interface to the application, as shown in the Figure 5 below.
Figure 5: The Layered Protocol Wrappers - IP Layer Interface
Of interest to us are the signals labeled on
the input side of the network application (the left side). A brief
description of the signals follows.
D_OUT_APPL – This is a 32-bit vector of incoming packet data. Our applications will always operate on 32-bit words.
DataEn_OUT_APPL – When this signal is asserted, the value on D_OUT_APPL is valid. This signal is VERY important and must always be checked prior to operating on data from D_OUT_APPL.
SOF_OUT_APPL – This signal is pulsed at the beginning of a packet to indicate the start of a frame.
SOIP_OUT_APPL – This signal is pulsed at the beginning of the IP packet header. Upon the arrival of the version / header length / type of service / total length word of the IP header, this signal is asserted.
EOF_OUT_APPL – This signal is pulsed to indicate the end of the current frame, that is this will be pulsed upon the arrival of the last word of an IP packet.
SOP_OUT_APPL – This signal is pulsed when the first word of an IP packet's data is available on D_OUT_APPL. In the case where the packet is an UDP packet, this signal will be pulsed when the UDP port word is available.
TCA_OUT_APPL – This signal is used as congestion control. When asserted (NOTE: this signal is asserted low '0'), the network application is communicating that it can no longer accept data from the IP wrapper interface until it has available space. This signal will be asserted when input buffers are full (i.e. the network application is backlogged).
Figure 6 shows a possible timing scenario of these signals when a packet arrives at the network application.
Figure 6: IP Wrapper signal timing.
Some things of interest about Figure 6:
The amount of AAL5 header fields is variable. Thus, the assertion of SOIP_OUT_APPL must be examined.
The amount of IP header fields is variable due to the possibility of specifying options. Thus, the assertion of SOP_OUT_APPL must be examined.
The assertion of DataEn_OUT_APPL must always be checked to ensure valid data is sitting on D_OUT_APPL. Note that in the middle of the packet data, it is de-asserted, signifying the data is not valid. Two cycles later, it is reasserted to specify valid data is arriving on D_OUT_APPL.
The issuance of EOF_OUT_APPL signifies the last valid word of packet data. Following this assertion, there are two words of AAL5 trailer that arrive. For our purposes, these two trailer words can be ignored.
Draw a bubble diagram, similar to that of problem 3 (i.e. similar to Figure 3), of the state machine as is. Mark all transition conditions and output assignments. (3 points)
Explain why the 'clk' signal is not found in the sensitivity list of the process named nextstate nor outputs. (2 points)
Describe how 'soip_out_appl_int' is used within cpp_rules_programmer.vhd. (2 points)