ice40_project_creator/README.md
2023-01-28 13:05:42 -08:00

60 lines
2.6 KiB
Markdown

## Required Pkgs
1. iverilog
2. make
3. gtkwave
4. yosys
4. nextpnr
5. icestrom
## Installation
Script assumes Makefile template, and GoBoard constraints file are in the same directory. If this is not wanted
`cat "$DIR"/goboard_Makefile_template >> "$project_name"/Makefile`
and
`cat "$DIR"/Go_Board_Constraints.pcf >> "$project_name"/"$project_name"_constraints_top.pcf`
can be changed to the location of the Makefile template and constraints file
## Usage
Once the script is called, there will be a prompt for the project name - which is the only required field, your name, and sid.
After this the directory structure will be created with source, results, submodules, testbench, and turnin.
## Directories
#### testbench
The testbench directory is where the Makefile will look for the top module which must end in `_tb.v.`
Multiple files may be in this directory, however the desired testbench must be the only file ending with `_tb.v`
#### source
The source directory is for all modules not including the testbench.
#### results
The results directory will contain the output file that can be run with `vvp` as well as the `.vcd` file that can be viewed with `gtkwave`
#### submodules
Other verilog projects which were created using the script can be placed in this directory. `make` will compile `.v` files within the `source` directories of each of the submodules.
#### turnin
All files added to the turnin directory will be compressed when `make tin` is run,
## make commands
#### make
Running `make` while in the project directory will compile the source files and place the output file the `results` directory. Additionaly, this will set the dumpfile to `simx.vcd` in the `results` directory which can be viewed with `gtkwave`.
#### make sim
Running `make sim` while in the project directory will use `vvp` to run the compiled output file.
#### make view
Running `make view` while in the project directory will open the dump file with `gtkwave`.
#### make test
Running `make view` while in the project directory is similar to `make`, however the dumpfile will be set to `/dev/null` to avoid creating a `.vcd` file.
#### make synth
Running `make synth` while in the project directory will use yosys to attempt to synthesize the Verilog for the ice40 FPGA on the GoBoard
#### make par
Running `make par` while in the project directory will use nextpnr-ice40 to place and route on the ice40 FPGA
#### make pack
Running `make par` while in the project directory will use icepack to create a bin file
#### make prog
Running `make par` while in the project directory will program the Goboard with the bin file