You are on page 1of 19

BÀI TẬP THIẾT KẾ LOGIC SỐ

Yêu cầu bài tập: 2 bạn chọn 1 nhóm.


1. Yêu cầu nhiệm vụ
+ Xác định mô hình hệ thống, mạch dự kiến thử nghiệm đề tài
+ Thiết kế sơ đồ khối, giải thích nguyên lý làm việc
+ Xác định mô hình RTL của mạch (nếu có)
+ Viết mô tả VHDL cho mạch và hệ thống định thử nghiệm
+ Viết Testbench để chứng tỏ hoạt động của mạch đã mô tả (có thể viết testbench từng phần
trong sơ đồ).
2. Yêu cầu nộp kết quả, trình bày báo cáo
- Toàn bộ mô tả VHDL và testbench trong 1 project duy nhất, gửi file nén của project này.
- Viết báo cáo bằng bản word để nộp. Yêu cầu diễn giải nguyên lý, cách làm, quá trình thực
hiện, kết quả.
- Toàn bộ bản word, file nén project đặt trong 1 folder nén winzip:
D20DT1_TKLG_ChỉSốBài (ví dụ: D20DT1_TKLG_1 nghĩa là lớp D20DT1, môn Thiết kế
Logic số, bài số 1 (tên nhóm thực hiện lấy luôn trùng tên Bài)).
- Nộp báo cáo qua email, địa chỉ mail: thuyhadt@gmail.com.
Nhóm 1
1. Viết chương trình mô tả thanh ghi 8 bit (CLK, CLR, D). Viết testbench để
kiểm tra hoạt động của mạch.
2. Viết chương trình mô tả bộ đếm tiến nhị phân 4 bit (CLK, CLR, Pause)
dùng trigơ JK. Viết testbench để kiểm tra hoạt động của mạch.
3. Viết chương trình mô tả bộ đếm tiến BCD hiển thị trên LED 7 đoạn Anode
chung (CLK, CLR, Pause). Viết testbench để kiểm tra hoạt động của mạch.
4. Viết chương trình mô tả bộ hợp kênh 8:1 (Enable hoạt động ở mức thấp).
Viết testbench để kiểm tra hoạt động của mạch.
5. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để
kiểm tra hoạt động của mạch.
Q1 Q2 Q3 Q4

D SD Q D SD Q D SD Q D SD Q
F1 F2 F3 F4
_ _
> CLK _ > CLK _
Q
>CLK Q
> CLK Q
Q CD
CD CD CD

Xóa

CLK

Nhóm 2

1
1. Viết chương trình điều khiển 8 LED nháy trái_phải. Viết testbench để kiểm
tra hoạt động của mạch.
2. Viết chương trình mô tả bộ đếm lùi nhị phân 4 bit (CLK, CLR, Pause) dùng
trigơ JK. Viết testbench để kiểm tra hoạt động của mạch.
3. Viết chương trình mô tả bộ đếm tiến BCD từ 00 đến 99 - hiển thị trên LED
7 đoạn Anode chung (CLK, CLR). Viết testbench để kiểm tra hoạt động
của mạch.
4. Viết chương trình mô tả bộ phân kênh 1:8 (Enable hoạt động ở mức thấp).
Viết testbench để kiểm tra hoạt động của mạch.
5. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để
kiểm tra hoạt động của mạch.
'1'
J1 Q1 J2 Q2
> >

K1 Q 1 K 2 Q2

Clock

Nhóm 3
1. Viết chương trình điều khiển 8 LED nháy trái_phải, phải_trái theo sự điều
khiển của tín hiệu S. Viết testbench để kiểm tra hoạt động của mạch.
2. Viết chương trình mô tả bộ đếm tiến Mod 9 (CLK, CLR, Pause) dùng trigơ
JK. Viết testbench để kiểm tra hoạt động của mạch. Viết testbench để kiểm
tra hoạt động của mạch.
3. Viết chương trình mô tả bộ đếm lùi BCD từ 99 đến 00 - hiển thị trên LED
7 đoạn Anode chung (CLK, CLR). Viết testbench để kiểm tra hoạt động
của mạch.
4. Viết chương trình mô tả bộ hợp kênh 16:1 (Enable hoạt động ở mức thấp).
Viết testbench để kiểm tra hoạt động của mạch. Viết testbench để kiểm tra
hoạt động của mạch.
5. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để
kiểm tra hoạt động của mạch.

Q1 Q2 Q3 Q4

J Q J Q J Q J Q
T1 o> F1 o> F2 o> F3 o> F4
_ _ _ _
K Q K Q K Q K Q

CLEAR
CLK

2
Nhóm 4
1. Viết chương trình điều khiển 8 LED nháy tròn. Viết testbench để kiểm tra
hoạt động của mạch.
2. Viết chương trình mô tả bộ đếm lùi Mod 9 (CLK, CLR, Pause) dùng trigơ
JK. Viết testbench để kiểm tra hoạt động của mạch.
3. Viết chương trình mô tả bộ đếm lùi BCD từ 59 đến 00 - hiển thị trên LED
7 đoạn Anode chung (CLK, CLR). Viết testbench để kiểm tra hoạt động
của mạch.
4. Viết chương trình mô tả bộ phân kênh 1:16 (Enable hoạt động ở mức thấp).
Viết testbench để kiểm tra hoạt động của mạch.
5. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để
kiểm tra hoạt động của mạch.

