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