Digital Systems Design

VHDL and Programmable Logic Devices

Introduction

In the mid 1980s, the United States Department of Defence (DoD) a the IEEE sponsored the development of a highly capable hardware-description language called VHDL. The VHDL language has so many features such as designs that can be decomposed hierarchically, logical operation of a design can be stimulated, the timing behaviour of a design can be stimulated, functional specifications can use either a behavioural algorithm or an actual hardware structure to define an element’s operation, a design that has both a well defined interface (for connecting it to other elements) and a precise functional specification (for stimulating it), concurrency, timing, clocking can be modelled and etc. VHDL handles asynchronous as well as synchronous sequential circuit structures. It all started as a modelling and documentation language therefore allowing the behaviour of digital systems designs to be precisely specified and stimulated. VHDL can help in design, stimulate and synthesize anything from a combinational circuit to a complete microprocessor system on a chip.

VHDL stands for VHSIC Hardware Description Language. VHSIC stands for VERY HIGH SPPED INTEGRATED CIRCUIT. VHDL was designed with principles of structured programming in mind, taking ideas from the Pascal and Ada software programming languages.

A ROM is an example of a programmable logic device (PLD). The term programmable means that a designer with a relatively low cost machine. An example of a low cost machine is a PROM programmer, which can configure a set of internal switches in the programmable logic device that route, signals to various logic gates in order to realize a particular circuit. A PLD arrives in a blank state and needs to be configured at least once before being able to do something useful. Concerning combinational logic, most all the PLD’s give the user some version of an empty sum of products circuit even though some PLD’s offer XOR gates at the output for polarity control.

Combinational circuits

Logic circuits for digital systems may be combinational or sequential. A combinational circuit is made up of logic gates whose outputs at any time are determined from the present combination of inputs. A combinational circuit can perform an operation that can be specified logically by a set of Boolean functions. Sequential circuits employ storage elements in addition to logic gates. Their outputs are a function of the inputs and the state of the storage elements. The state of storage elements is a function of previous inputs. The outputs of sequential logics depend not only on present values of inputs, but also on past inputs and internal states. A combinational circuit consists of input variables, logic gates and output variables. The logic gates accept signals from the inputs and generate signals to the outputs. This process transforms binary information from the given input data to a required output data.

The Circuit Board

The Digilab XCRP (XCRP) circuit board featuring the Xilinx CoolRunner XC3064CPLD provides a very low cost platform that can be used to implement a wide variety of digital circuits, from complex combinational devices to sequential machines and controllers.

 

Learning Objectives

(1)The aim of the experiments being carried out is to introduce the concepts and advantages of computer aided design to design and create a circuit, stimulate and implement this circuit to a programmable component.

(2) To be able to understand the basic tools such as Xlinx Design Solution which includes the ModelSim stimulator that can be used as a design resource to give a better understanding of programmable logic.

(3) To learn how to make use of VHDL language to design, stimulate and implement some basic logic circuits.

(4) Design and stimulate a various outputs and counter components

(5) Implement and download these designs into a complex programmable logic device

Background Theory

A VHDL entity is a declaration of an input and output while VHDL architecture is a detailed description of the module’s internal behaviour or the structure. In large projects the entities and architectures are sometimes defined in separate files in which the complier matches up according to their declared names. VHDL generally ignores spaces and line breaks and this feature can therefore provide readability. Comments can be made when writing a program and it usually begins with two hyphens (--) and end at the end of a line.

VHDL has many characters strings called reserved words or keywords such as entity, port, is, in, out, end, architecture, begin, when, else and not. The user defined identifiers begin with a letter and contain letters, digits and underscores but usually an underscore may not follow another underscore or be the last character in an identifier. An entity declaration has the following elements:

Entity name: A user selected identifier to name the entity

Join now!

Signal names: A comma- separated list of one or more user selected identifiers to name the external interface signals

Mode: This specifies the signal direction

   In: The signal is an input to the entity

   Out: The signal is an output of the entity. The values of such a signal cannot be read inside the entity’s architecture only by other entities that use it.

Buffer: The signal is an output of the entity and its value can also be read inside the entity that uses it.

Inout: The signal can be used as an input ...

This is a preview of the whole essay