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.

Video
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