1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

ĐIỆN tử VIỄN THÔNG 3 6 VHDL FSM khotailieu

45 200 4

Đ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 45
Dung lượng 1,37 MB

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

Nội dung

Thiết kế mạch số tuần tự - FSM• Máy trạng thái hữu hạn Finite State Machine FSM • FSM loại Moore phụ thuộc vào trạng thái • FSM loại Mealy phụ thuộc vào trạng thái + tín hiệu vào • Các b

Trang 1

 3.1 Giới thiệu VHDL

 3.2 Cấu trúc mã lệnh

 3.3 Các kiểu dữ liệu

 3.4 Các phép toán và thuộc tính

 3.5 Code song song/Code tuần tự

 3.6 Máy trạng thái hữu hạn FSM

CHƯƠNG 3 NGÔN NGỮ MÔ TẢ PHẦN CỨNG

Trang 2

• 3.6.1 Thiết kế mạch số tuần tự - FSM

• 3.6.2 Mô tả FSM trong VHDL

3.6 Máy trạng thái hữu hạn FSM

Trang 3

3.6.1 Thiết kế mạch số tuần tự - FSM

• Máy trạng thái hữu hạn Finite State Machine (FSM)

• FSM loại Moore (phụ thuộc vào trạng thái)

• FSM loại Mealy (phụ thuộc vào trạng thái + tín hiệu vào)

• Các bước thiết kế:

 Bước 1: Vẽ sơ đồ trạng thái

 Bước 2: Tối thiểu hoá số lượng các trạng thái

 Bước 3: Mã hoá trạng thái

 Bước 4: Lựa chọn flip-flop

 Bước 5: Thực hiện mạch logic tổ hợp

 Bước 6: Phân tích tín hiệu theo thời gian

Trang 4

• Ví dụ: Thiết kế một bộ đếm 4 Bộ đếm sẽ đếm khi có tín hiệu CE=1 (Count Enable) và ngừng đếm khi CE= 0.

• Bước 1: Vẽ sơ đồ trạng thái FSM

Count=0

CE=0CE=0

Count=1CE=1

Count=2

CE=1

Count=3

CE=1CE=1

3.6.1 Thiết kế mạch số tuần tự - FSM

Trang 5

CE=0CE=0

Count=1CE=1

Count=2

CE=1

Count=3

CE=1CE=1

Chỉ chuyển trạng thái tại sườn lên của xung nhịp

Tại sườn lên của xung nhịp, chỉ được phép 1 điều kiện chuyển trạng thái xảy ra

1 Ta đang ở trạng thái “Count=0”

2 CE = 0: đợi ở chân của sườn lên của xung nhịp

3 CE=1: đợi ở chân của 1 sườn lên khác nhưng chưa đếm

4 Sườn lên của xung nhịp: chuyển sang trạng thái “Count=1”, CE vẫn =1

5 CE = 0: đợi ở chân của 1 sườn lên khác

Count=0

CE=0CE=0

Count=1CE=1

3.6.1 Thiết kế mạch số tuần tự - FSM

Trang 6

CE=0CE=0

Q1Q0=01CE=1

Q1Q0=10

CE=1

Q1Q0=11

CE=1CE=1

• Bước 2: Tối thiểu hoá số trạng thái

• Bước 3: Mã hoá các trạng thái

3.6.1 Thiết kế mạch số tuần tự - FSM

Trang 7

• Bước 4: Chọn loại flip-flop Ở đây để đơn giản ta chọn loại D

• Bước 5: Thực hiện mạch

3.6.1 Thiết kế mạch số tuần tự - FSM

Trang 8

• Chuyển FSM sang bảng trạng thái kế tiếp

Q1Q0=00

CE=0CE=0

Q1Q0=01CE=1

Q1Q0=10

CE=1

Q1Q0=11

CE=1CE=1

Present state Next state

Trang 9

• Xác định các hàm đầu vào flip-flop D

Present state Next state

 D to be applied

0 1 1 0

1 0 0 1CE

Q0n=D0

Q0

Q1

3.6.1 Thiết kế mạch số tuần tự - FSM

Trang 10

• Thực hiện:

0 0 1 1

0 1 0 1CE

D0

Q0Q’

3.6.1 Thiết kế mạch số tuần tự - FSM

Trang 11

• Bước 6: Phân tích tín hiệu theo thời gian

D0

Q0Q’

ClkCE

D0

Q0Q’

D0

Q0Q’

D0

Q0Q’

D0

