1. Trang chủ
  2. » Công Nghệ Thông Tin

Circuit design with HDL Chapter 5 Dataflow modeling (Expression) ppt

24 312 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 24
Dung lượng 1,44 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ee ee NATIONAL UNIVERSITY OF HO CHI MINH CITY UNIVERSITY OF INFORMATION TECHNOLOGY FACULTY OF COMPUTER ENGINEERING CIRCUIT DESIGN WITH HDL CHAPTER 5: DATAFLOW MODELING Lecturer: Ho Ng

Trang 1

ee ee

NATIONAL UNIVERSITY OF HO CHI MINH CITY UNIVERSITY OF INFORMATION TECHNOLOGY FACULTY OF COMPUTER ENGINEERING

CIRCUIT DESIGN WITH HDL

CHAPTER 5: DATAFLOW MODELING

Lecturer: Ho Ngoc Diem

Trang 2

Chapter 1: Introduction

Chapter 2: Modules and hierarchical structure

Chapter 3: Fundamental concepts

Chapter 4: Structural modeling (Gate & Switch-level modeling)

Chapter 5: Dataflow modeling (Expression)

Chapter 6: Behavioral modeling

Chapter 7: Tasks and Functions

Chapter 8: State machines

Chapter 9: Testbench and verification

Chapter 10: VHDL introduction

Trang 4

“Dataflow model -

© For complex design: number of gates is very large

-> need a more effective way to describe circuit

© Dataflow model: Level of abstraction is higher than gate-

level, describe the design using expressions instead of

primitive gates

® Circuit is designed in terms of dataflow between register,

how a design processes data rather than instantiation of individual gates

© RTL (register transfer level): is a combination of dataflow

and behavioral modeling

Trang 5

Continuous assignment

e Drive a value onto a net

assign out = ¡1 & ¡2; //out is net; ¡1 and i2 are nets

Net (vector or scalar) Net, register, function Bit-select or part-select of a vetor net | call (any expression that

Concatenation of any of the above gives a value)

° Always active

© Delay value: control time when the net is assigned value

assign #10 out = inl & in2; //delay of performing computation,

//only used by simulator, not synthesis

Trang 6

Continuous assignment

Examples:

wire out =in1 & in2; //scalar net

//implicit continuous assignment, declared only once

assign addr[15:0] = addr1_bits[15:0] “ addr2_bits[15:0]; //vector net

assign {c_out, sum[3:0]} = a[3:0] + b[3:0] + c_in; //concatenation

wire carry out, carry_in;

wire [3:0] sum, ina, inb;

assign {carry_out, sum} = ina + inb + carry_in;

endmodule

Trang 8

(4) wire [3:0] y;

— > = 4b0000 assign y[5:0] = 1'b0; :

(5) wire [3:0] y;

— > = 4b000 assign y[3:0] = 1 bx; : :

Trang 9

© Because the assignment is done always, exchanging the

written order of the lines of continuous assignments has no influence on the logic

© Common error

- Not assigning a wire a value

- Assigning a wire a value more than one

© Target (LHS) is NEVER a reg variable

Trang 10

~ Delay

Regular assignment delay

assign #10 out = inl & in2; // Delay in a continuous assign

Implicit continuous assignment delay

wire #10 out = inl & in2;

//same as

wire out;

assign #10 out = inl & in2;

Net declaration delay

//Net Delays

wire # 10 out;

assign out = inl & in2;

//The above statement has the same effect as the following

wire out;

assign #10 out = inl & in2;

Trang 11

= Array element pote WOE

= Bit-select or part-select (not for real, realtime)

= Function call that returns any of the above es

11

Trang 12

Relational < > >= <= /—s Operators not

allowed for real Unary reduction |& ~“& | ~| *% 4~(or~4) expression

Trang 15

8’'b01101110 & 8’bxxzz1ii100 87b01101110 | 8:bxxzz1100

(4'b0xz1) (4'b0xz1)

‘bOxx01100 r+11x1110

Trang 17

module add_1bit (input a, b, ci, output s, co);

assign #(3, 4) {co, s} = {(a & b)|(b & ci)|(a & ci), a®* b“’ci};

endmodule

© Conditional operator

module quad_mux2_1 (input [3:0] iO, i1, input s, output [3:0] y);

assign y=s ? 11: i0;

endmodule

17

Trang 18

a 0I,I 0/4/0000, II, 0,004, /(00I0 I0, 0.0, 4/00/00, ,0/,/(I0 00 I0I0ILIL01/06IA, 0.0/01, 1.,0 I4, 00 100 JI0 9/0 0v )J0JLJG 1)J)01I1)/.101 9101!) Ì CV .,

Expression example

s Relational & Equality operator

module comp 4bit ( input [3:0] a, b, output a_gt_b,a_eq_b,a _It_b); assign a_ gt b=(a>b),

a_eq b= (a==b), a_lt b= (a<b);

Trang 19

assign out = (cntrl == 2'b00) ? inO:

input in4, in2, in3, in4, cntrl1, cntrl2;

assign out = (inl & ~cntrl1 & ~cntrl2) |

(In2 & ~cntrl1 & cntrl2) | (cntrl == 2'b01) ? in1:

(in3 & cntrl1 & *cntrl2) | (cntrl == 2'b10) ? ¡n2 :

(in4 & cntrll1 & cntrl2); (cntrl == 2 b11) ?in3:

Trang 20

output [7:0] s ; input [7:0] a,b ;

Trang 21

Combinational circuit

Comparator makes the comparison A ? B

Parameters that may be set 7 2” is determined by the input greaterNotLess

assign #delay result = greaterNotLess ? (A > B) : (A <B);

endmodule

21

Trang 22

module counter(Q , clock, clear);

// I/O ports clear

| t0 t1 t2 t3 |

| |

| | : |

KD (mm oe oe i ow ow oo oo @ oo co @ @ @ @® @ QGUUNn @= == al

output [3:0] Q;

input clock, clear;

// Instantiate the T flipflops

T FF tff£0(QO[0], clock, clear);

// Instantiate the edge-triggered DFF

// Complement of output gq is fed back

// Notice qbar not needed Unconnected port

Trang 23

e 4-bit ripple carry counter

wire s, sbar, r, rbar,cbar; d

assign cbhar = ~clear;

// Input latches; A latch is level sensitive An edge-sensitive

// flip-flop is implemented by using 3 SR latches

assign sbar = ~(rbar & s),

Ss = ~(sbar & char & ~clk),

r = ~(rbar & ~clk & 8s),

rbar = ~(r & char & qd);

// Output latch

assign gq = ~(s & qbar),

gbar = ~(q & r & char);

Trang 24

To describe much sophisticated logic easily, procedural

assignment is available in Verilog RTL programming (see later)

24

Ngày đăng: 16/03/2014, 15:20

TỪ KHÓA LIÊN QUAN