Michael Siegenthaler
Home Photos Projects Resume


Thermostat Driver

Parallel Port FPGA Interface

GPIB to TCP/IP Gateway

Remote Server Manager

Network Interface Box

120V Relay Box

Temperature Sensor

TCP/UDP Debugging Tools

Parallel Port FPGA Interface

I developed an interface between a Digilent Pegasus FPGA board and a Linux PC. The communication occurs via the PC's parallel port.

The main goals of this project were to learn Verilog, to learn about buses, and to create a platform for future projects which require the parallelism and/or exact timing of an FPGA combined with the ease of programming of a general purpose PC. An example of a future project is a programmable function generator. At the command of an application running on the PC, the FPGA can generate square waves or PWM signals to feed into a device under test. This is most useful if the PC also controls other instruments, such as an oscilloscope connected via GPIB.

The pictures below show the Pegasus board attached to a custom interface board. The DB-25 connector is the parallel port interface. The custom board also features probe points and screw terminals for 13 FPGA I/O pins. For a mapping of FPGA pins to parallel port pins, please refer to the .ucf file contained in the Verilog code distribution and the EPP signal table at Beyond Logic.

Verilog code for FPGA
C code for Linux PC