EE 560 - Summer 2024 Digital Systems Design

Week 5

Overview

This lab is a continuation of the Lab 4. You should already have all the skeleton code necessary. Please refer to the lab folder `Labs/Lab04/ even though this is Lab 5.

This lab has 3 parts regarding Tomasulo 3. For this week, you need to complete:

  1. Issue Unit
  2. ROB
  3. Dispatch

Prelab for all Tasks

Review the lectures slides in the shared folder pertaining to each component that you need to complete.

Overview and Structure of Various Parts

File Structure

All of the parts to the Tomasulo 3 labs are organized in a similar way.

Signal Spy

To verify your design, testbench instantiates our full, golden processor design as well as your implementation of the component being tested. We then use the “signal spy” feature of Questa/Modelsim to feed the same input signals from inside our golden design to both our internal golden implementation as well as your design. We similarly take out the internal outputs from our golden implementation of that component and compare them to the outputs you produce in each cycle, looking for (and logging) mismatches. See the diagram below.

Testbench diagram

If all goes, well your outputs will match our golden results in each cycle and the logs will be empty. Your simulation folder will have two output files: TomasuloCompareTestLog.log and Tomasulo_do_file_log.txt.

empty FRL sim folder

So after you follow the simulation steps described in detail below, you can look at the TomasuloCompareTestLog.log to ensure it is empty.

empty log

And, similarly, look at the Tomasulo_do_file_log.txt to see the results from each instruction stream that we use to test your implementation.

do log

Simulation

So for each part described below, you will complete the various incomplete portions of the design code and then simulate it to ensure it matches our expected, golden design. To perform the simulation of a given part (we will use the free register list, frl, as an example), follow the steps outlined below.

Other Notes

Part 1: Issue

Look in the issue subfolders in src/des/, src/tb, and sim for relevant files.

Procedure

There are 6 subtasks outlined the skeleton code that you need to complete. They include:

Submission

submit -user ee560 -tag t3-issue issue.vhd names.txt

Part 2: ROB

Look in the rob subfolders in src/des/, src/tb, and sim for relevant files.

Procedure

There are 2 subtasks outlined the skeleton code that you need to complete. They involve:

Submission

submit -user ee560 -tag t3-rob rob.vhd names.txt

Part 3: Dispatch

Look in the dispatch subfolders in src/des/, src/tb, and sim for relevant files.

Procedure

There are 6 small subtasks outlined the skeleton code as Task1-Task6. They involve:

Submission

submit -user ee560 -tag t3-dispatch dispatch.vhd names.txt