De-sequential Logic Design

  • April 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View De-sequential Logic Design as PDF for free.

More details

  • Words: 3,557
  • Pages: 48
• • • • •

Nguyên lý thiết kế mạch dãy Nguyễn Quốc Cường – 3I

Nội dung Giới thiệu Các phần tử hai trạng thái ổn ñịnh Flip-Flops Phân tích các máy trạng thái ñồng bộ bởi xung nhịp Thiết kế các máy trạng thái ñồng bộ bởi xung nhịp

Sequential logic design

2

Tài liệu tham khảo

Giới thiệu

Sequential logic design

• Digital Design: Principles & Practices – John F Wakerly – Printice Hall

• Mạch logic dãy: – output 2 tín hiệu input tại thời ñiểm tn – output 2 cả vào tín hiệu input trong quá khứ

• Ví dụ: mạch ñiều khiển chọn kênh TV sử dụng nút bấm channel–up và channel-down:

3

– nếu trước ñó kênh ñang chọn là 9, nếu bấm channel-up thì kênh lựa chọn là 10 – nếu trước ñó kênh ñang chọn là 1, nếu bấm channel-up thì kênh lựa chọn là 2 – ...

4

• Việc sử dụng bảng ñể mô tả các output phụ thuộc vào tổ hợp các inputs ñối với các mạch dãy là KHÔNG THỂ Sequential logic design

Trạng thái • Trong mạch dãy sử dụng khái niệm trạng thái ñể mô tả:

6

5

– Trạng thái của một mạch dãy là tập hợp các biến trạng thái mà giá trị của nó tại một thời ñiểm chứa ñầy ñủ các thông tin cần thiết trong quá khứ cho phép xác ñịnh các hoạt ñộng của mạch trong tương lai – Trong mạch logic các biến trạng thái chỉ có hai giá trị 0 và 1. – Số trạng thái của mạch có n biến trạng thái bằng 2n trạng thái

Sequential logic design

Các phần tử 2 trạng thái ổn ñịnh

Mạch có hai trạng thái ổn ñịnh: • Nếu Q = HIGH thì Q_L = LOW • Nếu Q = LOW thì Q_L = HIGH

Sequential logic design

Phân tích tương tự • Xem xét ñiện áp Vout và Vin

Giao của 2 ñồ thị tại 3 ñiểm ñó là các ñiểm cân bằng của mạch: • Hai ñiểm ổn ñịnh (ứng với các trạng thái Q = 0 hoặc Q = 1) • Một ñiểm metastable: tại ñó Vout1 và Vout2 có giá trị ñiện áp nằm giữa mức 1 và 0 Sequential logic design

Metastable • Thực tế thời gian mạch ở trạng thái metastable thường ngắn, lý do, chỉ cần một tác ñộng ñủ lớn của nhiễu sẽ kéo nó về một trong hai trạng thái stable

Sequential logic design

7

8

• •





Latch và Flip-Flops

10

9

Latch và Flip-flops là các phần tử cơ bản trong mạch logic dãy Flip-Flops: dùng ñể chỉ một thiết bị logic dãy có khả năng lấy mẫu tín hiệu ñầu vào và thay ñổi tín hiệu ñầu ra tại thời ñiểm ñược xác ñịnh bởi tín hiệu xung nhịp Latch: dùng ñể chỉ thiết bị logic dãy có khả năng quan sát tín hiệu inputs một cách liên tục và có thể thay ñổi ñầu ra của nó tại bất kỳ thời ñiểm nào mà không phụ thuộc vào tín hiệu xung nhịp Tuy nhiên thường 2 khái niệm này có thể sử dụng như nhau Sequential logic design

S-R Latch (Flip-flops)

S-R flip-flop: (set-reset) R = 1, S = 0  Q = 0 (reset) S=1, R=0  Q = 1(set) QN : thường là ñầu bù của Q, trong các tài liệu còn ñược ký hiệu Q_L hay Tuy nhiên trong trng hp S=R=1 thì Q = QN = 0 Nếu R = 0, S = 0 thì mạch giống như một phần tử bistable

Sequential logic design

Sequential logic design

Ký hiệu

Sequential logic design

không ñoán ñược trước giá trị của Q và QN khi cả R và S thay ñổi giá trị tại cùng thời ñiểm 11

12

13

Trong công nghệ CMOS và TTL các cổng NAND thường ñược sử dụng hơn là cổng NOR

Sequential logic design

S – R latch với Enable

14

