Implements a subset of the PIC mid-range ISA (no SFR, no carry, no call/stack), 6 GPRs, 16 program words.
Program data is shifted in serially. For each program word, shift in {(1 << address), data} (28 bits total) to prog_data and then assert prog_strobe. Once loaded, deassert (bring high), reset and the program should start running. GPR 6 is GPI and GPR 7 is GPO
A means of shifting in the program (e.g. another microcontroller, USB GPIO interface, etc) is required at startup. Once running, it is standalone.
| # | Input | Output |
|---|---|---|
| 0 | clock | gpo0 |
| 1 | reset | gpo1 |
| 2 | prog_strobe | gpo2 |
| 3 | prog_data | gpo3 |
| 4 | gpi0 | gpo4 |
| 5 | gpi1 | gpo5 |
| 6 | gpi2 | gpo6 |
| 7 | gpi3 | gpo7 |