1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo lab 4 kỹ thuật số (tn) (ee1010) thí nghiệm 0 mạch cộng toàn phần full adder

28 29 0
Tài liệu đã được kiểm tra trùng lặp

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Mạch cộng toàn phần Full-Adder
Tác giả Lê Nguyên Khôi, Huỳnh Phước Toàn, Lê Huy Hoàng
Người hướng dẫn Vũ Quang Thời, GVHD
Trường học ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
Chuyên ngành KỸ THUẬT SỐ
Thể loại Báo cáo Lab
Năm xuất bản 2023
Thành phố TP HỒ CHÍ MINH
Định dạng
Số trang 28
Dung lượng 4,59 MB

Nội dung

THÍ NGHIỆM 1Mục tiêu: Nắm được các thức mô tả mạch tính giá trị tuyệt đối của một số 4 bit sử dụng ngôn ngữ systemverilog và thực hiện kiểm tra hoạt động trên kit FPGA.. THÍ NGHIỆM 2Mục

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA ĐIỆN – ĐIỆN TỬ

BỘ MÔN KỸ THUẬT ĐIỆN TỬ

BÁO CÁO LAB 4

KỸ THUẬT SỐ (TN) (EE1010)

GVHD: Vũ Quang Thời Lớp DT04 – Nhóm 03

TP HỒ CHÍ MINH, 2023

Trang 3

Trường hợp Input = 101

Trường hợp Input = 100

Trang 4

THÍ NGHIỆM 1

Mục tiêu: Nắm được các thức mô tả mạch tính giá trị tuyệt đối của một số 4 bit sử dụng

ngôn ngữ systemverilog và thực hiện kiểm tra hoạt động trên kit FPGA

Yêu cầu: Sinh viên thực hiện mô tả mạch tính giá trị tuyệt đối của một số 4 bit (số ngõ

vào lần lượt là A, ngõ ra là S)

Kiểm tra:

➢ Sinh viên trình bày ý tưởng của thiết kế (Sinh viên có thể vẽ sơ đồ khối và/hoặc diễn giải để giáo viên hiểu được ý tưởng của mình)

+ Dùng câu lệnh if else để đảo giá trị của ngõ vào

➢ Chương trình mô tả hoạt động của thiết kế

