You are on page 1of 4

ĐHQG TPHCM–ĐH Bách Khoa

Khoa Đ-ĐT–BM Điện Tử


Đáp án của Đề kiểm tra giữa HK191 – Đề số 1 – Nhóm A01-A
Môn: Xử lý tín hiệu số với FPGA (MS: EE3041)
Ngày KTGHK: 29/10/2019 – Thời gian làm bài: 60 phút
(SV KHÔNG được dùng tài liệu, ĐTDĐ, Laptop và máy tính bảng)

Câu 1: (2.5 đ) Cho trước mạch tổ hợp có hàm Boole sau:


( , , , ) = ( ⊕ )( ⊕ )( ⊕ )( + + + )
Viết mã Verilog mô tả mạch dùng
a) (1 đ) mô hình luồng dữ liệu.
b) (0.75 đ) mô hình hành vi với phát biểu if . . . else . . . . trong đó F được biểu diễn theo dạng
F = A’F0 + AF1 với F0 và F1 là các hàm Boole theo B, C và D.
c) (0.75 đ) mô hình hành vi với phát biểu case cài đặt cho hàm F dưới dạng tổng các minterm hoặc
tích các maxterm.
Chú ý: Không cần viết lại các khai báo cổng cho các mô hình.
BG.

om
module cau_1(A, B, C, D, F);
input A, B, C, D; output F;
a) Mô hình luồng dữ liệu

.c
assign F = (A ^ ~B) & (~A ^ C) & (A ^ D) & (~A | ~B | ~C | ~D) ;
b) Mô hình hành vi với if … else …
Ta có: F = A’B’C’D + ABCD’
reg F;
ng
co
always@(A or B or C or D)
if (A == 1) // hoặc dùng: if (A)
an

F = B & C & ~D;


else
th

F = ~B & ~C & D;
c) Mô hình hành vi với case
g

F(A,B, C,D) = A’B’C’D + ABCD’ = Sm(1,14)


on

reg F;
always@(A or B or C or D)
du

case({A, B, C, D})
1, 14: F = 1;
u

default: F = 0;
cu

endcase;

endmodule

Câu 2: (2 đ) Cho trước FSM có giản đồ trạng thái sau:

Giả sử hệ có xung nhịp clk kích cạnh lên, ngõ vào X, ngõ ra Y, và ngõ điều khiển bất đồng bộ Reset tích cực
cao (Khi hệ bị Reset sẽ về trạng thái S0).
a) (1 đ) Viết mã Verilog cho FSM này.
b) (1 đ) Hãy cho biết chức năng của FSM này nếu bắt đầu từ S0? Viết lại mã Verilog mà không dùng FSM.

Đáp án của DSP-FPGA-191_KTGHK–Đề 1 – Trang 1/4


CuuDuongThanCong.com https://fb.com/tailieudientucntt
BG.
a) (1 đ) Mã Verilog:
module cau_2(clk, Reset, X, Y);
input clk, Reset, X;
output Y; reg Y;
reg [2:0] state, nstate; // nstate = next state
parameter S0 = 3'b000, S1 = 3'b001, S2 = 3'b011, S3 = 3'b010, S4 = 3'b110; // Gray code

// State register
always@(posedge clk)
if (!Reset)
state <= S0;
else
state <= nstate;

// Next state Logic


always@(state or x)

om
case(state)
S0: nstate = X? S0 : S1;
S1: nstate = X? S2 : S1;

.c
S2: nstate = X? S3 : S1;
S3: nstate = X? S0 : S4;
S4: nstate = X? S2 : S4;
default: nstate = S0;
ng
endcase
co
// Output Logic
an

assign Y = (state == S4) ;


endmodule
th

b) (1 đ)
g

· FSM có chức năng phát hiện chuỗi bit vào là “0110”


on

· Mã được viết lại dựa theo dịch bit:


du

module detect_0110 (clk, Reset, X, Y);


parameter PATTERN = 4'b0110; // Bit pattern
input clk, Reset, X;
u

output Y;
cu

reg [3:0] data_in;

always @ (posedge clk or posedge Reset)


if (Reset == 1)
data_in = 4'b0000; // Initial value
else
data_in = {data_in, X};

assign Y = (data_in == PATTERN);

endmodule

Chú ý: FSM đúng ra thì tại S4 khi X = 0 thì trạng thái kế là S1 thì mới phát hiện chính xác!

Đáp án của DSP-FPGA-191_KTGHK–Đề 1 – Trang 2/4


CuuDuongThanCong.com https://fb.com/tailieudientucntt
Câu 3: (2.5 đ)
Cho trước hệ thống sau: (giả sử thời gian tính toán của bộ cộng là TA = 2 ut và của bộ nhân là TM = 4 ut).

a) (0.75 đ) Vẽ lại giản đồ với dạng DFG và tìm đường [dẫn] tới hạn Tcritical.
b) (0.75 đ) Tìm giới hạn lặp T¥ bằng quan sát.
c) (1 đ) Tính lại T¥ dùng giải thuật LPM (đánh số thứ tự các phần tử D từ trên xuống).

om
Ghi chú:
Khi dùng LPM, các ma trận cao hơn L(1) được tính như sau:
li,j(m+1) = max(–1, li,k(1) + lk,j(m)) với k Î K

.c
K là tập hợp các số nguyên k trong đoạn [1, d] (d là số phần tử D) sao cho li,k(1) ¹ –1 và lk,j(m) ¹ –1.
BG.
a) (0.75 đ) Giản đồ DFG và đường [dẫn] tới hạn Tcritical
(0.5 đ) DFG
ng
co
an
th
g
on
du
u

(0.25 đ) Đường [dẫn] tới hạn đi qua 3 bộ cộng và 1 bộ nhân (qua các nút 6–1–2–3)
cu

Tcritical = 3TA + TM = 3 x 2 + 4 = 10 ns
b) (0.75 đ) Tìm giới hạn lặp bằng quan sát:
Tính các giới hạn vòng trong DFG (0.5 đ)
Vòng thứ Các nút trong vòng Giới hạn vòng (u.t.)
1 5–2 (2 + 4)/1 = 6 ns
2 6–1–2 (2 + 2 + 4)/2 = 4 ns

Suy ra giới hạn lặp T¥ = max(các giới hạn vòng) = max(6, 4) = 6 ns (0.25 đ)
c) (1 đ) Tìm giới hạn lặp dùng giải thuật LPM:
Đánh số các phần tử trễ (D) theo thứ tự từ trên xuống là d1, và d2.
Ta có ma trân ban đầu L(1) và ma trận cuối L(2):

6 0 12 6
L(1) = L(2) =
8 –1 14 8

Suy ra giới hạn lặp T¥ = max{6/1, 12/2, 8/2 } = 6 ns

Đáp án của DSP-FPGA-191_KTGHK–Đề 1 – Trang 3/4


CuuDuongThanCong.com https://fb.com/tailieudientucntt
Câu 4: (2 đ) Xét bộ lọc IIR ở hình sau, giả sử thời gian tính toán TA = 2 ut và TM = 4 ut.

a) (1 đ) Vẽ lại giản đồ với dạng DFG (đặt tên các bộ nhân là M, bộ cộng là A và đánh số thứ tự từ trên xuống
dưới và từ trái qua phải) vả tìm đường [dẫn] tới hạn Tcritical.
b) (1 đ) Hãy tìm (các) nhát cắt thuận thích hợp để tạo đường ống (pipelining) làm cho hệ có Tcritical nhỏ nhất
có thể được. Khi đó cần thêm bao nhiêu phần tử Delay (D) để tạo đường ống?
BG.
a) (1 đ) Giản đồ DFG và đường [dẫn] tới hạn Tcritical
· (0.75 đ) DFG

om
.c
ng
co
an

(0.25 đ) Đường [dẫn] tới hạn đi qua 3 bộ nhân và 2 bộ cộng: (M3–M2–A1–M1–A3)


Tcritical = 3TM + 2TA = 3 x 4 + 2 x 2 = 16 ns
th

b) (1 đ) Giản đồ DFG và đường [dẫn] tới hạn Tcritical


g

· (0.5 đ) Thực hiện các nhát cắt CS như hình trên và thêm mỗi D vào mỗi cạnh bị cắt.
on

· (0.25 đ) Đường tới hạn mới đi qua 2 bộ nhân và 1 bộ cộng (M3–M2–A1)


Þ Tcritical = 2TM + TA = 2 x 4 + 2 = 10 ns
du

· (0.25 đ) Khi đó số phần tử D cần thêm vào là 2.

Câu 5: (1 đ) Một hệ có từ 2 bộ lọc FIR như sau:


u
cu

w(n) = x(n) + 5x(n – 1) (Mạch lọc FIR #1)


y(n) = w(n – 1) + 3w(n–2) (Mạch lọc FIR #2)
a) Tìm hàm truyền H(z) = Y(z)/X(z), từ đó suy ra biểu thức của y(n).
b) Viết các phương trình để thực hiện song song với kích thước khối L = 3.
BG.
· Hàm truyền của bộ lọc 1 là W(Z)/X(Z) = H1(Z) = 1 + 5Z–1
· Hàm truyền của bộ lọc 2 là Y(Z)/W(Z) = H2(Z) = Z–1 + 3Z–2
· Như vậy, hàm truyền của toàn hệ là:
H(Z) = Y(Z)/X(Z) = H1(Z) x H2(Z) = Z–1 + 3Z–2 + 5Z–2 + 15Z–3 = Z–1 + 8Z–2 + 15Z–3
Suy ra biểu thức của y(n): y(n) = x(n–1) + 8x(n–2) + 15x(n–3)
· Các phương trình để thực hiện song song với kích thước khối L = 3
y(3k) = x(3k–1) + 8x(3k–2) + 15x(3k–3)
y(3k+1) = x(3k) + 8x(3k–1) + 15x(3k–2)
y(3k+2) = x(3k+1) + 8x(3k) + 15x(3k–1)
GV soạn đề và đáp án: Hồ Trung Mỹ

Đáp án của DSP-FPGA-191_KTGHK–Đề 1 – Trang 4/4


CuuDuongThanCong.com https://fb.com/tailieudientucntt

You might also like