首页 理论教育 FPGA系统设计-6.8case语句详解

FPGA系统设计-6.8case语句详解

时间:2026-01-26 理论教育 小熊猫 版权反馈
【摘要】:case语句也是条件语句之一。例6.35:用case语句设计一个4选1数据选择器。图6.24选1数据选择器的模块示意图还有另外两种形式的case语句,一种是casex,另一种是casez。casex语句则进一步考虑到了高阻态z和未知态x。例6.37:该例子的x被当作无关值,语句2和语句4都匹配,搜索执行到语句2,跳出casex语句,语句4不被执行。

case语句也是条件语句之一。它的格式如下:

图示

图示

case语句的执行,首先计算表达式的值,判断表达式的值是与哪一个分支项的值相符,再执行相符的分支项其后的执行语句。一定要有缺省分支项default。

例6.33:

图示

上面这个例子,读者自己去分析。给读者留1个问题:弘历周几会去娴妃那?

再看一例。

例6.34:假设我们有如下一个真值表:

表6.9 示例的真值表

图示

续 表

图示

图示

4'b0000的符号',是键盘中间紧贴着回车的左边那个键。在word文本输入、ise文本输入,这个符号'可能会不一样,编译的时候会导致出错。多尝试几次就好。

case语句结构很清晰明了,多适用于编码器、译码器、数据选择器、有限状态机、CPU指令译码器。

例6.35:用case语句设计一个4选1数据选择器。

图示(https://www.xing528.com)

该模块的示意图如下图所示。

图示

图6.2 4选1数据选择器的模块示意图

还有另外两种形式的case语句,一种是casex,另一种是casez。

这三种语句的写法格式完全相同。区别在于:

casez语句考虑到了高阻态z。如果在casez语句里,哪个分支表达式的某些位的值为高阻态z,则不需要考虑这些位的比较,只需要考虑别的位的比较。

casex语句则进一步考虑到了高阻态z和未知态x。如果在casex语句里,哪个分支表达式的某些位的值为高阻态z或者未知态x,则不需要考虑这些位的比较,只需要考虑别的位的比较。

所以有时候我们可以把casez和casex语句叫作接受无关值的case语句。

还有一种方法表示这个无关值,那就是使用标识问号“?”。

例6.36:

图示

图示

上面这个例子,问号“?”就是用来代替字符z的,表示无关位。

看另外一个case例子。

例6.37:

图示

该例子的x被当作无关值,语句2和语句4都匹配,搜索执行到语句2,跳出casex语句,语句4不被执行。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