2012-10-15 55 views
2

我生成随机浮点数(十进制格式)并将它们保存在文本文件中。我做了一个用VHDL读取这个文件的代码。现在我想将这些浮点数转换为IEEE格式(32比特或64比特)。有没有我可以用来工作的图书馆? 或者VHDL中有任何代码。VHDL:需要库

感谢

回答

-1

如果你想在VHDL使用随机数,为什么不使用从* math_real *库一样的功能?统一是你的功能,使用在定义

procedure UNIFORM (variable Seed1,Seed2:inout integer; variable X:out real); 
    -- returns a pseudo-random number with uniform distribution in the 
    -- interval (0.0, 1.0). 
    -- Before the first call to UNIFORM, the seed values (Seed1, Seed2) must 
    -- be initialized to values in the range [1, 2147483562] and 
    -- [1, 2147483398] respectively. The seed values are modified after 
    -- each call to UNIFORM. 
    -- This random number generator is portable for 32-bit computers, and 
    -- it has period ~2.30584*(10**18) for each set of seed values. 
    -- 
    -- For VHDL-1992, the seeds will be global variables, functions to 
    -- initialize their values (INIT_SEED) will be provided, and the UNIFORM 
    -- procedure call will be modified accordingly. 

解释的。如果这不是你所需要的,请使用* std_textio *包读取数据:

procedure READ(L:inout LINE; VALUE: out real; GOOD : out BOOLEAN); 
procedure READ(L:inout LINE; VALUE: out real); 
+0

谢谢BennyBarns。问题不在于读取文件。我已经做到了。现在我想将这些浮点数转换为IEEE格式。我应该使用图书馆吗? – user1715695

+0

那么你应该更精确,而不是回答一个答案。那么你的意思是IEEE 754?我以为你在谈论ieee.std_logic_1164!在这种情况下,你将使用某种类型的blockset进行754操作,这应该提供转换...我可以记住synplicity当然会这样 – BennyBarns

+0

假设我生成了一个文本文件,其中浮动数字就像这样 1.9832, 0.211 , -1.12 我用VHDL编写了可以读取的代码。现在我想将这些数字转换为IEEE-754(32位格式)。为此,我需要哪个库。 – user1715695

0

可以浮点数转换为IEEE 754(例如1.0 - > 0x3F800000)通过纯软件脚本:

  1. MATLAB脚本:

    Matlab程序为实数转换成数字在IEEE 754浮点格式 http://users.eecs.northwestern.edu/~ismail/courses/c92/fpu/

  2. 口齿不清脚本:http://common-lisp.net/project/ieee-floats/

    使用编码,FLOAT32在ieee-floats中定义的,有一个快速转换。

    (defun fix2float (fp) 
        (format t "~%~x~T~x" fp (ieee-floats:encode-float32 fp))) 
    (fix2float 1.1) 
    

至于硬件库,VFLOAT(王小军,2010)是值得一试。