TinyQV is a Risc-V CPU designed for Tiny Tapeout.
This template helps you create peripherals that can be integrated with TinyQV.
Implement your peripheral by replacing the implementation in the example with your own implementation. You may create additional modules.
Test your peripheral by replacing and extending the example test.
Before submitting your design, please check:
- You have renamed the peripheral module from
tqvp_example
to something unique that makes sense for your design. - You have created a test script that uses the
tqv
class to read and write your design's registers. - You have documented your design and its registers.
Please raise a pull request against https://github.com/TinyTapeout/ttsky25a-tinyQV adding your peripheral:
- Add your verilog module to src/user_peripherals. If you have multiple modules create a subdirectory.
- Add your peripheral to the "Byte interface peripherals" section in src/peripherals.v, ask for help on Discord or in the PR if you're unsure how to do this.
- Add your test file to test/user_peripherals. You will need to add the peripheral number to the TinyQV constructor, this is the simple peripheral index plus 16.
- Add your docs to docs/user_peripherals.
When ttsky25a is delivered, the easiest way to test your design will be with TinyQV Micropython. The firmware will make it easy to read and write your registers, and set the output pins to be controlled by your peripheral (this is currently a work in progress).
In order to easily use TinyQV Micropython, you will need to avoid using the in7 and out0 IOs, as these are used for the UART peripheral to communicate with Micropython. So if you don't need to use all of the IOs then avoid using those ones.
You can also integrate directly with the tinyQV SDK to create programs in C.
Tiny Tapeout is an educational project that aims to make it easier and cheaper than ever to get your digital and analog designs manufactured on a real chip.
To learn more and get started, visit https://tinytapeout.com.
- Add your Verilog files to the
src
folder. - Edit the info.yaml and update information about your project, paying special attention to the
source_files
andtop_module
properties. If you are upgrading an existing Tiny Tapeout project, check out our online info.yaml migration tool. - Edit docs/info.md and add a description of your project.
- Adapt the testbench to your design. See test/README.md for more information.
The GitHub action will automatically build the ASIC files using OpenLane.
- FAQ
- Digital design lessons
- Learn how semiconductors work
- Join the community
- Build your design locally
- Edit the docs and explain your design, how it works, and how to test it.
- Submit your preipheral for inclusion in TinyQV. See the Discord for more details.
- Share your project on your social network of choice:
- LinkedIn #tinytapeout @TinyTapeout
- Bluesky #tinytapeout @TinyTapeout
- Mastodon #tinytapeout @matthewvenn
- X (formerly Twitter) #tinytapeout @tinytapeout