我想知道爲什麼賦值給wire datatype變量不允許在verilog中始終阻塞?爲什麼分配到wire數據類型變量不允許在verilog中始終阻塞?
1
A
回答
2
電線(網)旨在作爲連接媒體,他們不保留價值。所以,你可以使用它們來連接模塊,創建總線......有一個特殊的「分配」語句來分配它們。 Regs另一方面是爲了代表註冊和保持價值。所以,你不能使用它們進行連接,也不能使用電線作爲寄存器。所有程序塊(總是)只是具有一些擴展語義的小型通用程序。但他們使用通用類型的變量來保持中間值。因此,在上述兩種類型中,只有'reg'符合這個類別。所以,它只允許分配給regs。
那麼這個概念爲verilog編程創造了很多頭痛的問題。因此係統Verilog提出了邏輯數據類型,在大多數情況下它可以替代它們兩個。您可以使用它來連接東西或在always塊中分配它。
1
A wire in Verilog是一個非常不同的概念從變量。雖然兩者都被用來表示隨時間變化的價值觀,但獲得價值觀的方式卻有很大的不同。與大多數其他編程語言一樣,您可以對變量進行程序性賦值,變量將保留該值直到下一個程序賦值。
A 線表示硬件或形成網絡的一組連接中的連接。該網絡在物理上實現爲芯片或電路板上的金屬線。您可以將電線看作是從驅動器到接收器的值的傳輸。在Verilog中,驅動程序由執行連續分配而不是程序分配的結構來表示。
我在這post更詳細解釋這一點。
0
它只是因爲在總是阻止目標的情況下必須存儲值,除非和直到新的輸入到達或靈敏度列表中有變化,而另一方面電線無法做到。
相關問題
- 1. 爲什麼原始數據類型在java.util.ArrayList中不允許?
- 2. 爲什麼select()始終在非阻塞模式下被阻塞
- 3. verilog/systemverilog - 跨兩個始終阻塞語句的行爲是什麼?
- 4. 爲什麼Java不允許在類之外初始化變量或常量?
- 5. 爲什麼變量不允許綁定
- 6. SystemC中的verilog wire相當於什麼?
- 7. 爲什麼允許將基本數據類型添加到ArrayList?
- 8. 爲什麼這種類型不允許使用類型參數?
- 9. 如何在Verilog中始終阻止?
- 10. Flask會話變量不允許分配
- 11. 爲什麼ioctl()不阻塞?
- 12. 爲什麼Spring框架不允許自動裝配原始類型?
- 13. 從構造函數| |分配最終變量不允許使用方法。爲什麼?
- 14. 什麼php配置變量不允許連接數組索引?
- 15. 爲什麼沒有分配原始數據類型的內存?
- 16. 爲什麼分配的變量類型是數字?
- 17. 爲什麼socketpair()允許SOCK_DGRAM類型?
- 18. 爲什麼在Checkstyle中默認不允許保護變量?
- 19. 爲什麼Javascript函數不能阻塞?
- 20. 爲什麼在類型開關中不允許穿透?
- 21. Verilog始終在時間= 0時阻止
- 22. 爲什麼熊貓不允許在groupby中使用分類列?
- 23. 爲什麼在最終的java類中允許保護成員?
- 24. 爲什麼我不能在子類中分配變量?
- 25. 爲什麼Java中的逆變參數類型不允許覆蓋?
- 26. 爲什麼在C++中允許將類對象指向成員變量,但不允許類對象本身?
- 27. 的Verilog:分配和使用始終
- 28. 爲什麼從sizeof變量類型的變量分配size_t到int?
- 29. 爲什麼在python中阻塞模式不會阻塞recv函數
- 30. 爲什麼gcc編譯器允許在不提供數據類型的情況下分配值?