目录
关键词:case,挑选器
case 语句是一种多路条件分支的形式,可以处理 if 语句中有多个条件选项时利用不方便的题目。
case 语句
case 语句格式以下:- case(case_expr)
- condition1 : true_statement1 ;
- condition2 : true_statement2 ;
- ……
- default : default_statement ;
- endcase
复制代码 case 语句履行时,假如 condition1 为真,则履行 true_statement1 ; 假如 condition1 为假,condition2 为真,则履行 true_statement2;依次类推。假如各个 condition 都不为真,则履行 default_statement 语句。
default 语句是可选的,且在一个 case 语句中不能有多个 default 语句。
条件选项可以有多个,不但限于 condition1、condition2 等,而且这些条件选项不要求互斥。虽然这些条件选项是并发比力的,但履行结果是谁在前且条件为真谁被履行。
ture_statement1 等履行语句可所以一条语句,也可以是多条。假如是多条履行语句,则需要用 begin 与 end 关键字停止说明。
case 语句支持嵌套利用。
下面用 case 语句取代 if 语句实现了一个 4 路挑选器的功用。仿真成果与 testbench 可参考条件语句一章,两者完全分歧。- module mux4to1(
- input [1:0] sel ,
- input [1:0] p0 ,
- input [1:0] p1 ,
- input [1:0] p2 ,
- input [1:0] p3 ,
- output [1:0] sout);
- reg [1:0] sout_t ;
- always @(*)
- case(sel)
- 2'b00: begin
- sout_t = p0 ;
- end
- 2'b01: sout_t = p1 ;
- 2'b10: sout_t = p2 ;
- default: sout_t = p3 ;
- endcase
- assign sout = sout_t ;
- endmodule
复制代码 case 语句中的条件选项表单式不必都是常量,也可以是 x 值或 z 值。
当多个条件选项下需要履行不异的语句时,多个条件选项可以用逗号分隔,放在同一个语句块的候选项中。
可是 case 语句中的 x 或 z 的比力逻辑是不成综合的,所以一般不倡议在 case 语句中利用 x 或 z 作为比力值。
例如,对 4 路挑选器的 case 语句停止扩大,举例以下:- case(sel)
- 2'b00: sout_t = p0 ;
- 2'b01: sout_t = p1 ;
- 2'b10: sout_t = p2 ;
- 2'b11: sout_t = p3 ;
- 2'bx0, 2'bx1, 2'bxz, 2'bxx, 2'b0x, 2'b1x, 2'bzx :
- sout_t = 2'bxx ;
- 2'bz0, 2'bz1, 2'bzz, 2'b0z, 2'b1z :
- sout_t = 2'bzz ;
- default: $display("Unexpected input control!!!");
- endcase
复制代码 casex/casez 语句
casex、 casez 语句是 case 语句的变形,用来暗示条件选项中的无关项。
casex 用 "x" 来暗示无关值,casez 用问号 "?" 来暗示无关值。
两者的实现的功用是完全分歧的,语法与 case 语句也完全分歧。
可是 casex、casez 通常为不成综合的,多用于仿真。
例如用 casez 语句来实现一个 4bit 控制真个 4 路挑选挑选器。- module mux4to1(
- input [3:0] sel ,
- input [1:0] p0 ,
- input [1:0] p1 ,
- input [1:0] p2 ,
- input [1:0] p3 ,
- output [1:0] sout);
- reg [1:0] sout_t ;
- always @(*)
- casez(sel)
- 4'b???1: sout_t = p0 ;
- 4'b??1?: sout_t = p1 ;
- 4'b?1??: sout_t = p2 ;
- 4'b1???: sout_t = p3 ;
- default: sout_t = 2'b0 ;
- endcase
- assign sout = sout_t ;
- endmodule
复制代码 以上就是Verilog关键词的多分支语句实例详解的具体内容,更多关于Verilog关键词多分支语句的材料请关注剧本之家别的相关文章! |