IEEE vhdl語言參考手冊只定義了一套有限的標準包,並沒有定義標準類型的功能,如STD_LOGIC。因此沒有標準的AND2,INV組件/運算符。 Altera MAX + Plus II似乎不支持AND2,INV組件(如果有的話,請隨時糾正我),但賽靈思基金會確實如此。爲什麼IEEE vhdl標準庫不是STL?
爲什麼IEEE vhdl標準庫在C++世界中不能成爲類似STL的東西?
謝謝。
IEEE vhdl語言參考手冊只定義了一套有限的標準包,並沒有定義標準類型的功能,如STD_LOGIC。因此沒有標準的AND2,INV組件/運算符。 Altera MAX + Plus II似乎不支持AND2,INV組件(如果有的話,請隨時糾正我),但賽靈思基金會確實如此。爲什麼IEEE vhdl標準庫不是STL?
爲什麼IEEE vhdl標準庫在C++世界中不能成爲類似STL的東西?
謝謝。
反轉,AND,OR,...爲STD_LOGIC類型是由IEEE庫支持:
a <= b and c
d <= not e
f <= g or h
您的綜合工具會自動把這些表達式的最佳實施目標的技術(Xilinx的FPGA ,Altera FPGA,ASIC ...)。沒有必要顯式實例化特定於技術的組件。實例化特定於技術的組件甚至可能阻礙優化。
你應該總是試着編寫你的VHDL代碼獨立於技術的。這可以讓你重用的代碼。
您要求的「組件」是VHDL中的運算符。您也可以直接實例化AND2和INV組件,但您需要構建這些庫(或使用爲您提供的庫)。
因爲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。
不完全正確。 Actel和Lattice用於FPGA。和一堆ASIC庫,例如在Synopsys Design Compiler下。 – 2010-03-05 01:58:38