X J0 Q0 J1 Q1 Z

C C

K0 Q0 K1 Q1

CK

Nhóm 5
1. Viết chương trình điều khiển 8 LED nháy dịch theo mã vòng. Viết testbench
để kiểm tra hoạt động của mạch.
2. Viết chương trình mô tả bộ đếm lùi Mod 9 (CLK, CLR, Pause) dùng trigơ
JK. Viết testbench để kiểm tra hoạt động của mạch.
3. Viết chương trình mô tả bộ đếm lùi BCD từ 59 đến 00 - hiển thị trên LED
7 đoạn Anode chung (CLK, CLR). Viết testbench để kiểm tra hoạt động
của mạch.
4. Viết chương trình mô tả bộ phân kênh 1:16 (Enable hoạt động ở mức thấp).
Viết testbench để kiểm tra hoạt động của mạch.
5. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để
kiểm tra hoạt động của mạch.

'1'
'1' J1 Q1 J2 Q 2 J3 Q 3 J4 Q 4
Clock > > > >
'1' K1 Q l '1' K2 Q 2 '1' K3 Q 3 '1' K4 Q 4

Nhóm 6

3
1. Viết chương trình điều khiển 8 LED nháy dịch theo mã Jonhson. Viết
testbench để kiểm tra hoạt động của mạch.
2. Viết chương trình mô tả mạch giải mã Hexa sử dụng LED Anốt chung. Viết
testbench để kiểm tra hoạt động của mạch.
3. Viết chương trình mô tả bộ đếm tiến BCD từ 00 đến 23 - hiển thị trên LED
7 đoạn Anode chung (CLK, CLR). Viết testbench để kiểm tra hoạt động
của mạch.
4. Viết chương trình mô tả bộ phân kênh 1:32 (Enable hoạt động ở mức thấp).
Viết testbench để kiểm tra hoạt động của mạch.
5. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để
kiểm tra hoạt động của mạch.

Z
J1 Q1 J0 Q0

> >

1 X K0 Q0
K1 Q1

Clock

Nhóm 7
1. Viết chương trình điều khiển 8 LED nháy (trái phải, phải trái, nhấp nháy).
Viết testbench để kiểm tra hoạt động của mạch.
2. Viết chương trình mô tả bộ đếm tiến thập phân (CLK, CLR) dùng trigơ JK.
Viết testbench để kiểm tra hoạt động của mạch.
3. Viết chương trình mô tả bộ so sánh 2 số nhị phân 4 bit. Viết testbench để
kiểm tra hoạt động của mạch.
4. Viết chương trình mô tả bộ ghi dịch 8 bit vào nối tiếp ra song song. Viết
testbench để kiểm tra hoạt động của mạch.
5. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để
kiểm tra hoạt động của mạch.

Z
J1 Q1 J0 Q0

> >
X
1 K0 Q0
K1 Q1

Clock

4
Nhóm 8
1. Viết chương trình mô tả bộ biến mã từ nhị phân sang Gray 4 bit. Viết
testbench để kiểm tra hoạt động của mạch.
2. Viết chương trình mô tả bộ ALU 4 bit. Viết testbench để kiểm tra hoạt động
của mạch.
3. Viết chương trình mô tả bộ đếm mã Gray 4 bit (CLK, CLR, Pause). Viết
testbench để kiểm tra hoạt động của mạch.
4. Viết chương trình mô tả bộ ghi dịch 8 bit vào nối tiếp, ra nối tiếp. Viết
testbench để kiểm tra hoạt động của mạch.
5. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để
kiểm tra hoạt động của mạch.

D1 Q1 D2 Q2 D3 Q3

C C C

Ql Q2
Q3

Nhóm 9
1. Viết chương trình mô tả trigơ JK đồng bộ có CLR, PRE. Viết testbench để
kiểm tra hoạt động của mạch.
2. Viết chương trình mô tả mạch điều khiển giao thông. Viết testbench để
kiểm tra hoạt động của mạch.
3. Viết chương trình mô tả bộ đếm mã vòng (CLK, CLR, Pause). Viết
testbench để kiểm tra hoạt động của mạch.
4. Viết chương trình mô tả bộ ghi dịch trái/phải 8 bit vào nối tiếp ra nối tiếp.
Viết testbench để kiểm tra hoạt động của mạch.
5. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để
kiểm tra hoạt động của mạch.

S1 Q1 S2 Q2 Q3
S3

C C C

R1 Ql R2 Q2 Q3
R3

Nhóm 10
1. Viết chương trình mô tả bộ đếm tiến/lùi thập phân và hiển thị kết quả đếm
trên LED 7 đoạn. Viết testbench để kiểm tra hoạt động của mạch.
5
2. Viết chương trình mô tả mạch phát hiện chuỗi bit nhị phân liên tiếp, đầu
ra của nó là 1 khi xuất hiện chuỗi bit “111” và đầu ra là 0 trong các trường
hợp còn lại. Viết testbench để kiểm tra hoạt động của mạch.
6. Viết chương trình mô tả bộ biến mã từ Gray sang nhị phân 4 bit. Viết
testbench để kiểm tra hoạt động của mạch.
3. Viết chương trình mô tả bộ hợp kênh 16:1, có đầu vào điều khiển hoạt động
ở mức cao. Viết testbench để kiểm tra hoạt động của mạch.
4. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để
kiểm tra hoạt động của mạch.

