有关更多case的讨论,例如casex/casez等,跳转链接:【 Verilog HDL 】case, casez, casex 之干货总结
case语句与if-else-if有两点不同。
- 在if-else块中给出的表达式比较笼统 而在case块中,一个表达式要与多个项目相匹配。
- 当一个表达式中存在X和Z值时,case将提供一个明确的结果。
Verilog初级教程(16)Verilog中的控制块
Verilog初级教程(15)Verilog中的阻塞与非阻塞语句
Verilog初级教程(14)Verilog中的赋值语句
Verilog初级教程(13)Verilog中的块语句
Verilog初级教程(12)Verilog中的generate块
Verilog初级教程(11)Verilog中的initial块
Verilog初级教程(10)Verilog的always块
Verilog初级教程(9)Verilog的运算符
Verilog初级教程(8)Verilog中的assign语句
Verilog初级教程(7)Verilog模块例化以及悬空端口的处理
Verilog初级教程(6)Verilog模块与端口
Verilog初级教程(5)Verilog中的多维数组和存储器
Verilog初级教程(4)Verilog中的标量与向量
Verilog初级教程(3)Verilog 数据类型
Verilog初级教程(2)Verilog HDL的初级语法
Verilog初级教程(1)认识 Verilog HDL
芯片设计抽象层及其设计风格
Verilog以及VHDL所倡导的的代码准则
FPGA/ASIC初学者应该学习Verilog还是VHDL?
verilog-case-statement
simulator
个人微信公众号: FPGA LAB
在线性搜索过程中,如果其中一个case项表达式与括号中给出的case表达式相匹配,则应执行与该case项相关的语句,并终止线性搜索。如果没有给出default项语句,且所有case项的比较都失败,则不会执行任何case项语句。的比较过程中,case表达式中任何位的"忽略"值(casez的z值,casex的 z 和 x 值)都将被视为 "忽略不计"条件,该位的值将不予考虑。verilog提供可处理x和z值的case表达式比较的原因在于它提供了一种检测此类值的机制,并减少了因其存在而产生的不确定性。
欢迎FPGA工程师加入官方微信技术群模块的结构、数据类型、变量和基本运算符号3.1.模块的结构Verilog的基本设计单元是“模块”(block)。一个模块是由两部分组成的,一部分描述接口,另一部分描述逻辑功能,即定义输入是如何影响输出的。下面举例说明:图1 模块示例m请看上面的例子: 程序模块旁边有一个电路图的符号。在许多方面,程序模块和电路图符号是一致的,这是因为电路图符号的引脚也就...
case语句的功能是:在某个信号(本例中的sel)取不同的值时,给另一个信号(本例中的q)赋不同的值。在括弧内的表达式将被精确地评估一次,并按其编写顺序与备选方案列表进行比较,与给定表达式匹配的备选方案的语句将被执行。Verilog HDL针对电路的特性提供了case语句的其它两种形式用来处理case语句比较过程中的不必考虑的情况( don’t care condition )。如果所有的case项都不符合给定的表达式,则执行缺省项内的语句,缺省语句是可选的,在case语句中只能有一条缺省语句。
Verilog中的case语句是多路决策语句,用于检查一个表达式的值是否与其他多个表达式的值相等,如果发现匹配,则进行分支跳转,执行相应语句。就像是C语言中的switch语句一样,但Verilog中的case语句还有以下特性:1.除了case,还支持casez和casex变种。2.case_expression和case_item可以是各种数据类型的组合:变量/常量、常量/变量、变量/变量。3.既可以实现平行结构(parallel),也可以实现优先级结构(priority)。
case (case_expression)
case_item1 : case_item_statement1;
case_item2 : case_item_statement2;
case_item3 : case_item_statement3;
case_item4 : case_item_statement4;
default : case
包含在case和endcase之间的代码(也包括casex和casez)..endcasecasez语句是case语句的一个变种。casez语句允许“z”和“?”值在比较时被当作不关心的值。如果“z”和“?”在case_expression和case_item中,那么就不关心对应的位。“z”和“?”的等价的。注意:当编写可综合的代码时,要小心使用casez;使用casez时,最好使用?表示不关心。casex语句是case语句的一个变种。casex语句允许“x。