Aliases - PowerPoint PPT Presentation

1 / 53
About This Presentation
Title:

Aliases

Description:

signal S: BIT_VECTOR (31 downto 0); 31 30 23 0. 31 26 23 18 0. Sign Exponent Mantissa. OP Reg Base Offset. Can represent: Or: An example: March 2003 ... – PowerPoint PPT presentation

Number of Views:512
Avg rating:3.0/5.0
Slides: 54
Provided by: glu
Category:
Tags: aliases | mantissa

less

Transcript and Presenter's Notes

Title: Aliases


1
Topics
  • Aliases
  • Subprograms
  • Generics Configurations

2
Aliases
  • An alternate name for name items
  • Can significantly improve the readability of
    VHDL codes by using a shorthand notation for long
    names.
  • Provides a mechanism to refer to the same named
    item in different ways.

3
Aliases
An example
signal S BIT_VECTOR (31 downto 0)
Can represent
Sign Exponent Mantissa
31 30 23
0
Or
OP Reg Base
Offset
31 26 23 18
0
4
Aliases
  • Syntax

alias identifier identifier-type is
item-name
Optional signature portion
alias identifier identifier-type is
item-name signature
5
Aliases
  • Object aliases
  • Constant
  • Signal
  • Variable
  • File
  • Non-Object aliases
  • Function names
  • Literals
  • Type names
  • Attribute names

Except labels, loop parameters, and generate
parameters
6
Aliases
Object aliases
Examples
constant number_of_bytes integer 4 alias N
integer is number_of_byptes
7
Aliases
Object aliases
8
Aliases
Object aliases
We can avoid this by Introducing two alias
declarations into our model!
9
Aliases
None-object aliases
Example
10
Aliases
  • With aliases, it is possible to declare
    something like subtypes, if the what we
    required is just a somewhat restricted version of
    the original type.

In this way, we break down complex data
structures into simpler parts that can be
accessed directly.
11
Aliases
An example
12
Aliases
  • With aliases, it is possible to declare
    something like subtypes, if the what we
    required is just a somewhat restricted version of
    the original type.

In this way, we break down complex data
structures into simpler parts that can be
accessed directly.
Notice we are NOT defining a new data type.
However, there are real subtypes.
13
Aliases
  • Language Features SUBTYPES
  • SUBTYPE TYPE constraints on values
  • TYPE is the base-type of SUBTYPE
  • SUBTYPE inherits all the operators of TYPE
  • SUBTYPE can be more or less used interchangeably
    with TYPE
  • examples

subtype small_float is real range 0.0 to 1.0
14
Aliases
  • Signature

alias identifier identifier-type is
item-name signature
The signature portion is optional.
  • Used for
  • Subprograms
  • Enumeration literals

15
Aliases
  • Syntax

alias identifier identifier-type is
item-name signature
The signature portion is optional.
Signatures syntax rule
type_mark , return type_mark
16
Aliases
None-object aliases
Example
17
Topics
  • Aliases
  • Subprograms
  • Generics Configurations

18
Subprograms
  • Like other programming languages, VHDL provides
    subprogram facilities in the form of functions
    and procedures.
  • VHDL also provided a package facility for
    collecting declarations and objects into modular
    units.
  • Packages also provide a measure of data
    abstraction and information hiding.

19
Subprograms
  • Two steps
  • First they must be declared
  • Then they can be called elsewhere.

20
Subprograms
Modes
21
Subprograms functions
  • Functions
  • Can be used within an expression
  • Can be used to describe frequently used
    sequential algorithms
  • Return a single value
  • Execute in zero simulation time (no WAIT
    allowed).

22
Subprograms functions
Declaration
pure impure function identifier (
parameter_interface_list ) return type_mark
is subprogram_declarative_item begin
sequential_statements end function
identifier
Where parameter_interface_list is
( constant variable signal identifier ,
in type_indication static_expression
) ,
23
Subprograms functions
  • Example

24
Subprograms functions
Declaration
pure impure function identifier (
parameter_interface_list ) return type_mark
is subprogram_declarative_item begin
sequential_statements end function
identifier
Call
identifier (parameter_association_list )
25
Subprograms functions
  • Example

26
Subprograms functions
  • By default, functions are declared as pure
  • In pure functions, the only accessible data are
    the input arguments and the only returned
    information from this function is the returned
    value. Pure functions do not have access to
    objects outside the function.
  • VHDL93 introduces impure declaration
  • Impure functions must be explicitly declared
  • Impure functions can modify data outside their
    own scope.

27
Subprograms functions
  • Example

The file bit_file is an outside object. Since
the function is impure, accessing to the file
bit_file is possible.
28
Subprograms functions
  • Usages of functions
  • Returning a value in an expression.
  • Conversion functions.
  • ------ to convert an object of one type to
    another
  • Resolution functions.
  • ------ to resolve bus contention on a
    multiply-driven signal

29
Subprograms functions
  • Conversion functions.
  • are used to convert an object of one type to
    another to allow mapping of signals and ports of
    different types. This type of situation usually
    arises when a designer wants to make use of an
    entity from anther design that uses a different
    data type.

30
Subprograms functions
  • Resolution functions
  • are used to return the value of a signal when
    the signal is driven by multiple drivers. It is
    illegal in VHDL to have a signal with multiple
    drivers without a resolution function attached to
    it.
  • A resolution function has a signal-argument
    input (consists of an unconstrained array of
    driver values for the signal) and returns a
    single signal value.

31
Subprograms procedures
  • Procedures
  • Can be used to partition large behavioral
    descriptions into modular sections
  • A procedure call may be a sequential or
    concurrent statement
  • Arbitrary number of parameters of any possible
    direction ( in / out / inout )
  • May or may not execute in zero simulation time.

