2013-05-01 151 views
0

我在VHDL中使用IEEE定點包。如何將定點VHDL類型轉換回浮點型?

它運行良好,但我現在在測試中面臨着一個關於它們的字符串表示的問題:我想將它們轉儲到文本文件中。

我發現,它確實是可以直接寫入ufixed或使用sfixed:

write(buf, to_string(x)); --where x is either sfixed or ufixed (and buf : line) 

但後來我得到像值11110001.10101(用於sfixed Q8.5表示)。

所以我的問題:如何將這些定點數轉換回實數(然後轉換爲字符串)?

+0

SO,在上面的例子中,你想把11110001.10101寫成你的文本文件爲241.6563? – Jotorious 2013-05-01 14:14:02

+0

從谷歌搜索它看起來像有一個to_real()函數,你可以使用。 – Jotorious 2013-05-01 14:22:35

+0

@Jotorious:是的 – JCLL 2013-05-01 16:31:01

回答

0

變量需要拆分成兩個std-logic-vector部分,可以使用標準轉換將整數部分轉換爲字符串,但對於小數部分,字符串轉換有點不同。對於整數部分,您需要使用循環併除以10,並將模餘數轉換爲ASCII字符,從低位數字到高位數字。對於小數部分它也需要一個循環,但需要乘以10才能發言並隔離這個數字以獲得相應的字符,然後使用該整數減去分數等等。這是一個概念,已經工作了在MATLAB中測試並製作一個vhdl版本,我將盡快分享。我很驚訝沒有在任何地方找到這樣有用的功能。當然,定點格式可以改變Q(N,M)N,M可以有各種值,而對於浮點,它是標準化的。