Documentation

Fall 2023

You are not logged in.

Please Log In for full access to the web site.
Note that this link will take you to an external site (https://shimmer.mit.edu) to authenticate, and then you will be redirected back to this page.

1) Software Setup and Usage

We have three big "parts" of software that we use in 6.205. You need access to all three of them and should go through the installation steps below for each:

  • GTKWave/iVerilog: The open-source software we use to simulate and test our digital designs!
  • Vivado: The propietary software we use to generate our digital designs!
  • openFPGAloader: An open-source cross-platform bit-file flasher which we use to get our designs on our FPGA!

We also have a growing collection of Windows tips.

1.1) Quick Command Reference

These commands contain the arguments that work in most use cases - every once in a while you'll need to modify them slightly, but these are their most common forms:

  • Building a project:
    • With lab-bc (remote): ./remote/r.py build.py build.tcl {whatever files you need to include}
    • Locally: vivado -mode batch -source build.tcl
  • Flashing the FPGA: openFPGALoader -b arty_s7_50 out.bit
  • Simulating a testbench:
    • iverilog -g2012 -o foo.out sim/foo_tb.sv src/foo.sv followed by vvp foo.out
    • Add all the files that iVerilog should be aware of to the command line args. For instance, if your testbench foo_tb makes an instance of foo and foo contains an instance of bar, then you'll need to add the files that contain foo and bar to the command line args.
  • Opening GTKWave:
    • Windows/Linux: gtkwave foo.vcd
    • macOS: open foo.vcd
    • Remember that you don't need to close your GTKWave window and reopen it after every simulation! It's way faster to reload the waveform inside your existing window.

2) SystemVerilog Standard 2017

3) External Hardware and IP Cores

4) Verilog References

5) IP Simulation