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);
Das Problem ist also, dass & real'image(log3X)
zeigt den richtigen Wert im richtigen Fall in TCL, aber & real'image(cmp_diference)
zeigt: 3.252959e-03
auch im richtigen Fall aber falschen Wert ... Der Wert Expected angezeigt zu werden ist ~ -0.003847
...vivado zeigt falsche reellen Zahlen - Prüfstand - vhdl
Ist etwas falsch mit Vivado 2016.1, oder ist etwas falsch, das ich mache?
Vielen Dank!
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;
jetzt gibt es einen MCVE meines CODE. Allerdings ist mein Codebeispiel mehr das gleiche, was Sie in Ihrem Beispiel hier getan haben. Wenn es einen Weg gibt, es zu lösen, dann kann es mir sehr helfen ... – Limko
Ihr MCVE wird nicht einmal kompiliert. –
Behebung, dass GHDL meldet 'tb_log3x.vhd: 27: 12: @ 21200us: (Assertionsfehler): log3X = 4.925892517018708 tb_log3x.vhd: 28: 12: @ 21200us: (Assertionsfehler): Difence = 2.074829812910294e-4 'das stimmt mit keiner der Zahlen in Ihrer Frage überein, sieht aber angemessen aus. Aktualisieren Sie die Frage gegebenenfalls mit der tatsächlichen Ausgabe von Ihrem (korrigierten) MCVE. –