pool

Tinkering with FPGA Digital Logic Design

Image: Tinkering with FPGA Digital Logic Design

I tinker with FPGA digital logic design.
http://members.optusnet.com.au/jekent/FPGA.htm

FPGA stands for Field Programmable Gate Array. It is a silicon chip with programmable interconnects and configuration that allows you to design your own digital logic circuits.

It used to be that to design digital logic circuits you had to use existing chips such as TTL (Transistor Transistor Logic) or microprocessor chips and peripheral interfaces containing predefined functionality. You typically had to design a Printed Circuit Board (PCB) to wire the chips together. A PCB is usually a piece of fibre glass board with a thin layer or multiple layers of copper cladding on it. You would use photosensitive resist to protect the copper tracks you want to keep and use an etchant to dissolve the unwanted copper. You would then drill holes in the PCB for the component leads and solder the components into place. This was usually a very messy and time consuming process, and once the PCB was produced you could not easily modify it.

FPGAs on the other hand can be reprogrammed to do whatever you want. You can download the design into the chip from your PC using a USB or printer port cable or use Flash memory to store the design. You still need a PCB to mount the FPGA on, but you can buy general purpose evaluation boards from various vendors.

You typically design the logic using a language like VHDL or Verilog, although there are also new systems that convert conventional programming languages like C into hardware descriptions. The difference is that you are generating a hardware configuration rather than a set of instructions. The major FPGA vendors allow you to download their design software for free to
encourage you to use their FPGAs.

Many hobbyists are using this software to design their own microprocessor design for use in things like pinball and arcade games from the1980s. eg.

http://www.edcheung.com/album/album06/Pinball/pinball.htm

I have designed my own microprocessor System on a Chip (SoC) that include the microprocessor, memory, serial port, keyboard interface and a video display that can be plugged into a VGA display. I have designed the actual internal logic of the chips. I can run the old software from early computers on this system at a much higher speed than could be obtained with the original computers. My SoC is based on the design of the 6809 8 bit microprocessor that dates back to the early days of microcomputers in the late 1970s and early 1980s. This was a way of teaching myself computer design. There are a number of other people who have designed other chips such as the Z80 and PIC and many others and even old minicomputer and mainframe computers such as the PDP-8, PDP-11 and IBM 1130.

I would like to extend my designs to quad core implementations similar to what is found in personal computers today, although obviously not as complex. I'm also looking to use the parallel nature of FPGA logic to speed up computer vision applications. That is, to digitizing video and uses FPGA logic to process and analyze video at frame rates.

Computer vision can be used to implement things like augmented reality. i.e. using FPGAs to implement stereo vision and depth perception or facial feature detection to interface to a virtual reality client. Such technology can be used improve the experience of things like Second Life in conferencing and hence reduce the reliance on fossil fuels for transport. It could also reduce road congestion and the time taken to commute to work.


Tags


Alert Moderator

[Alert Moderator]


Comments

1 comments

Add Comment