• S-R và :output thay ñổi phụ thuộc vào R và S input • S-R latch với Enable: output thay ñổi phụ thuộc vào R và S chỉ với ñiều kiện tín hiệu Enable tích cực

Sequential logic design

Sequential logic design

D latch (D flip-flops)

Sequential logic design

15

16

• D latch: giống S-R latch với R là ñảo của S: – Tránh ñược trường hợp S=R=1 trong S-R latch

• Với C = 1 (tích cực): – D = 1  Q = 1, QN = 0 – D = 0  Q = 0, QN = 1

18

17

• D latch vẫn gặp phải vấn ñề về metastable khi D và C thay ñổi ñồng thời • Tín hiệu C (Control) còn ñược ký hiệu như là E (Enable), Clk (Clock) hay G (Gate) Sequential logic design

Nếu D thay ñổi trong khoảng thời gian tsetup và thold thì D latch có thể rơi vào trạng thái metastable hoặc không xác ñịnh Sequential logic design

D Flip-flop tác ñộng theo sườn lên

20

D flip-flop tác ñộng theo sườn lên : sử dụng 2 D latch: • D latch ñầu tiên ñược gọi là master: •CLK = 0  latch mở •CLK = 1  latch ñóng •D latch thứ hai ñược gọi là slave: • mở trong suốt thời gian CLK = 1, tuy nhiên giá trị của nó chỉ thay ñổi tại thời ñiểm bắt ñầu khi CLK thay ñổi từ 01 do master ñã ñóng và không thay ñổi trong khoảng thờiSequential gian CLK = design 1 logic 19

Sequential logic design

22

21

khi CLK thay ñổi 01 nếu ñiều kiện t_{hold} và t_{setup} không thỏa mãn, D flip-flop có thể rơi vào trạng thái không xác ñịnh hoặc metasatble. Sequential logic design

D flip-flop tác ñộng theo sườn xuống

Sequential logic design

D flip-flop có ñầu vào không ñồng bộ

Sequential logic design

24

23

ðầu vào không ñồng bộ preset và clear Chú ý: tuy nhiên sơ ñồ trên không ñược dùng ñể chế tạo IC vì số gate lớn (11 gates)

Sequential logic design

Sơ ñồ D flip-flop sử dụng 6 gates (thay vì 11 gates như ñã giới thiệu trước)

26

25

D flip-flop tác ñộng theo sườn xung với ñầu vào Enable

Sequential logic design

Master/Slave S-R flip-flop

Giống D flip-flop: Q thay ñổi tại thời ñiểm sườn xuống của xung Control Khác D flip-flop: Q phụ thuộc vào các tín hiệu input trong suốt thời gian C=1 trước khi chuyển xuống 0  flip-flop tác ñộng theo xung Sequential logic design

Trong trường hợp R=S=1, nếu C chuyển 10 các outputs sẽ rơi vào trạng thái không xác ñịnh hoặc metastable Sequential logic design

Master-Slave J-K flip-flop

27

28

• J-K flip flop tránh ñược hiện tượng của R-S flipflop khi cả hai ñầu vào bằng 1

Sequential logic design

1s catching Sequential logic design

0s catching

• 1s catching: tại sườn xuống của xung C: – J = 0, K = 1 thường Q = 0 và QN = 1 – nhng Q = 1, QN = 0, lý do là có một xung J = 1 tồn tại khi C = 1

• 0s catching: tại sườn xuống của xung C: – J = 1, K = 0 thường Q = 1 và QN = 0 – nhng Q = 0 và QN =1, lý do có một xung K = 1 tồn tại khi C = 1

• ðể J-K flip-flop hoạt ñộng ñúng yêu cầu J và K không thay ñổi trong suốt quá trình C = 1 Sequential logic design

29

30

Flip-flop J-K tác ñộng theo sườn xung

Sequential logic design

32

31

• Hiện tượng 1s và 0 s catching có thể khắc phục sử dụng Edge-Trigerred J-K flip-flop

Sequential logic design

Sequential logic design

T (Toggle) flip-flop • T flip-flop: thay ñổi trạng thái tại mỗi xung ñồng hồ

Sequential logic design

33

34

Sequential logic design

Sequential logic design

36

35

Máy trạng thái ñồng bộ bởi xung nhịp • ðể hiểu phân tích máy trạng thái (statemachine), trước tiên xem xét “clokedsynchronous state machine”:

38

37

