Hãy viết lại code dùng 2 câu lệnh gán tín hiệu có điều kiện.. Hãy viết lại code dùng 1 câu lệnh gán tín hiệu có điều kiện... Hãy dùng kỹ thuật chia sẻ toán tử hoặc dùng chung tài nguyên
Trang 1Số hiệu: BM1/QT-K.ĐĐT-RĐTV/00 Ngày hiệu lực: 22/09/2008 Trang: 1/1
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT ĐÁP ÁN ĐỀ THI MÔN: thiết kế vi mạch số với HDL
- Thời gian: 75 phút, không được sử dụng tài liệu
-
Câu 1: Hãy viết cú pháp đầy đủ của câu lệnh gán tín hiệu có lựa chọn (0.5đ)
with select_expression select
signal_name <= value_expr_1 when choice_1,
value_expr_2 when choice_2, value_expr_3 when choice_3,
…
value_expr_n when choice_n ;
Câu 2: Hãy viết cú pháp đầy đủ của câu lệnh if (0.5đ)
if boolean_expr_1 then sequential_statements;
elsif boolean_expr_2 then sequential_statements ;
elsif boolean_expr_3 then sequential_statements;
end if ;
Câu 3: Hãy viết chương trình mô tả mạch giải đa hợp 8 kênh 3 bit (mỗi kênh 3 bit) dùng câu lệnh case (2)
entity GIAIDAHOP_8K_3BIT is
Port ( S : in STD_LOGIC_VECTOR (2 downto 0);
I : in STD_LOGIC_VECTOR (2 downto 0);
O0,O1,O2,O3,O4,O5,O6,O7 : out STD_LOGIC_VECTOR (2 downto 0));
end GIAIDAHOP_8K_3BIT;
architecture Behavioral of GIAIDAHOP_8K_3BIT is
begin
PROCESS(S,I)
BEGIN
O0 <="000";O1 <="000";O2 <="000";O3 <="000";
O4 <="000";O5 <="000";O6 <="000";O7 <="000";
CASE S IS
WHEN "000" => O0 <= I;
WHEN "001" => O1 <= I;
WHEN "010" => O2 <= I;
WHEN "011" => O3 <= I;
WHEN "100" => O4 <= I;
WHEN "101" => O5 <= I;
WHEN "110" => O6 <= I;
Trang 2Số hiệu: BM1/QT-K.ĐĐT-RĐTV/00 Ngày hiệu lực: 22/09/2008 Trang: 2/1
END CASE;
END PROCESS;
end Behavioral;
Câu 4: Hãy viết lưu đồ và chương trình tìm số lớn nhất của 4 số a, b, c, d dùng lệnh if (2.5đ)
BEGIN
A>B
A>C
A>D
MAX<= A
Đ
S
Đ
Đ
MAX<= D
C>D S
MAX<= C
Đ
S
B>C S
B>D
Đ
MAX<= B
Đ
S
S
PROCESS(A,B,C,D)
BEGIN
IF A > B THEN
IF A > C THEN
IF A > D THEN MAX <= A;
ELSIF C > D THEN MAX <= C;
END IF;
ELSIF B > C THEN
IF B > D THEN MAX <= B;
END IF;
ELSIF C > D THEN MAX <= C;
END IF;
END PROCESS;
Câu 5: Cho đoạn code theo sau:
If (a>b) then y <= a-b;
Else
If (a>c) then y <=a – c;
Trang 3Số hiệu: BM1/QT-K.ĐĐT-RĐTV/00 Ngày hiệu lực: 22/09/2008 Trang: 3/1
End if;
End if;
a Hãy vẽ sơ đồ khái niệm (0.5đ)
T F
Y T
F
A-B A-C A+1
A
B
C
1
A>B A>C
b Hãy viết lại code dùng 2 câu lệnh gán tín hiệu có điều kiện (0.5đ)
SIGNAL YT:STD_LOGIC_VECTOR (7 downto 0);
begin
YT <= (A-C) WHEN (A>C) ELSE
Y <= (A-B) WHEN (A>B) ELSE
end Behavioral;
c Hãy viết lại code dùng 1 câu lệnh gán tín hiệu có điều kiện (0.5đ)
Y <= (A-B) WHEN (A>B) ELSE
(A-C) WHEN (A>C) ELSE (A+1);
Câu 6: Cho đoạn code theo sau, các tín hiệu a, b, c, d đều l6 bit (3đ)
Process(a,b,c,d,…)
Begin
Elsif boolean_expr_b then r <= a + c;
end if end process;
a Hãy vẽ sơ đồ khái niệm của đoạn code trên và cho biết các loại toán tử sử dụng trong mạch, dựa vào bảng dữ liệu cho bên dưới, hãy tính tài nguyên sử dụng là bao nhiêu?
Trang 4Số hiệu: BM1/QT-K.ĐĐT-RĐTV/00 Ngày hiệu lực: 22/09/2008 Trang: 4/1
BL_EXPR_A
T F
R
BL_EXPR_B
T F
A+B A+C D+1
A B
C D 1
Toán tử sử dụng trong mạch gồm toán tử 2 toán tử cộng và 1 toán tử cộng 1 đơn vị
Tài nguyên sử dụng = 101*2 + 55 = 257 cổng NAND
b Hãy dùng kỹ thuật chia sẻ toán tử (hoặc dùng chung tài nguyên) cải tiến lại đoạn code trên
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity GANCODIEUKIEN is
Port ( A,B,C,D : in STD_LOGIC_VECTOR (7 downto 0);
R : out STD_LOGIC_VECTOR (7 downto 0);
BL_EXPR_A,BL_EXPR_B : in STD_LOGIC);
end GANCODIEUKIEN;
architecture Behavioral of GANCODIEUKIEN is
signal S1,S2: STD_LOGIC_VECTOR (7 downto 0);
begin
PROCESS(A,B,C,D,S1,S2,BL_EXPR_A,BL_EXPR_B)
BEGIN
IF BL_EXPR_A = '1' THEN S1 <= A; S2 <= B;
ELSIF BL_EXPR_B = '1' THEN S1 <= A; S2 <= C;
ELSE S1 <= D; S2 <= "00000001";
END IF;
R <= S1 + S2;
END PROCESS;
end Behavioral;
c Vẽ lại sơ đồ khái niệm cho code sau khi cải tiến ở câu b
Trang 5Số hiệu: BM1/QT-K.ĐĐT-RĐTV/00 Ngày hiệu lực: 22/09/2008 Trang: 5/1
BL_EXPR_A
S0 A
T F
T F
S2
R D
T F
T F 1
BL_EXPR_B
C
d So sánh tài nguyên và thời gian trễ hệ thống của 2 chương trình chưa cải tiến và sau khi cải tiến Toán tử sử dụng trong mạch gồm toán tử 1 toán tử cộng và 2 mạch đa hợp 2 kênh 16 bit
Tài nguyên sử dụng = 42*2 + 101 = 185 cổng NAND vậy tiết kiệm được 72 cổng
Thời gian trễ của mạch cải tiến trải qua 3 tầng: 2 tầng đa hợp và 1 tầng của mạch cộng
Thời gian trễ của mạch chưa cải tiến trải qua 2 tầng: 2 tầng đa hợp
Trang 6Số hiệu: BM1/QT-K.ĐĐT-RĐTV/00 Ngày hiệu lực: 22/09/2008 Trang: 6/1
-
Cán bộ coi thi không được giải thích đề thi, cho đề thi vào túi bài thi để chấm bài
Tp Hồ Chí Minh, ngày 16 tháng 12 năm 2014
P.Trưởng bộ môn CẦU ĐẠO LONG 2
10/12
0962 642 555
NGUYỄN ĐÌNH PHÚ