lapd-soc / ECE571_Drone

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

This readme document describes how to setup and run the drone module
on the veloce emulator.

Setup:
1. Please follow the guidelines posted at the following URL for environment setup and accessing file storage which is accessable to the emulator:
http://web.cecs.pdx.edu/~faustm/ece571/resources/Veloce_SetupUsage_OS3.pdf
2. As per the above documentation, enviroment setup was successful if the appropriate responses are received when issuing the following commands:
Command  - echo $VELOCE_BASE
Response - /pkgs/mentor/veloce/v3007
Command  - echo $VMW_HOME
Response - /pkgs/mentor/veloce/v3007/Veloce_v3.0.0.7
3. Connect to the veloce emulator using either putty, ssh, or other means (detailed in enviroment setup document)
4. Copy ECE571_Drone.tar.gz to a folder which is accessible to the veloce emulator.
5. Unzip the package using  the following command:
tar -xvjf ECE571_Drone.tar.gz
6. Change file permissions on the folder:
chmod 0755 -R ./ECE571_Drone
7. Change to that directory:
cd ECE571_Drone

Running the entire flow (assuming a command prompt is available in the ECE571_Drone directory):
1. Check that nobody else is using the emulator (see environment setup documentation)
2. A build script has been provided to run the entire flow. All steps can be run using the following command (will run on the emulator):
./BuildDrone.bash -a -m veloce
3. If everything runs correctly, it will map work libraries, build/analyze the project, and run on the emulator. The last messages printed in the console will show the results of emulation and the testbench.

Running individual steps in the flow:
1. Create work libraries for either puresim or veloce mode:
./BuildDrone.bash -w -m <mode=veloce | puresim>
2. Build project (mode specific:
./BuildDrone.bash -b -m <mode=veloce | puresim>
3. Run simulation in Questa or on emulator (mode=puresim for Questa, mode=veloce for emulator):
./BuildDrone.bash -r -m <mode=veloce | puresim>
4. Clean the project (if wanting to start the process over from a clean starting point):
./BuildDrone.bash -c

The default mode for this script is to run in puresim, so the mode switch can be omitted if running in puresim mode for Questa.

More information:
The testbench being run is drone_top_hvl.sv and drone_top_hdl.sv. It implements the TBX model of emulation, communicating data across the drone_top_if interface. This is implemented as a bus functional model transactor. All other testbenches in this folder are module unit testbenches, with the exception of pwm_top_tb.sv and pwm_top_hdl.sv. This testbench combination is also setup to run on the emulator in TBX mode.

Expected results:
- Everything should run to completion
- There should be 20512 overall tests run and reported by the testbench, with 0 failures
- The percentage of time reported in HDL time advance was just shy of 10% from initial testing runs, total time spent is about 30 seconds.

Concluding thoughts:
- TBX mode is great for visibility into debugging, but seems to communicate a lot of data over the HSL per test case. This strategy would need to be re-evaluated if the testbench were more complex and computationally intensive.
- Better speedup could be achieved if instantiating multiple drone modules in parallel and testing them in parallel. Also, less data would need to be communicated across the HSLs.

About


Languages

Language:SystemVerilog 86.9%Language:Shell 9.8%Language:Makefile 3.4%