EASY FPGA Finite State Machine

 

One of the key components of modern life and civilization is technology. From your automated garage door, to your Netflix account and smartphone conversations everything is happening though chips  (microchips) communicating with each other. These tiny bits of silicon are designed to exchange back and forth billions of transactions every second to make all day-by-day comfort happening. This happens even now when your reading this article, between all the components of your smart-phone and PC, and between your router and the server where this site is stored. A chip is also known under the name of Integrated Circuit which is “an electronic device comprising numerous functional elements such as transistors, resistors, condensers, etc. on a piece of silicon semiconductor substrate, and is sealed inside a package with multiple terminals[1].

If we analyze from the perspective of the way a chip processes the voltage levels of the I/O (Input/Output) ports we have Analog Semiconductors and Digital Semiconductors.

  1. Analog Semiconductors: they process analog signals which are continuous variables. To simplify think of chips used for power supplies, radio, audio and sensors.
  2. Digital Semiconductors: they process  digital signals which are discrete variables encoded using binary levels (1 and 0 values). The easiest example is the Central Processing Unit (CPU) of the device you use for reading this. These devices are designed using Verilog or other Hardware Description Languages.

What kind of digital chips are there?

Regarding the internal architecture digital semiconductors are split in two main categories which are ASIC and FPGA. Remember that most chips are actually mixed circuits semiconductors, they contain analog and digital blocks, but we are going to address only the digital parts inside them.

ASIC

Application Specific Integrated Circuits are chips designed and manufactured for serving one purpose particularly. After production these highly-specialized devices cannot be modified or adapted to new requirements hence they have a fixed structure. You can take as examples a microprocessor, a microcontroller, a Bitcoin miner, a chip used for your cell phone or even a chip used for satellite data processing.

The main advantage of an ASIC is that it brings together multiple functional blocks in the same chip so it reduces the number of components on a circuit board inside a electronic device. For example one ASIC could contain a 32bit processor, an Ethernet engine and PHY, memory blocks and a video processing block. Large ASICs that combine multiple digital blocks with distinct functionalities are also called System-on-Chips (SoC). ASICs are chips that have high production runs (million of produced units) and have high development costs. The cost per unit will eventually get reduced to cents or dollars by the large volume of units with low silicon area (ex. the chips used to do a washing machine or TV) or remain in the hundreds / thousands of dollars range for chips used in niche products or products with high silicon area (computer processors, planes and rockets chips).

Find out mode about Types of ASIC Architectures.

FPGAs

Field Programmable Gate Arrays are chips manufactured for general use that contain configurable logic and programmable interconnects. To “program” an FPGA actually means to emulate a specific digital circuit using the configurable logic and the programmable interconnect of the FPGA fabric to perform a specific functionality. For example you could design a microprocessor with a specific Instructions Set Architecture using Verilog and then program the FPGA with the resulting bitstream to test your processor in real-life applications. FPGAs are used in applications where high speed data processing and parallelism are required like video processing, digital signal processing, data compression, cryptography, datacenter accelerators, Artificial Intelligence, high speed Ethernet or even ASIC prototyping (the functionality is emulated and debugged until an ASIC is produced).

A simple use case for an FPGA would be for a video processing module that shows an image to the driver at each 250ms. If the auto safety standards change and require a new image at each 100ms it would be a huge financial challenge to change chips inside millions of cars, while a simple FPGA bitstream update at the service would be much cheaper and easier to do. Another use case would be datacenter FPGA accelerators where the same FPGA can be reprogrammed whenever a client needs a data processing accelerator, for example this week a client uses an FPGA as a video processing accelerator and the next week another client uses the same FPGA as an data compression accelerator.

Find out more about Types of FPGAs Architectures.

Difference between ASIC and FPGA

Both ASIC and FPGA technologies are powerful and sometimes can be used for the same purpose in a real-life application. Based on the final product destination, budget, time and engineering resources you may opt-out for one of them. In the next table you have some of the key differences between ASICs and FPGAs.

How are modern Digital Semiconductors designed and modeled?

Digital Semiconductors are modeled by using Hardware Description Languages (check the link for an extensive list of languages) while two of the most popular being Verilog and VHDL. The languages are used for both Design and Verification for Digital Chips. Verilog is the precursor of the SystemVerilog language used both for design and as a basis for the Universal Verification Methodology.

Digital Semiconductors are designed starting from a set of requirements and are implemented following the Modern Digital Design Flow (watch short video). Each ASIC has requirements that characterize all seven Abstraction Levels: System, Algorithm, Register Transfer Level, Gate, Circuit, and Material (watch short video).

For a simple and concise description of what Verilog is watch this video!

 

 

 

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

WELCOME TO OVISIGN!

My goal is to help you quickly master Verilog HDL for ASIC/FPGA DESIGN and VERIFICATION by focusing on practical examples to jump-start your coding and simulation skills.
OVISIGN = Verilog made easy for YOU!

FACEBOOK COMMUNITY

“If you want to go far, go together” – African proverb
Join our private community and get support for your Verilog design and verification questions from other enthusiastic members.
error: Content is protected !!