1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu chi tiết về fifo buffer

17 149 5

Đ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

Lời nói đầu Ngày nay, việc sử dụng FPGA như một giải pháp cung cấp môi trường làm việc hiệu quả cho các ứng dụng thực tế. Tính linh động cao trong quá trình thiết kế cho phép FPGA giải quyết những bài toán phức tạp mà trước kia chỉ thực hiện nhờ phần mềm máy tính. Ngoài ra, nhờ mật độ cổng logic cao, FPGA được ứng dụng cho những bài toán đòi hỏi khối lượng tính toán lớn và cho phép người dùng có khả năng can thiệp sâu vào hệ thống. Qua quá trình tìm hiểu, nhóm chúng em đã thực hiện được ứng dụng bộ đệm FIFO trên FPGA nhằm hướng tới việc sử dụng FPGA như một công cụ để giải quyết bài toán truyền, nhận và xử lý tín hiệu. Để phục vụ cho múc đích này, nhóm chúng em đã tìm hiểu chi tiết về FIFO và thực hiện đề tài thiết kế được bộ đệm dùng ngôn ngữ mô tả phần cúng HVDL dưới đây.

ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG KHOA ĐIỆN TỬ-VIỄN THÔNG BÁO CÁO CHUYÊN ĐỀ KỸ THUẬT ĐIỆN TỬ ĐỀ TÀI : FIFO BUFFER GVHD : Thầy Huỳnh Việt Thắng NHÓM Đà Nẵng, 2021 Lời nói đầu Ngày nay, việc sử dụng FPGA giải pháp cung cấp môi trường làm việc hiệu cho ứng dụng thực tế Tính linh động cao q trình thiết kế cho phép FPGA giải toán phức tạp mà trước thực nhờ phần mềm máy tính Ngồi ra, nhờ mật độ cổng logic cao, FPGA ứng dụng cho tốn địi hỏi khối lượng tính tốn lớn cho phép người dùng có khả can thiệp sâu vào hệ thống Qua q trình tìm hiểu, nhóm chúng em thực ứng dụng đệm FIFO FPGA nhằm hướng tới việc sử dụng FPGA công cụ để giải toán truyền, nhận xử lý tín hiệu Để phục vụ cho múc đích này, nhóm chúng em tìm hiểu chi tiết FIFO thực đề tài thiết kế đệm dùng ngôn ngữ mô tả phần cúng HVDL I Giới thiệu FPGA Basys3 Artix-7: - cổng Pmod: cổng Pmod 12 chân tiêu chuẩn, cổng Pmod tiêu chuẩn/tín - hiệu XADC Màn hình chữ số led đoạn 16 công tắc 16 đèn led, button Cổng kết nối cho USB, bàn phím, thẻ nhớ Cổng VGA 12 bit, cổng USB-UART Cổng USB-JTAG kỹ thuật số để lập trình giao tiếp FPGA Bộ chuyển đổi tương tự- kỹ thuật số chip (XADC) II Bộ nhớ đệm FIFO: - FIFO (First-In-First-Out) khối nhớ đệm đặc biệt, r ất hay ứng d ụng hệ thống truyền dẫn số, dùng làm khối đệm thi ết bị lưu trữ - Dữ liệu ghi vào trước đọc trước Khi cho phép ghi, liệu bên ghi vào nhớ đệm Khi có tín hiệu cho phép đ ọc, d ữ liệu đọc từ nhớ đệm theo thứ tự ghi Tùy theo yêu cầu cụ thể mà FIFO thiết kế cách khác H1.1 Sơ đồ khái niệm nhớ đệm FIFO - Các thành phần nhớ nằm vòng tròn với hai trỏ write (ghi) read (đọc) Đầu tiên ta có trỏ ghi đọc đầu vòng tròn Ta tăng trỏ đọc lên để ghi liệu vào đệm Sau ghi ô nhỏ vòng tròn ta bắt đầu tăng trỏ đọc lên để đọc li ệu Cứ cho hết vòng tròn ta liệu y nh giá tr ị d ữ li ệu - ban đầu Bộ đệm gồm flags ( cờ ): empty( rỗng ) full ( đầy)  Flags full trạng thái trỏ ghi thực ghi liệu vòng tròn gặp trỏ đọc vòng tròn thứ Nói cách khác, trỏ đọc trùng với trỏ ghi vòng quay tr ỏ ghi l ớn h ơn trỏ đọc vòng Dữ liệu chưa đọc mà có tín hi ệu ghi vào nhớ Khi ta khơng phép ghi liệu vào  Flags empty: trạng thái trỏ đọc trùng v ới tr ỏ ghi c ả trỏ vịng Dữ liệu chưa ghi vào có tín hiệu đọc => xem liệu bị H2.2 Mơ hình hoạt động FIFO III MƠ TẢ BÀI TOÁN: - Thiết kế nhớ đệm FIFO 16 ô nhớ, ô nhớ bit bao gồm trang thái full empty - Bộ nhớ đệm FIFO gồm module:  Register file  Con trỏ ghi (write_pointer)  Con trỏ đọc (read_pointer)  cờ trạng thái Full (đầy) Empty (rỗng) clk rst wr rd data_in [7:0] data_out FIFO buffer fifo_empty H 2.1 Sơ đồ tín hiệu giao tiếp FIFO - - [7:0] fifo_full Ngõ vào input:  clk: xung clock đọc ghi liệu  rst : reset tích cực mức thấp  wr: tín hiệu cho phép ghi liệu vào FIFO  rd : tín hiệu chó phép đọc liệu từ FIFO  data_in : bus liệu ghi vào Ngõ output:  data_out: bus liệu đọc  fifo_full: Fifo báo trạng thái đầy  fifo_empty: Fifo báo trạng thái rỗng Sơ đồ khối mạch báo trạng thái full empty  rptr [4:0] : địa trỏ đọc  wptr [4:0] : địa trỏ ghi Sơ đồ khối register file  fifo_wr : tín hiệu cho phép ghi nhớ khơng đầy có tín hiệu wr Sơ đồ khối trỏ đọc read pointer Sơ đồ khối trỏ ghi write pointer III THỰC HIỆN 3.1 Chương trinh VHDL thực thiết kế Library IEEE; USE IEEE.Std_logic_1164.all; -entity Top_level is port( data_out : out std_logic_vector(7 downto 0); fifo_full, fifo_empty : out std_logic; clk :in std_logic; rst: in std_logic; wr :in std_logic; rd: in std_logic; data_in: in std_logic_vector(7 downto 0) ); end Top_level; architecture Behavioral of Top_level is component write_pointer port( wptr : out std_logic_vector(4 downto 0); fifo_wr: out std_logic; clk :in std_logic; rst: in std_logic; wr :in std_logic; fifo_full: in std_logic ); end component; component read_pointer port( rptr : out std_logic_vector(4 downto 0); fifo_rd: out std_logic; clk :in std_logic; rst: in std_logic; rd :in std_logic; fifo_empty: in std_logic ); end component; component register_1 port( data_out : out std_logic_vector(7 downto 0); rptr: in std_logic_vector(4 downto 0); clk :in std_logic; fifo_wr: in std_logic; tin hieu cho phep ghi wptr :in std_logic_vector(4 downto 0); data_in: in std_logic_vector(7 downto 0) ); end component; component state_FIFO port( fifo_full, fifo_empty: out std_logic; wptr, rptr: in std_logic_vector(4 downto 0) ); end component; signal empty, full: std_logic; signal wptr,rptr: std_logic_vector(4 downto 0); signal fifo_wr,fifo_rd: std_logic; begin writee_pointer: write_pointer port map ( wptr => wptr, fifo_wr => fifo_wr, wr => wr, fifo_full => full, clk => clk, rst => rst ); readd_pointer: read_pointer port map ( rptr => rptr, fifo_rd => fifo_rd, rd => rd , fifo_empty => empty, clk => clk, rst => rst ); register_file: register_1 port map ( data_out => data_out, data_in => data_in, clk => clk, fifo_wr => fifo_wr, wptr => wptr, rptr => rptr ); state_FIFO_unit: state_FIFO port map ( fifo_full => full, fifo_empty => empty, wptr => wptr, 10 3.2 rptr => rptr ); fifo_empty

Ngày đăng: 05/08/2021, 09:30

Xem thêm:

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w