SpinalHDL version of tiny-synth


I have converted @gundy’s tiny-synth project to SpinalHDL and turned it into a Domain Specific Language (DSL) for creating audio synthesizer chips and playing polyphonic music.

It runs on the TinyFPGA BX and other ice40 boards.

To run it, you need a Linux Machine or VM, and to install Java and sbt as described in https://github.com/SpinalHDL/SpinalTemplateSbt.

Then to run it, you do:

git clone https://github.com/lawrie/spinal_synth
cd spinal_synth/synthesis/tinyfpgabx

Here is the script that plays @gundy’s example song:

I don’t think I have converted everything completely correctly, but it plays a reasonable version of the song.

I find SpinalHDL a lot easier to write than Verilog and much more powerful, but it does have a high learning curve , particularly for the Scala language. . It is particularly good at producing DSLs to configure SoCs, synthesizers, etc.


Awesome!!. I love Scala as a language and I can see I’m going to have to invest some time looking at SpinalHDL and your work with the port there Laurie!

Unfortunately (?) I’m back at work again now, and due to time constraints its been a while since I’ve been able to look at anything FPGA related, but wow does this look cool and you’ve successfully piqued my interest again :slight_smile: I think I know what I’m doing this weekend now.