Bài tập kỹ thuật số (trích từ các đề thi cuối học kỳ)
Câu 1
Cho hệ tổ hợp có ngõ vào biểu diễn 1 giá trò x (số nhò phân 2 bit
x
1
x
0
). Hệ có 3 ngõ ra a, b, c điều khiển các thanh đèn tương ứng sẽ sáng
hoặc tắt (1 thì sáng, 0 thì tắt) tùy theo giá trò của x. Ví dụ: x = 0 thì sáng
tất cả thanh đèn.
a. Thiết kế hệ trên chỉ bằng cổng logic.
b. Thiết kế hệ trên chỉ bằng mạch giải mã (decoder) 2 → 4 và cổng
cần thiết.
Câu 2
Cho bộ so sánh 3-bit (có ngõ ra tích cực cao) và bộ MUX 2 → 1. Hãy
thiết kế hệ tổ hợp tìm giá trò lớn nhất trong 2 giá trò 3-bit M (M
2
M
1
M
0
) và
N (N
2
N
1
N
0
) để chọn đưa đến ngõ ra P (P
2
P
1
P
0
)
0 1 2 3
a
b
c
D0
D1
S
Y
Mux 2
→
1
A
2
A
1
A
0
B
2
B
1
B
0
A > B
A = B
A < B
Comparator
Bảng hoạt động
S Y
0
1
D0
D1
Bảng hoạt động
EN X
1
X
0
Y
0
Y
1
Y
2
Y
3
0 x x
1 0 0
1 0 1
1 1 0
1 1 1
1 1 1 1
0 1 1 1
1 0 1 1
1 1 0 1
1 1 1 0
X
0
(LSB)
X
1
Y
0
Y
1
Y
2
Y
3
EN
Câu 3
Sử dụng T.FF có xung clock kích theo cạnh xuống, ngõ vào Preset và
Clear tích cực logic 0 (tích cực thấp), hãy vẽ sơ đồ logic của bộ đếm nối tiếp
(bộ đếm bất đồng bộ) 3 bit Q
2
Q
1
Q
0
(Q
0
là LSB) có chức năng đếm 4 đếm
xuống với trạng thái đầu là 110.
Ghép nối tiếp bộ đếm này với 1 T.FF như hình vẽ. Hãy xác đònh giản
đồ trạng thái của bộ đếm Q
3
Q
2
Q
1
Q
0
với giá trò đầu là 1010. (Giải thích
ngắn gọn)
Câu 4
Thiết kế bộ đếm 3 bit có dãy đếm 4, 2, 3, 6, 5, 1, 4, … sử dụng JK-FF
có xung clock kích cạnh lên, ngõ vào Preset và Clear tích cực cao. Các trạng
thái không có trong vòng đếm: với trạng thái hiện tại là 0 thì trạng thái kế
tiếp là 7, còn với trạng thái hiện tại 7 thì kế tiếp là 0. Vẽ thêm mạch khởi
động giá trò ban đầu cho bộ đếm là 5.
Câu 5
Cho mạch gồm MUX 4 → 1 và D-FF như hình vẽ. Khảo sát tín hiệu Y
và Q theo tín hiệu CK và các ngõ vào A, B. (Giá trò ban đầu của Q = 0)
MUX 4 →
1
D0
D1
D2
D3
S0 (LSB)
S1
Y D Q
1
0
B
A
CK
T
ck
Q
0
Q
1
Q
2
CK
Q
Q
Q
3
1
Câu 6
Xác đònh giản đồ trạng thái của hệ tuần tự gồm 1 ngõ vào X và 2 T-
FF Q1, Q0 như hình vẽ
Câu 7
CK
A
B
Y
Q
T
CK
Q
Q
T
CK
Q
Q
X
CK
Q0 Q1
Cho mạch logic như hình vẽ. Khảo sát dạng tín hiệu Y, Z, T theo tín
hiệu A, B, C. Biết rằng giá trò ban đầu ngõ ra Q của chốt D và Flip Flop D
đều bằng 1.
Câu 8 :
Thiết kế hệ tổ hợp có nhiệm vụ nhân 3 của giá trò A (A là số nhò phân
2 bit A
1
A
0
, với A
0
là LSB). Kết quả là giá trò M = 3xA có 3 bit M
2
M
1
M
0
(M
0
là LSB)
.
Tuy nhiên nếu kết quả đầy đủ thì giá trò M phải lớn hơn 3 bit.
Trong trường hợp này hệ có thêm 1 ngõ ra I (Invalid): I = 1 nếu kết quả M
lớn hơn 3 bit và I = 0 trong trường hợp ngược lại. Trong trường hợp I = 1
thì giá trò M là tùy đònh.
A
EN
D
Q
Q
D
CK
Q
Q
B
C
Y
Z
T
D
10
A
B
C
Y
Z
T
Câu 9 :
a. Cho mạch giải mã (decoder) 2 4 có ngõ ra tích cực logic 1 (tích
cực cao) và có 1 ngõ vào cho phép tích cực logic 1 như hình vẽ. Hãy tìm
biểu thức của từng ngõ ra và vẽ sơ đồ logic của mạch giải mã.
b. Cho hàm F (A, B, C, D) có sơ đồ thực hiện bằng mạch giải mã trên
và cổng logic như hình vẽ. Hãy tìm dạng chính tắc 1 của hàm F (dạng
chuẩn 1).
A
1
A
0
I M
2
M
1
M
0
X0
X1
E
Y0
Y1
Y2
Y3
E X1 X0 Y0 Y1 Y2 Y3
0 X X
1 0 0
1 0 1
1 1 0
1 1 1
0 0 0 0
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
X0
X1
E
Y0
Y1
Y2
Y3
X0
X1
E
Y0
Y1
Y2
Y3
1
D
B
A
C
F
Decoder1
Câu 10 :
Hệ tổ hợp có gồm có: - Ngõ vào: A0, A1, A2
- Ngõ vào điều khiển: X, Y
- Ngõ ra: F0, F1, F2
Hệ hoạt động theo 1 trong 4 chức năng như sau:
X Y Chức năng Ngõ ra: F0 F1 F2
0 0
0 1
1 0
1 1
Quay phải giá trò ngõ vào (A0, A1, A2)
Quay trái giá trò ngõ vào (A0, A1, A2)
Dich phải giá trò ngõ vào (A0, A1, A2)
Dịch trái giá trò ngõ vào (A0, A1, A2)
A2 A0 A1
A1 A2 A0
0 A0 A1
A1 A2 0
Thiết kế hệ tổ hợp trên chỉ sử dụng các MUX 4 1 (như hình vẽ).
Câu 11 :
Sử dụng T.FF có xung clock kích theo cạnh lên, ngõ vào Preset và
Clear tích cực logic 0 (tích cực thấp), thiết kế bộ đếm nối tiếp (bộ đếm bất
đồng bộ) 3 bit Q
2
Q
1
Q
0
(Q
0
là LSB) có chức năng đếm xuống, gồm 6 trạng
thái và trạng thái ban đầu là Q
2
Q
1
Q
0
= 011.
Câu 12 :
Bộ đếm song song (bộ đếm đồng bộ) được thiết kế như hình vẽ. Hãy
xác đònh giản đồ trạng thái của bộ đếm này. Cho nhận xét về bộ đếm này.
Bảng hoạt động
S1 S0 F
0 0
0 1
1 0
1 1
D0
D1
D2
D3
Decoder2
D
0
D
1
D
2
S
1
S
0 (LSB)
F
D
3
Với giá trò đầu Q
A
Q
B
Q
C
= 001, hãy hoàn tất giản đồ xung như
hình vẽ:
Câu 1 3
Sử dụng JK.FF có xung clock kích theo cạnh lên, ngõ vào Preset và
Clear tích cực logic 0 (tích cực thấp), thiết kế bộ đếm nối tiếp (bộ đếm bất
đồng bộ) 3 bit Q
A
Q
B
Q
C
(Q
C
là LSB) có giản đồ trạng thái như hình vẽ.
D Q
QCK
Cl
D Q
QCK
Cl
D Q
QCK
Cl
Q
A
Q
B
Q
C
CK
RS
CK
Q
A
Q
B
Q
C
RS
0
0
1
111
000
0
001
010
011
Q
A
Q
B
Q
C
Câu 14
Xác đònh giản đồ trạng thái của hệ tuần tự gồm 1 ngõ vào X và 2 T-
FF Q1, Q0 như hình vẽ
Câu 15
Thành lập bảng chuyển trạng thái hoặc giản đồ trạng thái của hệ
tuần tự kiểu MOORE có 1 ngõ vào X và 1 ngõ ra Z. Ngõ ra Z chỉ bằng 1 khi
ngõ vào X nhận được chuỗi liên tục 1, 1, 0, 1. Hãy rút gọn bảng trạng thái.
Câu 16
Rút gọn bảng trạng thái sau:
T
CK
Q
Q
T
CK
Q
Q
X
CK
Q0 Q1
TRẠNG THÁI
HIỆN TẠI
TRẠNG THÁI KẾ TIẾP NGÕ RA
X = 0X = 1X = 0X =
1S1S2S300S2S4S500S3S6S700S4S4S500S5S6S700S6S4
S510S7S6S700
Câu 17
Cho hệ tuần tự có 1 ngõ vào X và 2 ngõ ra Z1, Z2. Hệ có 4 trạng thái
A, B, C và D. Với phép gán trạng thái A: Q
1
Q
2
= 10, B: Q
1
Q
2
= 00, C: Q
1
Q
2
= 10 và D: Q
1
Q
2
= 11. Hãy thiết kế hệ bằng JK_FF và cổng logic hoặc
D_FF và PLA. Biết rằng khi xung clock vào có cạnh xuống hệ sẽ chuyển
trạng thái.
Câu 18
A
01
X = 1
B
11
D
10
C
00
0
0
0
0 1
11
Cho hệ tuần tự có lưu đồ máy trạng thái (lưu đồ SM như hình vẽ). Xác
đònh phương trình trạng thái kế của các biến trạng thái Q
+
1
, Q
+
2
và phương
trình ngõ ra Z
1
Z
2
.
Câu 19
Hoàn tất mã VHDL thực hiện hệ tuần tự sau:
LIBRARY ieee;
USE iee.std_logic_1164.all;
ENTITY FSM IS
PORT (clock, reset, x: IN std_logic;
z: OUT std_logic);
END FSM;
ARCHITECTURE behavior OF FSM IS
TYPE state IS (A, B);
SIGNAL pr_state, nx_state: state;
0
0 1
S2 10
S1 11
Z1
S0 00 = Q
1
Q
2
X
Z2
Z1, Z2
0 1
X
X
B
11
ZX
= 1
1A
01
1
x/z = 1/1
A B
0/1, 1/0
0/1
BEGIN
regst: PROCESS(clock, reset)
BEGIN
IF reset = ’1’ THEN pr_state <= A;
ELSIF (clock = ’1’ and clock’event) THEN
pr_state <= nx_state;
END IF;
END PROCESS;
Câu 20
Một mạch hoán đổi mạng 2 dây (2-input permutation network). Mạch
có 2 ngõ vào a, b; ngõ vào điều khiển c và 2 ngõ ra x, y. Mạch có hoạt
động như sau:
- Nếu c = 0 thì x = a và y = b.
- Nếu c = 1 thì x = b và y = a.
Hãy viết mã VHDL (sử dụng phát biểu Process) mô tả hoạt động của
mạch.
Câu 21
Một hệ tổ hợp có ngõ ra Z là số nhò phân 4 bit (z3 z2 z1 z0); có chức
năng chọn 1 trong 4 mã nhò phân 4 bit ngõ vào: M, N, P hoặc Q phụ thuộc
2 ngõ vào điều khiển x1 và x0.
Viết mã VHDL thực hiện mạch này sử dụng component MUX 4 1 có
khai báo ENTITY:
s1 s0 y
0 0 d0
0 1 d1
1 0 d2
1 1 d3
ENTITY MUX4 IS
PORT (d0, d1, d2, d3: IN
STD_LOGIC;
s1, s0: IN STD_LOGIC;
y: OUT STD_LOGIC);
END MUX4;
x1 x0 Z = z3 z2 z1 z0
0 0 M = m3 m2 m1 m0
0 1 N = n3 n2 n1 n0
1 0 P = p3 p2 p1 p0
1 1 Q = q3 q2 q1 q0
Gợi ý: - Mỗi ngõ ra z
i
chọn 1 trong 4 ngõ vào m
i
, n
i
, p
i
, q
i
.
- Các ngõ vào và M, N, P, Q và ngõ ra Z khai báo kiểu
STD_LOGIC_VECTOR.
Câu 22
Cho mạch logic như hình vẽ.
a. Xác định biểu thức của hàm F theo X2, X1, X0
b. Thiết kế hàm F chỉ bằng các bộ cộng bán phần (Half-Adder HA)
c. Thiết kế hàm F chỉ bằng IC74138 và các cổng AND 2 ngõ vào.
Câu 23
Sử dụng JK.FF có xung clock kích theo cạnh lên, ngõ vào Preset và
Clear tích cực logic 0 (tích cực thấp), thiết kế bộ đếm song song (bộ đếm
đồng bộ) 3 bit Q
A
Q
B
Q
C
(Q
C
là LSB) có giản đồ trạng thái như hình vẽ. Vẽ
thêm mạch reset với trạng thái đầu là 111.
111
100
001
110
010
Q
A
Q
B
Q
C
Mux2
→
1
D0X2
D1
S
Y
Mux2
→
1
D0
D1
S
Y
D
10
X1
X0
F
Câu 24
Hệ tuần tự gồm 1 ngõ vào X và 1 ngõ ra Z có mạch logic như hình vẽ
a. Xác đị nh gi ả n đồ tr ạ ng thái c ủ a h ệ (1,5
đ
i
ể
m)
b. Hãy chuy ể n l ạ i m ạ ch trên b ằ ng D-FF và PLA . (1,0
đ
i
ể
m)
Câu 25
D1
CK
Q1
Q1
CK
D0
Q0
Q0
X
Z
CLK
Thành lập bảng chuyển trạng thái hoặc giản đồ trạng thái của hệ tuần tự
kiểu MOORE có 2 ngõ vào X1X0 (biểu diễn giá trị X là số nhị phân 2 bit) và 1 ngõ ra
Z. Ngõ ra Z chỉ bằng 1 khi ngõ vào có gía trị X lớn hơn giá trị của nó trước đó.
Ví d
ụ
: X1X0= 00, 10, 01, 01, 11, 00, 00, 10, 11, 00, …
Z = 0, 1, 0, 0, 1, 0, 0, 1, 1, 0,
Chú ý:
- Tr
ạ
ng thái reset coi nh
ư
là tr
ạ
ng thái có giá tr
ị
vào X1X0 = 00 và ngõ ra Z
= 0.
- Tr
ạ
ng thái reset
đặ
t tên là S0, các tr
ạ
ng thái ti
ế
p theo là S1, S2, …
Câu 26
Viết mã VHDL (sử dụng lệnh IF) mô tả mạch logic theo sơ đồ ở câu 21.
Câu 27
a. Cho mạch tổ hợp được mô tả bằng mã VHDL:
LIBRARY ieee;
USE iee.std_logic_1164.all;
ENTITY Cau_6 IS
PORT ( w: IN STD_LOGIC_VECTOR(1 DOWNTO 0);
E: IN STD_LOGIC;
Y: OUT STD_LOGIC_VECTOR (0 TO 3);
END Cau_6;
ARCHITECTURE A OF Cau_6 IS
SIGNAL EW: STD_LOGIC_VECTOR (2 DOWNTO 0);
BEGIN
EW <= E & W;
WITH EW SELECT
Y <= ”0111” WHEN ”000”,
”1011” WHEN ”001”,
”1101” WHEN ”010”,
”1110” WHEN ”011”,
”1111” WHEN OTHERS;
END A;
Hãy cho biết chức năng của mạch này và ý nghĩa của các ngõ vào/ngõ ra. Giải thích
ngắn gọn.
b. Cho máy trạng thái được mô tả bằng mã VHDL:
LIBRARY ieee;
USE iee.std_logic_1164.all;
ENTITY Cau_6 IS
PORT (
clock, reset, x: IN std_logic;
z: OUT std_logic);
END Cau_6;
ARCHITECTURE B OF Cau_6 IS
TYPE state IS (S0, S1, S2);
SIGNAL pr_state, nx_state: state;
BEGIN
regst: PROCESS (clock, reset)
BEGIN
IF reset = ’1’ THEN
pr_state <= S0;
ELSIF falling_edge(clock)
THEN pr_state <= nx_state;
END IF;
END PROCESS;
nx_out: PROCESS (x, ps_state )
BEGIN
CASE ps_state IS
WHEN S0 =>
IF x = ’0’ THEN
z <= ’0’;
nx_state <= S0;
ELSIF
z <= ’0’;
nx_state <= S1;
END IF;
WHEN S1 =>
IF x = ’0’ THEN
z <= ’1’;
nx_state <= S2;
ELSIF
z <= ’1’;
nx_state <= S1;
END IF;
WHEN S2 =>
IF x = ’0’ THEN
z <= ’0’;
nx_state <= S2;
ELSIF
z <= ’1’;
nx_state <= S1;
END IF;
END CASE;
END PROCESS;
END B;
Hãy vẽ giản đồ trạng thái của máy trạng thái này.