2017-06-11 51 views
0

我有一個包含數字的字符串,例如3.76,我想將此解析的字符串轉換爲vhdl中的sfixed值。我使用的技巧是使用real'image(字符串)將字符串轉換爲實數,然後調用to_fixed(value, integer part, -precision)。但是這種方法不可綜合(real'image)。我想知道是否有其他方法,例如將字符串轉換爲std_logic_vector,然後使用To_slv()將其轉換爲固定值。在可合成的vhdl中,將字符串例如3.76轉換爲sfixed表示法的步驟是什麼?將字符串類型編號轉換爲可合成的字符串vhdl

+1

哪裏串從何而來?文件?只讀存儲器?其他IO?你如何看待硬件中的解析?也許你應該解釋更多關於你的應用程序和你的設置.. – JHBonarius

+0

該字符串來自一個輸入文件。此文件包含此格式的字符串,例如3.344 1.456 4.452。這些值在初始化時加載到固定變量。 –

+1

所以你有一個文件,你想合成代碼,將文件中的信息轉換爲信號。你如何將FPGA映像爲文件IO?文件將如何到達FPGA?你連接一個硬盤到FPGA? – JHBonarius

回答

1

FPHDL庫,提供例如類型sfixed,提供轉換功能from_string。您可以在fixed_ug.pdf文件中找到更多信息。

這些例子來自文檔:

signal a : ufixed (3 downto –3); 
begin 
    a <= from_string (「0000.000」, a’high, a’low); 
    a <= from_string (「0001.000」, a); 
    a <= from_string (「0000.100」); -- Works only if size is exact 
+0

是的,但這不是來自輸入文件,也不是「3.76」格式。所以它不回答他的問題。 – JHBonarius

+0

他的主要問題是將'string'輸入轉換爲'sfixed'。他的第二個問題是文件I/O的方向。他還表示,他首次嘗試使用「真實圖像(...)」並不奏效,因此可以假定他已經實現了文件讀取。 – Paebbels

+0

也許,但他應該詳細說明這一點。顯示更多代碼示例等。他至少應該顯示無法合成的代碼。 – JHBonarius