All Projects → thomask77 → verilog-sid-mos6581

thomask77 / verilog-sid-mos6581

Licence: other
MOS6581 SID chip emulator in SystemVerilog

Programming Languages

SystemVerilog
227 projects

Projects that are alternatives of or similar to verilog-sid-mos6581

SIDKick
SIDKick -- the first complete SID 6581/8580-drop-in-replacement that you can build yourself
Stars: ✭ 70 (+218.18%)
Mutual labels:  c64, sid, 6581, 8580
FPGA ThreeLevelStorage
【原创,已被编入官方教材】Three-level storage subsystem(SD+DDR2 SDRAM+Cache), based on Nexys4 FPGA board. 同济大学计算机系统结构课程设计,FPGA三级存储子系统。
Stars: ✭ 86 (+290.91%)
Mutual labels:  fpga, verilog
sphinxcontrib-hdl-diagrams
Sphinx Extension which generates various types of diagrams from Verilog code.
Stars: ✭ 37 (+68.18%)
Mutual labels:  fpga, verilog
yahdl
A programming language for FPGAs.
Stars: ✭ 20 (-9.09%)
Mutual labels:  fpga, verilog
kianRiscV
KianRISC-V! No RISC-V, no fun! RISC-V CPU with strong design rules and unittested! CPU you can trust! kianv rv32im risc-v a hdmi soc with harris computer architecture in verilog: multicycle, singlecycle and 5-stage pipelining Processor. Multicycle Soc with firmware that runs raytracer, mandelbrot, 3d hdmi gfx, dma controller, etc.....
Stars: ✭ 167 (+659.09%)
Mutual labels:  fpga, verilog
vga-clock
Show the time on a VGA monitor. Submitted for the Google MPW1 ASIC shuttle.
Stars: ✭ 48 (+118.18%)
Mutual labels:  fpga, verilog
xeda
Cross EDA Abstraction and Automation
Stars: ✭ 25 (+13.64%)
Mutual labels:  fpga, verilog
resid-rs
Port of reSID, a MOS6581 SID emulator engine, to Rust
Stars: ✭ 25 (+13.64%)
Mutual labels:  c64, sid
drec-fpga-intro
Materials for "Introduction to FPGA and Verilog" at MIPT DREC
Stars: ✭ 66 (+200%)
Mutual labels:  fpga, verilog
fakesid
SID-based chiptune tracker for android
Stars: ✭ 23 (+4.55%)
Mutual labels:  c64, sid
platform-lattice ice40
Lattice iCE40: development platform for PlatformIO
Stars: ✭ 34 (+54.55%)
Mutual labels:  fpga, verilog
virtio
Virtio implementation in SystemVerilog
Stars: ✭ 38 (+72.73%)
Mutual labels:  fpga, verilog
SpinalDev
Docker Development Environment for SpinalHDL
Stars: ✭ 17 (-22.73%)
Mutual labels:  fpga, verilog
vscode-terosHDL
VHDL and Verilog/SV IDE: state machine viewer, linter, documentation, snippets... and more!
Stars: ✭ 325 (+1377.27%)
Mutual labels:  fpga, verilog
fpga-docker
Tools for running FPGA vendor toolchains with Docker
Stars: ✭ 54 (+145.45%)
Mutual labels:  fpga, verilog
yafpgatetris
Yet Another Tetris on FPGA Implementation
Stars: ✭ 29 (+31.82%)
Mutual labels:  fpga, verilog
gateware-ts
Hardware definition library and environment for designing and building digital hardware for FPGAs, using only open source tools
Stars: ✭ 83 (+277.27%)
Mutual labels:  fpga, verilog
Convolution network on fpga
CNN acceleration on virtex-7 FPGA with verilog HDL
Stars: ✭ 236 (+972.73%)
Mutual labels:  fpga, verilog
Basic verilog
Must-have verilog systemverilog modules
Stars: ✭ 247 (+1022.73%)
Mutual labels:  fpga, verilog
ics-adpcm
Programmable multichannel ADPCM decoder for FPGA
Stars: ✭ 18 (-18.18%)
Mutual labels:  fpga, verilog

MOS6581 SID chip emulator in SystemVerilog

This is a raw code dump of a very unfinished MOS6581 emulation project. The code was hacked together while learning Verilog, and may therefore lack some refinement.

Most SID tunes work fine. Even digi-sounds work somehow, despite the slow serial protocol I used for testing. A good next step would be to integrate a 6502 emulator for stand-alone operation or connect it to a real C64.

The wave and envelope generators are based on the Bob Yannes interview, the state-variable filter is inspired by Kebby^Farbrausch's TinySID player, and the rest is similar to the countless other SID projects on the net.

Usage

The code can be compiled using Altera Quartus Prime 15.1 and was tested on a BeMicro MAX10 board.

Only two pins are used:

GPIO_02 - UART input, 115200 8N1

You need a modified SID player on a PC to send register accesses over an USB->UART converter or similar. The protocol is extremely simple:

  • 1st byte: register address 0-31
  • 2nd byte: data to write

This is fast enough for normal SID tunes which write 25 registers at 50 or 60 Hz. SID tunes with digisounds will need a higher baudrate to work correctly.

GPIO_04 - 16-Bit sigma-delta audio output

Just wire up a 10uF capacitor and a headphone jack in series:

  • GPIO_04 (J3 Pin 2) - 10uF - Headphones - GND (J3 Pin 12)

License

Copyright (c)2015-2017 Thomas Kindler [email protected]

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

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].