data flow modelling
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.