– state machine: máy trạng thái, tổng quát cho mạch logic dãy – clocked: các phần tử thay ñổi trạng thái theo tín hiệu ñiều khiển – synchronous: các phần tử thay ñổi trạng thái bởi cùng một tín hiệu clock

Sequential logic design

Cấu trúc của máy trạng thái (Mealy machine)

Sequential logic design

• State memory: – chứa n flip-flop ñể lưu giữ trạng thái hiện thời của máy, có 2n trạng thái khác nhau – các flip-flops ñược nối chung một nguồn Clock

39

• Trạng thái tiếp theo của máy ñược quyết ñịnh bởi mạch Next-State Logic F là một hàm của – các biến current state – các biến input

• Output logic G: là hàm của: – các biến current state – các biến input

• F và G là các mạch logic tổ hợp Sequential logic design

• Các flip-flop có thể sử dụng: – D flip-flop – J-K flip-flop – Tuy nhiên khi thiết kế mạch dãy thì D flip-flop tác ñộng theo sườn hay ñược sử dụng vì việc thiết kế mạch logic ngày nay sử dụng chủ yếu là các IC logic lập trình ñược (ñược chế tạo có sẵn các D flip-flop)

40

• Output phụ thuộc cả vào current state và input  cấu trúc Mealy machine Sequential logic design

Moore machine

Sequential logic design

Pipelined output

41

42

Yêu cầu: output trong một chu kỳ phụ thuộc vào giá trị state và input của chu kỳ trước  sử dụng thêm một tầng nhớ (flip-flop) ñến Mealy machine Nếu ghép Output pipeline memory như là một phần của state-memory  trở Sequential logic design thành Moore machine

Các biểu thức ñặc trưng • Mô tả latch hay flip-flop có thể sử dụng các biểu thức ñặc trưng (characteristic equation): – Mô tả trạng thái tiếp theo như là hàm của current state và input – Quy ước: Q* như là “next value of Q”

Sequential logic design

44

43

• Biểu thức ñặc trưng không mô tả chi tiết các hoạt ñộng theo thời gian của thiết bị (ví dụ D flipflop tác ñộng theo sườn lên, xuống hay mức thì ñều có chung một biểu thức ñặc trưng)

Sequential logic design

Phân tích máy trạng thái với D flip-flop

• Gồm 3 bước:

Sequential logic design

46

45

– Xác ñịnh hàm F và G – Sử dụng F và G ñể xây dựng bảng state và output ứng với mỗi tổ hợp current state và current input – (option) Vẽ state diagram

Sequential logic design

ví dụ phân tích • Tại mỗi xung nhịp D FF(flip-flop) sẽ sample tín hiệu tại D input và truyền ñến ñầu ra Q Q* = D • Có 2 D FF: – ký hiệu output là Q0 và Q1 là 2 biến trạng thái – ký hiệu input là D0 và D1 là hai tín hiệu kích thích (excitation)

• Biểu thức kích thích (excitation equation):

Sequential logic design

• Sử dụng biểu thức ñặc trưng của D FF

• Thay biểu thức kích thích:

biểu thức này thể hiện giá trị các biến trạng thái tiếp theo như là hàm của current state và current input, ñược gọi là các biểu thức chuyển (transistion equation) Sequential logic design

47

48

(a): transistion table 4 trạng thái (Q1,Q0) = (0,0) (0,1) (1,0) (1,1) 1 tín hiệu input EN = 0 , 1

50

49

có 8 tổ hợp state/input

(b): state table: bằng cách gán tên cho các trạng thái (0,0) = A, (0,1) = B, (1,0) = C và (1,1) = D ta có bảng trạng thái (b) S ký hiệu cho current state, S* ký hiệu cho next state Sequential logic design

• Từ sở ñồ, xây dựng hàm logic cho output • Từ ñó xây dựng bảng (c): state/output table

Sequential logic design

Mỗi vòng tròn (hay nút) ký hiệu cho một state. Tên vòng tròn là tên của state Các state liên kết bởi các mũi tên chỉ chiều chuyển trạng thái và ñiều kiện chuyển Sequential logic design

các bước phân tích chi tiết

Sequential logic design

51

52

Transistion table

Ví dụ (bài tập về nhà)

Sequential logic design

• excitation equation

• excitation equation

Sequential logic design

53

54

• output equation

Sequential logic design

• Biểu ñồ trạng thái

Sequential logic design

state/output table 55

56

