verilog的 "/"(除号)怎么用?
modulediv(clk,a,b,c);input[3:0]a;input[3:0]b;inputclk;output[3:0]c;reg[3:0]c;always@(...
module div(clk,a,b,c);
input [3:0] a;
input [3:0] b;
input clk;
output[3:0] c;
reg [3:0]c;
always @(posedge clk)
begin c<=a/b;
end
endmodule
这程序仿真能有什么结果啊 展开
input [3:0] a;
input [3:0] b;
input clk;
output[3:0] c;
reg [3:0]c;
always @(posedge clk)
begin c<=a/b;
end
endmodule
这程序仿真能有什么结果啊 展开
5个回答
展开全部
verilog中基本不存在直接用“/”做除法,除法的运算时间长,基本上一个周期可能都算不完,
一般采用近似方法代替:
1、除以2的n次方时,可以采用丢位的方法,比如a除以2,可以写成a[3:1].
2、一般的除法,比如你上面的a/b,都会转成乘法来做,如a*(1/b),其中1/b的分子可以放大1024倍后再做计算。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.用除号“/”就意味着在一个时钟周期内可以得到商
2.用除号“/”和用除法模块lpm_divider是一样的,因为我看到两者最后都是调用了扩展名为tdf的LPM_DIVIDE文件。
3.如果不考虑面积,可以直接用除号“/”而不用自己写一个数个周期才能出结果的除法算法。
2.用除号“/”和用除法模块lpm_divider是一样的,因为我看到两者最后都是调用了扩展名为tdf的LPM_DIVIDE文件。
3.如果不考虑面积,可以直接用除号“/”而不用自己写一个数个周期才能出结果的除法算法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用除号听麻烦的吧,看看有没有已经写好的核来实现,直接用/的话,会出现问题,直接除只有为2或者2^n还好
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不确定。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |