Professional Documents
Culture Documents
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;
c) Mô hình hành vi với case
g
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
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.
// State register
always@(posedge clk)
if (!Reset)
state <= S0;
else
state <= nstate;
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
b) (1 đ)
g
output Y;
cu
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!
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
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.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