Dataflow Model
-
Author
krish-gokul -
Category
Documents
-
view
221 -
download
0
Embed Size (px)
Transcript of Dataflow Model
-
8/13/2019 Dataflow Model
1/17
VLSISYSTEMDESIGNMODULEI 1
-
8/13/2019 Dataflow Model
2/17
Dataflow Modelin 1 2
but not for complex designs.
Desi ners can desi n more effectivel if the concentrate on
implementing the function at a level of abstraction higher
than gate level.
Dataflow modeling provides a powerful way to implement a
design.
Verilog allows a circuit to be designed in terms of the data
flow between registers and how a design processes data
rather than instantiation of individual gates.
MODULEI 2VLSISYSTEMDESIGN
-
8/13/2019 Dataflow Model
3/17
Dataflow Modelin 2 2
With ate densities on chi s increasin ra idl , dataflow
modeling has assumed great importance.
Currently, automated tools are used to create a gate-level
circuit from a dataflow design description. This process is
called logic synthesis.
The data flow modeling allows the designer to concentrate on
optimizing the circuit in terms of data flow.
In the digital design community, the term RTL (Register
Transfer Level) design is commonly used for a combination of
dataflow modeling and behavioral modeling.
MODULEI 3VLSISYSTEMDESIGN
-
8/13/2019 Dataflow Model
4/17
This level of abstraction level resembles like that of boolean
equation representation of digital systems.
The dataflow assignments are called Continuous Assignments.
Continuous assignments are always active.
Syntax: assign #(delay) target = expression;
A Verilog module can contain any number of continuous
VLSISYSTEMDESIGN
ass gnmen s a emen s, an a s aemen s execu e concurren y.
MODULEI 4
-
8/13/2019 Dataflow Model
5/17
LHS target -> always a net, not a register.
RHS -> registers, nets or function calls.
Delay values can be specified in terms of time units.
Whenever an event (change of value) occurs on any operand
used on the RHS of an expression, the expression is
evaluated and assigned to the LHS target.
VLSISYSTEMDESIGNMODULEI 5
-
8/13/2019 Dataflow Model
6/17
Regular continuous assignment.
wire mux_out, a_in, b_in, sel_in;
ass gn mux_ou = se _ n _ n : a_ n;
.
wire a_in, b_in, sel_in;
wire mux_out = sel_in ? b_in : a_in;
VLSISYSTEMDESIGNMODULEI 6
-
8/13/2019 Dataflow Model
7/17
wire and_out;
assign and_out = i1 & i2; // regular continuous assignment
wire exor_out = i1[31:0] ^ i2[31:0] // implicit assignment
VLSISYSTEMDESIGNMODULEI 7
-
8/13/2019 Dataflow Model
8/17
Example
module enerate_mux
(data,select,out);input [0:7] data;
OUTMUXATA
input [0:2]select;
output out;w re ou ;
assign out = data[select];SELECT
Note: Non- constant index in expression on RHS generates MUX
MODULEI 8VLSISYSTEMDESIGN
-
8/13/2019 Dataflow Model
9/17
Exam le
module enerate decoder
(data,select,out);input data;
DECODERAT
A
input [0:1]select;
output [0:3] out;
OUT
w re : ou ;
assign out[select]=data;SELECT
-
MODULEI 9VLSISYSTEMDESIGN
-
8/13/2019 Dataflow Model
10/17
Example
module enerate_mux
(a,b,f,s);input a,b;
fMUX
a
b
input s;
output f;w re ;
assign f = s? a : b;s
Note: Conditional Operator generate MUX
MODULEI 10VLSISYSTEMDESIGN
-
8/13/2019 Dataflow Model
11/17
-
8/13/2019 Dataflow Model
12/17
Delay values control the time between the change in a right
hand-side operand and when the new value is assigned to
- .
Regular assignment delay
mp c con nuous ass gnmen e ay
Net declaration dela
VLSISYSTEMDESIGNMODULEI 12
-
8/13/2019 Dataflow Model
13/17
The delay value is specified after the keyword assign.
Any change in values of in1 or in2 will result in a delay of 10 time units before
recomputation of the expression in1 & in2, and the result will be assigned to out.
Example:
module and_ex(and_out , a_in, b_in);
in ut a in b in_ _
output and_out;
wire and_out;
ass gn an _ou = a_ n _ n;endmodule
VLSISYSTEMDESIGNMODULEI 13
-
8/13/2019 Dataflow Model
14/17
wire out;
ass gn out = ; egu ar ass gnment e ay
The inertial delay of real circuits is modeled through
regular assignment delay.
An event on the RHS si nals which is not lastin for the
amount of inertial delay specified will not have any effect on
VLSISYSTEMDESIGN
.
MODULEI 14
-
8/13/2019 Dataflow Model
15/17
in1in1
in2in2
outout
1010 2020 3030 6060 7070 8080 8585
VLSISYSTEMDESIGN7/24/2011 VERILOG HDL PRESENTATION 15MODULEI 15
-
8/13/2019 Dataflow Model
16/17
An equivalent method is to use an implicit continuous assignment to
Exam le:
specify both a delay and an assignment on the net.
module and_ex(and_out , a_in, b_in);
npu a_ n, _ n;
output and_out;
wire #10 and_out = a_in & b_in;
endmodule
VLSISYSTEMDESIGNMODULEI 16
-
8/13/2019 Dataflow Model
17/17
A delay can be specified on a net when it is declared without
putting a continuous assignment on the net.
If a delay is specified on a net out, then any value change applied
Example:
o e ne ou s e aye accor ng y.
_ _ , _ , _
input a_in, b_in;
output and_out;
wire #10 and_out;assign and_out = a_in & b_in;
endmodule
VLSISYSTEMDESIGNMODULEI 17