Lab 2 - Nallatech Tutorial (Due Friday, September 25)


Announcement - You will be working in groups of 4 on this project.

Turn in the project using the e-learning website (there is a link of the main course page). Please zip all source files (DimeTalk project, C files, etc.) and attach it to your submission. Please do not turn in files that are generated during synthesis.

Introduction

In this lab, you will be learning the basics of the Nallatech board and the DIMETalk design environment.

Part 1 - Installation/Tutorial

  1. Follow the installation guide.
  2. After installing the tools, perform this tutorial to become familiar with the environment
  3. You will also need these files, which are referenced in the tutorial. You can untar and unzip the file with this command: tar xzvf tutorial.tgz.

Once you are done I highly recommend reading the following. Although not required for this assignment, you will be using these documents on all following projects. If you are uncertain about the functionality of anything in DIMETalk, make sure to find the answer in here, or ask me.

  1. DIMETalk User Guide
  2. DIMETalk Reference Guide

Part 2 - Simple application

In the second part of the lab, you will use what you learned in part 1 to develop a simple application on the Nallatech board.

The architecture will be the same as in the previous tutorial, although if you like, you may modify the size of the blockRAMs (by changing the width of the address lines) to reduce the size of your design.

Once you have created the architecture in DIMETalk, you will write a modified C program that initializes BRAM1 with 10 integers (1 through 10), initializes BRAM2 with 10 integers (11 through 20), and then stores in BRAM3 the product of values form BRAM1 and BRAM2. In other words:

for (i=0; i < 10; i++)
  BRAM3[i] = BRAM1[i] * BRAM2[i];

Of course, this is not the syntax you would use, but this is the behavior that should be achieved. Note that you must read the values from each BRAM as opposed to simply using a temporary array in the C code (in which case no communication with the board would be performed). Also, no VHDL is required for this lab.