
My first attempt at an IHP analog (actually, mixed-signal) design. It implements an analog VGA test pattern generator (but it's also pin-compatible with a Tiny VGA PMOD).
I leaned heavily on https://github.com/htfab/ttihp0p3-r2r-dac for the analog layout parts of this.
A digital block based on my tt08-vga-fun project drives 3x 8-bit DACs to produce analog VGA outputs.
In this case, the DACs are simple R2R DACs (where R=8660).
Note that, in order to get balanced digital outputs driving the DACs, there is a long thin digital block dedicated to buffering the main logic's output signals, using sg13g2_buf_8 buffer cells.
Plug in a Tiny VGA PMOD and supply a 25MHz clock. Select a test pattern configuration on ui_in, and then reset the design. See here for more information on the test pattern modes: https://tinytapeout.com/runs/tt08/tt_um_algofoogle_tt08_vga_fun
Tiny VGA PMOD for basic digital VGA output testing.
Op-amps on the analog output pins; see here for a guide: https://tinytapeout.com/runs/tt06/tt_um_algofoogle_tt06_grab_bag -- but note that this IHP version is expected to be 0-1.2V out, not 0-1.8V
| # | Input | Output | Bidirectional |
|---|---|---|---|
| 0 | mode[0] / dac_in[0] | r7 | vblank_out |
| 1 | mode[1] / dac_in[1] | g7 | hblank_out |
| 2 | mode[2] / dac_in[2] | b7 | |
| 3 | mode[3] / dac_in[3] | vsync | |
| 4 | mode[4] / dac_in[4] | r6 | |
| 5 | mode[5] / dac_in[5] | g6 | |
| 6 | mode[6] / dac_in[6] | b6 | |
| 7 | mode[7] / dac_in[7] | hsync |