【verilog】verilog多路分支语句

1. case 语句

case 语句是一种多路条件分支的形式,可以解决 if 语句中多个条件选项时使用不方便的问题。

格式如下

case(case_expr)
	condition1: statement1 ;
	condition2: statement2 ;
	condition3: statement3 ;
	...
	default: statement4 ;
endcase
  • case 语句执行时,如果 condition 1 为真,则执行 statement 1;如果 condition 1 为假,condition 2 为真,则执行 statement 2. 以此类推。
  • 如果各个 condition 都不为真,则执行 default 后的语句。
  • default 语句几乎是必须需要的,因为不写 default 且 condition 不全时,会对电路造成死锁现象。
  • statement 等执行语句可以是一条语句,也可以是多条语句。如果是多条语句,则需要用 begin 和 end 关键字进行说明。

tip

case 语句中的条件选项不一定都是常量,也可以是 x 和 z。

当多个条件选项下需要执行形同的的语句时,多个条件选项可以用 分开,放在同一个语句块的候选项中。

但是 case 中的 x 和 z 的比较逻辑是不可综合的。所以 不建议case语句中使用x和z作为比较值

示例如下

case (a) 
	2'b0 : a <= b ;
	2'b01, 2'bx1, 2'bxz: a <= c ;
	default : a <= d ;	
endcase

不建议有 x 和 z,因为不可综合。这种情况常用于仿真中。



笔记

casex,casez 是 case 语句的变形,用来表示条件选项中的无关项。

casex 用 x 表示无关值,casez 中用?表示无关值。

但是 casex 和 casez 是不可综合的,常用于仿真中。

示例如下


casex (sel)
	2'x1 : a <= b
	default: a <= c ;
endcase

casez (sel)
	2'b1? a <= b ;
	default : a <= c ; 
endcase

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值