本文主要是介绍hdlbits系列verilog解答(always块casez语句)-35,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 一、问题描述
- 二、verilog源码
- 三、仿真结果
一、问题描述
为 8 位输入构建优先级编码器。给定一个 8 位向量,输出应报告向量中的第一个(最低有效)位,即 1 。如果输入向量没有高位,则报告零。例如,输入 8’b10010000 应输出 3’d4 ,因为 bit[4] 是第一个高电平的位。
从上一次工作(always_case2)来看,案件陈述中将有256个案例。如果 case 语句中的 case 项支持 don’t care 位,我们可以将其减少(减少到 9 个案例)。这就是 casez 它的用途:它将具有该值 z 的位视为在比较中不关心的位。
例如,这将实现上一个练习中的 4 输入优先级编码器:
always @(*) begin
casez (in[3:0])
4’bzzz1: out = 0; // in[3:1] can be anything
4’bzz1z: out = 1;
4’bz1zz: out = 2;
4’b1zzz: out = 3;
default: out = 0;
endcase
end
case 语句的行为就像是按顺序检查每个项目一样(实际上,这是一个很大的组合逻辑函数)。请注意,某些输入(例如,
这篇关于hdlbits系列verilog解答(always块casez语句)-35的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!