orange-208 发表于 2012-9-24 22:07:39

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

lgg88 发表于 2012-9-24 22:10:50

楼主 assign Cnt2_data = count4 * freq_50MHz;
*这是乘法吗?   这样写有问题啊

orange-208 发表于 2012-9-24 22:13:33

lgg88 发表于 2012-9-24 22:10 static/image/common/back.gif
楼主 assign Cnt2_data = count4 * freq_50MHz;
*这是乘法吗?   这样写有问题啊

本人刚学Verilog,很多不懂,请指点,谢了1

orange-208 发表于 2012-9-24 22:15:26

fx=(Nx/Ns)*fs,我将 Nx*fs 计算出来之后送给Div模块计算。

lgg88 发表于 2012-9-24 22:21:10

一般情况下不推荐直接写乘法和除法,   可以用别的代替。有些是不能综合的。乘法和除法一般只对2的n次方操作,,用移位完成。

jlhgold 发表于 2012-9-24 22:38:17

lgg88 发表于 2012-9-24 22:21 static/image/common/back.gif
一般情况下不推荐直接写乘法和除法,   可以用别的代替。有些是不能综合的。乘法和除法一般只对2的n次方操 ...

在qII下乘法可综合 LZ应该是A的平台

wildgoose0712 发表于 2012-9-25 09:27:55

不知道你后面乘出来干什么用,计数器嘛,在给定的时间里把数计出来就可以了

orange-208 发表于 2012-9-25 11:02:40

jlhgold 发表于 2012-9-24 22:38 static/image/common/back.gif
在qII下乘法可综合 LZ应该是A的平台

是的,我想问下,一个32位宽的数据与一个26位宽的数据 相乘,一般怎么处理,代码里面直接乘吗?所乘出来的数估计超过了32位,可以定义一个64位宽的数据吗?

orange-208 发表于 2012-9-25 11:03:06

lgg88 发表于 2012-9-24 22:21 static/image/common/back.gif
一般情况下不推荐直接写乘法和除法,   可以用别的代替。有些是不能综合的。乘法和除法一般只对2的n次方操 ...

我想问下,一个32位宽的数据与一个26位宽的数据 相乘,一般怎么处理,代码里面直接乘吗?所乘出来的数估计超过了32位,可以定义一个64位宽的数据吗?

wildone 发表于 2012-10-29 15:31:37

不推荐直接用乘除法,而是用移位来代替
页: [1]
查看完整版本: output [31:0]中的31能不能改成63?