VHDL的任何版本(可能在2008年)都有可能在聲明之前使用類型嗎?在聲明VHDL之前使用類型(2008)
E.g.我有一個實體的結構數組聲明:
type my_array is array (integer range <>) of my_type;
在相同的架構部分
而且還在,但後來在文件中我有這樣的:
type my_type is record
my_field: signed(31 downto 0);
end record;
現在,這提供了以下錯誤的Vivado:
[Synth的8-1031] my_type未聲明
解決方案當然是將數組聲明上方的記錄聲明移動。然而,隨着類型數量的增加,這會變得非常複雜和混亂(因爲你基本上必須對它們的類型進行拓撲排序並考慮它們的依賴關係)。
類似這樣的東西在每種主流編程語言中都是支持的,所以我想也許它也存在於VHDL中。我還隱約記得有關這方面的內容已被添加到VHDL 2008中,但無法找到任何有關它的資源,而我用VHDL 2008進行的快速測試是負面的。
因此,在聲明它之前,是否有可能在VHDL中使用類型,因爲聲明的類型仍然在相同的架構,相同的文件中,但在下面幾行?
VHDL-2008中的通用類型可能會有幫助。 –
嗯。雖然泛型可能有助於簡化一些複雜的依賴關係,但我沒有看到它使問題通常更容易(因爲現在您必須小心分開插入泛型,這可能會導致更長,更難以閱讀代碼以及重複)。 – Piedone