【发布时间】:2016-06-03 09:33:30
【问题描述】:
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也以正确的大小写但错误的值...预期显示的值是@ 987654325@...
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;
【问题讨论】: