Mục lục:

Thiết kế bộ điều khiển bộ nhớ đệm đơn giản trong VHDL: 4 bước
Thiết kế bộ điều khiển bộ nhớ đệm đơn giản trong VHDL: 4 bước

Video: Thiết kế bộ điều khiển bộ nhớ đệm đơn giản trong VHDL: 4 bước

Video: Thiết kế bộ điều khiển bộ nhớ đệm đơn giản trong VHDL: 4 bước
Video: VHDL. Truyền dữ liệu UART: thiết kế khối lưu trữ dữ liệu tạm FIFO (RX). 2024, Tháng sáu
Anonim
Thiết kế bộ điều khiển bộ nhớ đệm đơn giản trong VHDL
Thiết kế bộ điều khiển bộ nhớ đệm đơn giản trong VHDL

Tôi đang viết hướng dẫn này, bởi vì tôi thấy hơi khó khăn khi lấy một số mã VHDL tham khảo để tìm hiểu và bắt đầu thiết kế bộ điều khiển bộ nhớ cache. Vì vậy, tôi đã tự thiết kế một bộ điều khiển bộ nhớ cache từ đầu và thử nghiệm nó thành công trên FPGA. Tôi đã trình bày một bộ điều khiển bộ nhớ cache được ánh xạ trực tiếp đơn giản ở đây, cũng như đã mô hình hóa toàn bộ Hệ thống Bộ xử lý-Bộ nhớ để kiểm tra Bộ điều khiển Bộ nhớ cache. Tôi hy vọng các bạn thấy hướng dẫn này hữu ích như một tài liệu tham khảo để thiết kế bộ điều khiển bộ nhớ cache của riêng bạn.

Bước 1: Thông số kỹ thuật

Thông số kỹ thuật
Thông số kỹ thuật

Đây là các thông số kỹ thuật chính của Bộ điều khiển bộ nhớ đệm mà chúng tôi sẽ thiết kế:

  • Ánh xạ trực tiếp. (hãy truy cập liên kết này nếu đang tìm kiếm Bộ điều khiển bộ nhớ cache được ánh xạ liên kết)
  • Bộ nhớ đệm đơn, chặn.
  • Chính sách Viết qua về Ghi lượt truy cập.
  • Phân bổ No-Write hoặc Viết xung quanh Chính sách về Ghi đều bị lỗi.
  • Không có bộ đệm ghi hoặc các tối ưu hóa khác.
  • Mảng thẻ được hợp nhất.

Bên cạnh đó, chúng tôi cũng sẽ thiết kế Bộ nhớ Cache và Hệ thống Bộ nhớ Chính.

Các thông số kỹ thuật mặc định (có thể cấu hình) của Bộ nhớ Cache:

  • 256 byte bộ nhớ đệm đơn ngân hàng.
  • 16 Dòng Cache, mỗi Dòng Cache (Khối) = 16 Byte.

Các thông số kỹ thuật của Bộ nhớ chính:

  • Bộ nhớ đọc / ghi đồng bộ.
  • Bộ nhớ xen kẽ đa ngân hàng - bốn ngân hàng bộ nhớ.
  • Mỗi quy mô ngân hàng = 1 kB mỗi. Do đó, tổng kích thước = 4 kB.
  • Bộ nhớ địa chỉ Word (4 Byte) với Bus địa chỉ 10-bit.
  • Băng thông cao hơn để đọc. Đọc độ rộng dữ liệu = 16 byte trong một chu kỳ đồng hồ.
  • Chiều rộng ghi dữ liệu = 4 byte.

LƯU Ý: hãy kiểm tra có thể hướng dẫn mới hơn của tôi nếu bạn đang tìm kiếm thiết kế bộ điều khiển bộ nhớ đệm liên kết 4 chiều

Bước 2: Chế độ xem RTL của Toàn bộ Hệ thống