32
Subprograms procedures
Declaration
procedure identifier ( parameter_interface_list
) is subprogram_declarative_item begin
sequential_statements end procedure
identifier
Where parameter_interface_list is
( constant variable signal identifier ,
mode type_indication static_expression
) ,
33
Subprograms procedures
Declaration
procedure identifier ( parameter_interface_list
) is subprogram_declarative_item begin
sequential_statements end procedure
identifier
Call statement
label procedure_name (parameter_associatio
n_list)
34
Subprograms procedures
Example
35
Subprograms procedures
Default Values in the parameters When the
procedure is called, we can use either leave it
out in the callers parameter list, or use
keyword open.
36
Subprograms procedures
Example
37
Subprograms procedures
Declaration
procedure identifier ( parameter_interface_list
) is subprogram_declarative_item begin
sequential_statements end procedure
identifier
Call statement
label procedure_name (parameter_associatio
n_list)
38
Subprograms procedures
Concurrent Procedure Call Statements are
equivalent to the same procedures with a wait
statement, whose sensitivity clause includes the
signals mentioned in the parameter list.
  • The equivalent procedure
  • A concurrent procedure call
  • call_proc p ( s1, s2, val )
  • call_proc process is
  • begin
  • p ( s1, s2, val )
  • wait on s1, s2
  • end process call_proc

39
Subprograms procedures
Function encapsulates a collection of
statements that compute a result Þ generate an
expression Procedure encapsulates a
collection of sequential statements to execute Þ
generate a statement
40
GenericsConfigurations
41
Generics
  • Can we write general models instead of making
    specific models with VHDL ?

42
Generics
  • Motivation
  • Oftentimes we want to be able to specify a
    property separately for each instance of a
    component.
  • VHDL allows models to be parameterized with
    generics.
  • Allows one to make general models instead of
    making specific models for many different
    configurations of inputs, outputs, and timing
    information.
  • Information passed into a design description from
    its environment.

43
Generics
  • A generic

AND gate
entity AND_GATE is generic ( N natural 2
) port ( A in bit_vector (1 to N )
Z out bit) end AND_GATE
architecture generic_ex of AND_GATE is begin
process (A) variable AND_OUTbit
begin AND_OUT 1 for k in 1 to
N loop AND_OUT AND_OUT and A(k)
exit when AND_OUT 0 end
loop ZltAND_OUT end process end
GENERIC_EX
44
Generics
  • A generic declares a constant object of mode in
    (read only) The value of this constant can be
    specified as a static expression globally
  • Then it can be used in the entity declaration and
    its corresponding architecture bodies.
  • The value of a generic must be determined at
    elaboration time (explicitly specified at least
    once).

45
Generics
  • The value for a generic may be specified
  • in an entity declaration
  • in a component declaration
  • in a component instantiation.

46
Generics
entity ANOTHER_GEN_EX is end archiecture
GEN_IN_COMP of ANOTHER_GEN_EX is component
NAND_GATE generic (M INTEGER) port
(A in bit_vector(M downto 1) z out bit)
end component component AND_GATE
generic (N natuaral 5) port (A in
bit_vector(1 to N) Z out bit) end
component signal S1, S2, S3, S4 bit
signal SA bit_vector( 1to 5) signal SB
bit_vector( 2 downto 1) signal SC
bit_vector(1 to 10) signal SD bit_vector(5
downto 0) begin N1 NAND_GATE generic map (6)
port map (SD, S1) --N2 NAND_GATE port map
(SB, S2) A1 AND_GATE generic map (N gt 10)
port map (SC, S3) A2 AND_GATE port map (SA,
S4) end GEN_IN_COMP
component declarations
component instantiations
47
Generics
  • Notes
  • Generic information is static
  • ------it can not be changed during the
    simulation.
  • Generic value is instance-specific
  • ------different instances of the same component
    can have different values.

48
Configurations
  • Why we need configurations ?

It may be convenient to specify multiple views
for a single entity and use any one of them for
simulation. For example, there are three
architecture bodies, called FA_BEH, FA_STR, and
FA_MIXED, corresponding to an entity FULL_ADDER.
We can select any of them for simulation by
specifying an appropriate configuration.
49
Configurations
  • Configurations
  • A VHDL description may consist of many design
    entities, each with several architectures, and
    organized into a design hierarchy. The
    configuration does the job of specifying the
    exact set of entities and architectures to use,
    in other words, binding component instances to
    entities.

50
Configurations
  • Configurations
  • Specify which architectures to use for a
    particular component
  • Specify which parameter values to use for a
    particular component

51
Configurations
  • A configuration is therefore used to bind the
    following pairs
  • An architecture body to its entity declaration
  • A component with an entity
  • Definition
  • Associating an architectural description with a
    component in a structural model.

52
Configurations
  • Choose component

53
Configurations
  • VHDL provides two ways of binding
  • By using a configuration specifications
  • Is used to bind component instantiations to
    specific entities stored in design libraries.
  • By using a configuration declarations
  • The binding can be performed after the
    architecture body has been written.
  • More than one configuration declaration for an
    entity is possible.
  • The power lies in that the sub-components in an
    entire hierarchy of a design can be bound using a
    single configuration declaration.

54
Configurations
Configuration specifications
------A VHDL construct which helps associate a
particular architecture with an instantiated
component
component MYCOMP port ( .) end component
for U1 MYCOMP use entity work.MYCOMP(BEHAV)
55
Configurations
56
Configurations
57
Topics
  • Aliases
  • Subprograms
  • Generics Configurations
Write a Comment
User Comments (0)
About PowerShow.com