如何用verilog语言实现100个并行输入的一位2进制数的快速模二

[复制链接]
3620|2
 楼主| moumou77 发表于 2008-3-17 15:39 | 显示全部楼层 |阅读模式
如何用verilog语言实现100个并行输入的一位2进制数的模二加(异或)(b[0]到b[99]),用for语句是不是太占用资源了,如果把并行转成串行再一个一个相异或又太浪费时钟了,不知道各位有没有什么好办法?
liudewei 发表于 2008-3-17 18:52 | 显示全部楼层

这是4个数的例子,你改写一下就行。

module&nbsp;pipelined_binary_adder_tree<br />(<br />&nbsp;&nbsp;&nbsp;&nbsp;input&nbsp;[WIDTH-1:0]&nbsp;A,&nbsp;B,&nbsp;C,&nbsp;D,&nbsp;E,<br />&nbsp;&nbsp;&nbsp;&nbsp;input&nbsp;clk,<br />&nbsp;&nbsp;&nbsp;&nbsp;output&nbsp;[WIDTH-1:0]&nbsp;out<br />);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;parameter&nbsp;WIDTH&nbsp;=&nbsp;1;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;wire&nbsp;[WIDTH-1:0]&nbsp;sum1,&nbsp;sum2,&nbsp;sum3,&nbsp;sum4;<br />&nbsp;&nbsp;&nbsp;&nbsp;reg&nbsp;[WIDTH-1:0]&nbsp;sumreg1,&nbsp;sumreg2,&nbsp;sumreg3,&nbsp;sumreg4;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;always&nbsp;@&nbsp;(posedge&nbsp;clk)<br />&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sumreg1&nbsp;&lt=&nbsp;sum1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sumreg2&nbsp;&lt=&nbsp;sum2;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sumreg3&nbsp;&lt=&nbsp;sum3;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sumreg4&nbsp;&lt=&nbsp;sum4;<br />&nbsp;&nbsp;&nbsp;&nbsp;end<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;2-bit&nbsp;additions<br />&nbsp;&nbsp;&nbsp;&nbsp;assign&nbsp;sum1&nbsp;=&nbsp;A&nbsp;+&nbsp;B;<br />&nbsp;&nbsp;&nbsp;&nbsp;assign&nbsp;sum2&nbsp;=&nbsp;C&nbsp;+&nbsp;D;<br />&nbsp;&nbsp;&nbsp;&nbsp;assign&nbsp;sum3&nbsp;=&nbsp;sumreg1&nbsp;+&nbsp;sumreg2;<br />&nbsp;&nbsp;&nbsp;&nbsp;assign&nbsp;sum4&nbsp;=&nbsp;sumreg3&nbsp;+&nbsp;E;<br />&nbsp;&nbsp;&nbsp;&nbsp;assign&nbsp;out&nbsp;=&nbsp;sumreg4;<br /><br />endmodule
xwj 发表于 2008-3-18 09:15 | 显示全部楼层

为什么要“把并行转成串行再一个一个相异或”???

为什么不直接并行处理???<br /><br /><br />比较赞同3楼的观点
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部