vhdl中有+運算符用於加法運算,那麼爲什麼我們需要添加ieee.std_logic_unsigned,並且在這個庫中有+的函數,那麼爲什麼如果我們已經在vhdl中有+運算符定義了這個函數呢?+運算符和+函數有什麼區別是vhdl?
回答
與所有的VHDL操作符一樣,+
操作符也具有功能符號。 a+b
和"+"(a,b)
完全一樣。這樣做的好處在於,您可以重載VHDL運算符以對默認未定義的類型進行操作。只需定義一個"+"
函數,其中包含您自己的類型my_type
和voilà的兩個參數。您現在可以使用a+b
,其中a
和b
的類型爲my_type
。
+
運算符在std_ulogic_vector
或std_logic_vector
類型上沒有被默認定義。這是事實。你可以不同意這個,但它是VHDL標準。所以,如果你想用這些類型來使用它,你需要以這種或那種方式來定義它。
ieee.std_logic_unsigned
包會重載它們上的算術運算符。它是不是的一個標準包並且有什麼都沒有在標準的ieee
庫中做。做不是使用它。使用標準ieee.numeric_std
,而是聲明類型unsigned
和signed
,並重載算術運算符。
請注意,正如user1155120所述,VHDL 2008引入了幾個新的綜合軟件包。其中之一是ieee.numeric_std_unsigned
,它確實會將類型爲std_ulogic_vector
的算術運算符重載爲無符號自然整數。
IEEE Std 1076-2008 16.8.5使用位和標準邏輯值進行算術運算的程序包,16.8.5.1第5段(部分):「...類似地,NUMERIC_STD_UNSIGNED程序包提供的操作與NUMERIC_STD程序包提供的程序相同UNSIGNED操作數,但對STD_ULOGIC_VECTOR操作數進行操作,解釋爲表示無符號二進制整數。「將操作數和結果時間轉換爲無符號數。在-2008'子類型STD_LOGIC_VECTOR是(已解決)STD_ULOGIC_VECTOR;' – user1155120
謝謝!,很好的回答! –
你能告訴我,當我們在20n之後寫一個<= b和c時,所以這個[20n之後]只會影響模擬或實際的數字模型以位文件的形式加載會受到影響嗎? –
- 1. obj c函數中(+)和( - )運算符有什麼區別
- 2. SQL中的IN運算符和=運算符有什麼區別?
- 3. 比較運算符和邏輯運算符有什麼區別?
- 4. 算術運算符^和。^之間的區別是什麼?
- 5. 單(&)和雙(&&)&符號二元運算符有什麼區別?
- 6. Javascript本地`instanceof`運算符和MooTools``instanceOf`函數有什麼區別?
- 7. PHP中的「和」和「&&」運算符有什麼區別嗎?
- 8. 重載賦值運算符和任何其他運算符有什麼區別?
- 9. 運算符>>和運算符>>>在java中有什麼區別?
- 10. 有什麼區別:=和= mysql的賦值運算符
- 11. !=和<>運算符有什麼區別?
- 12. InheritsFrom和is運算符有什麼區別?
- 13. 新運算符和Class.newInstance()之間有什麼區別?
- 14. 運算符重載kotlin中的plus和plusAssign有什麼區別?
- 15. OR和||有什麼區別? PHP中的運算符?
- 16. 運算符>>>在Java和JavaScript中有什麼區別?
- 17. 點(。)運算符和 - >在C++中有什麼區別?
- 18. c編程中的*和&運算符有什麼區別?
- 19. 在JavaScript中,運算符'〜'和'!'之間有什麼區別?
- 20. Bash中運算符「=」和「==」有什麼區別?
- 21. 在Solr中,NOT和 - (minus)運算符有什麼區別?
- 22. 在php中!=和<>運算符有什麼區別?
- 23. SQL中NOT和!=運算符有什麼區別?
- 24. Julia中的「==」和「===」比較運算符有什麼區別?
- 25. Lucene中 - 和NOT運算符有什麼區別?
- 26. 使用Object.create()和使用賦值運算符有什麼區別?
- 27. 匹配方法和=〜運算符有什麼區別?
- 28. Malloc和新運算符分配內存有什麼區別?
- 29. PostgreSQL中#>和 - >>運算符有什麼區別?
- 30. MySQL中的<>和!=運算符有什麼區別?
數組類型默認不提供預定義的數學運算。它們可以在IEEE庫的特定軟件包中找到。參見IEEE Std 1076-2008 16.8標準合成包,特別是16.8.5使用位和標準邏輯值進行算術運算的軟件包。在-2008修訂版中,這些軟件包是標準的一部分。 – user1155120