Sử dụng JK-FF thiết kế bộ đếm nối tiếp bộ đếm không đồng bộ có giản đồ trạng thái như hình vẽ.. Hãy vẽ thêm cổng logic cần thiết để tạo 2 tín hiệu điều khiển cho 2 đèn LED: L1 và L2 có q
Trang 11
Câu 1 (2,0 điểm)
a Sử dụng JK-FF thiết kế bộ đếm nối tiếp (bộ đếm không đồng bộ) có giản đồ trạng thái như hình vẽ (1 điểm)
b Cho Q 2 Q 1 Q 0 của bộ đếm nối với IC74138 như hình vẽ Hãy vẽ thêm cổng logic cần thiết để tạo 2 tín hiệu điều khiển cho 2 đèn LED: L1 và L2 có quy luật sáng/tắt tuần hoàn theo dãy đếm như bảng sau Biết rằng bộ đếm có trạng thái đầu Q 2 Q 1 Q 0 = 000 (1 điểm)
Trạng thái
đèn Led
2 Led tắt Led 1 sáng
Led 2 tắt
2 Led sáng Led 1 tắt
Led 2 sáng
2 Led tắt 2 Led sáng
Từ bảng, ta có: L1 (Q 2 ,Q 1 ,Q 0 ) = (1, 6, 7) = (0, 4, 5)
L2 (Q 2 ,Q 1 ,Q 0 ) = (1, 5, 6) = (0, 4, 7)
Điểm
SINH VIÊN LÀM BÀI NGAY TRÊN ĐỀ THI - ĐỀ THI CÓ 6 TRANG
ĐỀ THI HK1 (2014-2015)
Môn: Kỹ thuật số Thời gian: 110 phút (SINH VIÊN KHÔNG ĐƯỢC SỬ DỤNG TÀI LIỆU)
HỌ TÊN: ……… MSSV: ……… NHÓM: ………
ĐH BÁCH KHOA TP.HCM * KHOA ĐIỆN - ĐIỆN TỬ * BỘ MÔN ĐIỆN TỬ
Q 2 Q 1 Q 0
0 0 1
0 0 0
1 1 1
1 1 0
1 0 1
1 0 0
0 1 1 => Z = Q 2 Q 1
ck
Q
Q
Pr
Cl
K
J
ck
Q
Q
Pr
Cl
K
J
ck
Q
Q
Pr
Cl
K
J
ck
Q
Q
Pr
Cl
K
1
1
1
1
1
1
0
0
CK
Trang 2Có thể dùng cổng AND cho dạng của L1 và L2
Câu 2 (2,0 điểm) Cho bộ đếm Q2 Q 1 Q 0 có sơ đồ như hình vẽ Hãy vẽ giản đồ trạng thái của bộ đếm và cho biết bộ đếm có cần xác định trạng thái đầu (reset) hay không? Nếu có hãy vẽ thêm mạch xác định trạng thái đầu để bộ đếm hoạt động theo vòng đếm có nhiều trạng thái nhất (biết rằng các FF có ngõ vào Preset và Clear tích cực thấp)
C
B
A (lsb)
G1 G2A G2B
Y0 Y1
Y 2 Y3
Y 4 Y5 Y6 Y7 IC74138
L1
L2
Q 2
Q 1
Q 0
1
0
0
J 2 = Q 1 Q 0
K 2 = Q 0
J 1 = Q 2
K 1 = Q 0
J 0 = 1
Q 2 Q 1 Q 0 J 2 K 2 J 1 K 1 J 0 K 0 Q 2 + Q 1 + Q 0 +
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
1 0 1 0 1 1
0 1 1 1 1 1
0 0 1 0 1 1
1 1 1 1 1 1
1 0 0 0 1 0
0 1 0 1 1 0
0 0 0 0 1 1
1 1 0 1 1 1
1 1 1
0 1 0
0 1 1
1 0 0
1 0 1
0 0 1
1 1 1
0 0 0
J 2 Q 2
Q 2
Q 2
CK
J 1 Q 1
Q 1
Q 1
J 0 Q 0
Q 0
Q 0
1
1
RS
Trang 33
Chọn trạng thái reset là 001 = > hình vẽ (0,5 điểm)
Câu 3 (1,0 điểm) Một hệ tuần tự kiểu MOORE có 2 ngõ vào X và Y, và một ngõ ra Z Ngõ ra Z
là 1 khi ngõ vào XY hiện tại và trước đó 1 xung clock có tổng số bit 1 là 2 Hãy thành lập bảng chuyển trạng thái và rút gọn Biết rằng trạng thái đầu (trạng thái reset) là trạng thái S0 chưa
có nhận được bit 1 Các trạng thái kế tiếp là S1, S2, Chú thích về số bit 1 của các trạng thái
Câu 4 (2,0 điểm) Hệ tuần tự được thiết kế bằng T-FF và ROM như hình vẽ
Vd: XY = 00, 10, 00, 11, 00, 10, 01, 01, 11, 01,
Z = 0, 0, 0, 1, 1, 0, 1, 1, 0, 0,
Bảng nạp ROM
A 2 A 1 A 0 (X Q 1 Q 2 )
D 3 D 2 D 1 D 0 (Z 1 Z 2 T 1 T 2 ) Q 1 + Q 2 +
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
1 1 0 1
1 0 0 1
0 1 1 1
0 0 0 0
1 1 1 0
0 0 1 0
0 1 1 1
0 0 0 0
0 1
0 0
0 1
1 1
1 0
1 1
0 1
1 1
Z1
D 3
A 2
A 1
A 0
D 1
D 0
T Q
T Q
CLK
Z 2
D 2
X
ROM 2 3 x 4 (bit)
D 3
CK
CK
Q 1
Q2
T1
T2
000
001
Q2Q1Q0
XY = 00 01 10 11
Output
Z
(0 bit 1) S0 (1 bit 1) S1 (2 bit 1) S2 (1 bit 1) S3 (2 bit 1) S4 (0 bit 1) S5
S0 S1 S1 S2
S0 S3 S3 S4 S5 S1 S1 S4 S0 S3 S3 S4 S5 S1 S1 S4 S0 S1 S1 S2
0
0
1
1
0
1
Trang 4a Vẽ giản đồ trạng thái của hệ (1 điểm)
b Nếu thay ROM trên bằng PLA, hãy vẽ thêm các đường tích (AND) và đánh dấu kết nối trong các dãy AND và dãy OR bên trong PLA
(1 điểm)
10
00
X/Z 1 Z 2 = 1/11
0/10
0/01 , 1/01
0/01 , 1/01
1/00 0/11
Vẽ bìa K và rút gọn: Z 1 = X Q 1 + Q 1 Q 2
Z 2 = Q 2
T 1 = X Q 1 + Q 1 Q 2
T 2 = X Q 1 + Q 1 Q 2 (1 điểm)
X Q 1 Q 2
Z 1 Z 2 T 1 T 2 Nếu viết lại Z2 = Q 2 = Q 1 Q 2 + Q 1 Q 2 thì chỉ cần 4 đường tích
Trang 55
Câu 5 (1,0 điểm)
Hãy viết tiếp chương trình VHDL theo kiểu mô tả cấu trúc cho hệ tuần tự cho ở câu 4
Câu 6 (1,0 điểm) Chương trình VHDL mô tả 1 máy trạng thái:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY cau_6 IS
PORT (clk, x, rst: IN std_logic;
z1, z2: OUT std_logic );
END cau_6 ;
ARCHITECTURE thi OF cau_6 IS
TYPE tthai IS (A, B, C);
SIGNAL ttht, ttkt: tthai;
BEGIN
u1: PROCESS (clk, rst)
BEGIN
IF rst = '1' THEN
ttht <= A;
ELSIF rising_edge(clk) THEN
ttht <= ttkt;
END IF;
END PROCESS;
u2: PROCESS (x, ttht) BEGIN
CASE ttht IS
WHEN A => z1 <= '0'; z2 <= '1';
IF x = '1' THEN ttkt <= B; ELSE ttkt <= C; END IF;
WHEN B => z1 <= '0'; z2 <= '0';
IF x = '1' THEN ttkt <= A; ELSE ttkt <= C; END IF;
WHEN C => z1 <= '1'; z2 <= '1';
IF x = '1' THEN ttkt <= B; ELSE ttkt <= A; END IF;
END CASE;
END PROCESS;
END thi;
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY cau5 IS
PORT ( X, CLK: IN std_logic; Z1, Z2 : OUT std_logic);
END cau6;
ARCHITECTURE thi OF cau5 IS
COMPONENT rom_34
PORT ( A: IN std_logic_vector(2 downto 0);
D: OUT std_logic_vector(3 downto 0));
END COMPONENT;
COMPONENT t_ff
PORT (T, CK: IN std_logic; Q: OUT std_logic);
END COMPONENT;
SIGNAL Q1, Q2: std_logic;
SIGNAL U: std_logic_vector(2 downto 0);
SIGNAL V: std_logic_vector(3 downto 0);
BEGIN
U <= X & Q1 & Q2;
Z1 <= V(3);
Z2 <= V(2);
u1: rom_34 PORT MAP (U, V);
u2: t_ff PORT MAP (V(1), CLK, Q1);
u3: t_ff PORT MAP (V(0), CLK, Q2);
END thi;
Trang 6
a Vẽ giản đồ trạng thái (graph trạng thái) của hệ trên
(1 điểm)
b Thay vì mô tả hàm ngõ ra Z1 và Z2 trong Process, hãy viết lại lệnh mô tả Z1 và Z2 bằng lệnh đồng thời WHEN – ELSE bên ngoài Process (1 điểm)
Câu 7 (1,0 điểm) Sử dụng lệnh CASE, viết đoạn chương trình VHDL mô tả hệ tổ hợp có bảng hoạt động sau:
Ngày 10 tháng 12 năm 2014
BM Điện Tử
GV ra đề
Bảng hoạt động
E U V Y 0 Y 1 Y 2 Y 3
0 X X
1 0 0
1 0 1
1 1 0
1 1 1
0 0 0 0
1 1 1 1
1 1 1 0
1 1 0 0
1 0 0 0
E
V
Y 0
U
Y 3
Y 1
Y 2
A
01
B
00
C
11
X = 1
1
0
0
Z1 <= ’1’ WHEN ttht = C ELSE ’0’ WHEN OTHERS;
Z2 <= ’0’ WHEN ttht = B ELSE ’1’ WHEN OTHERS;
LIBRARY ieee;
USE ieee_std_logic_1164.all;
ENTITY cau7 IS
PORT (E,U,V: IN std_logic;
Y: OUT
std_logic_vector(0 to 3);
ARCHITECTURE thi OF cau7 IS
SIGNAL X: std_logic_vector(2
downto 0);
BEGIN
X <= E & U & V;
PROCESS (X)
BEGIN
CASE X IS WHEN ”100” => Y <= ”1111”; WHEN ”101” => Y <= ”1110”; WHEN ”110” => Y <= ”1100”; WHEN ”111” => Y <= ”1000”; WHEN OTHERS => Y <= ”0000”; END CASE;
END PROCESS;
END thi;
PROCESS (E,U,V) BEGIN
X <= E & U & V;