verilog 中的一些语法问题

目录

case 的使用注意点

reg 和 wire 的使用区别

组合逻辑和时序逻辑的区分


case 的使用注意点

1)case要在always块中使用,如果是用 always 块描述组合逻辑,注意括号里的敏感变量列表都是电平触发,并且赋值时都要用阻塞赋值“=”;

2)always 块里的变量必须声明成 reg 类型,当然声明成reg类型不代表一定会综合成寄存器,只是语法要求 always 块里要这样;

3)always 块描述组合逻辑时,用 * 可以代替所有的always块内敏感信号;

4)分支条件要写全,最好补齐default 缺省条件,不然在组合逻辑中可能会由于条件不全导致出现锁存器 latch 

reg 和 wire 的使用区别

1. 从电路综合角度来说

  • wire型变量综合出来是一根导线
  • reg型在always语句模块中又分为两种情况
  •     输入信号:一般是 wire
  •     设计顶层模块的输出:一般用reg较稳定 

2. 从仿真分析角度来说

  • wire对应于连续赋值,如assign
  • reg对应于过程赋值,如always,initial

3.什么情况下使用wire型变量

  • assign 语句中变量需要定义成wire型
  • 元件例化时候的输出必须用wire
  • input、output和inout的预设值都是wire

4.什么情况下使用reg型变量

  • 变量放在begin……end之内必须使用reg变量
  • 在initial语句中使用

组合逻辑和时序逻辑的区分

  1.    always后的敏感信号不包含时钟,综合出来还是组合逻辑,以及assign的后面的语句
  2.    always后的敏感表中是(posedge clk)形式的,综合出来是时序逻辑,会包含触发器

引用博客:

verilog中wire和reg的区别,什么时候用wire?什么时候用reg?——541板哥

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值