AXI Traffic Generator to Stream FIFO to Factorial!
Use the AXI Traffic Generator to write five values of n
into an AXI Stream FIFO. (This is instead of writing a C program via
the SDK.) An interface module (that I sometimes refer to as "XFACE")
will recognize when the FIFO contains data, read that data, and pass it
to the factorial module to compute n!.
The value of n! will be captured in a separate output register and
presented to GPIO. (The output register should be cleared when a
computation is initiated, and loaded upon completion.) Perform post-synthesis timing simulation with the following values for n: 4, 6, 8, 10, and 12. Computations must be performed successively, with no resets between calculations.
The traffic generator is
synthesizable, in which case you can
generate a synthesizable model of the block diagram and perform a
post-synth simulation. We won't actually do the Implementation portion
of the Xilinx flow, so you can leave your Factorial module as 32-bits.
The "nice" (?) thing about this project is that you can simulate in
pieces, working your way up, starting with your factorial module.
(Which hopefully will be working from the previous project!). Then,
after studying the FIFO interface, design the XFACE module that will
"present" the value of n
to the factorial and then wait for completion before submitting
another, assuming the FIFO isn't empty. Simulate that, connected to the
factorial. Next, it may be feasible to simulate a FIFO attached to the
XFACE by instantiating it in an SV "top" module (as opposed to the
block diagram). Once all that is working, then develop a block diagram
that includes the traffic generator. Alternatively, you can just plop
the traffic generator and FIFO down on a block diagram, along with a
custom IP containing XFACE, etc. as shown here.
Your XFACE
and factorial should be clocked by the AXI bus clock, so no need for
synchronizers!
Some info on AXI Stream and the AXI FIFO are located under the class
handouts for your convenience. (AMBA Protocols/AXI-Stream and AMBA
Protocols/Xilinx Docs)
Deliverables
Share your entire project tree, including the IP repo via a folder on your UI OneDrive account by the
due date. Upload the assessment and post-synthesis timing simulations in PDF format to Canvas by Apr 26. (No report!)