VHDL Tutorial

Fundamental concepts of digital design
Fundamental concepts

Modelling concepts
Elements of behaviour
Elements of structure
Analysis elaboration
Lexical elements
Characters and strings 
Syntax descriptions
Constants and variables
Scalar type
Integer types
Floating point types
Time type
Enumeration types
Character types
Boolean type 
Bits type
Standard logic
Sequential statements
Case statements
Loop and exit statements
Assertion statements
Array types & array operations
Architecture bodies
Entity declarations
Behavioral descriptions 
Wait statements
Delta delays
Process statements
Conditional signal assignment 
Selected signal assigment
Structural descriptions
Library and library clauses
Procedure parameters
Signal parameters
Default values
Unconstrained array parameter
Package declarations and bodies
Subprograms in package
Use clauses
Resolved signals and subtypes
Resolved signals and ports
Parameterizing behavior
Parameterizing structure

Modeling Digital Systems


The term digital systems encompasses a range of systems from low-level components

to complete system-on-a-chip and board-level designs.   If we are to encompass this range of views of digital systems, we must recognize the complexity with which we are dealing.  It is not humanly possible to comprehend such complex systems in their entirety.   We need to find methods of dealing with the complexity, so that we can, with some degree of confidence, design components and systems that meet their re- quirements.

The most important way of meeting this challenge is to adopt a systematic meth- odology of design.   If we start with a requirements document for the system, we can design  an  abstract  structure  that  meets  the  requirements.   We  can  then  decompose this structure into a collection of components that interact to perform the same func- tion.   Each of these components can in turn be decomposed until we get to a level where  we  have  some  ready-made,  primitive  components  that  perform  a  required function The result of this process is  a hierarchically  composed system, built from the primitive elements.

The advantage of this methodology is that each subsystem can be designed inde- pendently of others.   When we use a subsystem, we can think of it as an abstraction rather than having to consider its detailed composition.   So at any particular stage in the design process, we only need to pay attention to the small amount of information relevant to the  current focus  of design.   We  are  saved  from being  overwhelmed by masses of detail.

We use the term model to mean our understanding of a system The model rep- resents  that  information  which  is  relevant  and  abstracts  away  from  irrelevant  detail. The implication of this is that there may be several models of the same system, since different information is relevant in different contexts.   One kind of model might con- centrate on representing the function of the system, whereas another kind might rep- resent the way in which the system is composed of subsystems.

There are a number of important motivations for formalizing this idea of a model, including


Want To have highly paid VLSI jobs ?? then you may contact at

Contact : webmaster@freehost7com

 expressing system requirements in a complete and unambiguous way


 documenting the functionality of a system


 testing a design to verify that it performs correctly


 formally verifying properties of a design


 synthesizing an implementation in a target technology (e.g., ASIC or FPGA)


The unifying factor is that we want to achieve maximum reliability in the design process for minimum cost and design time.  We need to ensure that requirements are clearly specified and understood, that subsystems are used correctly and that designs meet  the  requirements.   A  major  contributor  to  excessive  cost  is  having  to  revise  a design after manufacture to correct errors.  By avoiding errors, and by providing better tools for the design process, costs and delays can be contained.