The project structure is as shown below:
The Graphics Engine (driven by the VGA Controller, 640x480 @ 60Hz) is an on-demand RGB display pixel generator whose output can be altered using a few input pins. Previews of the different possible display outputs are provided in the last section of this documentation.
The Audio Engine drives the Frequency Synth to produce a ~28 second looping sound track @ 140 BPM at the output.
- Leo's TinyVGA Pmod connected to OUTPUT terminal (
uo_out
) - Mike's TT Audio Pmod connected to BIDIR terminal (
uio_out
) - Some switches to the INPUT terminal (
ui_in
)
- Connect the necessary peripherals
- Provide a 25MHz clock to the top module
tt_um_demosiine_sda
- Reset the design (if necessary)
- Enjoy the show :)
- Tweak the inputs to customize your show!
The design takes in 8 digital inputs from the INPUT terminal to modify the on-screen graphics (and audio) to create funky visual effects. All inputs are expected to be LOW to render the output as shown in the default preview as shown below.
The effect of each input pin is presented in the table below:
Input Pin | Parameter | When LOW | When HIGH |
---|---|---|---|
ui_in[7] |
Audio State | Play | Pause |
ui_in[6] |
Animation State | Run | Stop |
ui_in[5] |
Background Style | Black | Rolling RGB |
ui_in[4] |
Overlay Style | Cycle RGB | Rolling RGB |
ui_in[3] |
Overlay State | Enabled | Disabled |
ui_in[2] |
Big Sine State | Enabled | Disabled |
ui_in[1] |
Little Sine State | Enabled | Disabled |
ui_in[0] |
Colour Inversion | Normal | Negative |
Provided below are a some of my favourite previews generated from DemoSiine along with the INPUT configuration which generated them: