A Commodore Pet in an Arty

November, 2015

I recently bought a Digilent Arty FPGA evaluation board. This board has a Xilinx Artix-7 FPGA. What makes the Arty interesting is that it is a low cost board supported by Xilinx Vivado instead of ISE.

So what should I try to do with it first? Why not port over my Commodore PET in an FPGA project? That was on a Digilent Nexys3 board and developed in Xilinx ISE. So, moving over the project over to Vivado presented a few minor challenges but wasn't too tough.


The Arty does not have any video connectors. To get video out, I used an adapter that fits in a PMOD connector that I cobbled together earlier to develop a composite video design on an older FPGA board. The theory behind generating (monochrome) composite video from two digital signals is described well here. I had to adjust the resistor values to take into account 3.3v (vs. 5v) I/Os and the 200 ohm series resistors on the Arty. The resistor values aren't perfect but they worked for me. The adapter fits into PMOD JA into the bottom ground pin (JA11) and the two adjacent signals (JA10 and JA9). Note that these pins start one pin over from the connector's edge (JA12 is +3.3v).

Keyboard Input

For input, I convert keystrokes that come over the Arty's USB-UART device to PET key presses. Using this mechanism, there is no way to access the PETSCII graphics characters which is too bad because they are the coolest thing about PETs. (Idea: use a pushbutton on the Arty as a shift key!)

Source Code

My source code is on github: https://github.com/skibo/Pet2001_Arty

e-mail me