END IF; WHEN state2 =>

Một phần của tài liệu Thiết kế vi mạch bằng VHDL (Trang 94 - 95)

Chương 8: Mỏy trạng thỏ

END IF; WHEN state2 =>

WHEN state2 => IF (input = ...) THEN output <= <value>; nx_state <= state3; ELSE ... END IF; ... END CASE; END PROCESS; END <arch_name>; Vớ dụ 8.1: Bộ đếm BCD

Một bộ đếm là một vớ dụ của mỏy Moore, đầu ra chỉ phụ thuộc vào kết quả của trạng thỏi hiện tại. Giống như một mạch thanh ghi và một mạch dóy đơn giản. Để thiết kế mạch này, chỳng ta cú thể dựng phương phỏp thụng thường như những phần mạch mạch tổ hợp, nhưng ở đõy ta sẽ dựng phương phỏp FSM.

Giả sử ta cần thiết kế bộ đếm modul 10. Như vậy chỳng ta sẽ cần cú một may cú 10 trang thỏi. Cỏc trạng thỏi ở đõy được gọi là zero, one,…,nine. Đồ hỡnh trạng thỏi của mỏy được cho như sau:

Hỡnh 8.2. Sơ đồ trạng thỏi của bộ đếm BCD

Mó VHDL cũng giống như khuụn mẫu của thiết kế mẫu 1. Trong đú: kiểu dữ liệu liệt kờ sẽ xuất hiện ở dũng 11 – 12, thiết kế của phần mạch dóy sẽ từ dũng 16 đến dong 23, thiết kế của phần mạch tổ hợp(mạch tổ hợp) sẽ xuất hiện từ dũng 25 – 29. Do cú 10 trang thỏi nờn số lượng cac thanh ghi bằng là [log210 ] = 4.

Mó thiết kế sẽ như sau:

---

LIBRARY ieee;

USE ieee.std_logic_1164.all;

ENTITY counterBCD IS

PORT ( clk, rst: IN STD_LOGIC;

count: OUT STD_LOGIC_VECTOR (3 DOWNTO 0)); END counterBCD;

Một phần của tài liệu Thiết kế vi mạch bằng VHDL (Trang 94 - 95)

Tải bản đầy đủ (DOC)

(137 trang)
w