2012-10-15 54 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)是值得一試。