Logo Zephyrnet

Chẩn đoán MPSoC PS DDR bằng Ứng dụng zynqmp_dram_test

Ngày:

Giới thiệu:

Trong mục blog này, chúng ta sẽ khám phá cách chạy kiểm tra chẩn đoán trên MPSoC PS DDR bằng ứng dụng zynqmp_dram_test của chúng tôi trên Zynq UltraScale + MPSoC. Trong ví dụ này, chúng tôi sẽ sử dụng Vivado 2020.2 và Vitis ™ 2020.2.

Chúng ta sẽ thấy:

  • Cách tạo thiết kế đơn giản với PS DDR trong Vivado.
  • Cách tạo tệp XSA.
  • Cách tạo một dự án ứng dụng Vitis bằng cách sử dụng zynqmp_dram_test bản mẫu.
  • Làm thế nào để chạy zynqmp_dram_test ứng dụng trên Zynq UltraScale + MPSoC.
  • Cách lấy phiên bản mới nhất của zynqmp_dram_test ứng dụng từ GitHub.

yêu cầu:

  • Vivado 2020.2
  • Vitis 2020.2
  • Mục tiêu Zynq UltraScale + MPSoC

Kiểm tra chẩn đoán DRAM ZynqMP:

Kiểm tra chẩn đoán Zynq MP DRAM là một chương trình độc lập chạy trên một bộ xử lý Zynq MPSoC Cortex-A53 duy nhất, thực thi ngoài OCM. Chương trình sử dụng UART cho các hoạt động tương tác. Một menu nhỏ được hiển thị và người dùng có thể chọn chạy các bài kiểm tra bộ nhớ khác nhau.

Bài kiểm tra cung cấp nhiều bài kiểm tra bộ nhớ với các mẫu dữ liệu có thể định cấu hình và phạm vi bộ nhớ có thể định cấu hình. Nó cũng cung cấp các phép đo mắt Đọc và Viết.

Quan trọng: Không chạy ứng dụng này từ DDR vì mã sẽ bị ghi đè bởi các truy cập ghi do chính ứng dụng thực hiện vào DDR.


Bước sau:

Mở Vivado.

Tạo một dự án mới:

abouassi_0-1615404917983.png

Đặt tên dự án. Đối với ví dụ này, chúng tôi sẽ đặt nó thành ”zynq_mp_dram_diagnostic”:

abouassi_1-1615404917987.png

Bấm tiếp.

Chọn “Dự án RTL”:

abouassi_2-1615404917992.png

Chọn một bộ phận Zynq UltraScale + từ tab Bộ phận.

Nhấp vào Tiếp theo, sau đó nhấp vào Kết thúc.

Bây giờ chúng ta cần tạo một Thiết kế khối, trong đó chúng ta sẽ tạo thiết kế của mình.

Nhấp vào “Tạo thiết kế khối”:

abouassi_0-1617700949540.png

Chọn tên Thiết kế khối. Trong ví dụ này, chúng tôi chỉ sử dụng cái mặc định:

abouassi_6-1615404918016.png

Sau khi tạo Thiết kế khối, hãy nhấp vào “Thêm IP” trong cửa sổ Sơ đồ:

abouassi_7-1615404918016.png

Tìm kiếm IP MPSoC, sau đó nhấp đúp vào “Zynq UltraScale + MPSoC” để khởi tạo nó:

abouassi_8-1615404918019.png

Nhấp đúp vào IP MPSoC để cấu hình MPSoC của chúng tôi.

Từ tab Cấu hình I / O, bật thiết bị ngoại vi UART0. Chúng tôi cần điều này để có được đầu ra thử nghiệm.

abouassi_1-1617701051946.png

Từ tab Cấu hình đồng hồ, đặt đồng hồ GPU thành VPLL và đồng hồ DDR thành DPLL:

abouassi_2-1617701051958.png

Từ Cấu hình DDR, hãy đặt cấu hình DDR phù hợp với thiết lập DDR trên mục tiêu của bạn:

abouassi_3-1617701051966.png

Kết nối các đồng hồ như sau:

abouassi_4-1617701051969.png

Thiết kế hiện đã sẵn sàng, nhưng cần có một số bước bổ sung để chúng tôi có thể xuất phần cứng, tạo tệp XSA và sử dụng nó với Vitis để tạo kiểm tra Chẩn đoán DRAM Zynq.

Nhấp chuột phải vào Thiết kế khối, sau đó "Tạo HDL Wrapper":

