Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

prelab 4 kỹ thuật số bách khoa hcm, Study Guides, Projects, Research of Digital Electronics

prelab 4 kỹ thuật số bách khoa hcm

Typology: Study Guides, Projects, Research

2022/2023

Uploaded on 11/24/2023

xuan-cat-ha
xuan-cat-ha 🇻🇳

5

(1)

2 documents

1 / 20

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
TNKTS – BÀI CHU N B 4 – TH C HI N VÀ MÔ PH NG H T H P VÀ TU N
T C B N TRÊN FPGAỰƠẢ
BÀI CHUẨN BỊ THÍ NGHIỆM 4
THỰC HIỆN VÀ MÔ PHỎNG HỆ TỔ HỢP VÀ TUẦN TỰ
CƠ BẢN TRÊN FPGA
Họ và tên : Đặng Dương Gia Bảo Lớp TN : L17
MSSV : 2210198 Ngày TN : 27/10/2023
MỤC TIÊU
Nắm được cách sử dụng kit thí nghiệm, phần mềm lập trình.
Nắm được cách khảo sát và thiết kế hệ mạch đếm sử dụng các IC chức năng cơ bản.
Nắm được quy trình mô tả phần cứng trên FPGA.
CHUẨN BỊ
Bài thí nghiệm 0 của tài liệu hướng dẫn phần Thí nghiệm trên kit DE2.
Sinh viên phải hoàn thành và nộp PRELAB 4 trước khi vào lớp.
Department of Electronics Page | 1
Digital System Design Laboratory
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14

Partial preview of the text

Download prelab 4 kỹ thuật số bách khoa hcm and more Study Guides, Projects, Research Digital Electronics in PDF only on Docsity!

T Ự C Ơ B N TRÊN FPGAẢ

BÀI CHUẨN BỊ THÍ NGHIỆM 4

THỰC HIỆN VÀ MÔ PHỎNG HỆ TỔ HỢP VÀ TUẦN TỰ

CƠ BẢN TRÊN FPGA

Họ và tên : Đặng Dương Gia Bảo Lớp TN : L MSSV : 2210198 Ngày TN : 27/10/

MỤC TIÊU

 Nắm được cách sử dụng kit thí nghiệm, phần mềm lập trình.  Nắm được cách khảo sát và thiết kế hệ mạch đếm sử dụng các IC chức năng cơ bản.  Nắm được quy trình mô tả phần cứng trên FPGA.

CHUẨN BỊ

 Bài thí nghiệm 0 của tài liệu hướng dẫn phần Thí nghiệm trên kit DE2.  Sinh viên phải hoàn thành và nộp PRELAB 4 trước khi vào lớp. Department of Electronics Page | 1

T Ự C Ơ B N TRÊN FPGAẢ

BÀI CHUẨN BỊ 1

Mục tiêu: Nắm được các thức mô tả mạch cộng toàn phần (FA) sử dụng ngôn ngữ systemverilog. Yêu cầu: Sinh viên đọc đoạn chương trình sau đây dùng để mô tả bộ FA.

module FA_ex1(

input A,

input B,

input Ci,

output S,

output Co);

assign S = A ^ B ^ Ci;

assign Co=(A&B)|(A&Ci)|(B&Ci);

endmodule

 Sinh viên tiến hành biên dịch đoạn chương trình trên. Sau đó, sinh viên tiến mô phỏng dạng sóng ngõ ra trong tất cả các trường hợp của ngõ vào. Chụp hình dạng sóng ngõ ra. Department of Electronics Page | 2

T Ự C Ơ B N TRÊN FPGAẢ

File design.sv: module FA( input A, input B, input C, input sel, output S, output Ci ); logic B_res; assign B_res = B ^ sel; assign S = A ^ B_res ^ C; assign Ci=(A&B_res)|(A&C)|(B_res&C); endmodule module congtru4bitFA( input logic [3:0] A, input logic [3:0] B, input logic sel, output logic [3:0] S, output Ci,Co ); assign Co = sel; logic C1,C2,C3; Department of Electronics Page | 4

T Ự C Ơ B N TRÊN FPGAẢ

FA FA1(.A(A[0]),.B(B[0]),.C(sel),.sel(sel),.S(S[0]),.Ci(C1)); FA FA2(.A(A[1]),.B(B[1]),.C(C1),.sel(sel),.S(S[1]),.Ci(C2)); FA FA3(.A(A[2]),.B(B[2]),.C(C2),.sel(sel),.S(S[2]),.Ci(C3)); FA FA4(.A(A[3]),.B(B[3]),.C(C3),.sel(sel),.S(S[3]),.Ci(Ci)); Endmodule File Testbench.sv: `timescale 1ns/1ns module testbench; reg [3:0] A; reg [3:0] B; reg sel; wire [3:0] S; wire Ci,Co; congtru4bitFA sus(.A(A),.B(B),.sel(sel),.S(S),.Ci(Ci),.Co(Co)); initial begin $dumpfile("dump.vcd"); $dumpvars(1); A = 4'b1000; B = 4'b0001; sel = 1'b0;

A = 4'b0101; Department of Electronics Page | 5

T Ự C Ơ B N TRÊN FPGAẢ

$finish; end endmodule  Sinh viên tiến mô phỏng dạng sóng ngõ ra trong một vài trường hợp của ngõ vào. Chụp hình dạng sóng ngõ ra.

BÀI CHUẨN BỊ 3

Mục tiêu: Nắm được các thức mô tả mạch giải mã số BCD sang mã LED 7 đoạn loại anode chung sử dụng ngôn ngữ systemverilog. Yêu cầu: Sinh viên thực hiện mô tả mạch giải mã số BCD sang mã LED 7 đoạn loại anode chung.  Sinh viên hoàn thành bảng chân trị của mạch giải mã. Department of Electronics Page | 7

T Ự C Ơ B N TRÊN FPGAẢ

source: internet  Sinh viên thực hiện mô tả theo yêu cầu của bài toán sử dụng ngôn ngữ systemverilog. Gợi ý: sử dụng câu lệnh case ….. input [3:0]I; always@(*) begin case(I) 4’b0000: out <= 7’b1000000; 4’b0001: out <= … … endcase; end File design.sv: module BCDthanhLED7( input logic [3:0] I, output logic [6:0] out Department of Electronics Page | 8

T Ự C Ơ B N TRÊN FPGAẢ

$dumpfile("dump.vcd"); $dumpvars(1); I = 4'b0000;

I = 4'b0001;

I = 4'b0010;

I = 4'b0011;

I = 4'b0100;

I = 4'b0101;

I = 4'b0110;

I = 4'b0111;

I = 4'b1000;

I = 4'b1001;

$finish; Department of Electronics Page | 10

T Ự C Ơ B N TRÊN FPGAẢ

end endmodule  Sinh viên tiến mô phỏng dạng sóng ngõ ra trong một vài trường hợp của ngõ vào. Chụp hình dạng sóng ngõ ra.

BÀI CHUẨN BỊ 4

Mục tiêu: Nắm được các thức mô tả mạch chuyển đổi 1 xung có tần số 50MHz sang 1 xung có tần số 1Hz sử dụng ngôn ngữ systemverilog. Yêu cầu: Sinh viên thực hiện mô tả mạch chuyển đổi 1 xung có tần số 50MHz sang 1 xung có tần số 1Hz. Gợi ý:

  • Xung có tần số 50MHz sẽ thực hiện 50 000 000 dao động trong 1s. (1 dao động bao gồm 1 lần mức cao và 1 lần mức thấp). - Xung có tần số 1Hz sẽ thực hiện 1 dao động trong 1s.
  • Vận dụng nguyên lí của mạch đếm, mạch nhận ngõ vào là xung 50MHz, khi xung ngõ vào đếm 25 000 000 sẽ tiến hành đảo trạng thái của xung ngõ ra. Đoạn chương trình minh họa: integer i=0; Department of Electronics Page | 11

T Ự C Ơ B N TRÊN FPGAẢ

out = ~ out; i = 0; end endmodule File testbench.sv : `timescale 1ns/1ns module testbench; reg cl; wire ou; prelab4_cb4 sus(.clk(cl),.out(ou)); initial begin $dumpfile("dump.vcd"); $dumpvars(1);

cl = 1'b1;

cl = 1'b0;

cl = 1'b1; $finish; end endmodule Department of Electronics Page | 13

T Ự C Ơ B N TRÊN FPGAẢ

Department of Electronics Page | 14

T Ự C Ơ B N TRÊN FPGAẢ

Các trạng thái lần lượt là: S0 (00), S1 (01), S2 (10), S3(11) Đoạn chương trình cho máy trạng thái trên: input X; //Khai báo ngõ vào 1 bit input clk; //Khai báo clock output reg [1:0]Y; //Khai báo ngõ ra 2 bit parameter S0=2'b00, S1=2'b01, S2=2'b10, S3=2'b11; //Định nghĩa các trạng thái reg [1:0]pre_state, next_state; //Các thanh ghi chưa trạng thái //Khối chuyển trạng thái always@(posedge clk) begin if (rst) begin pre_state <= S0; end else pre_state <= next_state; Department of Electronics Page | 16

T Ự C Ơ B N TRÊN FPGAẢ

end //Khối chuyển trạng thái always@(pre_state or X) begin case(pre_state) S0: if (X) next_state <= S1; else next_state <= S0; S1: if (!X) next_state <= S2; else next_state <= S0; S2: if (!X) next_state <= S3; else next_state <= S2; S3: if (!X) next_state <= S0; else next_state <= S3; endcase; end //Khối tạo ngõ ra always@(*) begin case (pre_state) S0: Y <= 2'b00; S1: Y <= 2'b10; S2: Y <= 2'b11; S3: Y <= 2'b01; endcase; Department of Electronics Page | 17

T Ự C Ơ B N TRÊN FPGAẢ

S2: if (X) next_state <= S4; else next_state <= S1; S3: if (X) next_state <= S5; else next_state <= S4; S4: if (X) next_state <= S6; else next_state <= S3; S5: if (X) next_state <= S1; else next_state <= S6; S6: if (X) next_state <= S2; else next_state <= S5; endcase; end //Khối tạo ngõ ra always@(*) begin case (pre_state) S0: Y <= 3'b000; S1: Y <= 3'b001; S2: Y <= 3'b010; S3: Y <= 3'b011; S4: Y <= 3'b100; S5: Y <= 3'b101; S6: Y <= 3'b110; endcase; Department of Electronics Page | 19

T Ự C Ơ B N TRÊN FPGAẢ

end Department of Electronics Page | 20