NEW
Font size
Worksheetson tap
Total questions: 80
Worksheet time: 40mins
Trong VHDL, ký hiệu nào được dùng để bắt đầu một dòng chú thích (comment)?
//
`
--
#
Tên định danh (identifier) nào sau đây là hợp lệ trong VHDL?
2_input_AND
my-signal
_data_bus
counter_value
Kiểu dữ liệu nào trong VHDL được dùng để biểu diễn một bit đơn lẻ có thể nhận giá trị '0' hoặc '1'?
INTEGER
BOOLEAN
BIT
CHARACTER
Toán tử nào được sử dụng để nối (concatenate) hai vector bit hoặc chuỗi ký tự?
+
&
#
|
Từ khóa nào được sử dụng để khai báo một hằng số trong VHDL?
VARIABLE
SIGNAL
CONSTANT
GENERIC
Thành phần nào trong VHDL định nghĩa giao diện bên ngoài của một thiết kế, bao gồm các cổng vào/ra?
ARCHITECTURE
ENTITY
PROCESS
COMPONENT
Cú pháp đúng để khai báo một thực thể (ENTITY) có tên là my_design là gì?
ENTITY my_design IS END ENTITY;
ENTITY my_design BEGIN ... END;
DESIGN my_design IS ... END DESIGN;
ENTITY my_design {}
Trong khai báo PORT, mode nào chỉ cho phép tín hiệu đi vào thực thể?
IN
OUT
INOUT
BUFFER
Trong khai báo PORT (a: IN STD_LOGIC; y: OUT STD_LOGIC);, tín hiệu a có thể được đọc ở đâu?
Chỉ bên ngoài ENTITY
Chỉ bên trong ARCHITECTURE
Cả bên trong và bên ngoài
Không đâu cả
Mode INOUT trong khai báo PORT có chức năng gì?
Chỉ đọc dữ liệu
Chỉ ghi dữ liệu
Vừa đọc, vừa ghi dữ liệu (song hướng)
Là một bộ đệm đầu ra
Khối nào định nghĩa hoạt động hoặc cấu trúc bên trong của một ENTITY?
PACKAGE
LIBRARY
ARCHITECTURE
CONFIGURATION
Một ENTITY có thể có bao nhiêu ARCHITECTURE liên kết với nó?
Chỉ một
Tối đa hai
Không giới hạn
Không có cái nào
Đâu là cú pháp đúng để bắt đầu một khối ARCHITECTURE có tên rtl cho ENTITY my_design?
ARCHITECTURE rtl OF my_design IS
ARCHITECTURE my_design FOR rtl IS
BEGIN ARCHITECTURE rtl OF my_design IS
OF my_design ARCHITECTURE rtl IS
Phần khai báo của một ARCHITECTURE (nằm giữa IS và BEGIN) dùng để làm gì?
Khai báo các tín hiệu (signal), hằng số (constant), và component nội bộ
Chỉ chứa các câu lệnh tuần tự
Định nghĩa các cổng vào/ra
Liên kết ARCHITECTURE với ENTITY
Thân của một ARCHITECTURE (nằm giữa BEGIN và END) chứa điều gì?
Các câu lệnh mô tả hành vi hoặc cấu trúc của mạch
Chỉ khai báo thư viện
Khai báo PORT
Khai báo GENERIC
GENERIC trong VHDL được sử dụng để làm gì?
Định nghĩa các cổng vào/ra của mạch
Tham số hóa một thiết kế, giúp nó trở nên linh hoạt và tái sử dụng được
Khai báo các biến tạm thời trong một PROCESS
Chỉ định thư viện cần sử dụng
GENERIC được khai báo ở đâu?
Bên trong ARCHITECTURE
Bên trong PROCESS
Bên trong ENTITY
Bên trong PACKAGE
Giả sử có khai báo GENERIC (N: INTEGER := 8); Giá trị 8 có ý nghĩa gì?
Là giá trị bắt buộc của N
Là giá trị tối đa của N
Là giá trị mặc định của N nếu không được chỉ định khi khởi tạo
Là giá trị tối thiểu của N
Khi nào giá trị của một GENERIC được xác định?
Trong quá trình mô phỏng
Trong quá trình biên dịch
Khi khởi tạo (instantiate) một component
Khi tín hiệu ngõ vào thay đổi
Đâu là công dụng chính của việc dùng GENERIC để định nghĩa độ rộng bus dữ liệu, ví dụ data_bus : IN STD_LOGIC_VECTOR(N-1 DOWNTO 0);?
Giảm tài nguyên phần cứng
Tăng tốc độ mô phỏng
Dễ dàng thay đổi độ rộng bus mà không cần sửa nhiều chỗ trong code
Giúp code dễ đọc hơn
Câu lệnh nào sau đây là một câu lệnh gán tín hiệu đồng thời (concurrent signal assignment)?
y <= a AND b;
IF a = '1' THEN ...
CASE sel IS ...
v := x + 1;
Đặc điểm của các câu lệnh đồng thời là gì?
Chúng thực thi tuần tự từ trên xuống dưới
Chúng thực thi song song và thứ tự viết không quan trọng
Chúng chỉ được phép dùng bên trong một PROCESS
Chúng chỉ được dùng để mô tả máy trạng thái
Câu lệnh gán tín hiệu có điều kiện WHEN ... ELSE được dùng để mô tả mạch gì?
Mạch tổ hợp, ví dụ như một bộ MUX
Mạch tuần tự, ví dụ như một Flip-Flop
Thanh ghi dịch
Bộ nhớ RAM
Trong câu lệnh y <= a WHEN sel = '1' ELSE b;, tín hiệu y sẽ nhận giá trị của b khi nào?
Khi sel = '1'
Khi sel không bằng '1'
Luôn luôn
Không bao giờ
Câu lệnh WITH ... SELECT phù hợp nhất để mô tả mạch nào sau đây?
Một bộ cộng 4-bit
Một bộ MUX nhiều ngõ vào (ví dụ 4-to-1)
Một bộ đếm lên
Một thanh ghi
Khối nào trong VHDL chứa các câu lệnh tuần tự?
ENTITY
ARCHITECTURE (bên ngoài PROCESS)
PROCESS
=
Danh sách độ nhạy (sensitivity list) của một PROCESS có vai trò gì?
Liệt kê các tín hiệu mà PROCESS sẽ ghi vào
Liệt kê các tín hiệu mà khi chúng thay đổi sẽ kích hoạt PROCESS chạy lại
Khai báo các biến cục bộ
Xác định thời gian trễ của các phép gán
Sự khác biệt cơ bản giữa phép gán tín hiệu (<=) và phép gán biến (:=) là gì?
Gán tín hiệu thực thi ngay lập tức, gán biến đợi đến cuối PROCESS
Gán biến thực thi ngay lập tức, gán tín hiệu lên lịch cập nhật vào cuối PROCESS
Cả hai đều thực thi ngay lập tức
:= dùng cho tín hiệu, <= dùng cho biến
Câu lệnh nào sau đây chỉ có thể được sử dụng bên trong một PROCESS?
y <= a AND b; (khi đứng một mình)
WITH sel SELECT ...
IF ... THEN ... ELSE ... END IF;
GENERATE
Để mô tả một D-Flip-Flop (chốt dữ liệu theo sườn lên của xung clock), câu lệnh IF nào sau đây là phù hợp nhất?
IF clk = '1' THEN ...
IF rising_edge(clk) THEN ...
IF clk'event THEN ...
IF clk = '0' TO '1' THEN ...
Câu lệnh CASE trong VHDL được dùng để làm gì?
Tạo một vòng lặp có điều kiện
Chọn một trong nhiều nhánh thực thi dựa trên giá trị của một biểu thức
Gán tín hiệu đồng thời
Khai báo một component
Lệnh WAIT UNTIL clk = '1'; thường được sử dụng trong trường hợp nào?
Trong một PROCESS không có danh sách độ nhạy để mô tả mạch tuần tự
Trong một PROCESS có danh sách độ nhạy
Trong mô tả Dataflow
Để thay thế cho IF rising_edge(clk)
Biến (VARIABLE) được khai báo và sử dụng ở đâu?
Trong phần khai báo của ARCHITECTURE
Chỉ trong một PROCESS, và giá trị của nó là cục bộ
Trong ENTITY
Có thể dùng ở bất cứ đâu
Lối mô tả kiến trúc (Structural) trong VHDL là gì?
Mô tả mạch bằng cách kết nối các thành phần (component) đã có sẵn
Mô tả mạch bằng các phương trình logic
Mô tả mạch bằng các câu lệnh tuần tự như IF, CASE
Mô tả mạch bằng luồng dữ liệu
Từ khóa nào được dùng để khai báo một "bản mẫu" của một thiết kế khác để có thể sử dụng lại?
ENTITY
COMPONENT
SIGNAL
PROCESS
Thao tác ánh xạ các cổng của một COMPONENT với các tín hiệu nội bộ của thiết kế hiện tại được gọi là gì?
Generic Map
Port Map
Signal Assignment
Process Instantiation
U1 : and_gate PORT MAP (a => in1, b => in2, y => out1); là một ví dụ của?
Khai báo component
Khởi tạo component (instantiation)
Khai báo tín hiệu
Gán tín hiệu đồng thời
Kiểu mô tả Structural hữu ích nhất khi nào?
Khi thiết kế một cổng logic đơn giản
Khi xây dựng một hệ thống phức tạp từ các module nhỏ hơn, đã được kiểm chứng
Khi cần mô tả một thuật toán phức tạp
Khi tối ưu hóa về tốc độ
Trong PORT MAP, a => in1 có nghĩa là gì?
Gán giá trị của tín hiệu cho a
Kết nối cổng a của component với tín hiệu in1 của thiết kế hiện tại
So sánh a và in1
Đổi tên in1 thành a
Để sử dụng một COMPONENT, nó phải được khai báo ở đâu?
Trong phần khai báo của ARCHITECTURE hoặc trong một PACKAGE
Trong ENTITY
Bên trong PROCESS
Sau từ khóa BEGIN của ARCHITECTURE
Câu lệnh VHDL nào mô tả đúng một cổng AND 2 ngõ vào a, b và ngõ ra y?
y <= a OR b;
y <= a NAND b;
y <= a AND b;
y <= NOT a;
Để mô tả một cổng XNOR, toán tử logic nào được sử dụng?
XOR
NOR
XNOR
NAND
Đoạn code sau mô tả cổng logic gì? ARCHITECTURE dataflow OF logic_gate IS BEGIN y <= NOT (a AND b); END ARCHITECTURE dataflow;
Cổng OR
Cổng AND
Cổng NAND
Cổng XOR
Muốn mô tả một cổng NOT, tín hiệu ngõ ra sẽ được gán bằng biểu thức nào của ngõ vào a?
a AND '1'
a OR '0'
NOT a
a XOR a
Cổng logic nào tương ứng với câu lệnh y <= a OR b OR c;?
Cổng OR 2 ngõ vào
Cổng OR 3 ngõ vào
Cổng AND 3 ngõ vào
Cổng XOR 3 ngõ vào
Chức năng chính của bộ giải mã LED 7 đoạn là gì?
Đếm từ 0 đến 9
Chuyển đổi mã BCD 4-bit thành tín hiệu điều khiển 7 đoạn tương ứng
So sánh hai số nhị phân
Tạo xung clock
Nếu ngõ vào của bộ giải mã BCD sang 7 đoạn là '0011', số nào sẽ hiển thị trên LED 7 đoạn?
1
2
3
4
Lỗi mô tả nào phù hợp nhất để thiết kế bộ giải mã LED 7 đoạn, nơi mỗi giá trị đầu vào tương ứng với một tổ hợp đầu ra xác định?
Structural (kết nối từ các cổng logic)
Dataflow dùng WITH...SELECT...WHEN hoặc CASE
Behavioral dùng vòng lặp FOR
Chỉ có thể dùng Behavioral
Một bộ giải mã LED 7 đoạn loại Anode chung (common-anode) sẽ sáng một thanh LED khi tín hiệu điều khiển tương ứng ở mức nào?
Mức cao ('1')
Mức thấp ('0')
Mức trở kháng cao ('Z')
Không quan trọng
Trong câu lệnh WITH bcd_in SELECT seg_out <= ..., bcd_in là gì?
Tín hiệu điều khiển 7 đoạn (7 bit)
Tín hiệu ngõ vào BCD (4 bit)
Tín hiệu cho phép
Tín hiệu clock
Bộ cộng 1 bit (Full Adder) có bao nhiêu ngõ vào?
2
3
4
5
Công thức tổng quát của tổng S trong Full Adder là gì?
S = A and B
S = A or B
S = A xor B xor C
S = not (A xor B)
Một bộ cộng toàn phần (Full Adder) được xây dựng từ hai bộ bán cộng và một cổng OR. Cấu trúc này thuộc loại mô tả nào?
Dataflow
Behavioral
Structural
Mixed (hỗn hợp)
Để cộng hai số 4-bit, cần bao nhiêu bộ cộng toàn phần (Full Adder) trong một bộ cộng kiểu nối tiếp (ripple-carry adder)?
1
2
4
8
Trong VHDL, để thực hiện phép cộng hai vector std_logic_vector, cần sử dụng thư viện nào?
ieee.std_logic_1164
ieee.numeric_std
ieee.math_real
Phép trừ A - B trong hệ nhị phân có thể được thực hiện bằng cách nào?
A + B
A + (số bù 1 của B)
A + (số bù 2 của B)
A AND B
Để tạo số bù 2 của một số nhị phân B, ta làm gì?
Giữ nguyên các bit
Đảo tất cả các bit (bù 1) rồi cộng thêm 1
Dịch trái 1 bit
Chỉ đảo bit MSB
Một bộ trừ 4-bit có thể được xây dựng từ một bộ cộng 4-bit và các cổng logic nào?
Các cổng AND
Các cổng OR
Các cổng XOR (để tạo bù 1)
Các cổng NOT
Trong thư viện ieee.numeric_std, phép trừ hai vector kiểu UNSIGNED được thực hiện bằng toán tử nào?
+
-
*
/
Tín hiệu nhớ ra (Carry Out) của bộ cộng khi thực hiện phép trừ A + (bù 2 của B) có ý nghĩa gì?
Nếu là '1', kết quả là số dương
Nếu là '0', kết quả là số âm
Luôn không có ý nghĩa
Chỉ ra lỗi tràn số
Để nhân hai số không dấu 4-bit, kết quả sẽ có độ rộng tối đa là bao nhiêu bit?
4 bit
6 bit
8 bit
16 bit
Trong VHDL (với thư viện numeric_std), toán tử nào được dùng cho phép nhân?
x
&
*
MUL
[
SIGNED hoặc UNSIGNED
BIT_VECTOR
INTEGER
Không cần ép kiểu
[
Yêu cầu nhiều cổng logic (AND, adder) hơn
Chạy chậm hơn
Cần có xung clock
Không thể mô tả bằng VHDL
[
Dịch trái và cộng có điều kiện
Chỉ dùng phép XOR
Chỉ dùng bộ đếm
Dùng thuật toán chia
[
Ngõ ra chỉ phụ thuộc vào trạng thái hiện tại
Ngõ ra phụ thuộc vào cả trạng thái hiện tại và ngõ vào
Không có trạng thái
Luôn cần một bộ nhớ ROM
[
Ngõ ra chỉ phụ thuộc vào trạng thái hiện tại
Ngõ ra phụ thuộc vào cả trạng thái hiện tại và ngõ vào
Ngõ ra không thay đổi
Phản ứng chậm hơn máy Moore
[
Một tiến trình duy nhất
Hai tiến trình: một cho logic chuyển trạng thái (tuần tự), một cho logic ngõ ra (tổ hợp)
Ba tiến trình
FSM không dùng PROCESS
[
INTEGER
STD_LOGIC_VECTOR
Kiểu dữ liệu liệt kê (Enumerated Type)
BOOLEAN
[
Logic ngõ ra
Logic chuyển trạng thái
Tín hiệu reset
[
Các Flip-Flop không được kết nối với cùng một xung clock
Tất cả các Flip-Flop được kích hoạt bởi cùng một xung clock
Tốc độ chậm hơn bộ đếm không đồng bộ
Dễ bị hiện tượng "gợn sóng" (ripple)
[
Cho phép đếm
Reset bộ đếm về 0 một cách không đồng bộ
Reset bộ đếm về 0 một cách đồng bộ
Đảo trạng thái đếm
[
count <= count - 1;
count <= count + 1;
count <= "0000";
count <= NOT count;
[
Khi giá trị đếm hiện tại là 10
Khi giá trị đếm hiện tại là 9 và có xung clock tiếp theo
Khi giá trị đếm hiện tại là 8
Ngay khi reset
[
Tín hiệu reset
Tín hiệu enable
Tín hiệu up_down
Tín hiệu carry_out
[
Cộng hai số nhị phân
Lưu trữ và dịch chuyển dữ liệu từng bit theo mỗi xung clock
Giải mã địa chỉ
Tạo ra các số ngẫu nhiên
[
Nạp vào nối tiếp, lấy ra nối tiếp
Nạp vào song song, lấy ra nối tiếp
Nạp vào nối tiếp, lấy ra song song
Nạp vào song song, lấy ra song song
[
sh_reg <= sh_reg(sh_reg'high-1 downto 0) & sin;
sh_reg <= sin & sh_reg(sh_reg'high downto 1);
sh_reg <= sh_reg(sh_reg'high-1 downto 0) & '0';
sh_reg <= sh_reg(0) & sh_reg(sh_reg'high downto 1);
Thanh ghi dịch có ứng dụng nào sau đây?
Chuyển đổi dữ liệu từ nối tiếp sang song song và ngược lại
Tạo trễ cho tín hiệu
Thực hiện phép nhân, chia đơn giản
Tất cả các đáp án trên
Để thiết kế một thanh ghi dịch 4-bit, cần bao nhiêu D-Flip-Flop?
1
2
4
8
