EE 3563 VHDL Example: 2-to

Download Report

Transcript EE 3563 VHDL Example: 2-to

EE 3563 VHSIC Hardware Description Language
 Required Reading:
– These Slides
– VHDL Tutorial
 Very High Speed Integrated Circuit (VHSIC)
 VHSIC Hardware Description Language (VHDL)
Fall 2004
EE 3563 Digital Systems Design
Fall 2004
EE 3563 Digital Systems Design
EE 3563 VHDL
 Used to model a digital system at numerous different levels
– Algorithmic level to gate level to system level
 Can express concurrent or sequential behavior, with or
without timing
 Models written in this language can be verified with
simulation
 The language is very complex, but we can focus on a small
part and still make use of it
 VHDL was constructed in the early 80’s as a DoD
requirement
– Many companies were making electronic components for DoD and
needed standardization in order to share designs
– VHDL 7.2, was released in 1985
– IEEE made it an industry standard in 1987
– Book I have is based on 1993 standard
Fall 2004
EE 3563 Digital Systems Design
EE 3563 VHDL


Exchange medium between chip vendors and CAD tool users
Communication medium between CAD and CAE tools
–
–








Computer Automated Design, Computer Aided Engineering
Schematic can be converted to VHDL for simulation
Supports a hierarchy – one component can become a sub-component of a
larger system
Not technology specific – can support many technologies
Synchronous and Asynchronous models
Supports finite state machines, algorithms, & boolean equations
Publicly available, not proprietary
IEEE and ANSI standard
Three basic different description styles
Wide range of abstraction levels, though not down to transistor level
Fall 2004
EE 3563 Digital Systems Design
EE 3563 VHDL
 No limitations on design size imposed by VHDL
 Propagation delays, setup and hold timing, timing
constraints, and spike detection can all be modeled
 Tools that use VHDL code can work with designs from
multiple vendors since the language is a standard
 Behavioral models that conform to certain synthesis
description styles are able to be synthesized
– The gate design can be generated from the behavior
 There are other features, but this should give you an idea
Fall 2004
EE 3563 Digital Systems Design
EE 3563 VHDL Overview
 A hardware abstraction is called an entity
 One entity, X, used inside another entity, Y, is called a
component
 VHDL has 5 primary constructs:
–
–
–
–
–
Entity declaration
Architecture body
Configuration declaration
Package declaration
Package body
 An entity has an entity declaration and at least one
architecture body
 The entity declaration describes the external view
– An “AND” gate would have 2 inputs and 1 output – more later
Fall 2004
EE 3563 Digital Systems Design
EE 3563 VHDL Overview
 The architecture body contains the internal description
– Could be interconnected components representing the structure
– Could be statements that represent the behavior
– Each of these styles can be in a separate architecture body or mixed
 A configuration declaration is used to specify the binding of




one architecture body from the possibly multiple other
architectures
It may also specify the bindings of components used in the
architecture body to other entities
An entity may have multiple configurations
A package declaration is a set of related declarations
A package body contains the definitions associated with the
declarations
– Ex: A course syllabus is the declaration, the actual course is the body
Fall 2004
EE 3563 Digital Systems Design
EE 3563 VHDL Overview
 Once an entity is modeled, it must be validated by VHDL




software which includes an analyzer and a simulator
The analyzer performs semantic checks and validates the
syntax
Then it compiles the VHDL code into a library
The simulator reads its compiled description from the design
library and then simulates the design
It performs 3 steps
– Elaboration
– Initialization
– Simulation
 NOTE: VHDL is case insensitive, so AND, and, AnD are
the same
Fall 2004
EE 3563 Digital Systems Design
EE 3563 VHDL Example
 The entity declaration specifies the name of the entity and
it’s input/output ports
 Ports are the signals that interface into and out of the entity
 Here is a half adder (why is it only a half adder?)
 The name is: HALF_ADDER
 4 ports: 2 input, 2 output
 They are of type BIT which means they can have one of two
different values, 0 or 1
– The double dash indicates a comment
Fall 2004
EE 3563 Digital Systems Design
EE 3563 VHDL Example
 The schematic is just for our reference, so far, the only
VHDL is the entity declaration
 It says NOTHING about how HALF_ADDER works, its
functionality or behavior
 It ONLY specifies inputs and outputs
– I made it bigger so you can see there is nothing else there
 Three types of modeling: structural, dataflow, behavioral
Fall 2004
EE 3563 Digital Systems Design
EE 3563 VHDL Example
 Structural modeling of HALF_ADDER
– this works in conjunction with the declaration
– an entity is described as a set of interconnected components
 The architecture body is composed of two parts:
– declarative part (after the keyword begin)
– the statement part (after the keyword begin)
 In our case, two components are declared (XOR2, AND2)
