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 scratchipCreate a project named foo, the default top module name is Top.
$ scratchip create fooCreate a project named foo, specify top module name to Foo.
$ scratchip create foo --top Fooscratchip 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
└── .gitignoreAt 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 verilogThen the .fir and .v generated by Chisel3/FIRRTL will be placed at builds directory.
.
├── builds
│ ├── ...
│ ├── Foo.anno.json
│ ├── Foo.fir
│ └── Foo.v
└── ...