Q0Q’

D0

Q0Q’

3.6.1 Thiết kế mạch số tuần tự - FSM

Trang 13

• Đặc điểm:

 Tín hiệu đầu ra được xác định tại mỗi trạng thái

 Tín hiệu ra chỉ phụ thuộc vào trạng thái hiện tại mà không phụ thuộc vào tín hiệu vào

 Do đó, giá trị tín hiệu ra được ghi ở bên trong vòng tròn biểu diễn trạng thái

3.6.1 Thiết kế mạch số tuần tự

FSM loại Moore

Trang 14

CE=0CE=0

Q1Q0=01Y=0CE=1

Q1Q0=10Y=0

CE=1

Q1Q0=11Y=1

CE=1CE=1

• Bước 2: Tối thiểu hoá số lượng trạng thái

• Bước 3: Mã hoá trạng thái

2.3 Thiết kế mạch số tuần tự

FSM loại Moore

Trang 15

• Bước 4: Chọn loại flip-flop Ở đây để đơn giản ta chọn loại D

• Bước 5: Thực hiện mạch

3.6.1 Thiết kế mạch số tuần tự

FSM loại Moore

Trang 16

• Chuyển FSM sang bảng trạng thái kế tiếp

Q1Q0=00 Y=0

CE=0CE=0

Q1Q0=01 Y=0

CE=1

Q1Q0=10 Y=0

CE=1

Q1Q0=11 Y=1

CE=1CE=1

Present state Next state Outputs

3.6.1.Thiết kế mạch số tuần tự

FSM loại Moore

Trang 17

• Xác định các hàm đầu vào flip-flop D

0 0 1 1

0 1 0 1CE

 D to be applied

0 1 1 0

1 0 0 1CE

Trang 18

• Thực hiện mạch:

0 0 1 1

0 1 0 1CE

D0

Q0Q’

Trang 19

• Bước 6: Phân tích tín hiệu theo thời gian

D0

Q0Q’

Y

ClkCE

D0

Q0Q’

D0

Q0Q’

D0

Q0Q’

D0

Q0Q’

D0

Q0Q’

Y

3.6.1 Thiết kế mạch số tuần tự

FSM loại Moore

Trang 22

CE=0/Y=0CE=0/Y=0

Q1Q0=01CE=1/Y=0

Q1Q0=10

CE=1/Y=0

Q1Q0=11

CE=1/Y=0CE=1/Y=1

• Bước 2: Tối thiểu hoá số lượng trạng thái

• Bước 3: Mã hoá trạng thái

3.6.1 Thiết kế mạch số tuần tự

FSM loại Mealy

Trang 23

• Bước 4: Chọn loại flip-flop Ở đây để đơn giản ta chọn loại D

• Bước 5: Thực hiện mạch

3.6.1 Thiết kế mạch số tuần tự

FSM loại Mealy

Trang 24

• Chuyển FSM sang bảng trạng thái kế tiếp

Q1Q0=00

CE=0/Y=0CE=0/Y=0

Present state Next state/Outputs

2.3 Thiết kế mạch số tuần tự

FSM loại Mealy

Trang 25

• Xác định các hàm đầu vào flip-flop D

0 0 1 1

0 1 0 1CE

 D to be applied

0 1 1 0

1 0 0 1CE

Q0

Q1

2.3 Thiết kế mạch số tuần tự

FSM loại Mealy

Trang 26

• Thực hiện mạch:

0 0 1 1

0 1 0 1CE

D0

Q0Q’

0 0 0 0

0 0 1 0CE

Trang 27

• Bước 6: Phân tích tín hiệu theo thời gian

ClkCE

D0

Q0Q’

D0

Q0Q’

D0

Q0Q’

D0

Q0Q’

D0

Q0Q’

D0

Q0Q’

D0

Q0Q’

Y

3.6.1 Thiết kế mạch số tuần tự

FSM loại Mealy

Trang 28

3.6.1 Thiết kế mạch số tuần tự

Mô hình FSM loại Moore

DClk

Q

S*=F(S,I)

Mạch logic

tổ hợp cho trạng thái kế tiếp

O=H(S)

Mạch logic

tổ hợp cho tín hiệu ra

DClk

Q

DClk

Q

Clock Next

State S*

CurrentState S

Outputs O

Inputs I

Trang 29

3.6.1 Thiết kế mạch số tuần tự

Mô hình FSM loại Mealy

DClk

Q

S*=F(S,I)

Mạch logic

