Do yêu cầu đối với bảng ROM/RAM tra cứu được lắp sẵn trong tất cả các phiên bản của thành phần Floating-Point Hardware 2, lệnh tùy chỉnh Nios® II cho căn bậc hai dấu hiển thị sẽ bị lỗi trong các thiết kế Intel® MAX® 10 FPGA sử dụng các chế độ cấu hình khởi tạo trước RAM bao gồm "Hình ảnh nén kép", "Hình ảnh nén đơn", và "Hình ảnh nén đơn".
Ở các chế độ này, flash không đủ lớn để hỗ trợ khởi tạo RAM trước, vì vậy lệnh sqrt sẽ bị lỗi. Phần mềm Quartus® II phiên bản 15.1 trở lên có thể gây ra lỗi biên dịch nếu FPCI2 được khởi tạo và khởi tạo bộ nhớ bị vô hiệu hóa do chế độ cấu hình được đặt cho Intel MAX 10 FPGA hoặc các lý do khác.
Lỗi (16031): Chế độ Cấu hình Nội bộ Hiện tại không hỗ trợ khởi tạo bộ nhớ hoặc ROM. Chọn chế độ Cấu hình nội bộ với ERAM.
Để giải quyết vấn đề này trong phần mềm Quartus II phiên bản 15.0 trở lên, hãy làm theo các bước sau:
- Truy cập fpoint2_multi_datapath.vhd và bình luận về sự tức thì FPSqrt tại các dòng 168 đến 174.
sqrt: Bản đồ cổng FPSqrt (
x => dataa,
r => fsqrts,
clk => clk,
reset_req => reset_req,
areset => lại
);
- Biên dịch lại thiết kế của bạn trong phần mềm Quartus II.
- Truy cập altera_nios_custom_instr_floating_point_2.c nằm trong thư mục HAL của bsp của bạn. Thêm "#undef sqrtf" ngay sau khi có "altera_nios_custom_instr_floating_point_2.h" trong mã C để vô hiệu hóa việc sử dụng lệnh tùy chỉnh sqrtf của phần mềm.
Mã:
#include "altera_nios_custom_instr_floating_point_2.h"
#undef sqrtf
- Xây dựng lại tất cả các phần mềm và thư viện ứng dụng với những thay đổi này.
Để giải quyết vấn đề này trong phần mềm Quartus II phiên bản 15.0 trở lên, hãy làm theo bước này:
- Sử dụng hộp kiểm để xóa lệnh tùy chỉnh sqrt khỏi FPH2 trong GUI Trình thiết kế nền tảng.
Sự cố này được khắc phục trong phần mềm Quartus II v16.0.