abouassi_5-1617701051982.png

abouassi_6-1617701051985.png

Nhấp chuột phải vào Thiết kế khối, sau đó nhấp vào “Tạo sản phẩm đầu ra”:

abouassi_7-1617701175964.png

Nhấp vào "Tạo":

abouassi_15-1615404918054.png

Bạn sẽ nhận được cửa sổ bật lên này sau khi Sản phẩm đầu ra được tạo:

abouassi_16-1615404918054.png

Sau khi tạo Sản phẩm đầu ra, chúng ta cần tạo tệp XSA.

- Từ menu chính, chọn Tệp> Xuất> Xuất phần cứng.

abouassi_17-1615404918059.png

Nhấn tiếp:

abouassi_18-1615404918062.png

Đặt tùy chọn "Tổng hợp trước". Bởi vì chúng tôi không có bất kỳ thứ gì trên PL, nên không cần tạo Bitstream và đưa nó vào tệp XSA của chúng tôi:

abouassi_19-1615404918064.png

Đặt tên và vị trí cho tệp XSA:

abouassi_20-1615404918067.png

Nhấp vào Kết thúc:

abouassi_21-1615404918071.png

Bây giờ, tệp XSA đã được tạo và chúng ta cần mở Vitis để tạo một dự án ứng dụng bằng tệp XSA đó.

Bạn có thể mở Vitis từ Vivado.

Từ menu chính, chọn Công cụ> Khởi chạy Vitis IDE:

abouassi_22-1615404918076.png

Chọn thư mục không gian làm việc Vitis:

abouassi_23-1615404918078.png

abouassi_24-1615404918083.png

Để tạo một dự án ứng dụng, hãy nhấp vào Tệp> Dự án ứng dụng:

abouassi_25-1615404918088.png

Nhấn tiếp:

abouassi_26-1615404918096.png

Chọn tab “Tạo nền tảng mới từ phần cứng (XSA)”:

abouassi_27-1615404918098.png

Nhấp vào nút “Duyệt qua” và chọn tệp XSA mà chúng tôi đã tạo trước đó. Đảm bảo chọn hộp kiểm “Tạo thành phần khởi động” để FSBL sẽ được tạo tự động. FSBL là cần thiết để khởi động bo mạch trước khi tải ứng dụng:

abouassi_28-1615404918103.png

Đặt tên dự án Ứng dụng và chọn bộ xử lý mà bạn muốn chạy ứng dụng:

abouassi_29-1615404918109.png

Tạo một miền độc lập để kiểm tra ứng dụng DDR của chúng tôi:

abouassi_30-1615404918113.png

Sau đó chọn mẫu “Zynq MP DRAM Tests”:

abouassi_31-1615404918119.png

Thao tác này sẽ kéo kiểm tra Zynq MP DRAM từ thư mục cài đặt công cụ Xilinx của bạn. Nếu bạn đang sử dụng phiên bản công cụ cũ và bạn muốn sử dụng phiên bản mới nhất của ứng dụng này, hãy xem phần “Kéo Zynq MP DRAM từ GitHub” bên dưới.

Để xây dựng ứng dụng, trước tiên hãy chọn nó, sau đó nhấp vào biểu tượng xây dựng:

abouassi_32-1615404918130.png

Thao tác này sẽ biên dịch ứng dụng và tạo zynqmp_dram_diagnostic.elf

abouassi_33-1615404918132.png

Trước khi chạy ứng dụng, chế độ khởi động phải được đặt thành chế độ khởi động JTAG trên mục tiêu, sau đó kết nối nó với máy chủ của bạn.

Sử dụng bất kỳ tiện ích Serial Terminal nào để kết nối với cổng UART của bo mạch.

Để chạy ứng dụng, nhấp chuột phải vào dự án ứng dụng và chọn Chạy như> Chạy cấu hình:

abouassi_34-1615404918144.png

Nhấp đúp vào “Gỡ lỗi ứng dụng đơn” để tạo cấu hình gỡ lỗi / chạy mới:

abouassi_35-1615404918153.png

Nhấp vào cấu hình mới tạo, sau đó kiểm tra cấu hình:

abouassi_36-1615404918160.png

Trên tab “Ứng dụng”, bỏ chọn tùy chọn “Dừng ở 'chính'”, vì chúng tôi không cần dừng lại ở chính khi chạy ứng dụng của mình:

abouassi_37-1615404918170.png

