verilog中case使用问题
moduleyzb808(sel,a,b,c,d,y);input[1:0]sel;inputa,b,c,d;outputy;regy;always@(seloraorb...
module yzb808(sel,a,b,c,d,y);
input[1:0] sel;
input a,b,c,d;
output y;
reg y;
always@(sel or a or b or c or d)
begin
case(sel)
2'b00:y=a;
2'b01:y=b;
2'b10:y=c;
2'b11:y=d;
endcase
end
endmodule
时序仿真时候如果a,b,c,d输入为高阻态,y不能输出高阻态
同样思路用if...else就米问题 各位强人 请教下 展开
input[1:0] sel;
input a,b,c,d;
output y;
reg y;
always@(sel or a or b or c or d)
begin
case(sel)
2'b00:y=a;
2'b01:y=b;
2'b10:y=c;
2'b11:y=d;
endcase
end
endmodule
时序仿真时候如果a,b,c,d输入为高阻态,y不能输出高阻态
同样思路用if...else就米问题 各位强人 请教下 展开
3个回答
展开全部
CASE变成CASEX再加上default:y=1'b0就可以解决此问题,使用方法。
如下参考:
1.首先,右键单击项目并单击NewSource以创建一个新的代码文件。
2.选择用户文档创建一个自定义文档文档,文件名和后缀随意。
3.创建完成后,切换到文件面板底部,双击打开文件,根据自己喜欢的形式输入数据。
4.写完数据文件后,右键单击项目,单击NewSource,然后选择Verilog测试装置,输入文件名并继续,选择要测试的模块,然后创建文件。
5.双击打开文件,可以看到要测试的模块块的输入对应一些reg寄存器类型,输出对应一些wire类型。添加两个参数常量,然后为for循环添加计数变量J,并添加一个向量数组来保存文件读取的数据。
6.下面是程序生成的用于实例化和连接接收测试模块的代码。只需编写end之间的测试代码。
展开全部
always@(sel or a or b or c or d)
begin
case(sel)
2'b00:y=a;
2'b01:y=b;
2'b10:y=c;
2'b11:y=d;
default:y=1'bz; //这里给一个默认值就行了
endcase
end
begin
case(sel)
2'b00:y=a;
2'b01:y=b;
2'b10:y=c;
2'b11:y=d;
default:y=1'bz; //这里给一个默认值就行了
endcase
end
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把CASE 变成CASEX试试 再加上default:y=1'b0;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询