当前位置:   article > 正文

Verilog赋值与执行方式_verilog 寄存器与线网赋值

verilog 寄存器与线网赋值

赋值

赋值方式
  • 非阻塞赋值:<=
    时序逻辑一定用非阻塞赋值,比如:always 模块的敏感列表包含时钟。
  • 阻塞赋值:=
    组合逻辑一定使用阻塞赋值,比如:always 模块的敏感列表不包含时钟,或者 assign 模块
赋值语句
  • assign
    称为持续赋值语句,对应的信号犹如固化的逻辑门电路实时反映。
  • always
    称为过程赋值语句,对应的信号改变需要一定触发条件。
信号类型
  • 连线型(Net Type)
    定义为 wire,默认初始值为高阻态 ‘Z’
  • 寄存器型(Register Type)
    定义为 reg,默认初始值为不定态 ‘X’

声明为input output的参数都默认为 wire 类型,TestBench 必须使用 wire 类型作为输出。

赋值规则

assign 定义的组合逻辑只能对 wire 类型赋值,而且必须是阻塞赋值;always、initial 定义的逻辑只能对 reg 类型赋值。
always 模块中使用相同的赋值方式;同一变量不要在不同的 always 语句赋值。

执行方式

Verilog 的语句执行分为并行执行和顺序执行,执行方式取决于模块语句的赋值方式。
阻塞赋值的语句为顺序执行,非阻塞赋值的语句为并行执行。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/661295
推荐阅读
相关标签
  

闽ICP备14008679号