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

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

4 1,2K 25

Đ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

Nội dung

ĐHQG – ĐHBK Tp HCM – Khoa ĐĐT – BMĐT Môn học: XLTHS với FPGA –HK182 GVPT: Hồ Trung Mỹ Đáp án Kiểm tra 15’ 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 F (khơng rút gọn hàm Boole) 2) (4 đ) Viết mã Verilog mơ tả mạch dùng mơ hình luồng liệu 3) (4 đ) Hãy biểu diễn F theo dạng F = A’F0 + AF1 với F0 F1 hàm Boole theo B C, từ viết mã Verilog mơ tả mạch 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 khai báo cổng cho mơ hình (chỉ thêm khai báo reg cho câu 3) BG 1) F(A, B, C) = (A’ B) + (B’ + C)’ + ẨC’ 2) Mơ hình luồng 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) Cách if (A == 1) //hoặc dùng: F = B | C; else F = B | ~C; endmodule if (A) Cách if (A == 0) //hoặc dùng: F = B | ~C; else F = B | C; if (!A) ĐHQG – ĐHBK Tp HCM – Khoa ĐĐT – BMĐT Môn học: XLTHS với FPGA – HK182 GVPT: Hồ Trung Mỹ Đáp án Kiểm tra 15’ 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 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ạng tổng minterm Chú ý: Không cần viết lại khai báo cổng cho 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 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) // 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) = P M(0,1,2,3,4,5,6,15) reg F; CD always@(A or B or C or D) 00 01 11 10 case({A, B, C, D}) AB 00 0 0 7,8,9,10,11,12,13,14: F = 0; 01 0 default: F = 1; 11 1 endcase; 10 1 1 endmodule ĐHQG – ĐHBK Tp HCM – Khoa ĐĐT – BMĐT Môn học: XLTHS với FPGA – HK182 GVPT: Hồ Trung Mỹ Đáp án Kiểm tra 15’ lớp #03 (Tuần 06 – 04/03/2019) Hình Hình 1) (5 đ) Dùng Verilog mơ tả FSM có giản đồ trạng thái hình Giả sử hệ có xung nhịp kích cạnh lên clk, ngõ vào X, ngõ Y, ngõ điều khiển đồng Resetn tích cực thấp Khi hệ bị Reset 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

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

TỪ KHÓA LIÊN QUAN