verilog中always和initial的區別


verilog中的語句
賦值語句: 阻塞賦值語句(=)、非阻塞賦值語句(<=)
塊語句 : 順序塊(begin...end)、並行塊(fork...join)
條件語句: if...else語句、case語句
循環語句: forever語句 repeat語句、while語句、for語句
生成語句: generate語句(循環生成、條件生成、case生成)

結構說明語句:
verilog語言中的任何過程模塊都從屬於以下四種結構的說明語句:
1、initial說明語句
2、always說明語句
3、task說明語句
4、function說明語句

initial不可綜合,always可以綜合
Initial是為測試而生,只能用於測試,只執行一次;

module/endmodule, interface/endinterface硬件世界
program/endprogram, class/endclass軟件世界

always過程塊是用來描述硬件時序和組合電路,因此可以在module和interface中使用;
不可以在always中初始化變量,initial只執行一次;

initial和always一樣,無法延遲執行,仿真一開始,同時執行,無順序可言。
initial不可以存在硬件設計代碼中;
initial可以在module/interface/program中使用;
用begin...end包住,initial為測試而生。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM