兰陵王舞蹈教学视频:Verilog语法有关casez和casex的分析
来源:百度文库 编辑:中财网 时间:2024/05/07 23:37:14
2009-04-21 22:05:21 | Verilog语法有关casez和casex的分析
以下是一个例子:
module mux_casez(out,a,b,c,d,select);
output [1:0] out;
input [1:0] a,b,c,d;
input [3:0] select;
reg [1:0] out;
always @(select or a or b or c or d)
begin
casez(select)
4'b???1: out = a;
4'b??1?: out = b;
4'b?1??: out = c;
4'b1???: out = d;
endcase
end
endmodule
//测试文件-----------------------------------------------------------------------------------------
module mux_casez(out,a,b,c,d,select);
output [1:0] out;
input [1:0] a,b,c,d;
input [3:0] select;
reg [1:0] out;
always @(select or a or b or c or d)
begin
casez(select)
4'b???1: out = a;
4'b??1?: out = b;
4'b?1??: out = c;
4'b1???: out = d;
endcase
end
endmodule
//以下是输出结果---------------------------------------------------------------------------------------------
# 0 a=xx b=xx c=xx d=xx select=xxxx out=xx
# 20 a=00 b=01 c=10 d=11 select=xxxx out=xx
# 40 a=00 b=01 c=10 d=11 select=zzzz out=00 //(1)------------------
# 60 a=00 b=01 c=10 d=11 select=xxx1 out=00
# 80 a=00 b=01 c=10 d=11 select=xx1x out=01
# 100 a=00 b=01 c=10 d=11 select=x1xx out=10
# 120 a=00 b=01 c=10 d=11 select=1xxx out=11
# mach at least two of then
# 140 a=00 b=01 c=10 d=11 select=xx11 out=00 //(2)----------------------------
# 160 a=00 b=01 c=10 d=11 select=x1x1 out=00
# 180 a=00 b=01 c=10 d=11 select=x111 out=00
# 200 a=00 b=01 c=10 d=11 select=1111 out=00
# ** Note: $finish : F:/IC/mux_casez/mux_casez_tb.v(35)
问题:
(1)处当select=4'bzzzz时,是满足4'b???1吗?
(2)处当select=4'bxx11时,应该同时可以满足两项,可是都只赋值了第一项,是只要有一个条件满足就不再判断吗?它是顺序执行的吗?从第一个条件开始逐个判断的吗?
(3)如果改casez为casex,是不是在(1)上一句out=00?
答案:
(1) 在casez语句, 当表达式的值为z时, 满足任何条件, 因此, select=4'bzzzz时, 满足4'b???1
(2) 在case, casez, casex语句中, 不同条件表达式可以彼此覆盖, 此时只有最上面一条语句被执行. 当select=4'bxx11时, 满足第一个条件, 4'b???1, 因此输出, 此时相当于优先编码器
(3) 在casex语句中, 当表达式的值为z,x时, 满足任何条件, 因此, select=4'bxxxx时, 满足4'b???1, 在20处输出out=00
不推荐使用casex语句, 因为x状态为仿真的初值, 容易引起误会. 另外, 建议无关项用?表示, 而不是x或者z.
casez赋值问题
在casez的赋值中,如果是都满足,是只进行第一个赋值吗?是每回只判断一个符合就结束吗?以下是一个例子:
module mux_casez(out,a,b,c,d,select);
output [1:0] out;
input [1:0] a,b,c,d;
input [3:0] select;
reg [1:0] out;
always @(select or a or b or c or d)
begin
casez(select)
4'b???1: out = a;
4'b??1?: out = b;
4'b?1??: out = c;
4'b1???: out = d;
endcase
end
endmodule
//测试文件-----------------------------------------------------------------------------------------
module mux_casez(out,a,b,c,d,select);
output [1:0] out;
input [1:0] a,b,c,d;
input [3:0] select;
reg [1:0] out;
always @(select or a or b or c or d)
begin
casez(select)
4'b???1: out = a;
4'b??1?: out = b;
4'b?1??: out = c;
4'b1???: out = d;
endcase
end
endmodule
//以下是输出结果---------------------------------------------------------------------------------------------
# 0 a=xx b=xx c=xx d=xx select=xxxx out=xx
# 20 a=00 b=01 c=10 d=11 select=xxxx out=xx
# 40 a=00 b=01 c=10 d=11 select=zzzz out=00 //(1)------------------
# 60 a=00 b=01 c=10 d=11 select=xxx1 out=00
# 80 a=00 b=01 c=10 d=11 select=xx1x out=01
# 100 a=00 b=01 c=10 d=11 select=x1xx out=10
# 120 a=00 b=01 c=10 d=11 select=1xxx out=11
# mach at least two of then
# 140 a=00 b=01 c=10 d=11 select=xx11 out=00 //(2)----------------------------
# 160 a=00 b=01 c=10 d=11 select=x1x1 out=00
# 180 a=00 b=01 c=10 d=11 select=x111 out=00
# 200 a=00 b=01 c=10 d=11 select=1111 out=00
# ** Note: $finish : F:/IC/mux_casez/mux_casez_tb.v(35)
问题:
(1)处当select=4'bzzzz时,是满足4'b???1吗?
(2)处当select=4'bxx11时,应该同时可以满足两项,可是都只赋值了第一项,是只要有一个条件满足就不再判断吗?它是顺序执行的吗?从第一个条件开始逐个判断的吗?
(3)如果改casez为casex,是不是在(1)上一句out=00?
答案:
(1) 在casez语句, 当表达式的值为z时, 满足任何条件, 因此, select=4'bzzzz时, 满足4'b???1
(2) 在case, casez, casex语句中, 不同条件表达式可以彼此覆盖, 此时只有最上面一条语句被执行. 当select=4'bxx11时, 满足第一个条件, 4'b???1, 因此输出, 此时相当于优先编码器
(3) 在casex语句中, 当表达式的值为z,x时, 满足任何条件, 因此, select=4'bxxxx时, 满足4'b???1, 在20处输出out=00
不推荐使用casex语句, 因为x状态为仿真的初值, 容易引起误会. 另外, 建议无关项用?表示, 而不是x或者z.
Verilog HDL和VDHL的区别
间苯氧基氯苄是何物,英文名称和CAS号码?
RAS和CAS信号具体怎么理解?
请教几个有关德语语法和词汇的小问题
有关give语法
有关HELP的语法
内存的RAS和CAS 各指什么?在先等!!!!!!!!!!!!!!!!!
财产和意外险精险算师学会(CAS)考试 教材
有关语法的一道选择题
有关不定式的语法知识
那位高手懂Quartus 和Verilog 我想问点问题 可以和我联系吗?
什么是CAS
什么是CAS
什么是CAS
修辞 和语法
2-HydroxymethyI-1和4-benzodiixan的CAS号和结构式
verilog中的数组
verilog 编程问题
verilog 数字钟
对一条在DDN中的2M传输电路来说CCS和CAS的区别
宇瞻DDR400/512M内存的CAS-TRCD-TRP-TRAS参数和内存电压是多少?
宇瞻DDR400/512M内存的CAS-TRCD-TRP-TRAS参数和内存电压是多少?
谁知道辛烯基琥珀酸淀粉钠和辛烯基琥珀酸淀粉铝的CAS号是多少?
有关语法的东西怎么记