This project sets up your FPGA board for use and shows you the steps in starting project files. It also gives you some basic knowledge on Digital Engineering. This is a getting started project with very little hands on with your board but is a good reference if you ever forget how to start your projects.
In this project, you will design and implement a circuit that controls an LED on your FPGA board with a slide switch. This project demonstrates how to use Verilog HDL to design a digital circuit and implement it on an FPGA board.
In this project, you will download a bit file to your board to configure the FPGA with four different logic circuits. The circuits use buttons and switches for inputs, and LEDs for outputs. You must probe the logic circuits by applying all possible combinations of input signals. From the results of applying all possible combinations you will be able to write logic equations that describe the circuits' behaviors. You will then rewrite the equations using Verilog HDL and re-implement them on FPGA and compare the circuit behavior with the given bit-file.
Introduces the topic of Verilog® Hardware Description Language (HDL) and explains the history.
An example of how to use Verilog® HDL. Includes information on module, I/O ports, bus, and assign statements.
How could you find a majority of the vote if each voter of five has a switch to vote for yes or no? The logic is fairly simple and will be used in this project. Any time there are three or more of the five who vote yes, then there is a majority and the LED needs to turn on.
In this project, you will design a 4-to-1 Mux and a decoder with an enable signal as a De-Mux to implement a simple serial data transmitter. Both Mux and De-mux will be implemented in two Verilog files for future re-use. Another Verilog file will be used to wrap up the Mux and De-Mux to form a communication sytem. This hierarchical design methodology will help manage design complexity, promote design reuse, and allow parallel development.
Latches are the fundamental bi-stable memory circuit in digital systems to store data and indicate the state of the system. In this project, we are going to implement and simulate the basic NAND cell of an SR-Latch and see how it functions.
Hardware multipliers, based directly on adder architectures, have become indispensable in modern computers.
Arithmetic and Logic Units (or ALUs) are found at the core of microprocessors, where they implement the arithmetic and logic functions offered by the processor (e.g., addition, subtraction, AND'ing two values, etc.). An ALU is a combinational circuit that combines many common logic circuits in one block.
Memory circuits function by storing the voltage present on an input signal whenever they are triggered by a control signal. They retain that stored voltage until the next assertion of the control (or trigger) signal. Between assertions of the control signal, the input signal is ignored and the output is driven to the most recently stored voltage.
A latch is one of the basic memory elements that store information in a digital system. One latch can store 1-bit of information. The outputs of a latch are constantly changing according to the inputs as long as the latch is enabled.
Flip-Flop circuits are constructed in such a way as to make them operate properly when they are part of a sequential circuit that employs a single clock.
Although combinational logic circuits form the backbone of digital circuits, sequential circuits are used in the vast majority of useful devices; there are more than 100 billion in existence.
The most difficult task in designing sequential circuits occurs at the very start of the design; in determining what characteristics of a given problem require sequential operations, and more particularly, what behaviors must be represented by a unique state.
A state diagram with state codes and complete branching conditions contains all information required for the design of optimal next-state and output logic circuits.
A collection of electronic components that have been assembled and interconnected to perform a given function is commonly referred to as a circuit. Electronic circuits can be divided into two broad categories: digital and analog.
Physical circuits are constructed of real, physical devices. Physical circuits can be inspected, tested, and modified. They consume electric power when energized, and they can function properly and do some meaningful work, or they can malfunction and create serious hazards to health and property. Model circuits are built on a computer and simulate the workings of the circuit, which allows for testing before the physical circuit is created.
Circuits often require inputs that come directly from users (as opposed to inputs that come from other devices). User-input devices can take many forms, among them keyboards (as on a PC), buttons (as on a calculator or telephone), rotary dials, switches and levers, etc.
The Digilent® boards use several connectors for various purposes, but in general, they all communicate electronic information between the board and outside devices. By convention, connectors are given the reference designator “J__”.
This project presents a brief, non-rigorous introduction to electronic circuits and systems. Only the most essential concepts are presented, with emphasis on topics used in later projects. As with all projects in this module, a companion “Exercise1” document is available for further understanding.
This project introduces Digilent’s FPGA-based circuit boards and the Adept™ software that is used to program them. In tutorial fashion, Adept is used to download a logic circuit to the board, and that circuit is used in an experiment with basic logic circuits.
This module presents the basic structure of combinational logic circuits, and introduces the use of computer aided design (CAD) tools in modern circuit design.