1
陣列我想不通爲什麼VHDL這兩個作品具有相同的含義:預謀的元素或除
("0" & x) + y
和('0' & x) + ('0' & y)
因爲我們在實體已經聲明
x,y : in unsigned(3 downto 0);
"0" & x
和'0' & x
有什麼區別? 此外,爲什麼我們應該使用邏輯函數在VHDL中創建如此困難的加法器,並且只需編寫x + y
(包括進位的一個附加位)就足夠了?
好的,但是x和y的類型是什麼?他們是陣列還是元素? 在我看來,它們都是4個元素的數組,但是爲什麼第二次寫入是正確的(鑑於第二種情況是針對元素而不是針對數組)? – George
'unsigned'類型實際上是一個'std_logic'類型的數組,在這種情況下是一個包含4個元素的範圍爲3的數組。第二個寫入自VHDL定義爲兩個參數連接('&')作爲元素另一個操作數的類型,以及第一次寫入時使用的一維數組。 –
對於元素或數組輸入的任何組合,「&」運算符都是爲任何單維數組類型預定義的。參見IEEE 1076-2005 9.2.5添加運算符。通過基本操作(5. Types,5.1 General),由上下文(9.3.2 Literals)確定的數組類型,根據上下文根據重載決議確定的字符文字類型,將字符文字和字符串文字轉換爲元素值和元素值數組5.2.2枚舉文字,5.2.2.1總則, - 特別見第6段,4.5子程序重載)。 – user1155120