• Mỗi liên kết ñược gán với một biểu thức  transistion expression • Chuyển trạng thái xảy ra khi tổ hợp các giá trị input sao cho transistion expression = 1 • Nếu liên kết ñược gán “1” có nghĩa là luôn xảy ra

Sequential logic design

Phân tích state machine với J-K flip-flop • Các mạch clocked-synchronous state machine với J-K ff có thể phân tích giống như là vơi D ff với lưu ý:

57

58

– Biểu thức kích thích cần phải viết cho 2 input J và K – Biểu thức ñặc trưng của J-K ff là Q* = J ¢ Q’ + K’ ¢ Q

Sequential logic design

Sequential logic design

• Biểu thức kích thích

• Biểu thức chuyển trạng thái

• Biểu thức output Sequential logic design

59

60

Sequential logic design

Sequential logic design

62

61

Các bước thiết kế mạch logic dãy ñồng bộ

Sequential logic design

Ví dụ

Biểu diễn dạng tín hiệu theo thời gian

Sequential logic design

63

64

Phân tích yêu cầu • zk bằng 1 nếu: – Ak = 0 và Ak-1 = 0 hoặc – Ak = 1 và Ak-1 = 1 hoặc – B =1 bắt ñầu từ thời ñiểm (trong quá khứ) mà tại ñó A bằng nhau tại 2 xung nhịp liên tiếp (trong trường hợp này z=1 không phụ thuộc vào A)

Ak = 0 và Ak-1 = 1 và B = 0 tại thời ñiểm mà trước ñó ñã có một cặp giá trị A bằng nhau (trong quá khứ) Ak = 1 và Ak-1 = 0 và B = 0 tại thời ñiểm bất kỳ (như vậy tại thời ñiểm k, B có thể = 1 hoặc 0) mà trước ñó ñã có một cặp giá trị A bằng nhau (trong quá khứ) Ak = 0 và Ak-1 = 0 B bất kỳ Ak = 1 và Ak-1 = 1 B bất kỳ Ak = 0 và Ak-1 = 1 B = 1 kể từ thời ñiểm gần nhất có có cặp A có giá trị bằng nhau Ak = 1 và Ak-1 = 0 B = 1 kể từ thời ñiểm gần nhất có có cặp A có giá trị bằng nhau

OKA1 (Z=1)

– –

OKA0 (Z= 1)

– –

OK11 (Z = 1)

– –

OK00 (Z = 1)

– –

A1 (Z = 0)

– –

Trạng thái ( trong khoảng thời gian từ k ñến k+1) A0 (Z = 0)

Trạng thái (1)

Sequential logic design

• Ngược lại z sẽ bằng 0

• • •

• • • •

– –

Sequential logic design

65

66

INIT

OK00

A1

A0

OK00

Sequential logic design

OK11

OKA1 OKA0

A0

Bảng chuyển trạng thái (1)

A0

Sequential logic design

OK11

67

A0

68

Trạng thái (2) • A0 và A1 tương tự như trên • OK0 (Z=1) – Ak = 0 và Ak-1 = 0 và B bất kỳ – hoặc Ak = 0 và Ak-1 = 1 và B = 1 kể từ thời ñiểm gần nhất có có cặp A có giá trị bằng nhau

• OK1 (Z=1) – Ak = 1 và Ak-1 = 1 và B bất kỳ – hoặc Ak = 1 và Ak-1 = 0 và B = 1 kể từ thời ñiểm gần nhất có có cặp A có giá trị bằng nhau

Sequential logic design

Bảng chuyển trạng thái (2)

Sequential logic design

69

70

Sequential logic design

Tối thiểu hóa số trạng thái • Ý tưởng giảm số trạng thái là dựa trên việc xác ñịnh trạng thái tương ñương • Hai trạng thái S1 và S2 ñược coi là tương ñương nếu thỏa mãn 2 ñiều kiện:

71

72

– S1 và S2 cần tạo ra output giống nhau với tất cả các tổ hợp input – Với mỗi tổ hợp input, S1 và S2 cần tạo ra next state giống nhau hoặc tương ñương

Sequential logic design

• • • •

OK00 và OKA0 là tương ñương OK11 và OKA1 là tương ñương Sequential logic design

Biến trạng thái n flip-flop có thể mô tả 2n trạng thái với s trạng thái cần ít nhất (log2s) flip-flop  có thể có một số trạng thái không sử dụng Trong ví dụ với 5 trạng thái sẽ cần ít nhất 3 flipflop (dư 3 trạng thái không sử dụng) Chú ý: việc lựa chọn số biến trạng thái ít nhất không ñảm bảo rằng: – các biểu thức kích thích là ñơn giản nhất – các biểu thức output là ñơn giản nhất – mạch là rẻ nhất Sequential logic design

