程序如下:
module updowncnt8(d,load,ena,clk,clr,updown,q,cout);
input[7:0] d;
input load,ena,clk,clr,updown;
output[7:0] q;
output cout;
reg[7:0] q;
//reg cout;
always@(posedge clk)
begin
if(~clr)
begin
q='b00000000;//cout='b0;
end
else if(ena)
begin
if(load) q=d;
else if(updown==0)
begin
q=q+1;
// cout=|q;
end
else
begin
q=q-1;
//cout=&q;
end
end
end
assign cout=(~updown)?&q:|q;
endmodule
我的目的是让cout记录进位和借位,被我注释掉的是我的原程序(原程序中没assign语句),但不能达到目的,该成现在这样(即使用assign语句)才行.请问这是什么原因啊.谢谢各位指导.
“我的目的是让cout记录进位和借位,被我注释掉的是我的原程序(原程序中没assign语句),但不能达到目的,该成现在这样(即使用assign语句)才行.请问这是什么原因啊”
你的程序通过两种方法可以到达目的,而且是一样的,只不过在逻辑上有一点问题,就是
assign cout=(~updown)?&q:|q;
应为
assign cout=(updown)?&q:|q;
这样就一样了。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |