1
我有多個屬於一起的輸入(在相同的時鐘等採樣),但在邏輯上不是一個矢量(即不是並行總線)我需要修改的代碼。
此前,他們被定義爲VHDL:使用std_logic與使用std_logic_vector的子類型的數組
type my_type is array (my_width - 1 downto 0) of std_logic;
signal my_signal : my_type;
直到現在,爲此,我一直用這個:
subtype my_subtype is std_logic_vector(my_width - 1 downto 0);
signal my_signal : my_subtype;
對於大多數的意圖和目的,陣列和載體可幾乎處理同樣的,所以我的問題是:
任何一種做事方式都有優勢嗎?有一種首選/標準方式嗎?
兩者都有效。你可以訪問ieee.std_logic_1164包中'std_logic_vector'聲明的所有操作符和功能,另一種方法是你必須編寫和測試你自己的。這是一件不容易的事情。 –
儘管信號並不代表並行總線,但它們代表的是同一類事物的集合嗎?例如,8個狀態LED可能不被解釋爲一個連貫的「字節」,但它們至少都是'狀態LED'。對於不同類型的東西,例如寫入啓用,重置,時鐘,我可能會試圖將它們放在記錄中而不是矢量中。 –
@scary_jeff它們相當於您的狀態LED示例 - 實際上是多個MISO線路,其中所有從屬設備都連接到相同的SCK和CS(這是奇怪的硬件) – DLnd