A little framework to build HDL projects in Chisel with open-source toolchains.
For now I've returned to doing RTL with Amaranth, so I'm kind of porting Chryse to* Python in Niar.
* Chryse was originally rainhdx, so this is a full-circle moment.
- Provides an extensible App that facilitates synthesis for multiple target platforms, and whatever other tasks you need.
- Boards provide resources — refer to them in your design, and Chryse instantiates the necessary IO buffers in-between and adds them to the constraints used during place-and-route.
- CXXRTL support: it's just another kind of platform. Chisel modules are translated into CXXRTL blackboxes, you write the sim driver and blackbox implementations, and the build system takes care of the details.
- spifrbb — used as part of a presentation on CXXRTL at the Yosys Users Group (transcript/slides)
- sevsegsim — graphical demo of CXXRTL integration
- ili9341spi — SPI color LCD driver with Zig testbench
$ sbt run
spifrbb 0.1.0 (Chryse 0.1.0-SNAPSHOT)
-h, --help Show help message
-v, --version Show version of this program
Subcommand: build
Build the design, and optionally program it.
-b, --board <board> Board to build for. Choices: icebreaker, ulx3s-45f
-F, --full-stacktrace Include full Chisel stacktraces
-p, --program Program the design onto the board after building
-h, --help Show help message
Subcommand: cxxsim
Run the C++ simulator tests.
-c, --compile Compile only; don't run
-d, --debug Generate source-level debug information
-f, --force Clean before build
-O, --optimize Build with optimizations
-p, --platform <platform> CXXRTL platform to use. Choices: wb, bb
-v, --vcd <file> Output a VCD file when running cxxsim (passes
--vcd <file> to the executable)
-h, --help Show help message
trailing arguments:
<arg> ... (not required) Other arguments for the cxxsim executable
Subcommand: rom
Build the Stackyem ROM image, and optionally program it.
-p, --program <board> Program the ROM onto the board. Choices: icebreaker,
ulx3s-45f
-h, --help Show help message
- iCE40: iCEBreaker
- Depends on Project IceStorm and nextpnr.
- ECP5: ULX3S
- Depends on Project Trellis, nextpnr and openFPGALoader.
- ECP5: OrangeCrab
Asherah Connor <ashe kivikakk ee>
Copyright © 2024 Asherah Connor. Licensed under the GNU Lesser General Public License 3.0 or later, which builds upon the GNU General Public License 3.0.