scratchip is a framework that can help to build your Chisel and Verilog/Systemverilog project easier.
If you want to build scratchip from scratch, please refer how to build.
Install scratchip with following shell command, if you would like to install it to system, use sudo
and remove --user
.
# require Python versions: 3.6+
$ pip3 --user install scratchip
Create a project named foo
, the default top module name is Top
.
$ scratchip create foo
Create a project named foo, specify top module name to Foo
.
$ scratchip create foo --top Foo
scratchip will generate the basic project directory structure below:
.
├── builds
│ └── scratchip
| ├── .cache
│ ├── jars
│ │ └── chisel3.jar
│ └── mill
├── doc
├── hw
│ ├── chisel
│ │ ├── build.sc
│ │ ├── Makefile
│ │ └── src
│ │ └── Foo.scala
│ └── rtl
│── Makefile
└── .gitignore
At the same time, all tools include Chisel3/FIRRTL will copy to builds/scratchip
, and the builds
should never be commited to git repo. When you clone the project to a new project directory, you will need re-initialize the project with:
$ scratchip init
$ make verilog
Then the .fir
and .v
generated by Chisel3/FIRRTL will be placed at builds
directory.
.
├── builds
│ ├── ...
│ ├── Foo.anno.json
│ ├── Foo.fir
│ └── Foo.v
└── ...