2010-01-19 76 views
1

IEEE vhdl語言參考手冊只定義了一套有限的標準包,並沒有定義標準類型的功能,如STD_LOGIC。因此沒有標準的AND2,INV組件/運算符。 Altera MAX + Plus II似乎不支持AND2,INV組件(如果有的話,請隨時糾正我),但賽靈思基金會確實如此。爲什麼IEEE vhdl標準庫不是STL?

爲什麼IEEE vhdl標準庫在C++世界中不能成爲類似STL的東西?

謝謝。

回答

2

反轉,AND,OR,...爲STD_LOGIC類型由IEEE庫支持:

a <= b and c 
d <= not e 
f <= g or h 

您的綜合工具會自動把這些表達式的最佳實施目標的技術(Xilinx的FPGA ,Altera FPGA,ASIC ...)。沒有必要顯式實例化特定於技術的組件。實例化特定於技術的組件甚至可能阻礙優化。

你應該總是試着編寫你的VHDL代碼獨立於技術的。這可以讓你重用的代碼。

1

您要求的「組件」是VHDL中的運算符。您也可以直接實例化AND2和INV組件,但您需要構建這些庫(或使用爲您提供的庫)。

-2

因爲fpga設計軟件與目標芯片高度相關,只有兩家企業能夠開發這樣的軟件.Altera的Max + PlusII只能支持Altera出貨的芯片,賽靈思也是如此。這些供應商控制着整個進程fpga設計,從軟件到硬件。然後他們傾向於開發針對他們自己平臺的特定功能。因此,在C++世界中,IEEE標準庫不能像STL那樣。

AND2是利用Altera MAX + PLUSII的primitive,但它不是賽靈思Webpack.Actually的primitive我們可以德興我們自己的組件AND2(其中賽靈思選擇躍包裝內提供,但我們選擇不加載THI包) 。

INV不是Altera Max + PlusII的primitive,既不是Xilinx WebPack。

+1

不完全正確。 Actel和Lattice用於FPGA。和一堆ASIC庫,例如在Synopsys Design Compiler下。 – 2010-03-05 01:58:38

相關問題