Spring 2007
EE 382V – System on Chip
LAB #4
NOT YET ASSIGNED
DEADLINE: Same as the project due date
0. NOTICE
- Please use the discussion board of Blackborad (https://courses.utexas.edu/webapps/portal/frameset.jsp) for Q&A.
- All reports/codes MUST be submitted to the Digital DropBox of Blackboard.
1. Overview
The Goal of this lab is to
1) Understand HW/SW design tradeoffs.
2) Evaluate performance of the HW accelerator with the mectrics from PRD.
The Assignment of this lab includes the following.
1) Creating a synthesizable SystemC module.
2) Measuring an area of viterbi decoder.
3) Estimating performance improvement due to viterbi decoder.
2. LAB
1) Tutorials
a) Synthesizable SystemC module
A. Download butterfly test program shows both behavioral SystemC model and synthesizable SystemC model.
Please take a closer look at the source code and run the program for better understanding.
You should be able to notice that a
synthesizable SystemC model is highly modularized and structured as in Verilog
design.
B. The area and speed of this butterfly implementation can be estimated based on basic block library as in this example.
Note that
you may use this source code for both this lab and project.
C.
You may use the VLSI2 power template
for power estimation.
Any reasonable
assumption can be made using this for your own purpose.
b) CoMET provides a way of profiling the performance of a design.
If you did NOT get through
CoMET tutorial of Lab1, please do it NOW!
c) This slide contains example of how to measure speed and power.
d)
Don't pay too much attention on optimizing size and speed. Converting to
synthesizable code is first priority.
You will do optimization while you are doing project.
e) Please refer to following example for clock synchronized operation of peripherals in VaST tool. Note the "Add" function in example_display.h, study the code, run the project and observe the output for a better understanding of how to implement delays (for operations that involve multiple cycles) using the environment.
2) Viterbi decoder
a) The viterbi decoder module from Lab3 must be modified as follows.
A. Convert your viterbi decoder module into a synthesizable SystemC module using block in basic block library.
- If you need any special block which is not in basic block library, such block should be written in Verilog and synthesized.
- This is the Verilog
synthesis example in Design Compiler.
B. Estimate the area of your viterbi decoder and the speed of every sub module. You may try to optimize slack by using the smallest block for non-critical path.
C. For every operation of viterbi decoder, estimates the delay in # of clock cycles as in this example.
D. Run CoMET simulation and verify functionality as in LAB3.
b) Measure the # of cycles taken with pure software of MSCMLC for the golden input of LAB2/LAB3.
c) Measure the # of cycles taken with MSCMLC and viterbi decoder for the golden input of LAB2/LAB3.
If you send any data to DISPLAY MODULE, it will print out the clock cycle.
3. Submission
Relevant Web Pages
Hardware optimized Viterbi Decoding algorithm
Design and implementation of a Viterbi decoder using FPGAs
Locally connected VLSI architectures for the Viterbi
algorithm
A low complexity soft-output Viterbi decoder architecture