System-on-a-Chip (SoC) Design
EE382V, Fall
2014
Lab #3
Due: 11:59pm, November 3, 2014
Instructions:
•
This lab is a team exercise.
•
Please use the discussion
board of Canvas for Q&A.
•
All reports and code MUST be submitted to the
digital assignment of Canvas.
The goals of this lab are to:
•
Use Xilinx's Vivado
high-level synthesis (HLS) tool to synthesize the Viterbi decoder and generate
Verilog or VHDL code at the register transfer level (RTL).
•
Validate the generated RTL code and compare the
results with the reference C model.
•
Explore various architectural alternatives.
Follow the
Vivado HLS tutorial given in the extra class session
by Xilinx. Please refer to the following materials for additional information:
Starting from your
isolated Viterbi SystemC
module in Lab #2, we will now create a standalone Viterbi function that can be
fed into Vivado HLS for synthesis:
Deliverables:
1)
A README file including how to compile, run and
verify your design
2)
A makefile or script to
compile and/or run your code
3)
All required C or C++ code
4)
Any golden input/output test files
Note: the TA
should be able to run your main program and compare the results using the testbench you provide.
We will now synthesize the standalone Viterbi functionality down to a
cycle-by-cycle RTL description:
•
RTL tool: Auto
•
Specify: Boards -> Filter with Family 'zynq' -> Select 'Zedboard'
Deliverables:
1) A write-up briefly explaining how your RTL Viterbi works and how you validated the RTL design.
Freely explore at least 3 different architectural alternatives using various features offered by Vivado HLS (e.g. unrolling, pipelining, memory optimization, etc.) to come up with an optimal design. Discuss your approaches to different solutions and compare them in terms of various design metrics, i.e. area, latency, throughput, and operating clock frequency.
Deliverables:
2)
A README file including how to run and what to
compare
3)
All required C or C++ code
4)
The directives.tcl files to synthesize/verify your
design
You must submit N numbers of .tcl scripts for
all N solutions you have come up with. The directives.tcl file you are required
to submit is under the Solution_# directory. The TA should be able to
synthesize and verify all your designs.
5)
Generated RTL code for each of the design
alternatives
6)
A write-up in your lab report:
a.
Explain the approaches you have used for each
solution.
b.
Comparison of synthesis results
c.
Discussion of the results
Submit the
following deliverables via Canvas:
- Source code, scripts, and README files