Do sự cố trong thuật toán hiệu chuẩn Bộ điều khiển SDRAM HPS do Bộ thiết kế nhúng SoC Altera tạo cho các thiết bị SoC Cyclone® V và SoC Arria® V, báo cáo trung tâm hỗ trợ DQS có thể lớn hơn cả báo cáo bắt đầu và kết thúc.
Thuật toán hiệu chuẩn tìm các tham số tối đa và tối thiểu cho một số độ trễ và chọn giá trị trung tâm. Để kích hoạt DQS, cả báo cáo bắt đầu và kết thúc đã được chuẩn hóa thành VFIFO_SIZE, nhưng báo cáo trung tâm không được chuẩn hóa, vì vậy nó có thể xuất hiện nằm ngoài phạm vi bắt đầu: kết thúc.
VFIFO_SIZE được đặt thành 16 cho các thiết bị Cyclone® V và Arria® V.
Lưu ý: Để bật báo cáo này, phải đặt RUNTIME_CAL_REPORT macro, báo cáo kết quả quá trình hiệu chuẩn cho stdout (thường là UART).
Báo cáo VFIFO trung tâm nên được chia cho 16 là VFIFO_SIZE và phần còn lại là độ trễ VFIFO.
Ví dụ:
SEQ. C: Kích hoạt DQS; Nhóm 0 ; Hạng 0 ; Khởi động VFIFO 6 ; Giai đoạn 1 ; Độ trễ 4
SEQ. C: Kích hoạt DQS; Nhóm 0 ; Hạng 0 ; Kết thúc VFIFO 7 ; Giai đoạn 0 ; Độ trễ 18
SEQ. C: Kích hoạt DQS; Nhóm 0 ; Hạng 0 ; Trung tâm VFIFO 22 ; Giai đoạn 5 ; Độ trễ 3
Giá trị VFIFO trung tâm thực sự là 22% 16 = 6, nằm trong khoảng từ 6 đến 7 như mong đợi.
Mã bộ tải trước đã tạo có thể được sửa đổi để thực hiện thay đổi này như sau:
1. Mở <preloader>\uboot-socfpga\board\altera\socfpga\sdram\sequencer.c
2. Tìm kiếm dòng sau :
RPRINT ("Kích hoạt DQS; Nhóm %lu ; Xếp hạng %lu ; Trung tâm VFIFO %2li; Giai đoạn %li ; Độ trễ %2li", grp, sr, v, p-1, d);
3. Thay thế bằng dòng này:
RPRINT ("Kích hoạt DQS; Nhóm %lu ; Xếp hạng %lu ; Trung tâm VFIFO %2li; Giai đoạn %li ; Độ trễ %2li", grp, sr, (v % VFIFO_SIZE), p-1, d);
4. Tạo lại Preloader của bạn bằng cách chạy:
làm sạch; Thực hiện.
Sự cố này được khắc phục bắt đầu từ bộ thiết kế nhúng SoC Altera 15.1.