原创 FPGA资源优化一则

2014-11-8 11:36 1372 22 22 分类: FPGA/CPLD

群里突然有人发问优化代码段:

module youhua(input a,
input b,
input c,
input d,
input sel,
output /*reg*/ [1:0] sum);
always @(a,b,c,d,sel)
if(sel)
sum = a+b;
else sum = c+d;
 
很早之前就看到了类似的题目,好像也是面试题,所以我很快就想到了减少加法器。
但是群里有人说用assign sum = sel? (a+b)c+d);代替上面的always块,
我觉得很奇怪,这样跟上面的完全没有什么两样,起不到任何优化的效果
qq图片20141108111717.jpg
我想到的是用多路选择器选择a,b,c,d然后接入加法器:
reg a_r,b_r;
always @(a,b,c,d,sel)
if(sel)
begin
a_r <= a;
b_r <= b;
end
else begin
a_r <= c;
b_r <= d;
end
assign sum = a_r + b_r;
RTL如下
qq图片20141108105950.jpgqq图片20141108110253.jpg

文章评论0条评论)

登录后参与讨论
我要评论
0
22
关闭 站长推荐上一条 /2 下一条