tổ hợp cho trạng thái kế tiếp

O=H(S,I)

Mạch logic

tổ hợp cho tín hiệu ra

DClk

Q

DClk

Q

Clock Next State S* Current

State S

Outputs O

Inputs I

Trang 30

• 3.6.1 Thiết kế mạch số tuần tự - FSM

• 3.6.2 Mô tả FSM trong VHDL

 Giới thiệu

 Kiểu thiết kế thứ nhất

 Kiểu thiết kế thứ hai

3.6 Máy trạng thái hữu hạn FSM

Trang 31

3.6.1 Thiết kế mạch số tuần tự - FSM

3.6.2 Mô tả FSM trong VHDL

3.6.2.1 Giới thiệu

3.6.2.2 Kiểu thiết kế thứ nhất

3.6.2.3 Kiểu thiết kế thứ hai

3.6 Máy trạng thái hữu hạn FSM

Trang 32

3.6.2 Mô tả FSM trong VHDL

3.6.2.1 Giới thiệu

FSM gồm 2 phần

Phần mạch tổ hợp

Có 2 đầu vào: Pr_state , Input

Và 2 đầu ra: Nx_state, Output

Phần mạch tuần tự

Có 3 đầu vào: Nx_state, clock, reset

Và 1 đầu ra: Pr_state

Chứa các trigger

Logic

tổ hợp

Logic tuần tự

Output Input

Nx_state Pr_state

clock reset

Trang 33

3.6.2 Mô tả FSM trong VHDL

Logic

tổ hợp

Logic tuần tự

Output Input

Nx_state Pr_state

clock reset

- Khi reset thì Pr_state trở về trạng

thái khởi tạo của hệ thống.

- Ngược lại, khi có clock khối tuần tự sẽ

lưu trữ trạng thái Nx_state và chuyển

tới đầu ra trạng thái Pr_state

Trang 34

3.6.2 Mô tả FSM trong VHDL

3.6.2.2 Kiểu thiết kế thứ nhất

-Đầu ra của mạch không phụ thuộc vào clk

-Thiết kế của hai phần tách rời nhau

-Tất cả các trạng thái được khai báo rõ ràng sử dụng kiểu dữ liệu liệt kê

• Thiết kế phần mạch dãy: Sử dụng một process

PROCESS (reset, clock)

BEGIN

IF (reset = ‘1’) THEN pre_state <= state0;

ELSIF (clock’event AND clock =‘1’) THEN pre_state <= nx_state;

END IF;

Logic tuần tự

Nx_state Pr_state

clock reset

Trang 35

3.6.2 Mô tả FSM trong VHDL

3.6.2.2 Kiểu thiết kế thứ nhất

•Thiết kế phần mạch tổ hợp: Có thể dùng các câu lệnh song song

hoặc câu lệnh tuần tự theo mẫu sau

Nx_state Pr_state

Trang 36

3.6.2 Mô tả FSM trong VHDL

3.6.2.2 Kiểu thiết kế thứ nhất

Trang 37

3.6.2 Mô tả FSM trong VHDL

3.6.2.2 Kiểu thiết kế thứ nhất

Trang 38

ARCHITECTURE state_machine OF counter IS

TYPE state IS (zero, one, two, three, four, five, six, seven, eight, nine);

SIGNAL pr_state, nx_state: state;

Trang 40

• Hệ có hai trạng thái là STATE0 và STATE1

• Đầu ra x = a khi hệ ở trạng thái STATE0

• Đầu ra x = b khi hệ ở trạng thái STATE1

• d = 0 hệ giữ nguyên trạng thái

Trang 41

TYPE STATE IS ( STATE0, STATE1);

SIGNAL pr_state, nx_state : STATE;

CASE pr_state IS WHEN STATE0 =>

Trang 42

3.6.2 Mô tả FSM trong VHDL

3.6.2.3 Kiểu thiết kế thứ hai

-Đầu ra của mạch phụ thuộc vào clk

-Thiết kế của hai phần tách rời nhau

-Tất cả các trạng thái được khai báo rõ ràng sử dụng kiểu dữ liệu liệt kê

-Cần sử dụng thêm một số tín hiệu trung gian để tính toán giá trị ở đầu ra của

mạch tổ hợp, nhưng chỉ gán giá trị này cho đầu ra của hệ khi có tín hiệu đồng hồ tích cực

Trang 43

3.6.2 Mô tả FSM trong VHDL

Ngày đăng: 12/11/2019, 13:23

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w