wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

on tap

Total questions: 80

Worksheet time: 40mins

Name
Class
Date
1.

Trong VHDL, ký hiệu nào được dùng để bắt đầu một dòng chú thích (comment)?

a)

//

b)

`

c)

--

d)

#

2.

Tên định danh (identifier) nào sau đây là hợp lệ trong VHDL?

a)

2_input_AND

b)

my-signal

c)

_data_bus

d)

counter_value

3.

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'?

a)

INTEGER

b)

BOOLEAN

c)

BIT

d)

CHARACTER

4.

Toán tử nào được sử dụng để nối (concatenate) hai vector bit hoặc chuỗi ký tự?

a)

+

b)

&

c)

#

d)

|

5.

Từ khóa nào được sử dụng để khai báo một hằng số trong VHDL?

a)

VARIABLE

b)

SIGNAL

c)

CONSTANT

d)

GENERIC

6.

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?

a)

ARCHITECTURE

b)

ENTITY

c)

PROCESS

d)

COMPONENT

7.

Cú pháp đúng để khai báo một thực thể (ENTITY) có tên là my_design là gì?

a)

ENTITY my_design IS END ENTITY;

b)

ENTITY my_design BEGIN ... END;

c)

DESIGN my_design IS ... END DESIGN;

d)

ENTITY my_design {}

8.

Trong khai báo PORT, mode nào chỉ cho phép tín hiệu đi vào thực thể?

a)

IN

b)

OUT

c)

INOUT

d)

BUFFER

9.

Trong khai báo PORT (a: IN STD_LOGIC; y: OUT STD_LOGIC);, tín hiệu a có thể được đọc ở đâu?

a)

Chỉ bên ngoài ENTITY

b)

Chỉ bên trong ARCHITECTURE

c)

Cả bên trong và bên ngoài

d)

Không đâu cả

10.

Mode INOUT trong khai báo PORT có chức năng gì?

a)

Chỉ đọc dữ liệu

b)

Chỉ ghi dữ liệu

c)

Vừa đọc, vừa ghi dữ liệu (song hướng)

d)

Là một bộ đệm đầu ra

11.

Khối nào định nghĩa hoạt động hoặc cấu trúc bên trong của một ENTITY?

a)

PACKAGE

b)

LIBRARY

c)

ARCHITECTURE

d)

CONFIGURATION

12.

Một ENTITY có thể có bao nhiêu ARCHITECTURE liên kết với nó?

a)

Chỉ một

b)

Tối đa hai

c)

Không giới hạn

d)

Không có cái nào

13.

Đâu là cú pháp đúng để bắt đầu một khối ARCHITECTURE có tên rtl cho ENTITY my_design?

a)

ARCHITECTURE rtl OF my_design IS

b)

ARCHITECTURE my_design FOR rtl IS

c)

BEGIN ARCHITECTURE rtl OF my_design IS

d)

OF my_design ARCHITECTURE rtl IS

14.

Phần khai báo của một ARCHITECTURE (nằm giữa IS và BEGIN) dùng để làm gì?

a)

Khai báo các tín hiệu (signal), hằng số (constant), và component nội bộ

b)

Chỉ chứa các câu lệnh tuần tự

c)

Định nghĩa các cổng vào/ra

d)

Liên kết ARCHITECTURE với ENTITY

15.

Thân của một ARCHITECTURE (nằm giữa BEGIN và END) chứa điều gì?

a)

Các câu lệnh mô tả hành vi hoặc cấu trúc của mạch

b)

Chỉ khai báo thư viện

c)

Khai báo PORT

d)

Khai báo GENERIC

16.

GENERIC trong VHDL được sử dụng để làm gì?

a)

Định nghĩa các cổng vào/ra của mạch

b)

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

c)

Khai báo các biến tạm thời trong một PROCESS

d)

Chỉ định thư viện cần sử dụng

17.

GENERIC được khai báo ở đâu?

a)

Bên trong ARCHITECTURE

b)

Bên trong PROCESS

c)

Bên trong ENTITY

d)

Bên trong PACKAGE

18.

Giả sử có khai báo GENERIC (N: INTEGER := 8); Giá trị 8 có ý nghĩa gì?

a)

Là giá trị bắt buộc của N

b)

Là giá trị tối đa của N

c)

Là giá trị mặc định của N nếu không được chỉ định khi khởi tạo

d)

Là giá trị tối thiểu của N

19.

Khi nào giá trị của một GENERIC được xác định?

a)

Trong quá trình mô phỏng

b)

Trong quá trình biên dịch

c)

Khi khởi tạo (instantiate) một component

d)

Khi tín hiệu ngõ vào thay đổi

20.

Đâ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);?

a)

Giảm tài nguyên phần cứng

b)

Tăng tốc độ mô phỏng

c)

Dễ dàng thay đổi độ rộng bus mà không cần sửa nhiều chỗ trong code

d)

Giúp code dễ đọc hơn

21.

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)?

a)

y <= a AND b;

b)

IF a = '1' THEN ...

c)

CASE sel IS ...

d)

v := x + 1;

22.

Đặc điểm của các câu lệnh đồng thời là gì?

a)

Chúng thực thi tuần tự từ trên xuống dưới

b)

Chúng thực thi song song và thứ tự viết không quan trọng

c)

Chúng chỉ được phép dùng bên trong một PROCESS

d)

Chúng chỉ được dùng để mô tả máy trạng thái

23.

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ì?

a)

Mạch tổ hợp, ví dụ như một bộ MUX

b)

Mạch tuần tự, ví dụ như một Flip-Flop

c)

Thanh ghi dịch

d)

Bộ nhớ RAM

24.

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?

a)

Khi sel = '1'

b)

Khi sel không bằng '1'

c)

Luôn luôn

d)

Không bao giờ

25.

Câu lệnh WITH ... SELECT phù hợp nhất để mô tả mạch nào sau đây?

a)

Một bộ cộng 4-bit

b)

Một bộ MUX nhiều ngõ vào (ví dụ 4-to-1)

c)

Một bộ đếm lên

d)

Một thanh ghi

26.

Khối nào trong VHDL chứa các câu lệnh tuần tự?

a)

ENTITY

b)

ARCHITECTURE (bên ngoài PROCESS)

c)

PROCESS

d)

=

27.

Danh sách độ nhạy (sensitivity list) của một PROCESS có vai trò gì?

a)

Liệt kê các tín hiệu mà PROCESS sẽ ghi vào

b)

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

c)

Khai báo các biến cục bộ

d)

Xác định thời gian trễ của các phép gán

28.

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ì?

a)

Gán tín hiệu thực thi ngay lập tức, gán biến đợi đến cuối PROCESS

b)

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)

Cả hai đều thực thi ngay lập tức

d)

:= dùng cho tín hiệu, <= dùng cho biến

29.

Câu lệnh nào sau đây chỉ có thể được sử dụng bên trong một PROCESS?

a)

y <= a AND b; (khi đứng một mình)

b)

WITH sel SELECT ...

c)

IF ... THEN ... ELSE ... END IF;

d)

GENERATE

30.

Để 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?

a)

IF clk = '1' THEN ...

b)

IF rising_edge(clk) THEN ...

c)

IF clk'event THEN ...

d)

IF clk = '0' TO '1' THEN ...

31.

Câu lệnh CASE trong VHDL được dùng để làm gì?

a)

Tạo một vòng lặp có điều kiện

b)

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

c)

Gán tín hiệu đồng thời

d)

Khai báo một component

32.

Lệnh WAIT UNTIL clk = '1'; thường được sử dụng trong trường hợp nào?

a)

Trong một PROCESS không có danh sách độ nhạy để mô tả mạch tuần tự

b)

Trong một PROCESS có danh sách độ nhạy

c)

Trong mô tả Dataflow

d)

Để thay thế cho IF rising_edge(clk)

33.

Biến (VARIABLE) được khai báo và sử dụng ở đâu?

a)

Trong phần khai báo của ARCHITECTURE

b)

Chỉ trong một PROCESS, và giá trị của nó là cục bộ

c)

Trong ENTITY

d)

Có thể dùng ở bất cứ đâu

34.

Lối mô tả kiến trúc (Structural) trong VHDL là gì?

a)

Mô tả mạch bằng cách kết nối các thành phần (component) đã có sẵn

b)

Mô tả mạch bằng các phương trình logic

c)

Mô tả mạch bằng các câu lệnh tuần tự như IF, CASE

d)

Mô tả mạch bằng luồng dữ liệu

35.

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?

a)

ENTITY

b)

COMPONENT

c)

SIGNAL

d)

PROCESS

36.

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ì?

a)

Generic Map

b)

Port Map

c)

Signal Assignment

d)

Process Instantiation

37.

U1 : and_gate PORT MAP (a => in1, b => in2, y => out1); là một ví dụ của?

a)

Khai báo component

b)

Khởi tạo component (instantiation)

c)

Khai báo tín hiệu

d)

Gán tín hiệu đồng thời

38.

Kiểu mô tả Structural hữu ích nhất khi nào?

a)

Khi thiết kế một cổng logic đơn giản

b)

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

c)

Khi cần mô tả một thuật toán phức tạp

d)

Khi tối ưu hóa về tốc độ

39.

Trong PORT MAP, a => in1 có nghĩa là gì?

a)

Gán giá trị của tín hiệu cho a

b)

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

c)

So sánh a và in1

d)

Đổi tên in1 thành a

40.

Để sử dụng một COMPONENT, nó phải được khai báo ở đâu?

a)

Trong phần khai báo của ARCHITECTURE hoặc trong một PACKAGE

b)

Trong ENTITY

c)

Bên trong PROCESS

d)

Sau từ khóa BEGIN của ARCHITECTURE

41.

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?

a)

y <= a OR b;

b)

y <= a NAND b;

c)

y <= a AND b;

d)

y <= NOT a;

42.

Để mô tả một cổng XNOR, toán tử logic nào được sử dụng?

a)

XOR

b)

NOR

c)

XNOR

d)

NAND

43.

Đ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;

a)

Cổng OR

b)

Cổng AND

c)

Cổng NAND

d)

Cổng XOR

44.

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)

a AND '1'

b)

a OR '0'

c)

NOT a

d)

a XOR a

45.

Cổng logic nào tương ứng với câu lệnh y <= a OR b OR c;?

a)

Cổng OR 2 ngõ vào

b)

Cổng OR 3 ngõ vào

c)

Cổng AND 3 ngõ vào

d)

Cổng XOR 3 ngõ vào

46.

Chức năng chính của bộ giải mã LED 7 đoạn là gì?

a)

Đếm từ 0 đến 9

b)

Chuyển đổi mã BCD 4-bit thành tín hiệu điều khiển 7 đoạn tương ứng

c)

So sánh hai số nhị phân

d)

Tạo xung clock

47.

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?

a)

1

b)

2

c)

3

d)

4

48.

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?

a)

Structural (kết nối từ các cổng logic)

b)

Dataflow dùng WITH...SELECT...WHEN hoặc CASE

c)

Behavioral dùng vòng lặp FOR

d)

Chỉ có thể dùng Behavioral

49.

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?

a)

Mức cao ('1')

b)

Mức thấp ('0')

c)

Mức trở kháng cao ('Z')

d)

Không quan trọng

50.

Trong câu lệnh WITH bcd_in SELECT seg_out <= ..., bcd_in là gì?

a)

Tín hiệu điều khiển 7 đoạn (7 bit)

b)

Tín hiệu ngõ vào BCD (4 bit)

c)

Tín hiệu cho phép

d)

Tín hiệu clock

51.

Bộ cộng 1 bit (Full Adder) có bao nhiêu ngõ vào?

a)

2

b)

3

c)

4

d)

5

52.

Công thức tổng quát của tổng S trong Full Adder là gì?

a)

S = A and B

b)

S = A or B

c)

S = A xor B xor C

d)

S = not (A xor B)

53.

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?

a)

Dataflow

b)

Behavioral

c)

Structural

d)

Mixed (hỗn hợp)

54.

Để 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)?

a)

1

b)

2

c)

4

d)

8

55.

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?

a)

ieee.std_logic_1164

b)

ieee.numeric_std

c)

ieee.math_real

56.

Phép trừ A - B trong hệ nhị phân có thể được thực hiện bằng cách nào?

a)

A + B

b)

A + (số bù 1 của B)

c)

A + (số bù 2 của B)

d)

A AND B

57.

Để tạo số bù 2 của một số nhị phân B, ta làm gì?

a)

Giữ nguyên các bit

b)

Đảo tất cả các bit (bù 1) rồi cộng thêm 1

c)

Dịch trái 1 bit

d)

Chỉ đảo bit MSB

58.

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?

a)

Các cổng AND

b)

Các cổng OR

c)

Các cổng XOR (để tạo bù 1)

d)

Các cổng NOT

59.

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?

a)

+

b)

-

c)

*

d)

/

60.

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ì?

a)

Nếu là '1', kết quả là số dương

b)

Nếu là '0', kết quả là số âm

c)

Luôn không có ý nghĩa

d)

Chỉ ra lỗi tràn số

61.

Để 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?

a)

4 bit

b)

6 bit

c)

8 bit

d)

16 bit

62.

Trong VHDL (với thư viện numeric_std), toán tử nào được dùng cho phép nhân?

a)

x

b)

&

c)

*

d)

MUL

63.

[]: c <= a * b; với a là std_logic_vector(3 downto 0) và b là std_logic_vector(3 downto 0). Để đoạn code này hợp lệ, kiểu dữ liệu của a và b nên được ép kiểu thành gì?

a)

SIGNED hoặc UNSIGNED

b)

BIT_VECTOR

c)

INTEGER

d)

Không cần ép kiểu

64.

[]: Thiết kế một bộ nhân tổ hợp (combinational multiplier) thường tốn nhiều tài nguyên phần cứng hơn so với bộ cộng vì lý do gì?

a)

Yêu cầu nhiều cổng logic (AND, adder) hơn

b)

Chạy chậm hơn

c)

Cần có xung clock

d)

Không thể mô tả bằng VHDL

65.

[]: Mạch nhân đơn giản nhất có thể được xây dựng dựa trên nguyên tắc nào?

a)

Dịch trái và cộng có điều kiện

b)

Chỉ dùng phép XOR

c)

Chỉ dùng bộ đếm

d)

Dùng thuật toán chia

66.

[]: Một máy trạng thái Moore có đặc điểm gì?

a)

Ngõ ra chỉ phụ thuộc vào trạng thái hiện tại

b)

Ngõ ra phụ thuộc vào cả trạng thái hiện tại và ngõ vào

c)

Không có trạng thái

d)

Luôn cần một bộ nhớ ROM

67.

[]: Một máy trạng thái Mealy có đặc điểm gì?

a)

Ngõ ra chỉ phụ thuộc vào trạng thái hiện tại

b)

Ngõ ra phụ thuộc vào cả trạng thái hiện tại và ngõ vào

c)

Ngõ ra không thay đổi

d)

Phản ứng chậm hơn máy Moore

68.

[]: Trong VHDL, một FSM thường được mô tả bằng máy tiến trình (PROCESS)?

a)

Một tiến trình duy nhất

b)

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)

c)

Ba tiến trình

d)

FSM không dùng PROCESS

69.

[]: Kiểu dữ liệu nào thường được dùng để định nghĩa các trạng thái của một FSM?

a)

INTEGER

b)

STD_LOGIC_VECTOR

c)

Kiểu dữ liệu liệt kê (Enumerated Type)

d)

BOOLEAN

70.

[]: Trong một FSM, logic nào xác định trạng thái tiếp theo (next_state)?

a)

Logic ngõ ra

b)

Logic chuyển trạng thái

c)

Tín hiệu reset

71.

[]: Một bộ đếm đồng bộ (synchronous counter) có đặc điểm gì?

a)

Các Flip-Flop không được kết nối với cùng một xung clock

b)

Tất cả các Flip-Flop được kích hoạt bởi cùng một xung clock

c)

Tốc độ chậm hơn bộ đếm không đồng bộ

d)

Dễ bị hiện tượng "gợn sóng" (ripple)

72.

[]: Đoạn code sau dùng để làm gì trong một bộ đếm? IF reset = '1' THEN count <= (OTHERS => '0'); ELSIF rising_edge(clk) THEN ... END IF;

a)

Cho phép đếm

b)

Reset bộ đếm về 0 một cách không đồng bộ

c)

Reset bộ đếm về 0 một cách đồng bộ

d)

Đảo trạng thái đếm

73.

[]: Để tạo một bộ đếm lên (up-counter), trong tiến trình xử lý xung clock, câu lệnh nào sẽ được thực thi?

a)

count <= count - 1;

b)

count <= count + 1;

c)

count <= "0000";

d)

count <= NOT count;

74.

[]: Một bộ đếm modulo-10 (đếm từ 0 đến 9) sẽ quay về 0 khi nào?

a)

Khi giá trị đếm hiện tại là 10

b)

Khi giá trị đếm hiện tại là 9 và có xung clock tiếp theo

c)

Khi giá trị đếm hiện tại là 8

d)

Ngay khi reset

75.

[]: Để làm một bộ đếm vừa đếm lên vừa đếm xuống, cần thêm tín hiệu điều khiển gì?

a)

Tín hiệu reset

b)

Tín hiệu enable

c)

Tín hiệu up_down

d)

Tín hiệu carry_out

76.

[]: Chức năng chính của một thanh ghi dịch là gì?

a)

Cộng hai số nhị phân

b)

Lưu trữ và dịch chuyển dữ liệu từng bit theo mỗi xung clock

c)

Giải mã địa chỉ

d)

Tạo ra các số ngẫu nhiên

77.

[]: Trong thanh ghi dịch vào nối tiếp - ra song song (SIPO), dữ liệu được nạp vào và lấy ra như thế nào?

a)

Nạp vào nối tiếp, lấy ra nối tiếp

b)

Nạp vào song song, lấy ra nối tiếp

c)

Nạp vào nối tiếp, lấy ra song song

d)

Nạp vào song song, lấy ra song song

78.

[]: Câu lệnh VHDL nào sau đây thực hiện thao tác dịch phải một bit cho thanh ghi sh_reg và nạp bit mới sin vào vị trí MSB?

a)

sh_reg <= sh_reg(sh_reg'high-1 downto 0) & sin;

b)

sh_reg <= sin & sh_reg(sh_reg'high downto 1);

c)

sh_reg <= sh_reg(sh_reg'high-1 downto 0) & '0';

d)

sh_reg <= sh_reg(0) & sh_reg(sh_reg'high downto 1);

79.

Thanh ghi dịch có ứng dụng nào sau đây?

a)

Chuyển đổi dữ liệu từ nối tiếp sang song song và ngược lại

b)

Tạo trễ cho tín hiệu

c)

Thực hiện phép nhân, chia đơn giản

d)

Tất cả các đáp án trên

80.

Để thiết kế một thanh ghi dịch 4-bit, cần bao nhiêu D-Flip-Flop?

a)

1

b)

2

c)

4

d)

8