Điểm
Chữ kí giám thị
ĐỀ THI HK 1 (2011 – 2012)
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: ………..
SINH VIÊN LÀM BÀI NGAY TRÊN ĐỀ THI - ĐỀ THI CÓ 7 TRANG
Câu 1 (2,5 điểm)
Cho mạch logic như hình vẽ.
Mux21
Mux21
D0
X2
T
Y
D0
D1
D1
S
S
F
Y
D
10
X1
X0
a. Xác định biểu thức của hàm F theo X2, X1, X0 (0,5 điểm)
T = X1’ X2 + X1 X2’ = X1 X2
F = X0’ T’ + X0 T = (X0 T)’ = (X0 X1 X2)’
b. Thiết kế hàm F chỉ bằng các bộ cộng bán phần (Half-Adder HA) (1,0 điểm)
S=x y
F = (X0 X1 X2)’
H.A
X0
x
S
X1
y
C
X0 X1
X2
H.A
x
S
y
C
1
X0 X1 X2
1
; x 1 = x’
H.A
x
S
y
C
F
c. Thiết kế hàm F chỉ bằng IC74138 và các cổng AND 2 ngõ vào (1,0 điểm)
F (X2, X1, X0) = (X0 X1 X2)’ = (0, 3, 5, 6) = (1,2,4,7)
74138
X2
C(msb)
B
A(lsb)
X1
X0
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
G1
G2A
G2B
1
0
0
F
Câu 2 (2,0 điểm)
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 QAQBQC có giản đồ trạng thái
như hình vẽ. Vẽ thêm mạch khởi động trạng thái đầu là QAQBQC =110. (Các trạng thái khơng có
trong vịng đếm thì có trạng thái kế tiếp là tùy định)
QAQBQC
111
100
010
110
001
Bìa K, ta có kết quả:
JA = 1
KA = QC’
QAQBQC
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
QA+QB+QC+
x x x
1 1 0
1 1 1
x x x
0 0 1
x x x
0 1 0
1 0 0
JB = QC (hoặc QA’)
KB = QC
Có thể xác định JK trực tiếp từ bìa Karnaugh của Q+
2
JAKA JBKB JCKC
xx
xx
xx
1x
1x
x1
1x
x0
1x
xx
xx
xx
x1
0x
1x
xx
xx
xx
x1
x0
0x
x0
x1
x1
JC = QA’ + QB’
KC = 1
QA
RS
QB
QC
1
1
Pr
J
Q
J
Q
K
Pr
Q
J
Pr
Q
CK
K
Q
Cl
1
Cl
1
K
Q
Cl
1
Câu 3 (2,5 điểm)
Hệ tuần tự gồm 1 ngõ vào X và 1 ngõ ra Z có mạch logic như hình vẽ
Z
Q1
D1
X
CK
Q1
Q0
D0
CK
Q0
CLK
a. Xác định giản đồ trạng thái của hệ (1,5 điểm)
D1 = Q1+ = (X + Q1) Q0
Ta có bảng chuyển trạng thái
X Q1 Q0
Z
Q1+Q0+
0 0 0
0
0 0
0 0 1
0
1 1
0 1 0
1
1 0
0 1 1
0
0 1
1 0 0
1
1 0
1 0 1
0
0 0
1 1 0
1
1 1
1 1 1
0
0 1
= X’Q1’Q0 + XQ0’+Q1Q0’
D0 = Q0+ = X’Q0 + XQ1
Z = (X + Q1)Q0’ = XQ0’ + Q1Q0’
3
X/Z = 0/0
1/1
00
0/1
10
1/1
0/0
1/0
01
11
0/0, 1/0
b. Hãy vẽ lại mạch trên bằng D-FF và PLA. Trình bày bảng nạp PLA. (1,0 điểm)
PLA
X
D1 = Q1+ = X’Q1’Q0 + XQ0’+Q1Q0’
Z
Q1
Q1+
Q0
+
D0 = Q0+ = X’Q0 + XQ1
D
Z = XQ0’ + Q1Q0’
Q
Bảng nạp PLA
Q0
D
Q
X Q1 Q0
0 0 1
1 - 0
- 1 0
0 - 1
1 1 0
CK
Z Q1+
0 1
1 1
1 1
0 0
0 0
Q0+
0
0
0
1
1
Câu 4 (1,0 điểm)
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 X1,X0 (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 đó (tại thời điểm trước đó 1 xung clock).
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, …
4
HỌÏ TÊN: ……………………………………………………………………………..... MSSV: ...………………..…...……. NHÓM: ………..
TTHT
(00)
(01)
(10)
(11)
(01)
(10)
(11)
S0
S1
S2
S3
S4
S5
S6
TTKT
01 10
S1 S2
S4 S2
S4 S5
S4 S5
S4 S2
S4 S5
S4 S5
X1X0 = 00
S0
S0
S0
S0
S0
S0
S0
11
S3
S3
S3
S6
S3
S3
S6
OUT
Z
0
1
1
1
0
0
0
Câu 5 (1,0 điểm)
Viết mã VHDL (sử dụng lệnh IF) mô tả mạch logic có chức năng tương tự như câu 1a
LIBRARY ieee;
USE iee.std_logic_1164.all;
ENTITY Cau_5 IS
PORT ( X0, X1, X2: IN std_logic;
F: OUT std_logic);
END Cau_5;
ARCHITECTURE A OF Cau_5 IS
SIGNAL X: std_logic_vector (2 downto 0);
BEGIN
-- F(X2,X1,X0) = (0,3,5,6)
X <= X2 & X1 & X0;
PROCESS (X)
BEGIN
IF X=”000” or X=”011” or X=”101” or X=”110”
THEN F <= ’1’;
ELSE F <= ’0’;
END IF;
END PROCESS;
END A;
ARCHITECTURE B OF Cau_5 IS
BEGIN
-- F(X2,X1,X0) = (X0 X1 X2)’
PROCESS (X0,X1,X2)
BEGIN
IF X0 = ’0’ THEN F <= X1 xnor X2;
ELSE F <= X1 xor X2;
END IF;
END PROCESS;
END B;
5
Câu 6 Câu tự chọn (Sinh viên chọn câu a hoặc câu b) (1,0 điểm)
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ảng gía trị của mạch
E W(1) W(0)
0
0
0
0
0
1
0
1
0
0
1
1
1
X
X
Y(0) Y(1) Y(2) Y(3)
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
Là mạch Decoder 2 -> 4:
- 2 ngõ vào data: W(1), W(0)
- 4 ngõ ra Y(0), Y(1), Y(2), Y(3) tích cực thấp
- Ngõ vào cho phép E tích cực thấp
6
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;
WHEN S1 =>
IF x = ’0’ THEN
z <= ’1’;
nx_state <=
ELSE
z <= ’1’;
nx_state <=
END IF;
WHEN S2 =>
IF x = ’0’ THEN
z <= ’0’;
nx_state <=
ELSE
z <= ’1’;
nx_state <=
END IF;
END CASE;
END PROCESS;
END B;
S2;
S0;
S2;
S0;
nx_out: PROCESS (x, ps_state )
BEGIN
CASE ps_state IS
WHEN S0 =>
IF x = ’0’ THEN
z <= ’0’;
nx_state <= S0;
ELSE
z <= ’0’;
nx_state <= S1;
END IF;
Hãy vẽ giản đồ trạng thái của máy trạng thái này.
X/Z = 0/0
S0
1/0
1/1
1/1
S2
S1
0/1
0/0
Ngày 26 tháng 12 năm 2011
GV ra đề
Duyệt của BM Điện Tử
NGUYỄN TRỌNG LUẬT
7