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

BÁO CÁO BÀI TẬP LỚN Môn học: THIẾT KẾ VLSI Đề tài: CODE RTL CHO SYNCHRONOUS FIFO

19 19 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

BÁO CÁO BÀI TẬP LỚN Môn học: THIẾT KẾ VLSI Đề tài: CODE RTL CHO SYNCHRONOUS FIFO MỤC LỤC MỤC LỤC 1 DANH MỤC HÌNH VẼ 2 DANH MỤC BẢNG CHIẾU 3 CHƯƠNG I. TỔNG QUAN VỀ HỆ THỐNG 4 1.1. Giới thiệu về Synchronous FIFO 4 1.2. Sơ đồ khối của Synchronous FIFO 4 1.3. Yêu cầu hoạt động 6 CHƯƠNG II. THIẾT KẾ SƠ ĐỒ KHỐI 7 2.1. Thiết kế sơ đồ khối 7 2.2. Xây dựng thuật toán 7 2.2.1. Cơ sở lý thuyết 7 2.2.2. Xây dựng mô hình thuật toán 9 CHƯƠNG III. THỰC NGHIỆM 12 CHƯƠNG IV. KẾT QUẢ MÔ PHỎNG 16 4.1. Thiết lập trạng thái sau đó yêu cầu ghi 16 4.2. Thiết lập trạng thái sau đó yêu cầu đọc 16 4.3. Thiết lập trạng thái sau đó 2 yêu cầu ghi 17 4.4. Thiết lập trạng thái sau đó 1 yêu cầu ghi và 1 yêu cầu đọc 18

ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG ĐIỆN – ĐIỆN TỬ BÁO CÁO BÀI TẬP LỚN Môn học: THIẾT KẾ VLSI Đề tài: CODE RTL CHO SYNCHRONOUS FIFO Giảng viên hướng dẫn: Nguyễn Vũ Thắng Mã lớp: 133390 Sinh viên thực hiện: Họ tên Mã số sinh viên Lớp Nguyễn Thị Quyên : 20182748 ĐTVT 06 – K63 Phạm Thị Lưu : 20182672 ĐTVT 06 – K63 Nguyễn Thị Kim Anh : 20182351 ĐTVT 06 – K63 Phạm Văn Bắc : 20182373 ĐTVT 06 – K63 Hà Nội, 27/07/2022 MỤC LỤC MỤC LỤC DANH MỤC HÌNH VẼ DANH MỤC BẢNG CHIẾU CHƯƠNG I TỔNG QUAN VỀ HỆ THỐNG .4 1.1 Giới thiệu Synchronous FIFO 1.2 Sơ đồ khối Synchronous FIFO 1.3 Yêu cầu hoạt động CHƯƠNG II THIẾT KẾ SƠ ĐỒ KHỐI 2.1 Thiết kế sơ đồ khối 2.2 Xây dựng thuật toán .7 2.2.1 Cơ sở lý thuyết 2.2.2 Xây dựng mơ hình thuật tốn .9 CHƯƠNG III THỰC NGHIỆM 12 CHƯƠNG IV KẾT QUẢ MÔ PHỎNG 16 4.1 Thiết lập trạng thái sau yêu cầu ghi .16 4.2 Thiết lập trạng thái sau yêu cầu đọc 16 4.3 Thiết lập trạng thái sau yêu cầu ghi 17 4.4 Thiết lập trạng thái sau yêu cầu ghi yêu cầu đọc .18 DANH MỤC HÌNH VẼ Figure Sơ đồ đầu vào SFIFO .4 Figure Sơ đồ khối SFIFO Figure Mơ hình đọc ghi liệu Figure Trạng thái đầu thu sau lần đọc ghi Figure Mơ hình thuật tốn 10 Figure Mô yêu cầu ghi 16 Figure Mô yêu cầu đọc .16 Figure Mô yêu cầu ghi 17 Figure Mô yêu cầu ghi yêu cầu đọc 18 DANH MỤC BẢNG CHIẾU Table Các chân input Table Các chân output CHƯƠNG I 1.1 TỔNG QUAN VỀ HỆ THỐNG Giới thiệu Synchronous FIFO Thiết kế Synchronous FIFO (FIFO đồng bộ):  FIFO hoạt động kho lưu trữ hai hệ thống Một hệ thống ghi liệu vào đệm; hệ thống khác truy xuất (tức đọc) liệu từ đệm xóa khỏi đệm Thứ tự truy xuất liệu giống thứ tự liệu lưu trữ đệm gọi first-in-first-out  Nếu hai hệ thống điều khiển xung clock) gọi Synchronous FIFO (FIFO đồng bộ) 1.2 Sơ đồ khối Synchronous FIFO Figure Sơ đồ đầu vào SFIFO Trong đó:  Các chân input: STT Chân tín hiệu Kích thước Mơ tả i_clk bit Tạo xung clock để đồng tín hiệu i_rst_n bit Thiết lập FIFO trạng thái ban đầu i_datain 32 bits Dữ liệu ghi vào FIFO i_almostempty_lvl bits Số ô trống it FIFO để o_almostfull hoạt động (cờ báo gần trống) i_almostfull_lvl bits Số ô trống nhiều FIFO để o_almostfull hoạt động (cờ báo gần đầy) i_valid_s bit Yêu cầu ghi liệu vào FIFO i_ready_m bit Yêu cầu đọc liệu từ FIFO Table Các chân input  Các chân output: STT Chân tín hiệu Kích thước Mơ tả o_empty bit Cờ báo FIFO trống o_full bit Cờ báo FIFO đầy o_almostfull bit Cờ báo FIFO gần đầy ( dựa vào chân i_almostfull_lvl) o_almostempty bit Cờ báo FIFO gần trống (dựa vào chân i_almostempty_lvl) o_valid_m bit Cờ báo sẵn sàng đọc liệu từ FIFO o_ready_s bit Cờ báo sẵn sàng ghi liệu vào FIFO o_dataout 32 bit Dữ liệu đọc từ FIFO Table Các chân output  Ngồi SFIFO có kích thước FIFO_DEPTH = 256 1.3 Yêu cầu hoạt động  Khi có tín hiệu reset (i_reset_n hoạt động mức thấp): o Cờ o_full) o_almostfull hoạt động mức thấp o Cờ o_empty o_almostempty hoạt động mức cao  Khi có yêu cầu đọc/ghi, kiểm tra trạng thái SFIFO: o FIFO đầy: không cho phép ghi liệu tới FIFO - Cờ o_full, o_almostfull o_valid_m hoạt động mức cao; cờ o_empty, o_almostempty o_ready_s hoạt động mức thấp o FIFO trống: không cho phép đọc liệu từ FIFO - Cờ o_empty, o_almostempty o_ready_s hoạt động mức cao; cờ o_full, o_almostfull o_valid_m hoạt động mức thấp o FIFO gần đầy: Cảnh báo đệm gần đầy, FIFO đọc/ ghi liệu - Cờ o_almostfull, o_ready_s o_valid_m hoạt động mức cao; cờ o_full, o_empty o_almostempty hoạt động mức thấp o FIFO gần trống: Cảnh báo đệm gần trống, FIFO đọc/ ghi liệu - Cờ o_almostempty, o_ready_s o_valid_m hoạt động mức cao; cờ o_full, o_empty o_almostfull hoạt động mức thấp  Sau đọc/ghi thành công liệu trỏ đọc/ ghi tăng lên CHƯƠNG II THIẾT KẾ SƠ ĐỒ KHỐI 2.1 Thiết kế sơ đồ khối  Từ yêu cầu đặt xây dựng hệ thống gồm bước chính: o Bước 1: Kiểm tra trạng thái chân reset o Bước 2: Kiểm tra trạng thái FIFO o Bước 3: Đọc/ghi liệu dựa vào yêu cầu đầu vào trạng thái FIFO thu bước Figure Sơ đồ khối SFIFO 2.2 Xây dựng thuật tốn 2.2.1 Cơ sở lý thuyết  Ví dụ mơ tả trình đọc ghi liệu SFIFO vị trí trỏ đọc ghi SFIFO có kích thước Figure Mơ hình đọc ghi liệu o Trạng thái SFIFO thu sau lần đọc ghi Figure Trạng thái đầu thu sau lần đọc ghi  Nhận xét: o SFIFO trạng thái trống trỏ đọc ghi trùng o SFIFO trạng thái đầy bit cuối trỏ đọc ghi trùng o Khi bit cuối trỏ đọc lớn bit cuối trỏ ghi khoảng cách giá trị số nhớ cịn trống đệm o Khi bit cuối trỏ ghi lớn bit cuối trỏ đọc khoảng cách giá trị số ô nhớ ghi đệm  So sánh ô nhớ trống với i_almostfull_lvl i_almostempty_lvl xác định trạng thái SFIFO o Để ghi liệu vào SFIFO: - i_valid_s (yêu cầu ghi liệu) o_ready_s (sẵn sàng ghi liệu) mức cao - Khi nhớ có địa bit cuối trỏ ghi = i_datain, trỏ ghi tăng lên o Tương tự để đọc liệu từ SFIFO: - i_ready_m (yêu cầu đọc liệu) o_valid_m (sẵn sàng đọc liệu) mức cao - Khi o_dataout = nhớ có địa bit cuối trỏ đọc, trỏ đọc tăng lên 2.2.2 Xây dựng mơ hình thuật tốn Xây dựng mơ hình thuật tốn cho Synchronous FIFO kích thước 256:  Ngồi chân input output, cần sử dụng trỏ đọc ghi có kích thước bit mảng rg_data với 256 phần tử, kích thước phần từ 32bit để lưu liệu  Mơ hình thuật tốn: Figure Mơ hình thuật tốn  Bước1(check_reset): Kiểm tra trạng thái chân reset o Khi reset hoạt động mức thấp: w-ptr[8:0], r_ptr[8:0] gán 0; o Khi reset mức cao kiểm tra i_valid_s o_ready_s mức cao: w_ptr = w_ptr + o Nếu sai kiểm tra tiếp i_ready_m o_valid_m mức cao: o r_ptr = r_ptr +  Bước (check_state): Kiểm tra trạng thái SFIFO 1/ Kiểm tra trỏ đọc ghi w_ptr[8:0] ≡ r_ptr[8:0] o Đúng: SFIFO trạng thái trống o Sai: Chuyển sang 2/ 2/ Kiểm tra trỏ đọc ghi w_ptr[7:0] ≡ r_ptr[7:0] o Đúng: SFIFO trạng thái đầy o Sai: Chuyển sang 3/ 10 3/ So sánh giá trị w_ptr[7:0] r_ptr[7:0] để xác định SFIFO có trạng thái gần đầu/ gần trống không: o Nếu w_ptr[7:0] < r_ptr[7:0]: số ô trống lại = r_ptr[7:0] – w_ptr[7:0]; o Nếu w_ptr[7:0] > r_ptr[7:0]: số trống cịn lại = FIFO_DEPTH – (w_ptr[7:0] - r_ptr[7:0]) Sau xác định ô trống lại so sánh giá trị với i_almostfull_lvl i_almostempty_lvl o Nếu số ô trống SFIFO trạng thái gần đầy o Nếu số ô trống >= i_almostempty => SFIFO trạng thái gần trống Bước 3(write_data read_data): Đọc/ghi liệu dựa vào yêu cầu đầu vào trạng thái FIFO thu bước 1/ Ghi liệu:  Nếu i_valid_s o_ready_s mức cao: rg_data[w_ptr] = i_datain  Sai: ghi liệu, w_ptr giữ nguyên trạng thái 2/ Đọc liệu:  Nếu i_ready_m o_valid_m mức cao: o_dataout = rg_data[r_ptr]  Sai: đọc liệu, r_ptr giữ nguyên trạng thái 11 CHƯƠNG III THỰC NGHIỆM Từ sơ đồ thuật tốn, lập trình ngơn ngữ RTL, thiết kế Synchronous FIFO theo bước Bước1(check_reset): Kiểm tra trạng thái chân reset always @ (posedge i_clk or negedge i_rst_n) begin if(~i_rst_n) begin w_ptr[8:0]

Ngày đăng: 20/06/2023, 08:55

Xem thêm:

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

TÀI LIỆU LIÊN QUAN

w