73

74

Sequential logic design

76

75

• Làm cách nào ñể lựa chọn số biến trạng thái và tổ hợp các biến trạng thái tổ tối ưu ??? • Câu trả lời là: phải tiến hành thử tất cả các trường hợp có thể  tốn rất nhiều thời gian:

Sequential logic design

Các trạng thái không sử dụng

Sequential logic design

Tổng hợp sử dụng D flip-flop • Nhắc lại: sử dụng D flip-flop có ưu ñiểm:

77

– tồn tại ở dạng IC rời cũng như trong các thiết bị lập trình ñược – Dễ sử dụng (hơn so với J-K flip-flop) vì biểu thức ñặc trưng ñơn giản Q* = D

78

• Do (Q* = D) do bảng transistion/output = excitation/output

Sequential logic design

80

Bảng excitation giống như bảng chân lý với các hàm logic D1, D2, D3 là hàm của 5 biến (A,B,Q1,Q2,Q3)  sử dụng phương pháp tổng hợp hàm logic “tổng của các tích hoặc tích của các tổng” Nếu số biến ít  có thể sử dụng phương pháp bìa Karnaugh ñể tổng hợp Sequential logic design 79 hàm

Sequential logic design

• Chú ý excitation bảng và bảng chân lý có sự khác nhau:

82

81

– Bảng excitation không chỉ ra hàm logic của tất cả các tổ hợp input (các unused states)

• Trong ví dụ trên, sử dụng quy tắc minimal-risk: khi hệ thống rơi vào unused state, thì nex-state sẽ là trạng thái 000: – Với Q1 = 0 thì 3 hàng cuối sẽ là 0

Sequential logic design

• Với bìa Karnaugh trên thu ñược biểu thức kích thích

• Tương tự ta có thể xây dựng hàm logic cho output

Sequential logic design

Sequential logic design

Sequential logic design

84

83

sử dụng tiêu chuẩn minimal-cost, next-state của các unusedstate là don’t-care  hàm logic tổng hợp sẽ ñơn giản hơn

Sequential logic design

Tổng hợp mạch dãy sử dụng J-K flip-flop

85

• J-K flip-flop có biểu thức ñặc trưng phức tạp hơn D flip-flop: Q* = J ¢ Q’ + K’ ¢ Q • Với nhiều input hơn, sử dụng J-K cho phép mạch ñiều khiển tín hiệu excitation có thể (không chắc chắn) ñơn giản hơn • Thực tế:

86

– sử dụng J-K flip-flop phù hợp cho các thiết kế với các IC loại SSI (Small-Scale Integration) hơn là các IC khả trình loại MSI hoăck LSI – Hiện nay trong các thiết kế với mạch logic khả trình sử dụng chủ yếu là D flip-flop Sequential logic design

• Từ bảng transistion không thể chuyển qua trực tiếp bảng excitation như ñối với D flip-flop: – ðể xây dựng J-K excitation table, cần xem xét trạng thái hiện tại và cả next-state (khác với D flip-flop chỉ cần quan tâm next-state ñể xây dựng biểu thức kích thích) – Sử dụng bảng hoạt ñộng của J-K flip-flop

Sequential logic design

88

87

d: don’t-care

Sequential logic design

Sử dụng phương châm minimal-risk: các trạng thái không sử dụng sẽ ñược chuyển về trạng thái 000 Sequential logic design

• Biểu thức kích thích

89

90

(so với biểu thức kích thích sử dụng D flip-flop thì KHÔNG ñơn giản hơn)

Sequential logic design

Sequential logic design

Sequential logic design

92

91

Ví dụ 1:

Ví dụ thiết kế sử dụng D flip-flop (bài tập về nhà)

Sequential logic design

S0: trạng thái mà tại X và Y có 4n bits 1 S1: trạng thái mà tại X và Y có (4n+1) bits 1 S2: trạng thái mà tại X và Y có (4n+2) bits 1 S3: trạng thái mà tại X và Y có (4n+3) bits 1

93

94

• Tại thời ñiểm xét nếu số bit 1s ñếm tại X và Y là bội số của 4 thì giá trị output sẽ bằng 1  sử dụng 4 trạng thái: – – – –

Sequential logic design

Sequential logic design

Sequential logic design

96

95

Related Documents