All Projects → trcwm → Speech256

trcwm / Speech256

Licence: LGPL-3.0 License
An FPGA implementation of a classic 80ies speech synthesizer. Done for the Retro Challenge 2017/10.

Programming Languages

Verilog
626 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Speech256

xeda
Cross EDA Abstraction and Automation
Stars: ✭ 25 (-50.98%)
Mutual labels:  fpga, verilog, hdl
virtio
Virtio implementation in SystemVerilog
Stars: ✭ 38 (-25.49%)
Mutual labels:  fpga, verilog, hdl
gateware-ts
Hardware definition library and environment for designing and building digital hardware for FPGAs, using only open source tools
Stars: ✭ 83 (+62.75%)
Mutual labels:  fpga, verilog, hdl
sphinxcontrib-hdl-diagrams
Sphinx Extension which generates various types of diagrams from Verilog code.
Stars: ✭ 37 (-27.45%)
Mutual labels:  fpga, verilog, hdl
VGChips
Video Game custom chips reverse-engineered from silicon
Stars: ✭ 86 (+68.63%)
Mutual labels:  fpga, verilog, hdl
async fifo
A dual clock asynchronous FIFO written in verilog, tested with Icarus Verilog
Stars: ✭ 117 (+129.41%)
Mutual labels:  fpga, verilog, hdl
cocotb-bus
Pre-packaged testbenching tools and reusable bus interfaces for cocotb
Stars: ✭ 20 (-60.78%)
Mutual labels:  verilog, hdl
pygears
HW Design: A Functional Approach
Stars: ✭ 122 (+139.22%)
Mutual labels:  fpga, hdl
dblclockfft
A configurable C++ generator of pipelined Verilog FFT cores
Stars: ✭ 147 (+188.24%)
Mutual labels:  fpga, verilog
1bitSDR
Minimal SDR with Lattice MachXO2 FPGA. And a port to Cyclone3 by Steven Groom
Stars: ✭ 53 (+3.92%)
Mutual labels:  fpga, verilog
eddr3
mirror of https://git.elphel.com/Elphel/eddr3
Stars: ✭ 33 (-35.29%)
Mutual labels:  fpga, verilog
wbi2c
Wishbone controlled I2C controllers
Stars: ✭ 25 (-50.98%)
Mutual labels:  fpga, verilog
shapool-core
FPGA core for SHA256d mining targeting Lattice iCE40 devices.
Stars: ✭ 19 (-62.75%)
Mutual labels:  fpga, verilog
FPGA-USB-Device
FPGA-based USB-device controller to implement USB-CDC, USB-HID, etc.
Stars: ✭ 29 (-43.14%)
Mutual labels:  fpga, verilog
usbcorev
A full-speed device-side USB peripheral core written in Verilog.
Stars: ✭ 135 (+164.71%)
Mutual labels:  fpga, verilog
Deep-DarkFantasy
Global Dark Mode for ALL apps on ANY platforms.
Stars: ✭ 16 (-68.63%)
Mutual labels:  fpga, verilog
FPGA NTP SERVER
A FPGA implementation of the NTP and NTS protocols
Stars: ✭ 27 (-47.06%)
Mutual labels:  fpga, verilog
math
Useful m-scripts for DSP (CIC, FIR, FFT, Fast convolution, Partial Filters etc.)
Stars: ✭ 15 (-70.59%)
Mutual labels:  fpga, verilog
hwt
VHDL/Verilog/SystemC code generator, simulator API written in python/c++
Stars: ✭ 145 (+184.31%)
Mutual labels:  fpga, verilog
rapcores
Robotic Application Processor
Stars: ✭ 14 (-72.55%)
Mutual labels:  fpga, verilog

Speech256

An FPGA implementation of a classic 80ies speech synthesizer in Verilog.

Introduction

  • Platform agnostic implementation.

IMAGE ALT TEXT HERE

Building

In order to build the FPGA bit stream for the Digitent DE0 board, you need Quartus II 13.1. If you have a different FPGA board, use the tools provided with that board but be aware the project will need to be adapted.

FPGA requirements

  • 4 K ROM

Quartus II 13.1 synthesis results (Digilent DE0 board):

Flow Status	Successful - Thu Oct 26 16:47:44 2017
Quartus II 64-Bit Version	13.1.0 Build 162 10/23/2013 SJ Web Edition
Revision Name	Speech256_DE0
Top-level Entity Name	Speech256_DE0
Family	Cyclone III
Device	EP3C16F484C6
Timing Models	Final
Total logic elements	657 / 15,408 ( 4 % )
Total combinational functions	571 / 15,408 ( 4 % )
Dedicated logic registers	484 / 15,408 ( 3 % )
Total registers	484
Total pins	21 / 347 ( 6 % )
Total virtual pins	0
Total memory bits	32,868 / 516,096 ( 6 % )
Embedded Multiplier 9-bit elements	0 / 112 ( 0 % )
Total PLLs	0 / 4 ( 0 % )

Description of blocks

SPMUL

A serial/parallel multiplier with one 10-bit sign-magnitude and one 2's complement 16-bit input. The 10-bit input range represents -1 .. 1.

SOURCE

The source consists of a LFSR noise generator and a pulse generator with a settable period/duration.

FILTER

A 12-pole filter engine that takes 12 10-bit sign-magnitude filter coefficients and a 16-bit input. The 12-pole filter is built from second-order sections, each having coefficients A1 and A2. Each filter coefficient has a range of -1 .. 1.

The second-order filter transfer function is H(z) = 1 / (1 - 2 * A1 * z^-1 - A2 * z^-2).

CONTROLLER

The controller reads the allophones from the control bus and generates the necessary signals to drive the source and filter blocks. The parameters for the source and filter are encoded in a 4K ROM by means of high-level instructions.

More technical stuff

For more information on how this system works, see http://www.cpcwiki.eu/index.php/SP0256#Technical and http://spatula-city.org/~im14u2c/intv/tech/sp0256_instr_set.html.

License

GPLv3. Please see the LICENSE file.

This project was done during the Retro Challenge 2017/10 contest.
Retrochallenge

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].