A Z
D1 Q1 D2 Q2

C C

Q1 Q2

Nhóm 11
1. Viết chương trình mô tả bộ đếm tiến/lùi Mod 60 và hiển thị kết quả đếm
trên LED 7 đoạn. Viết testbench để kiểm tra hoạt động của mạch.
2. Viết chương trình mô tả mạch phát hiện chuỗi bit nhị phân liên tiếp, đầu
ra của nó là 1 khi xuất hiện chuỗi bit “000” và đầu ra là 0 trong các trường
hợp còn lại. Viết testbench để kiểm tra hoạt động của mạch.
3. Viết chương trình mô tả bộ biến mã từ mã BCD sang mã dư 3. Viết
testbench để kiểm tra hoạt động của mạch.
4. Viết chương trình mô tả bộ phân kênh 1:16, có đầu vào điều khiển hoạt
động ở mức cao, lối ra hiển thị trên LED đơn. Viết testbench để kiểm tra
hoạt động của mạch.
5. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để
kiểm tra hoạt động của mạch.

Z
J0 Q0 J1 Q1

> >
X
1 K1 Q1
K0 Q0

Clock

Nhóm 12

6
1. Viết chương trình mô tả mạch quảng cáo hiển thị chữ chạy và nhấp nháy
bằng LED 7 đoạn hiển thị dòng chữ HELLO 2023. Viết testbench để kiểm
tra hoạt động của mạch.
2. Viết chương trình mô tả mạch phát hiện chuỗi bit nhị phân liên tiếp, đầu
ra của nó là 1 khi xuất hiện chuỗi bit “1010” và đầu ra là 0 trong các trường
hợp còn lại. Viết testbench để kiểm tra hoạt động của mạch.
3. Viết chương trình mô tả mạch phát hiện sai khi mã trên đầu vào không phải
mã BCD. Viết testbench để kiểm tra hoạt động của mạch.
4. Viết chương trình mô tả bộ phân kênh 1:32, có đầu vào điều khiển hoạt
động ở mức cao, lối ra hiển thị trên LED đơn. Viết testbench để kiểm tra
hoạt động của mạch.
5. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để
kiểm tra hoạt động của mạch.

J1 Q1 J2 Q2 J3 Q3

> > >

'1' K Q1 K2 Q2 '1' K3 Q3
1

Clock

Nhóm 13
1. Viết chương trình mô tả mạch quảng cáo hiển thị chữ chạy và nhấp nháy
bằng LED 7 đoạn hiển thị dòng chữ HI CLASS. Viết testbench để kiểm
tra hoạt động của mạch.
2. Viết chương trình mô tả mạch phát hiện chuỗi bit nhị phân liên tiếp, đầu
ra của nó là 1 khi xuất hiện chuỗi bit “1001” và đầu ra là 0 trong các trường
hợp còn lại. Viết testbench để kiểm tra hoạt động của mạch.
3. Viết chương trình mô tả mạch phát hiện sai khi mã trên đầu vào không phải
mã BCD. Viết testbench để kiểm tra hoạt động của mạch.
4. Viết chương trình mô tả bộ phân kênh 1:32, có đầu vào điều khiển hoạt
động ở mức cao, lối ra hiển thị trên LED đơn. Viết testbench để kiểm tra
hoạt động của mạch.
5. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để
kiểm tra hoạt động của mạch.

7
Q1 Q2 Q3 Q4

1 1 1 1

J Q J Q J Q J Q
CLK
> F1 _ > F2 _ > F3 _ > F4 _
K CD Q K CD Q K CD Q K CD Q

CD

U/D

Nhóm 14
1. Viết chương trình điều khiển 8 led, trong đó LED0, LED 2, LED 4, LED 6
sáng nhấp nháy theo chu kỳ 1s. Viết testbench để kiểm tra hoạt động của
mạch.
2. Viết chương trình mô tả mạch phát hiện chuỗi bit nhị phân liên tiếp, đầu
ra của nó là 1 khi xuất hiện chuỗi bit “1101” và đầu ra là 0 trong các trường
hợp còn lại. Viết testbench để kiểm tra hoạt động của mạch.
3. Viết chương trình mô tả bộ đếm BCD có chức năng lựa chọn đếm tiến hoặc
đếm lùi và hiển thị kết quả đếm trên LED 7 đoạn. Viết testbench để kiểm
tra hoạt động của mạch.
4. Viết chương trình mô tả bộ phân kênh 1:64, có đầu vào điều khiển hoạt
động ở mức cao, lối ra hiển thị trên LED đơn. Viết testbench để kiểm tra
hoạt động của mạch.
5. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để
kiểm tra hoạt động của mạch.

1o

J Q J Q J Q J Q
CLK
> F1 > F2 > F3 > F4
_ _ _ _
K CD Q K CD Q K CD Q K CD Q

