advanced vlsi chap8-2-vhdl

Upload: kirtesh-tiwari

Post on 03-Apr-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/28/2019 ADVANCED VLSI CHAP8-2-vhdl

    1/19

    Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf

    Topics

    VHDL register-transfer modeling:

    basics using traffic light controller;

    synthesis.

  • 7/28/2019 ADVANCED VLSI CHAP8-2-vhdl

    2/19

    Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf

    VHDL

    Combines a general-purpose programming

    language and an HDL.

    Modeled on Ada programming language.

    VHDL is a rich language:

    modules;

    abstract data types.

    VHDL is case-insensitive.

  • 7/28/2019 ADVANCED VLSI CHAP8-2-vhdl

    3/19

    Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf

    Abstract data types

    package lights is

    ---this is a comment

    subtype light is bit_vector(0 to1);

    constant red : light : B00;

    constant green : light : B01;constant yellow : light : B10;

    end lights;

  • 7/28/2019 ADVANCED VLSI CHAP8-2-vhdl

    4/19

    Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf

    VHDL entities

    An entity defines the interface to the

    module.

    May plug various descriptions into the

    entity interface:

    behavioral;

    RT;

    gate.

  • 7/28/2019 ADVANCED VLSI CHAP8-2-vhdl

    5/19

    Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf

    VHDL constants

    Bit constant:

    0, 1

    Bit vector constant:

    B0101

  • 7/28/2019 ADVANCED VLSI CHAP8-2-vhdl

    6/19

    Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf

    Traffic light entity declaration

    entity tlc_fsm is

    port( CLOCK: in BIT; -- machine clock

    reset : in BIT; -- global resetcars : in BIT; -- car signal

    short, long : in BIT;

    highway_light : out light := green;

    farm_light : out light := red;

    start_timer : out BIT

    );

  • 7/28/2019 ADVANCED VLSI CHAP8-2-vhdl

    7/19

    Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf

    VHDL processes

    A process is a unit of parallel execution.

    All processes in an entity execute in parallel.

    Processes are used to build up behavior.

    Our RT model will have at least two

    processes:

    combinational process for the logic;

    sequential process for the flip-flops.

  • 7/28/2019 ADVANCED VLSI CHAP8-2-vhdl

    8/19

    Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf

    VHDL process example

    combin : process(state,hg)

    begin

    highway_light

  • 7/28/2019 ADVANCED VLSI CHAP8-2-vhdl

    9/19

    Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf

    VHDL formulas

    a and b Boolean AND

    a or b Boolean OR

    not a Boolean NOT

    a

  • 7/28/2019 ADVANCED VLSI CHAP8-2-vhdl

    10/19

    Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf

    VHDL data types

    std_logic Binary signal

    std_logic_vector Binary signal vector

  • 7/28/2019 ADVANCED VLSI CHAP8-2-vhdl

    11/19

    Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf

    Operations in the process

    if (b or c) = 1

    then

    y

  • 7/28/2019 ADVANCED VLSI CHAP8-2-vhdl

    12/19

    Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf

    Conditional assignments

    if (b or c) = 1

    then

    y

  • 7/28/2019 ADVANCED VLSI CHAP8-2-vhdl

    13/19

    Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf

    Some useful constructs

    avec: out std_logic_vector(11 downto 0)

    vector

    constant zerovec: std_logic_vector(0 to7) := B00000000;

    constant vectorsum

  • 7/28/2019 ADVANCED VLSI CHAP8-2-vhdl

    14/19

    Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf

    Structure of a VHDL model

    Library use statements.

    Entity declaration.

    Architecture declaration.

    Processes, etc. that form the architecture.

    An entity may have multiple instantiations.

  • 7/28/2019 ADVANCED VLSI CHAP8-2-vhdl

    15/19

    Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf

    A synthesizable VHDL

    archtiecture

    Declarations of types and signals.

    Combinational process.

    May be several combinational processes that

    communicate via signals.

    Synchronous process.

  • 7/28/2019 ADVANCED VLSI CHAP8-2-vhdl

    16/19

    Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf

    A synthesizable synchronous

    process

    sync: process(CLOCK)

    begin

    wait until CLOCKevent and CLOCK= 1;

    ctrl_state

  • 7/28/2019 ADVANCED VLSI CHAP8-2-vhdl

    17/19

    Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf

    Testbench structure

    Unit under test

    (UUT)

    testbench

    tester

  • 7/28/2019 ADVANCED VLSI CHAP8-2-vhdl

    18/19

    Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf

    VHDL testbed organization

    Library calls.

    Entity declaration.

    Generally has no inputs or outputs.

    Architecture section.

    UUT is a component.

    Testbench logic is a process.

  • 7/28/2019 ADVANCED VLSI CHAP8-2-vhdl

    19/19

    Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf

    Testbench tester process

    tester: process

    begin

    reset