微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > HDL实现特殊加法器

HDL实现特殊加法器

时间:10-02 整理:3721RD 点击:
我想做一个特殊加法器,就是从MSB到LSB累加,
比如,3'b010,从bit[2]到bit[0]依次相加,结果为3'b110,
再者,3'b110,从bit[2]到bit[0]依次相加,结果为3'b001,
各位大侠有什么简单高效的方法没?

给位大侠,帮帮小弟了。

都没人回复啊大侠快快现身

这不光是累加,
3'b010->3'b110,
3'b110->3'b001,
lz得先说说,怎么个累加法可以得出上面的结果?

我们通常的加法不是从低位开始加、进位的嘛
这里我想从高位到低位加、进位

就是从高位到低位进行加法,

小编,快快现身吧
偶在线等待呢

可以把输入数据反过来,不就是从低位到高位加了吗,不知道我理解对了吗

是可以反过来,这种方法我想过啦,但是要是数据比较大,得来回翻转两次,我想找个更简洁的实现方式,但是很遗憾,我的小脑壳还没想出来呢

翻转数据不占面积啊

综合面积还是有差别的

反转在实际电路实现的时候无非两根线之间怎么样连接,反转两次不会增加电路的复杂度和面积。

没有翻转面积为::::::::
Number of ports:                           41
Number of nets:                           267
Number of cells:                          202
Number of combinational cells:            195
Number of sequential cells:                 6
Number of macros:                           0
Number of buf/inv:                         83
Number of references:                      84
Combinational area:       3225.000000
Noncombinational area:     207.000000
Net Interconnect area:      undefined  (No wire load specified)
Total cell area:          3432.000000
Total area:                 undefined

翻转操作::::::
Number of ports:                           41
Number of nets:                           256
Number of cells:                          192
Number of combinational cells:            185
Number of sequential cells:                 6
Number of macros:                           0
Number of buf/inv:                         79
Number of references:                      64
Combinational area:       3965.000000
Noncombinational area:     208.000000
Net Interconnect area:      undefined  (No wire load specified)
Total cell area:          4173.000000
Total area:                 undefined

这里的翻转操作时通过for循环实现,两次综合的RTL的差距在于多了一个翻转的for循环操作

你是用assign直接赋值翻转吗?

assign b[3:0] = {a[0], a[1], a[2], a[3]};

我用for循环实现,因为32bit位宽,通过assign 赋值没什么区别。我验证下

做个真值表查表吧

使用assign赋值不利用参数化设计


你莫用for,试试assign a1[31:0] = a[0:31]; assign b1[31:0] = b[0:31];
资源差别应该不大。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top