1.1.1. Introduction

This will be a series of general topics about the concepts of digital systems and programmable logic. A digital system is a system made up by logic gates, which transforms logic input into a logic output with a logic function. Memories, processors, cellphones and all other kinds of electronics consist of multiple digital circuits and logic gates are their building blocks. Electronics can be implemented with analog circuits and/or digital circuits, but with the advancement of the semiconductor technology digital circuits represent the majority. These circuits are made up by transistors, MOSFETs, and passive components like resistors, capacitors and inductors.

An ASIC (Application Specific Integrated Circuits) is a digital circuit that is found on the vast majority of the electronic devices. Let us say a company develops a digital circuit and then fabricates thousands of chips to sell in the market. They are small and consume low amounts of power, but the initial development process costs a lot of money and the circuit cannot be changed when it is already fabricated.

An FPGA (Field Programmable Gate Array) is an integrated circuit that can be programmed and reprogrammed on the fly. It has many logic gates, registers, flip-flops and the user can program it by configuring the connections between them. The advantage of an FPGA is the versatility that it has for conducting tests and for learning.