Spring 2006
EE 382V – System on Chip
LAB #3
DEADLINE 11:59pm, Apr 9th (Sunday)
0. NOTICE
- Please use the forum of Blackborad (https://courses.utexas.edu/webapps/portal/frameset.jsp) for all the questions.
- 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. You may use the
Platform Creator to make a synthesizable SystemC code.
This will give
you a GUI-like environment to make the synthesizable code from basic blocks.
Please refer to this tutorial.
C. 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.
D.
You may use the VLSI2 power template
for power estimation.
Any reasonable
assumption can be made using this for your own purpose.
b) ConvergenSC provides a way of profiling the performance of a design.
If you did NOT get through
ConvergenSC 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.
2) Viterbi decoder
a) The viterbi decoder module from Lab2 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. Please talk to TA for further information.
-
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, estimate the delay in # of clock cycles as in this example.
D. Run ConvergenSC simulation and verify functionality as in LAB2.
b) Measure the # of cycles taken with pure software of MSCMLC for the golden input of LAB2.
c) Measure the # of cycles taken with MSCMLC and viterbi decoder for the golden input of LAB2.
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