output [31:0]中的31能不能改成63?
如题,自己写了一个频率计的计数器,感觉有溢出,大家看看,给点意见!谢了!module counter2
(
Sig_in, CEN,
Cnt2_data
);
input Sig_in, CEN;
output Cnt2_data;
wire Cnt2_data;
/************************************/
parameter freq_50MHz = 26'd50_000_000;
/************************************/
reg count4;
always @ ( posedge Sig_in )
if( CEN == 1'b0 )
begin
count4 <= 0;
end
else
begin
count4 <= count4 + 1'b1;
end
/**************************************/
assign Cnt2_data = count4 * freq_50MHz;
/**************************************/
endmodule
楼主 assign Cnt2_data = count4 * freq_50MHz;
*这是乘法吗? 这样写有问题啊 lgg88 发表于 2012-9-24 22:10 static/image/common/back.gif
楼主 assign Cnt2_data = count4 * freq_50MHz;
*这是乘法吗? 这样写有问题啊
本人刚学Verilog,很多不懂,请指点,谢了1 fx=(Nx/Ns)*fs,我将 Nx*fs 计算出来之后送给Div模块计算。 一般情况下不推荐直接写乘法和除法, 可以用别的代替。有些是不能综合的。乘法和除法一般只对2的n次方操作,,用移位完成。 lgg88 发表于 2012-9-24 22:21 static/image/common/back.gif
一般情况下不推荐直接写乘法和除法, 可以用别的代替。有些是不能综合的。乘法和除法一般只对2的n次方操 ...
在qII下乘法可综合 LZ应该是A的平台 不知道你后面乘出来干什么用,计数器嘛,在给定的时间里把数计出来就可以了 jlhgold 发表于 2012-9-24 22:38 static/image/common/back.gif
在qII下乘法可综合 LZ应该是A的平台
是的,我想问下,一个32位宽的数据与一个26位宽的数据 相乘,一般怎么处理,代码里面直接乘吗?所乘出来的数估计超过了32位,可以定义一个64位宽的数据吗? lgg88 发表于 2012-9-24 22:21 static/image/common/back.gif
一般情况下不推荐直接写乘法和除法, 可以用别的代替。有些是不能综合的。乘法和除法一般只对2的n次方操 ...
我想问下,一个32位宽的数据与一个26位宽的数据 相乘,一般怎么处理,代码里面直接乘吗?所乘出来的数估计超过了32位,可以定义一个64位宽的数据吗? 不推荐直接用乘除法,而是用移位来代替
页:
[1]