Chế độ xem RTL của Toàn bộ Hệ thống
Chế độ xem RTL của Toàn bộ Hệ thống

Toàn bộ biểu diễn RTL của Mô-đun trên cùng được hiển thị trong Hình (không bao gồm bộ xử lý). Thông số kỹ thuật mặc định cho các xe buýt là:

  • Tất cả các Xe buýt dữ liệu đều là Xe buýt 32-bit.
  • Bus địa chỉ = Bus 32-bit (Nhưng chỉ có 10 bit được Bộ nhớ định địa chỉ ở đây).
  • Khối dữ liệu = 128 bit (Bus băng thông rộng để đọc).
  • Tất cả các thành phần được điều khiển bởi cùng một đồng hồ.

Bước 3: Môi trường thử nghiệm

Mô-đun trên cùng đã được kiểm tra bằng cách sử dụng Ghế thử nghiệm, đơn giản là mô hình hóa một Bộ xử lý không có đường ống (Bởi vì việc thiết kế toàn bộ một bộ xử lý không hề dễ dàng chút nào !!). Ghế thử nghiệm thường xuyên tạo ra các yêu cầu Đọc / Ghi Dữ liệu vào Bộ nhớ. Điều này chế nhạo các lệnh "Tải" và "Lưu trữ" điển hình, phổ biến trong tất cả các chương trình được thực thi bởi bộ xử lý. Kết quả kiểm tra đã xác minh thành công chức năng của Bộ điều khiển bộ nhớ đệm. Sau đây là các số liệu thống kê thử nghiệm được quan sát:

  • Tất cả các tín hiệu Đọc / Ghi Miss và Hit đều được tạo chính xác.
  • Tất cả các thao tác Đọc / Ghi Dữ liệu đều thành công.
  • Không phát hiện vấn đề không nhất quán / không nhất quán của dữ liệu.
  • Thiết kế đã được xác minh thời gian thành công cho Maxm. Xung nhịp Tần số hoạt động = 110 MHz trong Bo mạch Xilinx Virtex-4 ML-403 (toàn bộ hệ thống), 195 MHz cho riêng Bộ điều khiển bộ nhớ cache.
  • Khối RAM được suy ra cho Bộ nhớ chính. Tất cả các mảng khác đã được thực hiện trên LUT.

Bước 4: Tệp đính kèm

Các tệp sau được đính kèm ở đây với blog này:

  • Các tệp. VHD của Bộ điều khiển bộ đệm, Mảng Dữ liệu Bộ đệm, Hệ thống Bộ nhớ Chính.
  • Kiểm tra băng ghế dự bị.
  • Tài liệu về Bộ điều khiển bộ nhớ cache.

Ghi chú:

  • Xem qua tài liệu để hiểu đầy đủ về các thông số kỹ thuật của Bộ điều khiển bộ nhớ cache được trình bày ở đây.
  • Bất kỳ thay đổi nào trong mã đều phụ thuộc vào các mô-đun khác. Vì vậy, các thay đổi nên được thực hiện một cách thận trọng. Hãy chú ý đến tất cả các nhận xét và tiêu đề mà tôi đã đưa ra.
  • Nếu vì bất kỳ lý do gì, Block RAM không được suy ra cho Bộ nhớ chính, GIẢM kích thước của bộ nhớ, tiếp theo là các thay đổi về độ rộng bus địa chỉ trên các tệp, v.v. Vì vậy, cùng một bộ nhớ có thể được thực hiện trên LUT hoặc RAM phân tán. Điều này sẽ tiết kiệm thời gian định tuyến và tài nguyên. Hoặc, đi tới tài liệu FPGA cụ thể và tìm mã tương thích cho Block RAM và chỉnh sửa mã cho phù hợp, đồng thời sử dụng các thông số kỹ thuật về độ rộng bus địa chỉ tương tự. Kỹ thuật tương tự cho Altera FPGA.

Đề xuất: