예, 통나무 및 바닥 기능을 위해 Quartus® II 소프트웨어의 math_real VHDL 패키지를 함께 사용할 때 근사치 문제가 있습니다. 특정 상황에서는 반올림 오류로 인해 잘못된 하한선이 계산될 수 있습니다.
예를 들어 math_real 패키지 함수를 사용하여 log2(8.0)를 계산할 때 정답은 3.0이어야 하지만 Quartus II 소프트웨어에서 실제 계산된 값은 2.999999999999999996입니다. 그런 다음 이 결과를 바닥으로 설정하면 결과는 3.0이 아닌 2.0이 됩니다.
예제
floor(log2(real(8))) = 2.0
Quartus II 소프트웨어에서 이 문제를 해결하려면 다음 옵션 중 하나를 사용합니다
- floor 함수가 로그 계산에 적용되는 경우 오차 한계를 추가합니다
- 예제:
floor(0.000001 log2(real(8))) = 3.0
- floor 함수 대신 정수 변환 함수 사용
- 예제:
integer (log2(real(8))) = 3.0
이 문제는 Quartus II 소프트웨어의 향후 릴리스에서 해결될 예정입니다.