32 1 1MB
ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA ĐIỆN TỬ – VIỄN THÔNG ---------------o0o---------------
BÁO CÁO MÔN THỰC HÀNH MÔN THIẾT KẾ LOGIC KHẢ TRÌNH VÀ VERILOG HDL
Sinh Viên thực hiện:
Nguyễn Thanh Hoà ng
MSSV:
18200110
TP. HỒ CHÍ MINH, NGÀY 07 THÁNG 01 NĂM 2021
Câu 1/ Thiết kế mạch đếm lên/ xuống theo mã BCD( 0 -> 9) hiển thị ra LED 7 đoạn HEX0 với tần số khoảng 1Hz được chia từ clock 50MHz, chân up/down được gán cho SW0.
Phần Code :
module led (in,HEX); // module led input [3:0] in; // Khai báo đầu vào là SW (ở đây chúng ta sử dụng SW0) tăng hoặc giảm output [0:6] HEX; // khai báo đầu ra là HEX0[0] -> HEX0[6] /* ở đây là led 7 đoạn anot chung, sáng = 0, tối = 1 sử dụng ngõ vào là thập phân 4 bit ngõ ra là thập lục 7 bit module này thiết lập để hiển thị các số từ 0 ->9 ra led 7 đoạn assign HEX = (in==4'd0) ? 7'h01 : với ngõ vào là 0 thì led sẽ hiển thị số 0 tương đương dãy bit 0000001 (in==4'd1) ? 7'h4f :
//
1
//
1001111
(in==4'd2) ? 7'h12 :
//
2
//
0010010
(in==4'd3) ? 7'h06 :
//
3
//
0000110
(in==4'd4) ? 7'h4c :
//
4
//
1001100
(in==4'd5) ? 7'h24 :
//
5
//
0100100
(in==4'd6) ? 7'h20 :
//
6
//
0100000
(in==4'd7) ? 7'h0f :
//
7
//
0001111
(in==4'd8) ? 7'h00 :
//
8
//
0000000
(in==4'd9) ? 7'h04 : 7'h7f ;
//
9 (0000100) và reset về số 0
endmodule
module cau1 (input CLOCK_50, input SW, output [0:6] HEX0); // tên module reg [25:0] dem; // khai báo thanh ghi đếm có 26 bit với bit cao nhất là 25 reg [3:0] Q;
// khai báo thanh ghi Q có ô bit với bit cao nhất là 3 2
always @(posedge CLOCK_50) // khối lệnh always điều khiển theo sự kiện cạnh lên của xung CLOCk_50 dem 5'd4 && t < 5'd6) LedR = {LedR[0], LedR[7:1]}; /* Nếu bấm nút nhấn và thả ra trong thời gian 4