Developing a large FPGA-based system is an involved process that consists of many complex transformations and optimization algorithms. Software tools are needed to automate some of the tasks. We use the Altera Quartus II Web Edition package for synthesis, implementation, and device programming, and use the Mentor Graphics ModelSim Altera Starter Edition package for HDL simulation. In this chapter, we give a brief overview of the FPGA device and the DE1 prototyping board, and provide short tutorials for the two software packages to “jump-start” the learning process.

3.1 FPGA

3.1.1 Overview of a general FPGA device

A field-programmable gate array (FPGA) is a logic device that contains a two-dimensional array of generic logic cells and programmable switches. The conceptual structure of an FPGA device is shown in Figure 3.1. A logic cell can be configured (i.e., programmed) to perform a simple function, and a programmable switch can be customized to provide interconnections among the logic cells. A custom design can be implemented by specifying the function of each logic cell and selectively setting the connection of each programmable switch. Once the design and synthesis are completed, we can use a simple adaptor cable to download the desired logic cell and switch configuration to the FPGA device and obtain the custom circuit. Since this process can be done “in the field” rather than “in a fabrication facility (fab),” the device is known ...

Get Embedded SoPC Design with Nios II Processor and Verilog Examples now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.