ENEL373 Assignment

This repo is arranged in the same way that is expected for the ENEL373 2020 Assignment submission. It is expected that students use this format while working on the assignment as it decreases the number of files on EngGit as well as the amount of storage used. Tutors will also expect this layout when helping you, we don't want to clog up our computers with endless cached/sim/run files.

Contents

1. The Layout

Your file structure should look something like this:

File structure

2. Test-benches

As you should have seen, the assignment has been changed rather significantly due to COVID-19. As a result the ENEL373 Assignment has been changed significantly. This has affected the way that the assignment is being run, we will be doing some of the marking using testbenches. We also hope that the examples that we give will help increase everyone's understanding of testbenches. These prepared testbenches can be found in the testbench directory. More info about these testbenches can be found in the README of the testbench directory.

Setting up your repository

Please use the commands below to setup your code inside this structure.

Git Instructions for setting up your repo

3. Adding files to Vivado

There are two options for adding the git files into your project, the first is to do a manual copy, the second is to use Jesse's awesome script which is discussed further in the Tools section.

3.1 Manually copying files

To import your files open Vivado and create a new project and import your newly setup files into a Vivado project. To assist with this there is a quick refresher found here. Note: For people not reading the refresher, make sure you make the Vivado project in a different location on your computer to the source files and make sure the box is unchecked for copy sources into project

4. Help

The tutors will still be available to help you however, we will be moving to an online drop in session format within lab hours. If you have questions/concerns outside of lab times please post them on Learn, the tutors and lecturers are happy to answer your questions there. Please ensure your code on GIT is current and include your group number in your forum post.

5. Tools

The wonderful Jesse Sheehan has very kindly written a python script that will automatically fix the paths for the Vivado .xpr files the source code for which can be found here. I have packaged the script and made it available on PyPI as a script so you can either run from source, the directions for which are available in Jesse's repository or use pip.

File structure

Remember that to use this script you must have python installed. On Linux, install python using your preferred package manager. On Windows, download python here. Note: The script has only been tested for Python3 (not Python 2), so make sure that is the version you have installed.

5.1 GHDL

For those interested there is a project called GHDL that allows you to compile VHDL files into C. This can make testing easier, however it is in no way expected for you to know about this. However, if you would like to investigate this I will include a few links as it make it easier to automate and run VHDL test-benches on lower power machines or automated using CI/CD pipelines

6. Authors

Jos Craw jcr124@uclive.ac.nz @jcr124

TODO

  • Do we want to talk about GitLab issues?
  • Note the link is not currently correct as the project is in my personal account, not the group
  • For the Quad four bit testbench I made the path relative, it looks like this should work but I haven't tested it source