if (A[3]== 1'b0)S=A;

else S=-A;

endendmodule

➢ Kết quả RTL viewer

➢ Sinh viên thực hiện gán chân theo yêu cầu và sau đó đổ lên kit FPGA DE2 Sau đó ghi nhận kết quả

Trang 5

Chân A[3:0] được nối với SW0-SW3 và LEDR[3:0] (để kiểm tra mức tín hiệu khi bật SW) Chân S[3:0] được nối với LEDG[3:0]

Trường hợp A = 1101 (-3) => S = 0011 (3)

Trường hợp A =0 001 (1) => S = 0001 (1)

Trang 6

THÍ NGHIỆM 2

Mục tiêu: Nắm được các thức mô tả khối ALU (bộ tính toán) có chức năng đơn giản sử

dụng systemverilog và thực hiện kiểm tra hoạt động trên kit FPGA

Yêu cầu: Sinh viên thực hiện mô tả mạch cho mạch thực hiện bộ ALU tính toán 2 số 4

bit (hai số ngõ vào lần lượt là A và B, ngõ ra là S, cờ nhớ Ci và Co) thông qua ngõ vào điều khiển 2 bit Sel

- Nếu Sel=00: S=A+B

- Nếu Sel=01: S=A-B

- Nếu Sel=10: S=A AND B

- Nếu Sel=11: S=A OR B

Trang 7

Kết quả nối kit:

B = LEDR[3:0]

A = LEDR[7:4]

Sel = LEDR[17:16]

S = LEDG[3:0]

Trường hợp sel = 00, A=3, B=1 => S=4

Trường hợp sel = 01, A=3, B=1 => S=2

Trang 8

Trường hợp sel = 10, A=0011, B=0001 => S=0001

Trường hợp sel = 11, A=0011, B=0001 => S=0011

Trang 9

THÍ NGHIỆM 3

Mục tiêu: Nắm được các thức mô tả mạch đếm đầy đủ sử dụng ngôn ngữ systemverilog

và thực hiện kiểm tra hoạt động trên kit FPGA

Yêu cầu: Sinh viên thực hiện thiết kế mô tả mạch đếm xuống 3 bit đầy đủ sử dụng ngôn

ngữ system verilog Giá trị đếm thay đổi sau mỗi 1s Ngõ ra được kết nối với LED 7 đoạnloại anode chung Ngoài ra, bộ đếm còn có chân RST (tích cực cao) dùng để reset trạngthái bộ đếm về 0

Gợi ý:

- Tín hiệu clock được tạo từ bộ chia tần số từ 50MHz sang 1s

- Sinh viên sử dụng chương trình chuyển từ mã BCD sang LED 7 đoạn trong PRELAB,kết nối ngõ ra của bộ đếm với ngõ vào của bộ chuyển đổi

Trang 11

input logic clk_i,

input logic rst_ni,

output logic clk_o

Trang 12

module bcd2hex (

input logic [3:0] bcd_i,

output logic [6:0] led_o

);

always_comb begin

case(bcd_i)

4'b0000: led_o = 7'b1000000; // 0 4'b0001: led_o = 7'b1111001; // 1 4'b0010: led_o = 7'b0100100; // 2 4'b0011: led_o = 7'b0110000; // 3 4'b0100: led_o = 7'b0011001; // 4 4'b0101: led_o = 7'b0010010; // 5 4'b0110: led_o = 7'b0000010; // 6 4'b0111: led_o = 7'b1111000; // 7 4'b1000: led_o = 7'b0000000; // 8 4'b1001: led_o = 7'b0010000; // 9 4'b1010: led_o = 7'b0001000; // A 4'b1011: led_o = 7'b0000011; // B 4'b1100: led_o = 7'b1000110; // C 4'b1101: led_o = 7'b0100001; // D 4'b1110: led_o = 7'b0000110; // E 4'b1111: led_o = 7'b0001110; // F default: led_o = 7'b1111111; // blank endcase

end

endmodule : bcd2hex

Đếm bằng nút, ấn nút thì chạy:

Trang 13

module on_tap (

input Res,

input wire Clk_in, // Ngõ vào và xung Clock 50MHz

output reg Clk_out, // Ngõ ra là xung Clock 1Hz sau khi qua bộ xử lý output reg [2:0] I, // Biến đếm

output [6:0] LED_1

);

integer i = 0; // Biến đếm cho xung Clock

// Khởi tạo giá trị biến đếm và xung Clock 1Hz

initial begin

Clk_out = 0;

I = 3'b111; // Bắt đầu đếm từ 5

end

// Kiểm tra nút reset và đếm

always_ff @(posedge Clk_in or posedge Res) begin

if (Res) begin

I <= 3'b111; // Reset về giá trị 7

end else if (I == 3'b000) begin

I <= 3'b111; // Nếu đạt giá trị 0, quay lại giá trị 7

end else begin

I <= I - 1; // Giam giá trị đếm

end

end

// Bộ chuyển đổi xung từ 50MHz còn 1Hz

always_ff @(posedge Clk_in) begin

Trang 14

LED_1 = 7'b1111_001; // Số 1

end3'b010: begin LED_1 = 7'b0100_100; // Số 2

end 3'b011: begin

LED_1 = 7'b0110_000; // Số 3

end3'b100: begin LED_1 = 7'b0011_001; // Số 4

end3'b101: begin LED_1 = 7'b0010_010; // Số 5

end3'b110: begin

Trang 15

LED_1 = 7'b0000_010; // Số 6

end3'b111: begin LED_1 = 7'b1111_000; // Số 7

end default: begin

Trang 16

 Kết quả mô phỏng dạng sóng.

Trang 17

 Kết quả RTL viewer.

 Sinh viên thực hiện gán chân theo yêu cầu và sau đó đổ lên kit FPGA DE2 Sau đóghi nhận kết quả

Gán chân theo mẫu sau:

LED 7 đoạn là HEX0

Chân RST là SW0

Trang 18

THÍ NGHIỆM 4

Mục tiêu: Nắm được các thức mô tả mạch đếm đầy đủ sử dụng ngôn ngữ systemverilog

và thực hiện kiểm tra hoạt động trên kit FPGA

Yêu cầu: Sinh viên thực hiện thiết kế mô tả mạch đếm lên 4 bit từ 5 đến 14 sử dụng

ngôn ngữ system verilog Giá trị đếm thay đổi sau mỗi 1s Ngõ ra 4 bit được kết nối với 2LED 7 đoạn loại anode chung Ngoài ra, bộ đếm còn có chân RST (tích cực cao) dùng đểreset trạng thái bộ đếm về 0

Gợi ý:

- Tín hiệu clock được tạo từ bộ chia tần số từ 50MHz sang 1s

- Sinh viên sử dụng chương trình chuyển từ mã BCD sang LED 7 đoạn trong PRELAB,kết nối ngõ ra của bộ đếm với ngõ vào của bộ chuyển đổi

- Sinh viên cần viết thêm bộ chuyển đổi từ số 4 bit sang số BCD

Trang 19

led_u(HEX1) );

end else begin

if (i_1 == 4'd0 && i_2 == 4'd1) begin

i_1 <= 4'd9;

i_2 <= 4'd0;

end else begin

if (i_1 == 4'd0 && i_2 == 4'd0) begin i_1 <= 4'd5;

i_2 <= 4'd1;

end else begin

i_1 <= i_1 - 4'd1; end

end

Trang 20

end

end

endmodule : tn4

module clock_generate (

input logic clk_i,

input logic rst_ni,

output logic clk_o

Trang 21

input logic [3:0] bcd_i,

input logic [3:0] bcd_u,

output logic [6:0] led_o,

output logic [6:0] led_u

);

always_comb begin

case(bcd_i)

4'b0000: led_o = 7'b1000000; // 0 4'b0001: led_o = 7'b1111001; // 1 4'b0010: led_o = 7'b0100100; // 2 4'b0011: led_o = 7'b0110000; // 3 4'b0100: led_o = 7'b0011001; // 4 4'b0101: led_o = 7'b0010010; // 5 4'b0110: led_o = 7'b0000010; // 6 4'b0111: led_o = 7'b1111000; // 7 4'b1000: led_o = 7'b0000000; // 8 4'b1001: led_o = 7'b0010000; // 9 default: led_o = 7'b1111111; // blank endcase

end

always_comb begin

case(bcd_u)

4'b0000: led_u = 7'b1000000; // 0 4'b0001: led_u = 7'b1111001; // 1 default: led_u = 7'b1111111; // blank endcase

end

Trang 22

endmodule : bcd2hex

Đếm bằng tay (từ 0-7):

module on_tap (

input Res,

input wire Clk_in, // Ngõ vào và xung Clock 50MHz

output reg Clk_out, // Ngõ ra là xung Clock 1Hz sau khi qua bộ xử lý output reg [2:0] I, // Biến đếm

output [6:0] LED_1

);

integer i = 0; // Biến đếm cho xung Clock

// Khởi tạo giá trị biến đếm và xung Clock 1Hz

initial begin

Clk_out = 0;

I = 3'b000;

end

// Kiểm tra nút reset và đếm

always_ff @(posedge Clk_in or posedge Res) begin

Trang 23

// Bộ chuyển đổi xung từ 50MHz còn 1Hz

always_ff @(posedge Clk_in) begin

LED_1 = 7'b1111_001; // Số 1

end3'b010: begin

LED_1 = 7'b0100_100; // Số 2

end 3'b011: begin

LED_1 = 7'b0110_000; // Số 3

end3'b100: begin

LED_1 = 7'b0011_001; // Số 4

end3'b101: begin

Trang 24

LED_1 = 7'b0010_010; // Số 5

end3'b110: begin

LED_1 = 7'b0000_010; // Số 6

end3'b111: begin

LED_1 = 7'b1111_000; // Số 7

end default: begin

Gán chân theo mẫu sau:

Hai LED 7 đoạn là HEX1 (trọng số cao) và HEX0 (trọng số thấp)

Chân RST là SW0

Trang 25

THÍ NGHIỆM 5

Mục tiêu: Nắm được các thức mô tả máy trạng thái sử dụng ngôn ngữ systemverilog và

thực hiện kiểm tra hoạt động trên kit FPGA

Yêu cầu: Sinh viên tiến hành mô tả hệ tuần tự sau bằng VHDL sau đó nạp chương trình

xuống kit DE2 để kiểm tra hoạt động:

Hệ tuần tự có 1 ngõ vào (X) và 1 ngõ ra (Z) Ngõ ra Z = 1 nếu tổng số bit 1 nhận đượcchia hết cho 3 (quy ước 0, 3, 6, 9, … là các số chia hết cho 3 ) và tổng số bit 0 nhận được

là 1 số chẵn (lớn hơn 0)

Ghi chú: Sinh viên có thể lựa chọn thiết kế theo máy trạng thái kiểu Mealy hoặc Moore Gán chân theo mẫu sau:

Ngõ vào X được nối với SW0

Tín hiệu CLK được nối với xung clock 1Hz (Trong bài PRELAB)

Ngõ ra Z được nối với LED0

Trang 27

THÍ NGHIỆM 6

Mục tiêu: Nắm được các thức mô tả máy trạng thái sử dụng ngôn ngữ systemverilog và

thực hiện kiểm tra hoạt động trên kit FPGA

Yêu cầu: Sinh viên tiến hành mô tả hệ tuần tự sau bằng VHDL sau đó nạp chương trình

xuống kit DE2 để kiểm tra hoạt động:

Một hệ thống cung cấp thức ăn và nước uống tự động cho thú cưng gồm 2 ngõ vào là 2

- Ở mỗi thời điểm, chỉ có 1 nút nhấn

- Các nút nhấn cần phải được tác động liên tiếp, nếu có 1 nút sai trình tự, máy trạng tháisẽ

quay trở về trạng thái ban đầu (ví dụ: khi các nút nhấn được tác động theo trình tự (RED,RED, BLUE), máy trạng thái quay về trạng thái đầu reset)

Ghi chú: Sinh viên có thể lựa chọn thiết kế theo máy trạng thái kiểu Mealy hoặc Moore Gán chân theo mẫu sau:

Ngõ vào RED và BLUE lần lượt được nối với SW0 và SW1

Tín hiệu CLK được nối với xung clok 1Hz (Trong bài PRELAB)

Ngõ ra FOOD và WATER lần lượt được nối với LED0 và LED1

Kiểm tra:

Trang 28

 Sinh viên trình bày ý tưởng của thiết kế (Sinh viên có thể vẽ sơ đồ khối (máytrạng thái) và/hoặc diễn dãi để giáo viên hiểu được ý tưởng của mình)

 Chương trình mô tả hoạt động của thiết kế

Ngày đăng: 23/10/2024, 07:40

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w