• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

SOC/IP验证工程师

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

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为测试而生。

posted on 2021-10-27 22:06  SOC验证工程师  阅读(1139)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3