(from https://inst.eecs.berkeley.edu/~cs150/Documents/Interfaces.pdf)
Here you will find some valuable VHDL code blocks for infrastructure. They are designed to be synthesized for FPGA. A short breakdown of files here:
Filename | Description |
---|---|
LFSR.vhd | Psudorandom Number Generation |
bezier.vhd | Solves a Bezier Curve |
bezier_mm.vhd | |
bezier_tb.vhd | Bezier testbench |
chaser.vhd | A single pole LPF or Ramp Generator (For Synth Envelopes) |
chaser_lpf.vhd | |
chaser_mm.vhd | |
deserializer.vhd | A streaming deserializer |
fifo_stream.vhd | A streaming FIFO |
flow.vhd | Supplies run signals for a self-contained streaming block (IMPORTANT!) |
flow_tb.vhd | testbench |
i2s_master.vhd | A streaming I2S Master (Full duplex) |
i2s_master_clocked.vhd | |
i2s_master_tb.vhd | |
inverter.vhd | A simple inverter |
linear_interp.vhd | A streaming linear interpolator |
mm_volume.vhd | |
mm_volume_stream.vhd | A Memory-Mapped streaming gain control |
note_svf.vhd | A State Variable Filter for Synth |
note_svf_tb.vhd | testbench |
rationalize.vhd | Arbitrarily rationalizes a fixed input |
rationalize_tb.vhd | |
serializer.vhd | A streaming serializer |
simple_dual_one_clock.vhd | Inferred Ram (!) |
sine_lookup.vhd | A streaming sine lookup |
sine_lookup_tb.vhd | testbench |
spi_master.vhd | A streaming SPI Master |
spi_slave.vhd | |
spi_slave_dualclock.vhd | A dual-clock SPI Slave |
stream_split.vhd | Splits a stream |
sum8.vhd | Sums 8 input channels |
sumtime.vhd | Sums across time (streaming) |
This is the most fundamental block in this repository. It implements the above paradigm, creating a step-by-step pipeline of arbitrary length