Theo mặc định, khi lệnh tùy chỉnh được sử dụng, các hằng số dấu phép động được biên dịch dưới dạng các phép toán dấu phép chính xác đơn và độ chính xác đơn được triển khai trong phần cứng. Các giải pháp sau đây sẽ buộc các hằng số dấu hiển thị động được biên dịch dưới dạng các phép toán dấu hiển thị độ chính xác kép và độ chính xác kép được triển khai trong phần mềm.
Bạn có thể sử dụng một trong các giải pháp sau:
Tùy chọn 1 - Thay đổi phần mềm của bạn bằng cách thêm "L" postfix vào các hằng số dấu câu dấu hấp chính xác kép để đảm bảo các hằng số không được chuyển đổi thành độ chính xác duy nhất.
Bảng sau hiển thị mã ví dụ và cách sử dụng phần cứng hướng dẫn tùy chỉnh dấu hiển thị dấu hiển thị ví dụ, độ chính xác và việc triển khai có trong phần cứng hay phần mềm hay không.
Mã mẫu | Cách sử dụng FP CI | Chính xác | Thực hiện |
b= a * 4.67 | Có | Duy nhất | Phần cứng |
b = a * 4,67 | Không | Đôi | Phần mềm |
b = a * 4.67f | Có | Duy nhất | Phần cứng |
b = a * 4.67f | Không | Duy nhất | Phần mềm |
b = a * 4.67L | không quan tâm* | Đôi | Phần mềm |
Tùy chọn 2 - Trong public.mk , xóa thủ công cờ -mcustom-fpu-config và thay thế bằng cờ trình biên dịch riêng lẻ, nhưng bỏ qua cờ -fsingle-precision-constant.
"-mcustom-fpu-config=60-1" thành "-mcustom-fmuls=252 –mcustom-fadds=253 –mcustom-fsubs=254" hoặc
"-mcustom-fpu-config=60-2" thành "-mcustom-fmuls=252 –mcustom-fadds=253 –mcustom-fsubs=254 –mcustom-divs=255"
Xin lưu ý rằng sự khác biệt giữa 60-1 và 60-2 là 60-1 không có cờ –mcustom-divs.
Để biết thêm chi tiết, hãy tham khảo Phụ lục D tại http://www.altera.com/literature/ug/ug_nios2_custom_instruction.pdf