1. Trang chủ
  2. » Giáo án - Bài giảng

Giải Chi Tiết Bài Tập Verilog

4 1,3K 25
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 4
Dung lượng 315,8 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

2 4 đ Viết mã Verilog mô tả mạch này dùng mô hình luồng dữ liệu.. Chú ý: Không cần viết lại các khai báo cổng cho các mô hình chỉ thêm khai báo reg cho câu 3... 4 3 đ mô hình hành vi với

Trang 1

ĐHQG – ĐHBK Tp HCM – Khoa ĐĐT – BMĐT

Môn học: XLTHS với FPGA –HK182

GVPT: Hồ Trung Mỹ

Đáp án của Kiểm tra 15’ tại lớp #01 (Tuần 04 – 18/02/2019)

Cho trước mạch tổ hợp sau:

1) (2 đ) Hãy tìm biểu thức Boole của F (không rút gọn hàm Boole)

2) (4 đ) Viết mã Verilog mô tả mạch này dùng mô hình luồng dữ liệu

3) (4 đ) Hãy biểu diễn F theo dạng F = A’F0 + AF1 với F0 và F1 là các hàm Boole theo B và C, từ đó viết mã

Verilog mô tả mạch này dùng mô hình hành vi với phát biểu if else

Chú ý: Không cần viết lại các khai báo cổng cho các mô hình (chỉ thêm khai báo reg cho câu 3).

BG.

1) F(A, B, C) = (A’ B) + (B’ + C)’ + A ÅC’

2) Mô hình luồng dữ liệu:

module KT1_D(A, B, C, F);

input A, B, C;

output F;

assign F(A, B, C) = (~A & B) | ~(~B | C) | (A ^ ~C);

endmodule

3) Mô hình hành vi:

Ta có:

F0 = F(0, B, C) = (0’ B) + (B’ + C)’ + 0 ÅC’ = B + BC’ + C’ = B + C’

F1 = F(1, B, C) = (1’ B) + (B’ + C)’ + 1 ÅC’ = BC’ + C = B + C

Suy ra:

F(A, B, C) = A’(B + C’) + A(B + C)

Mã verilog:

module KT1_H(A, B, C, F);

input A, B, C;

output F; reg F;

always@(A or B or C)

if (A == 1) //hoặc dùng: if (A)

F = B | C;

else

F = B | ~C;

if (A == 0) //hoặc dùng: if (!A)

F = B | ~C;

else

F = B | C;

endmodule

Trang 2

ĐHQG – ĐHBK Tp HCM – Khoa ĐĐT – BMĐT

Môn học: XLTHS với FPGA – HK182

GVPT: Hồ Trung Mỹ

Đáp án của Kiểm tra 15’ tại lớp #02 (Tuần 05 – 25/02/2019)

Một mạch tổ hợp có hàm Boole:

( , , , ) = ( + )( + )( + )( + + + ) Viết mã Verilog mô tả mạch dùng

1) (2 đ) mô hình cấu trúc

2) (2 đ) mô hình luồng dữ liệu

3) (3 đ) mô hình hành vi với phát biểu if else

4) (3 đ) 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.

Chú ý: Không cần viết lại các khai báo cổng cho các mô hình

BG.

module KT02(A, B, C, D, F);

input A, B, C, D;

output F;

a) Mô hình cấu trúc

wire An, Bn, Cn, Dn, T1, T2, T3;

// xn = x’, T1 = A + B, T2 = A + C, T3 = A + D, T4= A’ + B’ + C’ + D’

not

g0(An, A),

g1(Bn, B),

g2(Cn, C),

g3(Dn, D);

or

g4(T1, A, B),

g5(T2, A, C),

g6(T3, A, D),

g7(T4, An, Bn, Cn, Dn);

and

g7(F, T1, T2, T3, T4);

b) Mô hình luồng dữ liệu

assign F = (A | B) & (A | C) & (A | D) & (~A | ~B | ~C | ~D);

c) Mô hình hành vi với if … else …

Ta có: F = A’BCD + A(B’ + C’ + D’) = A Å BCD

reg F;

always@(A or B or C or D)

if (A == 1) // hoặc dùng: if (A)

F = ~(B & C & D);

else

F = B & C & D;

d) Mô hình hành vi với case

F(A,B, C,D) = A Å BCD = Sm(7,8,9,10,11,12,13,14) =PM(0,1,2,3,4,5,6,15)

reg F;

always@(A or B or C or D)

case({A, B, C, D})

7,8,9,10,11,12,13,14: F = 0;

default: F = 1;

endcase;

CD

00 01 11 10

endmodule

Trang 3

ĐHQG – ĐHBK Tp HCM – Khoa ĐĐT – BMĐT

Môn học: XLTHS với FPGA – HK182

GVPT: Hồ Trung Mỹ

Đáp án của Kiểm tra 15’ tại lớp #03 (Tuần 06 – 04/03/2019)

Hình 1 Hình 2

1) (5 đ) Dùng Verilog mô tả FSM có giản đồ trạng thái ở hình 1 Giả sử hệ có xung nhịp kích cạnh lên clk, ngõ vào X, ngõ ra Y, và ngõ điều khiển đồng bộ Resetn tích cực thấp Khi hệ bị Reset sẽ về trạng thái S1.

BG.

module KT4(clk, Resetn, X, Y);

input clk, Reset, X;

output Y; reg Y;

reg [1:0] state, nstate; // nstate = next state

parameter S1 = 2'b00, S2 = 2'b01, S3 = 2'b10, S4 = 2'b11;

// State register

always@(posedge clk)

if (!Resetn)

state <= S1;

else

state <= nstate;

// Next state Logic

always@(state or x)

case(state)

S1: nstate = X? S1 : S2;

S2: nstate = X? S3 : S4;

S3: nstate = X? S2 : S1;

S4: nstate = X? S4 : S3;

default: nstate = S1;

endcase

// Output Logic

assign Y = X? (state == S1) || (state == S4) : (state == S2) || (state == S3) ;

endmodule

2) (5 đ) Cho trước bộ lọc IIR ở hình 2: (biết TM = 2 ut và TA = 1 ut)

a) Hãy vẽ DFG của bộ lọc này

b) Tìm đường tới hạn (CP = Critical Path) của hệ này? Như vậy chu kỳ lấy mẫu là bao nhiêu?

c) Tìm giới hạn lặp?

BG.

a) DFG của mạch trên: (Đặt tên các nút nhân bắt đầu bằng chữ A theo thứ tự từ trái và phải và

từ trên xuống dưới Tương tự với các nút nhân nhưng bắt đầu bằng M.)

Trang 4

b) Đường [dẫn] tới hạn T critical và giới hạn lặp bằng quan sát:

Đường [dẫn] tới hạn đi qua A4–M2–A2–A1 (hoặc nút cuối là A3)

T critical = T A + T M + T A + T A = 3T A + T M = 3 x 1 + 2 = 5 ns

Như vậy có thể chọn chu kỳ mẫu Tsample = Tclock ³ T critical = 5 ns

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

Vòng thứ Các nút trong vòng Giới hạn vòng (u.t.)

Suy ra giới hạn lặp T¥ = max{các giới hạn vòng} = max{4, 2.5} = 4 ns

Ngày đăng: 01/04/2019, 16:27

TỪ KHÓA LIÊN QUAN