chap. 6 dataflow modeling. 2 dataflow modeling continuous assignments delays expressions, operators...

52
Chap. 6 Dataflow Modeling

Upload: arjun-molyneux

Post on 22-Jan-2016

245 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

Chap. 6 Dataflow Modeling

Page 2: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

2

Dataflow Modeling

Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

Page 3: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

3

Continuous Assignments - I

Assign a logic value to a wire/net Syntax

Continuous_assign::= assign [drive_strength] [delay] list_of_assignments;

List_of_net_assignments::=net_assignment{, net_assignment}

Net_assignment::=net_lvalue = expression Default drive_strength: strong1 or strong0 Delay: propagation time from inputs to output

Page 4: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

4

Continuous Assignments - II

Constraints LHS of assignment (=) must be scalar net or vecto

r net (rather than reg or vector reg) Once the value of RHS expression changes, the v

alue of assigned wire also changes accordingly The expression of RHS can be reg, wire or functio

n Delay controls the update time of LHS when the v

alue of RHS has changed like gate delay

Page 5: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

5

An Example of Continuous Assignments

Page 6: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

6

Implicit Continuous Assignment Perform a wire assignment when declaring

the wire wire out;

assign out = in1 & in2; (equals the following) wire out = in1 & in2;

Page 7: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

7

Implicit Net Declaration

Perform assignment for an un-declared wire wire i1, i2;

assign out = i1 & i2; // wire out has not been

// declared

Page 8: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

8

Dataflow Modeling

Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

Page 9: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

9

Delays

Regular Assignment Delay Implicit Continuous Assignment Delay Net Declaration Delay

Page 10: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

10

Regular Assignment Delay

assign #10 out = in1 & in2;

Page 11: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

11

Implicit Continuous Assignment Delay wire #10 out = in1 & in2; (equals the

following) wire out;

assign #10 out = in1 & in2;

Page 12: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

12

Net Declaration Delay

wire #10 out;

assign out = in1 & in2; (equals the following) wire out;

assign #10 out = in1 & in2;

Page 13: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

13

Dataflow Modeling

Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

Page 14: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

14

Expressions

Combine operator and operand to output a result a^b addr1[20:17] + addr2[20:17] in1 | in2

Page 15: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

15

Operands

Data type - constants, integers, real, nets, registers, times, bit-select, part-select, memory or function calls

Integer count, final_count; final_count = count + 1; real a, b, c; c = a – b; reg [15:0] reg1, reg2; reg [3:0] reg_out; reg_out = reg1[3:0] ^ reg2[3:0]; reg ret_value; ret_value = calculate_parity(A, B);

Page 16: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

16

Operators

Perform an operation on operands d1 && d2 // && operates on operands d1 and d2 !a[0] B1>>1

Page 17: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

17

Dataflow Modeling

Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

Page 18: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

18

Operator Classes

Arithmetic Logical Relational Equality Bitwise Reduction Shift Concatenation Conditional

Page 19: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

19

Operation Types - I

Page 20: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

20

Operator Types - II

Page 21: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

21

Arithmetic Operators - I

Binary Operator (+, -, *, /, **, %) A = 4’b0011; B = 4’b0100;

D = 6; E = 4;

A * B

D / E

A + B

B – A

F = E ** F;

Page 22: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

22

Arithmetic Operators - II

Binary Operator (+, -, *, /, **, %) in1 = 4’b101x; in2 = 4’b1010; sum = in1 + in2; // sum is 4’bx 13 % 3 16 % 4 -7 % 2 7 % -2

Unary Operator (+, -) -4 +5

Page 23: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

23

Logical Operators

&&(logic-and), ||(logic-or), !(logic-not) A = 3; B = 0;

A && B

A || B

!A

!B A = 2’0x; B = 2’b10;

A && B ( a == 2) && (b == 3)

Page 24: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

24

Relational Operators

>, <, <=, >= A = 4, B = 3

X = 4’b1010, Y = 4’b1101, Z = 4’b1xxx

A <= B

A > B

Y >= X

Y < Z

