variable cmp_diference : real;
variable y_aus_tb : real := 4.9261;
variable log3X : real := 4.929947e+00;
.
.
cmp_diference := y_aus_tb - log3X;
assert cmp_diference < 0.005 report "log3X = " & real'image(log3X);
assert cmp_diference < 0.005 report "Diference = " & real'image(cmp_diference);
Таким образом, проблема в том, что & real'image(log3X)
отображает правильное значение в правильном случае в TCL, но & real'image(cmp_diference)
дисплеи: 3.252959e-03
также в правильном случае, но неправильное значение ... Значение для отображения будет ~ -0.003847
...vivado отображает неправильно действительные числа - испытательный стенд - VHDL
Есть ли что-то не так с Vivado 2016.1, или что-то не так, что я делаю?
Большое спасибо!
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;
USE IEEE.MATH_REAL.ALL;
ENTITY tb_log3X IS
END tb_log3X;
ARCHITECTURE behavior OF tb_log3X IS
BEGIN
Test_IO : process
variable log3X : real := 0.0;
variable x_ein_tb : integer := 0;
variable cmp_diference : real := 0.0;
variable y_aus_tb : real := 0.0;
begin
wait for 21.2 ms; --wait for some reason
x_ein_tb := 224;
y_aus_tb := 4,9261;
-- Caclulate log3X
log3X := (log(real(x_ein_tb)))/(log(3.0)); -- logarithm to base 3 of 224
-- Compare log3X to Y
cmp_diference := y_aus_tb - log3X;
-- If diference > 0.009, generate Error message and dispaly the diference between log3X and Y
assert cmp_diference > 0.009 report "log3X = " & real'image(log3X);
assert cmp_diference > 0.009 report "Diference = " & real'image(cmp_diference);
end process Test_IO;
END;
сейчас есть MCVE моего кода. Однако мой пример кода - это то же самое, что вы сделали в приведенном здесь примере. Если есть способ его решить, это может мне очень помочь ... – Limko
Ваш MCVE doess даже не компилируется. –
Исправление, что GHDL сообщает 'tb_log3x.vhd: 27: 12: @ 21200us: (ошибка утверждения): log3X = 4.925892517018708 tb_log3x.vhd: 28: 12: @ 21200us: (ошибка утверждения): Difference = 2.074829812910294e-4 'который не согласуется ни с одним из чисел в вашем вопросе. но выглядит подходящим. При необходимости обновите вопрос с фактического вывода из вашего (скорректированного) MCVE. –