bat52 / tt03-ddpm-pwm

DDPM/PWM modulator, Submission for Tiny Tapeout 03

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Marco's Pulse Density Modulators

This TinyTapeout submission is a collection of Pulse Density Modulators (PDM).

スクリーンショット 2022-12-26 10 49 35

Description

This project implements three different architectures of Pulse Density Modulators (PDM), to compare performances and implementation complexity of the different schemes.

PDM modulators are of particular interest because exploiting oversampling, they allow to implement Digital-to-Analog-Conversion (DAC) schemes with an equivalent resolution of multiple bits, based on a single-bit digital output, by means of a straightforward analogue low-pass filter.

The PDM modulators implemented in this project are the following:

  1. Pulse Width Moulation (PWM)
  2. Dyadic Digital Pulse Modulation (DDPM)
  3. Sigma-Delta (SD)

This design is separated into two section:

  1. 6 bits resolution instance of PWM, DDPM and SD fed by a static DC value from the input pins
  2. 8 bits resolution instance of PWM, DDPM and SD fed sine look-up-table (LUT) that allows to evaluate the spectral content of the modulated signals.

The design is implemented in myHDL, and the verification environment leverages PuEDA.

DC Modulation

The input inval of the first set of DC modulators is fed through pins io_in[7:2]. The low-passed dc component of the outputs on pins io_out[0] (PWM), io_out[1], and io_out[2] is proportional to the decimal value of the input inval.

Sine Modulation

The low-passed outputs on pins io_out[4] (PWM), io_out[5], and io_out[6] is a sinusoidal wave. When clocking the chip with a clock frequency of 12.5kHz, the frequency of the sine is of 0.76z (fsin = fclock / 2^14), so that it should be visible at naked eye.

The different designs should achieve an ENOB of 8 bits in the band 0-40Hz, with different level of out-of-band emission between each other, as reported below.

References:

What is Tiny Tapeout?

TinyTapeout is an educational project that aims to make it easier and cheaper than ever to get your digital designs manufactured on a real chip!

Go to https://tinytapeout.com for instructions!

How to change the Wokwi project

Edit the info.yaml and change the wokwi_id to match your project.

How to enable the GitHub actions to build the ASIC files

Please see the instructions for:

How does it work?

When you edit the info.yaml to choose a different ID, the GitHub Action will fetch the digital netlist of your design from Wokwi.

After that, the action uses the open source ASIC tool called OpenLane to build the files needed to fabricate an ASIC.

Resources

What next?

About

DDPM/PWM modulator, Submission for Tiny Tapeout 03

License:Apache License 2.0


Languages

Language:Python 61.7%Language:Verilog 23.2%Language:MATLAB 12.2%Language:Tcl 2.9%