Page 25: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

25

Equality Operators - I

Logic Equality (==, !=) Event Equality (===, !==)

Page 26: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

26

Equality Operators - II

A = 4, B = 3 X = 4’b1010, Y = 4’b1101 Z = 4’b1xxz, M = 4’b1xxz, N = 4’b1xxx A == B // 0 X != Y // 1 X == Z // x Z === M // 1 Z === N // 0 M !=== N // 1

Page 27: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

27

Bitwise Operators - I

~(Negation), & (and), | (or), ^ (xor), ^~ (xnor)

Page 28: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

28

Bitwise Operators - II

X = 4’b1010, Y = 4’b1101, Z = 4’b10x1 ~X // 4’b0101 X & Y // 4’b1000 X | Y // 4’b1111 X ^ Y // 4’b0111 X ^~ Y // 4’b1000 X & Z // 4’b10x0 X = 4’b1010, Y = 4’b0000 X | Y // 4’b1010 X || Y // 1

Page 29: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

29

Reduction Operator

&, ~&, |, ~|, ^, ~^ X = 4’b1010

&X // 1’b0

|X // 1’b1

^X // 1’b0, can be used to count even parity

Page 30: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

30

Shift Operator

>>(right shift), <<(left shift), >>>(arithmetic right shift), <<<

X = 4’b1100 Y = X >> 1; // 4’b0110 Y = X << 1; // 4’b1000 Y = X << 2; // 4’b0000 Integer a, b, c; a = 0; b = -10; c = a + (b >>> 3);

Page 31: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

31

Concatenation Operator

{, } A = 1’b1, B = 2’b00, C = 2’b10, D = 3’b110

Y = { B, C }

Y = { A, B, C, D, 3’b001 }

Y = { A, B[0], C[1] }

Page 32: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

32

Replication Operator

reg A;

reg [1:0] B, C;

reg [2:0] D;

A = 1’b1; B = 2’b00; C = 2’b10; D = 3’b110;

Y = {4{A}}

Y = {4{A}, 2{B}}

Y = {4{A}, 2{B}, C}

Page 33: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

33

Condition_expr ? ture_expr : false_expr;

assign addr_bus = drive_enable ? Addr_out : 36’bz; assign out = control ? in1 : in0; Assign out = ( A == 3 ) ? ( control ? x : y ) : ( control ? m : n );

Conditional Operator

Page 34: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

34

Operator Precedence

Page 35: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

35

Dataflow Modeling

Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

Page 36: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

36

Design 4-to-1 Multiplexer

Using logic expression Using conditional operator

Page 37: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

37

Using Logic Expression

Page 38: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

38

Using Conditional Operator

Page 39: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

39

Design 4-bit Full Adder

Using addition (+) and concatenation ({, }) Carry look ahead

Page 40: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

40

Using Addition and Concatenation Operator (DataFlow Modeling)

Page 41: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

41

Carry Look Ahead Full Adder - I

Page 42: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

42

Carry Look Ahead Full Adder - II

Page 43: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

43

4-bit ripple carry counter

4-bit Ripple Carry Counter

Page 44: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

44

Negative Triggered D Flip-Flop with Clear

Page 45: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

45

4-bit Ripple Carry Counter in Verilog

Page 46: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

46

T Flip-Flop in Verilog

Page 47: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

47

D Flip-Flop in Verilog

Page 48: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

48

Testbench for 4-bit Ripple Counter - I

Page 49: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

49

Testbench for 4-bit Ripple Counter - I

Page 50: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

50

Simulation Result

Page 51: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

51

Dataflow Modeling

Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

Page 52: Chap. 6 Dataflow Modeling. 2 Dataflow Modeling Continuous Assignments Delays Expressions, Operators and Operands Operator Types Examples Summary

52

Summary

Continuous Assignment (expression, operator and operand)

Define delays in continuous assignment Various operators in Verilog

Arithmetic, logical, relational, equality, bitwise, reduction, shift, concatenation, replication, conditional

Conditional operator is equivalent to “if-then-else” statement