Xóa
CD
Z

Nhóm 15
1. Viết chương trình điều khiển 8 led, trong đó LED0, LED 1, LED 4, LED 5
sáng nhấp nháy theo chu kỳ 1s. Viết testbench để kiểm tra hoạt động của
mạch.
2. Viết chương trình mô tả mạch phát hiện chuỗi bit nhị phân liên tiếp, đầu
ra của nó là 1 khi xuất hiện chuỗi bit “0110” và đầu ra là 0 trong các trường
hợp còn lại. Viết testbench để kiểm tra hoạt động của mạch.

8
3. Viết chương trình mô tả bộ đếm Mod 100 có chức năng lựa chọn đếm tiến
hoặc đếm lùi và hiển thị kết quả đếm trên LED 7 đoạn. Viết testbench để
kiểm tra hoạt động của mạch.
4. Viết chương trình mô tả bộ giải mã 4:16, có đầu vào điều khiển hoạt động
ở mức thấp, lối ra hiển thị trên LED đơn. Viết testbench để kiểm tra hoạt
động của mạch.
5. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để
kiểm tra hoạt động của mạch.

X J0 Q0 J1 Q1 Z

C C

K0 Q0 K1 Q1

CK

Nhóm 16
1. Viết chương trình điều khiển 8 led, trong đó LED0, LED 1, LED 4, LED 5
sáng nhấp nháy theo chu kỳ 1s. Viết testbench để kiểm tra hoạt động của
mạch.
2. Viết chương trình mô tả mạch phát hiện chuỗi bit nhị phân liên tiếp, đầu
ra của nó là 1 khi xuất hiện 3 hoặc nhiều hơn 3 bit 1 liên tục và đầu ra là 0
trong các trường hợp còn lại. Viết testbench để kiểm tra hoạt động của
mạch.
3. Viết chương trình mô tả bộ đếm thời gian: giờ, phút giây và hiển thị kết quả
đếm trên LED 7 đoạn. Viết testbench để kiểm tra hoạt động của mạch.
4. Viết chương trình mô tả bộ giải mã 5:32, có đầu vào điều khiển hoạt động
ở mức thấp, lối ra hiển thị trên LED đơn. Viết testbench để kiểm tra hoạt
động của mạch.
5. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để
kiểm tra hoạt động của mạch.

Lập Q1 Q2 Q3 Q4
SD
2 7 2 7
4 J SD 15 9 SD Q 11 4 SD 15 9 SD 11
Q J J Q J Q
1 6 1 6
CLK > CLK F1_ > CLK F2 > CLK F3_ > CLK F4_
_
K CD Q K CD Q K CD Q K CD Q
16 14 12 10 16 14 12 10
Xóa 3 8 3 8

CD
J=K=1 IC LS 7476
Đếm

Nhóm 17

9
1. Viết chương trình điều khiển 8 led sáng lan từ giữa sang hai bên. Viết
testbench để kiểm tra hoạt động của mạch.
2. Viết chương trình mô tả mạch phát hiện chuỗi bit nhị phân liên tiếp, đầu
ra của nó là 1 khi xuất hiện 4 hoặc nhiều hơn 4 bit 1 liên tục và đầu ra là 0
trong các trường hợp còn lại. Viết testbench để kiểm tra hoạt động của
mạch.
3. Viết chương trình mô tả bộ đếm Gray 4 bit và hiển thị kết quả dưới dạng
thập phân trên LED 7 thanh. Viết testbench để kiểm tra hoạt động của mạch.
4. Viết chương trình mô tả bộ giải mã 3:8, có đầu vào điều khiển hoạt động ở
mức thấp, lối ra hiển thị trên LED đơn. Viết testbench để kiểm tra hoạt động
của mạch.
5. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để
kiểm tra hoạt động của mạch.

J Q J Q J Q

> F1 _ > F2 _ > F3 _


1 K Q K Q 1 K Q

CLK

Nhóm 18
1. Viết chương trình điều khiển 8 led sáng lan từ 2 bên vào giữa. Viết
testbench để kiểm tra hoạt động của mạch.
2. Viết chương trình mô tả mạch phát hiện chuỗi bit nhị phân liên tiếp, đầu
ra của nó là 1 khi xuất hiện 4 hoặc nhiều hơn 4 bit 1 liên tục và đầu ra là 0
trong các trường hợp còn lại. Viết testbench để kiểm tra hoạt động của
mạch.
3. Viết chương trình mô tả mạch tuần tự đồng bộ để kiểm tra tính chẵn lẻ của
một dãy dữ liệu nhị phân liên tục được đưa đến đầu vào. Nếu số bit 1 nhận
được là lẻ thì mạch sẽ đưa ra tín hiệu ra là Z=1, chẵn bit 1 thì mạch đưa ra
tín hiệu ra Z=0. Nếu hai bit 0 liên tiếp ở đầu vào thì mạch sẽ quay trở lại
trạng thái ban đầu và lại bắt đầu kiểm tra dãy dữ liệu mới. Viết testbench
để kiểm tra hoạt động của mạch.
4. Viết chương trình mô tả bộ hợp kênh 8:1 từ bộ hợp kênh 2:1. Viết testbench
để kiểm tra hoạt động của mạch.
5. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để
kiểm tra hoạt động của mạch.

10
CLK

J Q J Q J Q J Q
o> F1 o> F2 > F3 > F4
K Q K Q K Q K Q

Đầu ra

Nhóm 19
1. Viết chương trình mô tả mạch tạo mã chẵn/lẻ 7 bit. Viết testbench để kiểm
tra hoạt động của mạch.
2. Viết chương trình mô tả máy bán hàng tự động sẽ thả kẹo sau khi nhận
được 15 xu. Máy có một khe nhận tiền xu gồm đồng 5 xu và 10 xu, mỗi lần
nhận một xu. Nếu đưa vào nhiều hơn 15 xu, máy sẽ trả lại tiền thừa. Sau
khi sản phẩm được đưa ra, máy sẽ trở lại trạng thái đợi ban đầu. Hãy thiết
kế mạch tuần tự đồng bộ dùng trigơ JK để mô phỏng mạch điều khiển của
máy bán hàng tự động.
Viết testbench để kiểm tra hoạt động của mạch.
3. Viết chương trình mô tả mạch đếm tần số và hiển thị kết quả trên LED 7
đoạn. Viết testbench để kiểm tra hoạt động của mạch.
4. Viết chương trình mô tả bộ hợp kênh 16:1 từ bộ hợp kênh 4:1. Viết
testbench để kiểm tra hoạt động của mạch.
5. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để
kiểm tra hoạt động của mạch.

J Z
J Q Q J Q J Q
1
o> F1 o> F2 _ o> F3 o> F4
_ _ _
K Q K Q K Q K Q

Clear
Clock

Nhóm 20
1. Viết chương trình mô tả mạch tạo mã và giải mã Hamming. Viết testbench
để kiểm tra hoạt động của mạch.
2. Viết chương trình mô tả mạch điều khiển bơm nước vào một tháp nước
nhờ 2 bơm P1 và P2 .Cả hai bơm P1 và P2 được mở (bơm nước) khi nước
ở dưới mức 1 và vẫn mở cho đến khi nước chưa đạt tới mức 2. Khi nước
vừa đạt tới mức 2 thì bơm P1 ngắt (không bơm nước), chỉ còn P2 vẫn bơm.
P1 vẫn ngắt cho tới khi nước lại ở dưới mức 1. P2 vẫn mở, chỉ khi nào nước
11
đạt tới mức 3 thi P2 mới ngắt. P2 vẫn ngắt, chỉ mở khi nước lại xuống dưới
mức 1.
Viết testbench để kiểm tra hoạt động của mạch.
3. Viết chương trình mô tả mạch đếm số xe ô tô và số chỗ trống trong gara,
có báo hiệu hết chỗ và hiển thị kết quả trên LED 7 đoạn.
Viết testbench để kiểm tra hoạt động của mạch.
4. Viết chương trình mô tả bộ hợp kênh 8:1 từ bộ hợp kênh 4:1. Viết testbench
để kiểm tra hoạt động của mạch.
5. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để
kiểm tra hoạt động của mạch.

Q1 Q2 Q3
Q4
J1 Q1 '1' J2 Q2 '1' J3 Q3 J4 Q4
>C >C >C >C
'1' K 1 Q1 '1' K 2 Q2 '1' K 3 Q3 '1' K 4 Q4

CLK

Nhóm 21
1. Thiết kế mạch tổ hợp kiểm tra hai từ mã (A và B) 4 bit và hiển thị kết quả
nếu từ mã A nhỏ hơn từ mã B. Viết testbench để kiểm tra hoạt động của
mạch.
2. Viết mô tả VHDL cho mạch Nhân và Chia đơn giản 8 bit dấu phảy tĩnh?
Viết testbench để kiểm tra hoạt động của mạch.
3. Một mạch 3 đèn được hoạt động theo sự điều khiển của 3 chuyển mạch X,
Y, Z. Nếu các chuyển mạch được bật theo thứ tự:
X Y Z đèn L1 sáng
Y Z X đèn L2 sáng
Z X Y đèn L3 sáng
4. Nếu các chuyển mạch hoạt động sai thứ tự trên thì đèn đỏ sẽ sáng báo hiệu
cho người điều khiển và người điều khiển phải đưa các chuyển mạch về
trạng thái tĩnh ban đầu. Viết testbench để kiểm tra hoạt động của mạch.
5. Viết mô tả VHDL (Entity và Architecture) và testbench để kiểm tra hoạt
động của mạch có chức năng như sau:
Một máy bán hàng tự động chấp nhận 2 loại tiền xu khác nhau: đồng 5 xen
và đồng 10 xen. Sản phẩm có giá là 15 xen và máy chỉ cho phép người mua
cho từng đồng xu một vào. Khi có ít nhất 15 xen được cho vào, sản phẩm
sẽ được đưa ra. Nếu có nhiều hơn 15 xen được đưa vào, máy sẽ trả lại tiền

12
thừa. Khi sản phẩm đã được đưa ra, máy sẽ quay trở lại trạng thái đợi để
sản phẩm tiếp theo được mua.
Viết testbench để kiểm tra hoạt động của mạch.

6. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để


kiểm tra hoạt động của mạch.

Q1 Q2 Q3 Q4
1 J1 Q1 1 J2 Q2 J3 Q3 J4 Q4
CLK
>C >C >C >C
1 K1 Q1 1 K2 Q2 1 K3 Q3 1 K4 Q4

Nhóm 22
1. Viết mô tả VHDL và viết testbench cho Bộ đếm thập phân 2-digit với các
đặc điểm: Đếm tiến mode 90, Clock sườn âm, chức năng Reset không đồng
bộ, chức năng Load (nạp hằng số) đồng bộ, chức năng cho phép CE mức
tích cực thấp. Viết testbench để kiểm tra hoạt động của mạch.
Ghi chú: Hiển thị kết quả ra LED 7 đoạn.
2. Viết mô tả VHDL cho mạch ALU 8 bit đơn giản? Viết testbench để kiểm
tra hoạt động của mạch.
3. Viết mô tả VHDL cho một mạch dãy Logic được sử dụng để kiểm tra tính
chẵn lẻ của một dãy dữ liệu nhị phân liên tục được đưa đến đầu vào. Nếu
số chữ số 1 nhận được là lẻ thì mạch sẽ đưa ra tín hiệu ra là Z = 1. Nếu hai
chữ số 0 liên tiếp ở đầu vào thì mạch sẽ quay tở lại trạng thái ban đầu và lại
bắt đầu kiểm tra dãy dữ liệu mới. Viết testbench để kiểm tra hoạt động của
mạch.
4. Xây dựng mạch mạch dãy có hai đầu vào U và V, và một đẩu ra Z. Z = 1
khi U và V bằng nhau trong 3 xung nhịp liên tục. Các trường hợp khác Y(t)
= 0. Viết testbench để kiểm tra hoạt động của mạch.
5. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để
kiểm tra hoạt động của mạch.
Q1 Q2 Q3 Q4
1 J1 Q1 1 J2 Q2 J3 Q3 J4 Q4
CLK
>C >C >C >C
1 K1 Q1 1 K2 Q2 1 K3 Q3 1 K4 Q4

Nhóm 23
1. Viết mô tả VHDL và viết testbench cho Bộ đếm nhị phân 8-bit với các đặc
điểm: Đếm tiến và đếm lùi, Clock sườn âm, chức năng Reset không đồng

13
bộ, chức năng Load (nạp hằng số) đồng bộ, chức năng cho phép CE mức
tích cực thấp.
2. Viết mô tả VHDL cho bộ đếm thập phân lên/xuống 3 số có khoảng giá trị
từ 123 đến 678, có tín hiệu nạp song song tích cực cao, tín hiệu Reset tích
cực thấp? Viết testbench để kiểm tra hoạt động của mạch.
3. Viết mô tả VHDL cho mô hình ngã tư giao thông. Viết testbench để kiểm
tra hoạt động của mạch.
4. Viết mô tả VHDL cho mạch sau: Tín hiệu dưới dạng mã BCD được đưa
liên tiếp trên đầu vào X (X là bit có trọng số lớn nhất). Giá trị thập phân
của chữ số BCD đó được biểu diễn bằng n. Mỗi bit thông tin được đồng bộ
với xung nhịp. Dùng trigơ để thiết kế mạch phát hiện sai khi mã trên đầu
vào không phải mã BCD.
Viết testbench để kiểm tra hoạt động của mạch.

5. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để


kiểm tra hoạt động của mạch.

J0 Q0 J1 Q1 J2 Q2

> > >

'1' K0 Q0 K1 Q1 K2 Q2

Clock

Nhóm 24
1. Viết mô tả VHDL và viết testbench cho Bộ đếm nhị phân 8-bit với các đặc
điểm: Đếm tiến và đếm lùi, Clock sườn dương, chức năng Reset đồng bộ,
chức năng Load (nạp giá trị tín hiệu từ 8 chân đầu vào) đồng bộ, chức năng
cho phép CE mức tích cực cao.
2. Xây dựng mạch đếm thuận nghịch mode 9, đồng bộ với các yêu cầu sau:
- Lối vào: Clk, Reset, Up;
- Lối ra: Z, Q (hiển thị LED 7 đoạn).
a) Xây dựng đồ hình trạng thái theo máy trạng thái Moore để viết mô tả
VHDL.
b) Viết mô tả VHDL (Entity và Architecture) theo đồ hình.
c) Viết testbench để kiểm tra hoạt động của mạch.
3. Viết mô tả VHDL cho khối ALU 4 bit thực hiện các phép tính toán học
và logic. Viết testbench để kiểm tra hoạt động của mạch.
14
4. Viết mô tả VHDL cho bộ tạo xung tuần tự có 6 nhịp xung, yêu cầu độ rộng
xung nhịp bằng 4 lần chu kỳ xung Clock.
Viết testbench để kiểm tra hoạt động của mạch.

5. (Entity và Architecture) cho mạch đó. Viết testbench để kiểm tra hoạt động
của mạch.

'1' J1 Q 1 J2 Q 2 J3 Q 3
Z
Clock > > >
'1' K1 '1' '1'
K2 K3

Nhóm 25
1. Viết mô tả VHDL và viết testbench cho hai mạch tổ hợp sau:
- Bộ DEMUX 1:8 bằng cấu trúc case...is.
- Bộ mã hóa ưu tiên 8:3 với các đầu vào/ra hoạt động ở mức tích cực thấp, và
có một lối vào cho phép hoạt động ở mức tích cực thấp.
2. Xây dựng mạch đếm thuận nghịch mode 10, đồng bộ với các yêu cầu sau:
- Lối vào: Clk, Reset, Up;
- Lối ra: Z, Q (hiển thị LED 7 đoạn).
a) Xây dựng đồ hình trạng thái theo máy trạng thái Mearly để viết mô tả
VHDL.
b) Viết mô tả VHDL (Entity và Architecture) theo đồ hình.
c) Viết testbench để kiểm tra hoạt động của mạch.
3. Viết mô tả VHDL cho Mạch tạo mã và giải mã Hamming sửa lỗi đơn
bit cho một dãy dữ liệu phát gồm n bit. Viết testbench để kiểm tra hoạt
động của mạch.
4. Viết mô tả VHDL cho mạch điều khiển băng tải đóng chai. Gồm hệ thống
băng tải chai, hộp và cảm biến phát hiện chai + hộp. Ban đầu băng tải hộp
chạy đến vị trí cảm biến thì dừng lại -> băng tải chai chạy, khi đủ số chai
thì băng tải chai dừng băng tải hộp chạy tiếp. (Yêu cầu: Hiển thị số chai đã
đóng được và cho phép đặt trước số lượng chai trong hộp)
Viết testbench để kiểm tra hoạt động của mạch.

5. Viết mô tả VHDL và testbench để kiểm tra hoạt động của mạch.

15
Vào song song

D1 D2 D3 D4

SD Q SD SD Q Ra nối tiếp
D D Q D D SD Q
F1 F2 F3 F4
_ _
> CLK _ > CLK _
Q
>CLK Q
> CLK Q
Q CD
CD CD CD

Xóa

Ghi

Điều khiển ra

Q1 Q2 Q3 Q4

Ra song song

(SD= Set, CD= Clear)

Nhóm 26
1. Viết mô tả VHDL và viết testbench cho hai mạch tổ hợp sau:
- Bộ cộng 4 bit không dấu có nhớ.
- Bộ giải mã địa chỉ 3:8 với các đầu vào/ra hoạt động ở mức tích cực thấp, và
có một lối vào cho phép hoạt động ở mức tích cực thấp.
2. Vẽ mô hình (ghi chú rõ ràng trên sơ đồ khối, không cần giải thích chức
năng các khối) của hệ thống đèn giao thông đơn giản tại ngã tư
(Clk=20MHz, chế độ đêm: Chỉ có các đèn vàng cùng sáng, chế độ ban ngày
thời gian chuyển các đèn như sau: Xanh 40s, Vàng 5s, Đỏ 45s), vẽ đồ hình
máy trạng thái hữu hạn FSM và viết mô tả VHDL và testbench mô tả chức
năng cho bộ điều khiển của hệ thống đèn giao thông đó.
3. Viết mô tả VHDL và Viết testbench để kiểm tra hoạt động của mạch cho
Mạch đo điện áp

4. Thiết kế mạch tuần tự đồng bộ thực hiện chức năng một máy bán nước tự
động bán mỗi chai nước 3000 đồng. Tại mỗi thời điểm, máy chỉ nhận một
đồng tiền trong hai loại 2000 đồng hoặc 1000 đồng. Nếu đưa tiền vào quá
3000 đ thì máy trả lại tiền và cho ra một chai nước. Hệ dùng trigger JK
đồng bộ sườn âm của đồng hồ. Viết testbench để kiểm tra hoạt động của
mạch.
5. Viết mô tả VHDL và testbench để kiểm tra hoạt động của mạch có sơ đồ
như sau:

16
Vào nối tiếp SD Q SD SD Q Ra nối tiếp
D D Q D D SD Q
F1 F2 F3 F4
_ _
> CLK _ > CLK _
Q
>CLK Q
> CLK Q
Q CD
CD CD CD

Xóa

Ghi

Điều khiển ra

Q1 Q2 Q3 Q4

Ra song song

Nhóm 27
1. Viết mô tả VHDL và viết testbench cho hai mạch tổ hợp sau:
- Bộ Mux 8:1 bằng cấu trúc lệnh Case.
- Bộ giải mã BCD sang Led 7 đoạn bằng cấu trúc lệnh When...else.
2. Vẽ mô hình (ghi chú rõ ràng trên sơ đồ khối, không cần giải thích chức
năng các khối) của máy bán hàng nước Cam tự động đơn giản (nhận các
loại xu cent: 10, 20, 40, giá 1 chai Cam: 50 cent), vẽ đồ hình máy trạng thái
hữu hạn FSM và viết mô tả VHDL mô tả chức năng cho bộ điều khiển của
máy bán hàng đó. Viết testbench để kiểm tra hoạt động của mạch.
3. Viết mô tả VHDL cho Mạch đếm tần. Viết testbench để kiểm tra hoạt động
của mạch.
4. Viết mô tả VHDL cho mạch tuần tự (theo phương pháp đồ hình trạng thái)
dùng trigơ JK để kiểm tra dãy tín hiệu vào. Tín hiệu nhị phân được đưa liên
tiếp đến đầu vào nhờ xung clock. Lối ra Z = 1 nếu tín hiệu vào có dạng
1001 sau 4 xung clock. Viết testbench để kiểm tra hoạt động của mạch.

5. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để


kiểm tra hoạt động của mạch.

'1' J1 Q1 J2 Q 2 J3 Q 3
Clock > > >
'1' K1 Ql '1' '1'
K2 Q 2 K3 Q 3

Nhóm 28
1. Viết mô tả VHDL và viết testbench cho hai mạch tổ hợp sau:
- Bộ Mux 8:1 bằng cấu trúc lệnh If...else.

17
- Bộ giải mã BCD sang Led 7 đoạn bằng cấu trúc lệnh with...select.
7. Vẽ mô hình (ghi chú rõ ràng trên sơ đồ khối, không cần giải thích chức
năng các khối) của hệ thống đèn giao thông đơn giản tại ngã tư (Clk=4MHz,
chế độ đêm: Chỉ có các đèn vàng cùng sáng, chế độ ban ngày thời gian
chuyển các đèn như sau: Xanh 22s, Vàng 3s, Đỏ 25s), vẽ đồ hình máy trạng
thái hữu hạn FSM và viết mô tả VHDL mô tả chức năng cho bộ điều khiển
của hệ thống đèn giao thông đó. Viết testbench để kiểm tra hoạt động của
mạch.
2. Viết mô tả VHDL cho mạch tuần tự (theo phương pháp đồ hình trạng thái)
dùng trigơ JK để kiểm tra dãy tín hiệu vào. Tín hiệu nhị phân được đưa liên
tiếp đến đầu vào nhờ xung clock. Lối ra Z = 1 nếu tín hiệu vào có dạng
1101 sau 4 xung clock. Viết testbench để kiểm tra hoạt động của mạch.
8. Viết mô tả VHDL cho mạch chuyển mã nhị phân sang mã Gray 4 bit. Viết
testbench để kiểm tra hoạt động của mạch.
3. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để
kiểm tra hoạt động của mạch.

J0 Q0 J 1 Q1 J 2 Q2

> > >


'1' K1 K2
K0

Clk

Nhóm 29
1. Viết mô tả VHDL cho mạch giải mã từ nhị phân sang thập phân, sang mã
gray và ngược lại? Viết testbench để kiểm tra hoạt động của mạch.
2. Viết mô tả VHDL và viết testbench để kiểm tra hoạt động của mạch:
- Thanh ghi dịch nối tiếp 4 bit.
- Bộ đếm lên thập phân 2 digit đếm từ 00 đến 99, Reset đồng bộ tích cực thấp.
3. Viết chương trình mô tả Mạch đồng hồ thể thao. Viết testbench để kiểm
tra hoạt động của mạch.
4. Viết chương trình mô tả mạch tuần tự (theo phương pháp đồ hình trạng
thái) dùng trigơ JK để kiểm tra dãy tín hiệu vào. Tín hiệu nhị phân được
đưa liên tiếp đến đầu vào nhờ xung clock. Lối ra Z = 1 nếu tín hiệu vào có
dạng 1011 sau 4 xung clock. Viết testbench để kiểm tra hoạt động của
mạch.

18
5. Viết mô tả VHDL (Entity và Architecture) cho mạch đó. Viết testbench để
kiểm tra hoạt động của mạch.

'1' J1 Q 1 J2 Q 2 J3 Q 3
Clock > > >
'1' K1 Q l '1' K2 Q 2 '1' K3 Q 3

Nhóm 30
1. Viết mô tả VHDL cho IC ghi dịch 8 bit hoạt động tại sườn dương của Clock,
có tín hiệu chốt Clock (CE) mức tích cực cao, Tín hiệu lập không đồng bộ
mức tích cực cao. Viết testbench để kiểm tra hoạt động của mạch.
2. Viết mô tả VHDL và Viết testbench để kiểm tra hoạt động của mạch.
- Thanh ghi dịch N bit nối tiếp, nạp song song.
- Bộ đếm lên thập phân 1 digit đơn giản, Reset đồng bộ tích cực thấp.
3. Viết chương trình mô tả Mạch đồng hồ điện tử . Viết testbench để kiểm
tra hoạt động của mạch.
4. Viết chương trình mô tả Thiết kế mạch tuần tự (theo phương pháp đồ hình
trạng thái) dùng trigơ JK để kiểm tra dãy tín hiệu vào. Tín hiệu nhị phân
được đưa liên tiếp đến đầu vào nhờ xung clock. Lối ra Z = 1 nếu tín hiệu
vào có dạng 1110 sau 4 xung clock. Viết testbench để kiểm tra hoạt động
của mạch.
5. Viết mô tả VHDL cho mạch cộng/trừ 8 bít có dấu và không dấu bằng cấu
trúc lệnh song song? Viết testbench để kiểm tra hoạt động của mạch.

19

You might also like