2014-03-27 33 views
0

我從http://www.vhdl.org/fphdl/下載浮點包,也做了以下內容:編譯器錯誤編譯時* .vhdl到庫 - 的Altera的Quartus II

  1. 我包括math_utility_pkg.vhd,fixed_pkg_c.vhd和float_pkg_c在我的項目
  2. .vhd文件給我分配他們到庫(按照Compiling *.vhdl into a library, using Altera Quartus II的說明)
  3. 試圖編譯它們,首先通過將我的項目的頂級實體頂部實體和第二次通過設置float_pkg_c.vhd作爲頂級實體

心中已經遇到了幾個問題:

  1. 我不知道是否使用ieee_proposed庫名稱或floatfixlib,因爲前者在文檔中建議,而後者是從包文件中使用
  2. 編譯時,我不斷收到包文件中的錯誤(例如「沒有詳細說明調用子程序」remaining「」和類似的東西)
  3. 似乎在包文件有後綴_c的事實之間似乎存在一些爭議,但它應該包括在內沒有它(例如,使用FLOATFIXLIB.float_pkg.all ;),此時我無法得到該錯誤,儘管
  4. 最後,當float_pkg_c.vhd設置爲頂層實體時,編譯器生成此錯誤:「頂層設計實體」float_pkg_c「未定義」

我不斷嘗試上述嘗試的變體,但沒有取得任何進展。

回答

1

您可能希望重新下載軟件包。我沒有看到math_utility_pkg,也沒有看到程序包中引用的庫floatfixlib。你必須有一個很老的版本。

我剛剛重新下載了Altera發行版。在其中,我看到了您在交叉列表中引用的軟件包:fixed_float_types_c.vhdl,fixed_pkg_c.vhdl和float_pkg_c.vhdl。我還注意到,zip文件中的文件日期戳是:2009年8月27日。

+0

我嘗試了你的建議,似乎是一個問題。但是,當我嘗試編譯該項目時,仍然會得到該輸出:http://pastebin.com/TUtGax7M – user3209815

1

我看了看:pastebin.com/TUtGax7M

它看起來像包編譯和您嘗試編譯您的設計和它失敗在調用「to_float」。沒有看到代碼,我只能猜測。對to_float的調用需要通過傳遞對象(下面的第一個賦值)或結果的索引(下面的第二個賦值)來確定結果的範圍。

signal A_fp32 : float32 ; 
. . . 

-- Real and/or Integer Literal 
A_fp32 <= to_float(6.5, A_fp32); -- size using A_fp32 
A_fp32 <= to_float(6.5, 8, -32); -- pass indicies 

我也看到了呼籲劃分失敗。請注意,鴻溝在合成的最前沿。供應商可能會也可能不會支持分割。簡短的故事是你可能需要提交一個反對鴻溝的錯誤報告,而不是使用他們的宏/嚮導。請注意,如果他們支持宏/嚮導進行除法,那麼他們可以進行綜合,只是儘可能地保持使用特定於供應商的代碼的優勢。

+0

這是否僅限於信號? 我可以在我的代碼中看到問題: 'variable denum:integer; 變量num:整數; 可變股息:浮動(4 downto -27); dividend:= to_float(num)/ to_float(denum); ' 很清楚你有什麼建議,但 '分紅:= to_float(NUM,股息)/ to_float(denum,紅利);' 回報:「在float_pkg_c.vhdl VHDL語法錯誤(3843):正確的約束範圍必須是常數「 和 'dividend:= to_float(num,4,-27)/ to_float(denum,4,-27);' 返回:」SM.vhd(93)處的VHDL錯誤:值「 -27「在目標約束範圍之外(0到2147483647)」 – user3209815

+0

不,那應該沒問題。它看起來更像是一個工具bug。奇怪的是,這些是使用負範圍的第一批軟件包,供應商一直很難與他們合作。 –