Trên tab "Thiết lập mục tiêu", hãy đảm bảo sử dụng luồng FSBL để khởi chạy, sau đó nhấp vào Chạy:

abouassi_38-1615404918183.png

Trên thiết bị đầu cuối của bạn, bạn sẽ thấy rằng ứng dụng đã bắt đầu thực thi và bạn sẽ nhận được kết quả sau:

abouassi_39-1615404918190.png

Để đảm bảo chức năng chính xác của bài kiểm tra, bạn nên kiểm tra xem hiệu chuẩn DDR đã được thực hiện thành công chưa. Điều này có thể được thực hiện bằng cách kiểm tra Thanh ghi trạng thái chung PHY 0 (PGSR0) tại 0xFD080030.

Để đạt được kết quả tốt nhất của bài kiểm tra, bạn nên thực hiện những điều sau:

  • Thực hiện kiểm tra phân tích mắt đọc bằng cách sử dụng tùy chọn 'r' và kiểm tra kết quả chiều rộng và tâm của mắt.
  • Thực hiện bài kiểm tra phân tích mắt bằng cách sử dụng tùy chọn 'w' và kiểm tra kết quả chiều rộng và tâm của mắt.
  • Lặp lại Kiểm tra bộ nhớ với số lần lặp cao thông qua 'Chọn số lần lặp lại….' Sử dụng tùy chọn 'l', để thử và sao chép các lỗi dữ liệu.
  • Nhắm mục tiêu toàn bộ phạm vi bộ nhớ khả dụng bằng cách sử dụng tùy chọn 0-9 phù hợp với kích thước thiết lập bộ nhớ của bạn hoặc sử dụng 'm' hoặc 'g' cho bất kỳ kích thước nào khác.
  • Bật Chế độ chi tiết để báo cáo lỗi tốt hơn bằng cách sử dụng tùy chọn 'v'.
  • Kích hoạt Data Cache bằng cách sử dụng tùy chọn 'o'.
  • Các cấu hình DDR có bật ECC đã tắt bộ nhớ đệm dữ liệu, điều này làm giảm băng thông và căng thẳng trên giao diện. Bạn nên tắt ECC đối với các bài kiểm tra căng thẳng về trí nhớ cao hơn.

Để biết chi tiết về cách sử dụng các bài kiểm tra DRAM ZynqMP, bạn có thể nhấn 'h' để in trợ giúp hoặc bạn có thể mở tài liệu kiểm tra “ZYNQMP_DRAM_DIGNOSTICS_TEST.docx” để biết thêm chi tiết:

abouassi_40-1615404918192.png


Kéo Zynq MP DRAM từ GitHub:

Bạn có thể tìm thấy phiên bản mới nhất của bài kiểm tra ZynqMP DRAM trên GitHub tại vị trí sau:

https://github.com/Xilinx/embeddedsw/tree/master/lib/sw_apps/zynqmp_dram_test

Sau khi tải xuống zynqmp_dram_test thư mục, tạo một thư mục mới ở vị trí bạn chọn. Trong ví dụ này, chúng tôi đặt tên nó là “repo”. Tạo một thư mục khác bên trong nó và đặt tên là sw_app.

Sau đó sao chép zynqmp_dram_test ở đó. Bạn sẽ kết thúc với một hệ thống phân cấp thư mục tương tự như ví dụ bên dưới:

abouassi_41-1615404918193.png

Bạn sẽ cần thêm thư mục này làm kho lưu trữ cho Vitis trước khi tạo dự án ứng dụng của chúng tôi.

- Từ menu Chính mở ra Xilinx> Kho:

abouassi_42-1615404918199.png

Nhấp vào Mới và sau đó chọn đường dẫn của thư mục repo mà chúng tôi đã tạo:

abouassi_43-1615404918206.png

Nhấp vào “Áp dụng” rồi “Áp dụng và Đóng”.

Bây giờ, khi bạn tạo một dự án ứng dụng mới bằng cách sử dụng zynq_mp_dram_test, nó sẽ được tìm nạp từ thư mục repo chứ không phải từ thư mục cài đặt của bạn.

Coinsmart. Đặt cạnh Bitcoin-Börse ở Europa
Nguồn: https://forums.xilinx.com/t5/Design-and-Debug-Techniques-Blog/Diagnosing-MPSoC-PS-DDR-Using-The-zynqmp-dram-test-Application/ba-p/1216727

tại chỗ_img

Tin tức mới nhất

tại chỗ_img