data flow modelling

Upload: knucklesadj

Post on 06-Apr-2018

230 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/3/2019 Data Flow Modelling

    1/24

    DATA FLOW MODELLING

  • 8/3/2019 Data Flow Modelling

    2/24

    Concurrent Statements

    Concurrent statements are executed at

    the same time, independent of the order in

    which they appear

  • 8/3/2019 Data Flow Modelling

    3/24

    architecture

    Begin

    A

  • 8/3/2019 Data Flow Modelling

    4/24

    Process model for this

    Architecture..

    Begin

    process (B)A

  • 8/3/2019 Data Flow Modelling

    5/24

    Three inverting buffersentity INV is

    port (A:in bit;B:out bit);end INV;

    architecture DELAY of INV is

    signal B,C:bit;begin

    Z

  • 8/3/2019 Data Flow Modelling

    6/24

    A

    C

    Z

    B

  • 8/3/2019 Data Flow Modelling

    7/24

    RS Latch

    Entity RS_LATCH is

    Port (A,B:in bit; Q ,QBAR :inout bit);

    End RS_LATCH;

    architecture DELTA of RS_LATCH is

    begin

    QBAR

  • 8/3/2019 Data Flow Modelling

    8/24

    S

    R

    QBAR

    Q

  • 8/3/2019 Data Flow Modelling

    9/24

    Multiple Drivers

    Entity TWO-DR is

    port (A,B,C :in bit: Z: out bit);

    End TWO-DR;

    Architecture MULTI of TWO-Dr is

    Begin

    Z

  • 8/3/2019 Data Flow Modelling

    10/24

    Architecture EXA of EXAMPLE is

    begin

    Z

  • 8/3/2019 Data Flow Modelling

    11/24

    Conditional Signal Assignment

    Condition is a boolean expression

    Mandatory else path, unless unconditional

    assignment

    conditions may overlap

    priority

    Equivalent of if ..., elsif ..., else constructs

  • 8/3/2019 Data Flow Modelling

    12/24

    TARGET

  • 8/3/2019 Data Flow Modelling

    13/24

    entity CONDITIONAL_ASSIGNMENT is

    port (A, B, C, X : in bit_vector (3 downto 0);

    Z_CONC : out bit_vector (3 downto 0);

    Z_SEQ : out bit_vector (3 downto 0));

    end CONDITIONAL_ASSIGNMENT;

    architecture EXAMPLE of CONDITIONAL_ASSIGNMENT

    isbegin

    -- Concurrent version of conditional signal assignment

    Z_CONC "1000" elseA;

  • 8/3/2019 Data Flow Modelling

    14/24

    -- Equivalent sequential statements

    process (A, B, C, X)

    beginif (X = "1111") then

    Z_SEQ "1000") then

    Z_SEQ

  • 8/3/2019 Data Flow Modelling

    15/24

    Selected Signal Assignment

    with EXPRESSION select

    TARGET

  • 8/3/2019 Data Flow Modelling

    16/24

    entity SELECTED_ASSIGNMENT is

    port (A, B, C, X : in integer range 0 to 15;

    Z_CONC : out integer range 0 to 15;Z_SEQ : out integer range 0 to

    15);

    end SELECTED_ASSIGNMENT;

  • 8/3/2019 Data Flow Modelling

    17/24

    architecture EXAMPLE ofSELECTED_ASSIGNMENT is

    begin

    -- Concurrent version of selected signalassignmentwith X select

    Z_CONC

  • 8/3/2019 Data Flow Modelling

    18/24

    -- Equivalent sequential statements

    process (A, B, C, X)

    begin

    case X is

    when 0 => Z_SEQ Z_SEQ Z_SEQ Z_SEQ

  • 8/3/2019 Data Flow Modelling

    19/24

    Copyright 1995- SCRA1999

    Methodology

    ReinventingElectronic

    DesignArchitecture Infrastructure

    DARPA Tri-Service

    RASSP

    Blocks and Guards

    l Blocks are concurrent statements and provide amechanism to partition an architecturedescription

    m Items declared in declarative region of block are visible

    only inside the block, e.g. :q signals, subprograms

    l Blocks may be nested to define a hierarchicalpartitioning of the architectural description

  • 8/3/2019 Data Flow Modelling

    20/24

  • 8/3/2019 Data Flow Modelling

    21/24

    Block label:block (guard expression)

    Block header

    Block declarationsBegin

    concurrent statements

    End block;

  • 8/3/2019 Data Flow Modelling

    22/24

    Blocks may be used to define apartitioning and a hierarchy within adesign and to group together signal

    assignments and other concurrentstatements which may share somecommon locally declared objects.

  • 8/3/2019 Data Flow Modelling

    23/24

    Copyright 1995- SCRA1999

    Methodology

    ReinventingElectronic

    DesignArchitecture Infrastructure

    DARPA Tri-Service

    RASSP

    Blocks and Guards

    l Unique to blocks is the GUARD construct

    mAguardedsignal assignment statement schedules anassignment to the signal driver only if the GUARDexpression is true. If the GUARD is false, the

    corresponding signal drivers are disconnectedmExample

    ARCHITECTURE guarded_assignments OF n_ _mux IS1BEGINbi: FOR j IN iRANGE GENERATEbj: BLOCK (s(j)= OR s(j)=Z)1

    BEGINx

  • 8/3/2019 Data Flow Modelling

    24/24

    A conditional GUARD can be included inthe BLOCK declaration. If such a GUARD

    expression exists, then any signalassignment statement in the block whichhas the keyword GUARDED willdisconnect the corresponding signal driver

    if the GUARD expression evaluates tofalse.

    This is one mechanism which can be usedto guarantee that there be only one activedriver on any signal at any one time.