– they specify the interface of components used in the architecture body
– They are either user-specified in their own entity declaration and
architecture body or are used from the pre-defined library
 They are instantiated in the statement part of the architecture
body
Fall 2004
EE 3563 Digital Systems Design
EE 3563 VHDL Example
 The statement part of HALF_ADDER is inside the begin/end
 The X1 statement creates an instance of XOR2
– Many Dodge Vipers are made, but the one I own (1/100th scale) is a
specific instance of a Viper
 The signals in the port map are associated with the signals of
a component using positional association
– (the X input for XOR2 is mapped to the A input of HALF_ADDER)
Fall 2004
EE 3563 Digital Systems Design
EE 3563 VHDL Example
 Dataflow modeling of HALF_ADDER
 The flow of data is expressed using concurrent signal
assignment statements
 Each assignment statement is executed at the same time
(concurrently)
 Order is NOT important
 SIDE NOTE:
– You may wonder how a computer simulation can do this? It can’t.
– However, we are talking about two different types of time.
– In real-time, the computer can only perform a single task at any given
point, but here we mean the statements are executed in concurrently
in simulated time.
Fall 2004
EE 3563 Digital Systems Design
EE 3563 VHDL Example
 Here is the dataflow model of HALF_ADDER
architecture HA_CONCURRENT of HALF_ADDER is
begin
SUM <= A xor B after 8 ns;
CARRY <= A and B after 4 ns;
end HA_CONCURRENT;
 The name is HA_CONCURRENT
 The signals SUM & CARRY get assigned (<= ) values
 Note the after statement, it specifies when the signal (in
simulated time) gets its new value
 If no after statement is given, then the default delay is used
 The default delay (0 ns) is called the delta delay and is a
number infinitesimally above zero
Fall 2004
EE 3563 Digital Systems Design
EE 3563 VHDL Example
 Behavioral style of modeling specifies the functionality of an
entity with sequential statements
 Order IS important, because one statement is executed (in
simulated time) one right after the other
 The statements are specified inside a process statement
 They only specify the functionality of an entity, NOT its
structure
– Structure of XOR could be either
of these or some other design
– Example, could be a T-gate
implementation
Fall 2004
EE 3563 Digital Systems Design
EE 3563 VHDL Example
 Here is the behavior model of HALF_ADDER
architecture HA_CONCURRENT of HALF_ADDER is
begin
process (A, B)
begin
SUM <= A xor B;
CARRY <= A and B;
end process;
end HA_CONCURRENT;
 Whenever there is an event on A or B, the process is
executed
 The sequential statements are executed regardless of whether
an event occurs on the right hand side of their expression
– In this case, an event must occur on A or B to get here, but this is not
the general case
Fall 2004
EE 3563 Digital Systems Design
EE 3563 VHDL Example: 2-to-4 Decoder
 Now we will step through another example
 This is a 2-to-4 Decoder circuit, note the entity declaration
 BIT_VECTOR is another data type (it is an array of bits)
 Quiz: Entity name? # Inputs? # Outputs? Data types?
 How many components? How many instantiations?
Fall 2004
EE 3563 Digital Systems Design
EE 3563 VHDL Example: 2-to-4 Decoder
 Structural model of 2-to-4 Decoder
Fall 2004
EE 3563 Digital Systems Design
EE 3563 VHDL Example: 2-to-4 Decoder
 Dataflow model of 2-to-4 Decoder
 Note the signals: ABAR, BBAR of type BIT
 Concurrent or sequential?
 What time delay is used?
Fall 2004
EE 3563 Digital Systems Design
EE 3563 VHDL Example: 2-to-4 Decoder
 Behavioral model of 2-to-4 Decoder
 Concurrent or sequential?
 Note the variables ABAR, BBAR of type BIT
– Variables are different than signals in that they are assigned a value
instantaneously ( := )
 The process statement
also has declarative &
statement parts
Variables are declared,
statements are within the
begin/end process statements
Scope is limited to process
in which variable is declared
Fall 2004
EE 3563 Digital Systems Design
EE 3563 VHDL Example: Flip-Flop
entity LS_DFF is -- declaration for level-sensitive flip-flop
port(Q:out BIT; D, CLK:in BIT);
end LS_DFF
architecture LS_DFF_BEH of LS_DFF is
begin
process(D,CLK)
begin
if CLK=‘1’ then -- if CLK is one, D is assigned to Q
Q <= D
end if;
end process;
end LS_DFF_BEH;
Fall 2004
EE 3563 Digital Systems Design
EE 3563 VHDL Mixed Modeling
 The three types of modeling can be combined within an
architecture body
– component instantiation – structural
– concurrent signal assignments – dataflow
– process statements – behavior
 This is called the mixed style of modeling
Fall 2004
EE 3563 Digital Systems Design
EE 3563 VHDL
 FULL ADDER
Fall 2004
EE 3563 Digital Systems Design