一个verilog里在case中赋值的问题, 求大家帮帮助, 如下例, 谢谢先.

moduletry(S,pbit);inputS;outputregpbit;parameterzero=1'b0;parameterone=1'b1;always@(*... module try (S, pbit);
input S;

output reg pbit;

parameter zero = 1'b0;
parameter one = 1'b1;

always @ (*)
begin
case(S)
0: pbit = zero;
1: pbit = zero;
2: pbit = one;
3: pbit = one;
endcase
end
endmodule

下面是我的testbench:
`timescale 1ns/100ps
module testbench ();

reg S;
wire pbit;

try DUT (
.S(S),
.pbit(pbit)
);

initial begin
S = 0;
#10
S = 1;
#10
S = 2;
#10
S = 3;

end

结果仿真出来, pbit永远不会跟据S的改变而变化. 实是不知道怎么办了. 求大神帮帮我. 谢谢
展开
 我来答
ziseouranle
2015-02-26 · TA获得超过681个赞
知道小有建树答主
回答量:486
采纳率:0%
帮助的人:372万
展开全部
当然不会变化,你的S信号位宽是1bit,它永远不可能等于2或者3,所以不可能变化,位宽加大
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
推荐于2017-09-30 · TA获得超过8230个赞
知道小有建树答主
回答量:1146
采纳率:94%
帮助的人:218万
展开全部
把阻塞赋值都改为非阻塞赋值试一试,还有就是不要这样把try和testbench分开写,直接把它们写在一起,也就是一个module和endmodule之间,而且是一个.V文件,试一试
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
司马刀剑
高粉答主

2017-09-30 · 每个回答都超有意思的
知道顶级答主
回答量:4.6万
采纳率:93%
帮助的人:7231万
展开全部
当然不会变化,你的S信号位宽是1bit,它永远不可能等于2或者3,所以不可能变化,位宽加大
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式