The aim of this project is to construct a digital Proportional-Integral (PI) system to control the speed of a Permanent Magnet DC Motor (PMDC) using a Field programmable Gate Array (FPGA). The digital controller has been implemented using FPGA, and designed using the schematic editor of the series foundation 2.1i FPGA software. The control technique is based on using Digital Pulse Width Modulation (DPWM) signal with variable duty cycle, provided by the FPGA. The DPWM is programmed using the Very high speed Integrated Hardware Descriptive Language (VHDL) editor tool (incorporated in the above software). XC4003E FPGA series, which contains 100 CLB and 80 input/output users pins, has been built on a strip boa rd with all necessary components. The fabricated FPGA board has the ability to be connected to a personal computer through parallel port. The configuration bits of the FPGA can be downloaded through this port using special download program. A class-A power MOSFET chopper circuit is designed to act as a power driver for the DC motor, which includes all the necessary protection and gate driver circuits. The motor speed sensor is a tachogenerator followed by an Analog to Digital Converter (ADC) circuit for digitizing the tacho voltage to 8-bit data which is then processed by the FPGA. The two control approaches, i.e. open loop and closed loop, have been experimented to compare their performance, where the closed loop control proved to have superior characteristics. This has been concluded since the closed loop control system was capable of maintaining the steady state motor speed under various applied load conditions and minor variations for the transient characteristics. Simulation tests have been performed for both open loop and closed loop control systems using the MATLAB environment. Significant variations in the transient characteristics of the closed loop system with the corresponding experimental tests were noticed. Good agreement has been obtained between simulation and experimental results for both open loop and steady state, closed loop characteristics.