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

BÀI tập lớn báo cáo xử lý tín HIỆU số với FPGA

60 7 0

Đ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

Định dạng
Số trang 60
Dung lượng 1,44 MB

Nội dung

ĐẠ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ÁO CÁO XỬ LÝ TÍN HIỆU SỐ VỚI FPGA BÀI TẬP LỚN Giáo viên hướng dẫn Nhóm thực Danh sách thành viên TP Hồ Chí Minh, Tháng 05/2022 TIEU LUAN MOI download : skknchat@gmail.com MỤC LỤC NỘI DUNG Phần chung cho tất nhóm 1.1 Bài 1.1.1 Đề 1.1.2 Giải thuật thứ n 1.1.3 Giải thuật thứ h 1.2 Bài 1.2.1 Đề 1.2.2 Cơ sở lý thuyế 1.2.3 Giải thuật tính 1.2.4 Code mơ phỏn 1.2.5 Kết mô ph 1.2.6 Đánh giá tài 5CGXFC7C7F23C8 1.3 Bài 1.3.1 Đề 1.3.2 Giải thuật tính 1.3.3 Code thực 1.3.4 Kết đánh g 5CGXFC7C7F23C8 1.4 Bài 1.4.1 Đề 1.4.2 Cơ sở lý thuyế 1.4.3 Chi tiết thiết kế 1.4.4 Code thực 1.4.5 Kết đánh TIEU LUAN MOI download : skknchat@gmail.com 1.5.1 Đề 44 1.5.2 Cơ sở lý thuyết 44 1.5.3 Code thực kết mô 46 1.5.4 Kết đánh giá tài nguyên phần cứng thực thi FPGA Cyclone II EP2C35F672C6 44 Phần riêng cho nhóm 50 Đại học Bách khoa TPHCM Trang TIEU LUAN MOI download : skknchat@gmail.com NỘI DUNG Phần chung cho tất nhóm 1.1 Bài 1.1.1 Đề Cho sơ đồ khối hệ thống tìm số nhỏ thứ (min1), số nhỏ thứ (min2) vị trí số nhỏ thứ (index_min1) số không dấu ngõ vào hình bên Hình 1.1 Bộ min_finder Lưu ý: Thực thi hệ thống với = 10 Các ngõ vào I0, I1,…, In-1 số nhị phân bit khơng dấu Trường hợp ngõ vào có nhiều giá trị min1, ngõ index_min1 vị trí ngõ vào có số nhỏ Đề xuất giải thuật thực thi hệ thống (sơ đồ khối, giải thích chi tiết) Viết code Verilog mô tả giải thuật đề xuất Sử dụng phần mềm mô kiểm tra chức hệ thống (chụp lại hình kết mơ phỏng) Đánh giá tài nguyên phần cứng thực thi giải thuật đề xuất Cyclone V 5CGXFC7C7F23C8 1.1.1 Giải thuật thứ Đại học Bách khoa TPHCM Trang TIEU LUAN MOI download : skknchat@gmail.com Hình 1.2 Sơ đồ giải thuật thứ min_finder Đầu tiên, ta ghép phần gồm giá trị port số thứ tự port vào để thực so sánh, gọi IN[i] Khi so sánh, phần giá trị port nhau, ta so sánh số thứ tự port Tiếp theo, ta lưu min_1 index_min1 tương ứng với giá trị port số thứ tự nó: min_2 giá trị port Ta so sánh cặp min_1, index_min1 giá trị min_2 với giá trị tương ứng (có khơng có số thứ tự) port từ đến Khi có trường hợp xảy ra: Thứ nhất, cặp min_1, index_min1 lớn IN[i] Khi đó, ta thay min_1, index_min1 giá trị tương ứng port thứ i thay min_2 min_1 Thứ hai, cặp min_1, index_min1 bé IN[i] Ta tiếp tục so sánh giá trị port thứ i với min_2 Nếu min_2 lớn giá trị port thứ i ta cập nhật giá trị cho min_2 ngược lại ta giữ nguyên min_2 Code thực hiện: Đại học Bách khoa TPHCM Trang TIEU LUAN MOI download : skknchat@gmail.com module min_finder(rst,clk,in0,in1,in2,in3,in4,in5,in6,in7,in8,in9,min1,min2,index_ min1,nflag); localparam n = 10; input rst,clk; input[3:0] in0,in1,in2,in3,in4,in5,in6,in7,in8,in9; output reg[3:0] min1,min2; output reg[3:0] index_min1; output reg nflag; reg[7:0] reg_in0,reg_in1,reg_in2,reg_in3,reg_in4,reg_in5,reg_in6,reg_in7,reg_in8,reg _in9,temp; reg[7:0] reg_min1; reg[3:0] reg_min2; wire cp1,cp2,flag_0; reg[3:0] count; mf_compare CP1 (reg_min1,reg_in1,cp1); cp CP2 (reg_min2,reg_in1[3:0],,cp2); assign flag_0 = |(count); always @(posedge clk) begin if(rst||(~flag_0)) begin reg_in0 = {4'b0000,in0}; reg_in1 = {4'b0001,in1}; reg_in2 = {4'b0010,in2}; reg_in3 = {4'b0011,in3}; reg_in4 = {4'b0100,in4}; reg_in5 = {4'b0101,in5}; reg_in6 = {4'b0110,in6}; reg_in7 = {4'b0111,in7}; reg_in8 = {4'b1000,in8}; end reg_in9 = {4'b1001,in9}; else begin temp = reg_in0; reg_in0 = reg_in1; reg_in1 = reg_in2; reg_in2 = reg_in3; reg_in3 = reg_in4; reg_in4 = reg_in5; reg_in5 = reg_in6; reg_in6 = reg_in7; reg_in7 = reg_in8; reg_in8 = reg_in9; reg_in9 = temp; end end always @(posedge clk) begin if(rst) begin count = 4'b1001; nflag = 1'b1; else if(flag_0) count = count - 1; else begin {index_min1,min1} = reg_min1; min2 = reg_min2; nflag = 1'b0; end end end always @(negedge clk) begin Đại học Bách khoa TPHCM Trang TIEU LUAN MOI download : skknchat@gmail.com if (rst) begin reg_min1 = {4'b0000,in0}; reg_min2 = in1; else if(cp1&flag_0) begin reg_min2 = reg_min1[3:0]; end reg_min1 = reg_in1; else if(cp2&flag_0) reg_min2 end end = reg_in1[3:0]; endmodule module mf_compare(in0,in1,out); input[7:0] in0,in1; output reg out; wire[1:0] eq, grt; cp COMP0 (in0[3:0],in1[3:0],eq[0],grt[0]); cp COMP1 (in0[7:4],in1[7:4],eq[1],grt[1]); always @* begin if(eq[0]) else out

Ngày đăng: 14/06/2022, 17:52

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

TÀI LIỆU LIÊN QUAN

w