求助高手--512位加法器

[复制链接]
 楼主| drsd 发表于 2009-5-11 23:20 | 显示全部楼层 |阅读模式
这是我写的512位加法器verilog程序,在quartus中运行错误是IO资源不够,这个要占用1500多个,但只能提供300多个,请教高手该怎么办啊,先谢谢了<br /><br />module&nbsp;adder(ina,inb,cin,outsum,cout);<br />output&nbsp;[512:1]&nbsp;outsum;<br />output&nbsp;cout;<br />input&nbsp;[512:1]&nbsp;ina,inb;<br />input&nbsp;cin;<br />wire&nbsp;c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15;<br /><br />full_add32&nbsp;fo(.ina(ina[32:1]),.inb(inb[32:1]),.cin(cin),.outsum(outsum[32:1]),.cout(c1));<br />full_add32&nbsp;f1(.ina(ina[64:33]),.inb(inb[64:33]),.cin(c1),.outsum(outsum[64:33]),.cout(c2));<br />full_add32&nbsp;f2(.ina(ina[96:65]),.inb(inb[96:65]),.cin(c2),.outsum(outsum[96:65]),.cout(c3));<br />full_add32&nbsp;f3(.ina(ina[128:97]),.inb(inb[128:97]),.cin(c3),.outsum(outsum[128:97]),.cout(c4));<br />full_add32&nbsp;f4(.ina(ina[160:129]),.inb(inb[160:129]),.cin(c4),.outsum(outsum[160:129]),.cout(c5));<br />full_add32&nbsp;f5(.ina(ina[192:161]),.inb(inb[192:161]),.cin(c5),.outsum(outsum[192:161]),.cout(c6));<br />full_add32&nbsp;f6(.ina(ina[224:193]),.inb(inb[224:193]),.cin(c6),.outsum(outsum[224:193]),.cout(c7));<br />full_add32&nbsp;f7(.ina(ina[256:225]),.inb(inb[256:225]),.cin(c7),.outsum(outsum[256:225]),.cout(c8));<br />full_add32&nbsp;f8(.ina(ina[288:257]),.inb(inb[288:257]),.cin(c8),.outsum(outsum[288:257]),.cout(c9));<br />full_add32&nbsp;f9(.ina(ina[320:289]),.inb(inb[320:289]),.cin(c9),.outsum(outsum[320:289]),.cout(c10));<br />full_add32&nbsp;f10(.ina(ina[352:321]),.inb(inb[352:321]),.cin(c10),.outsum(outsum[352:321]),.cout(c11));<br />full_add32&nbsp;f11(.ina(ina[384:353]),.inb(inb[384:353]),.cin(c11),.outsum(outsum[384:353]),.cout(c12));<br />full_add32&nbsp;f12(.ina(ina[416:385]),.inb(inb[416:385]),.cin(c12),.outsum(outsum[416:385]),.cout(c13));<br />full_add32&nbsp;f13(.ina(ina[448:417]),.inb(inb[448:417]),.cin(c13),.outsum(outsum[448:417]),.cout(c14));<br />full_add32&nbsp;f14(.ina(ina[480:449]),.inb(inb[480:449]),.cin(c14),.outsum(outsum[480:449]),.cout(c15));<br />full_add32&nbsp;f15(.ina(ina[512:481]),.inb(inb[512:481]),.cin(c15),.outsum(outsum[512:481]),.cout(cout));<br />endmodule<br /><br />module&nbsp;full_add32(ina,inb,cin,outsum,cout);<br />output[32:1]&nbsp;outsum;<br />output&nbsp;cout;<br />input[32:1]&nbsp;ina,inb;<br />input&nbsp;cin;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assign&nbsp;{cout,outsum}=ina+inb+cin;<br />endmodule
patrick007 发表于 2009-5-12 00:25 | 显示全部楼层

re

512*(2in+1out)&nbsp;&nbsp;.......<br /><br />try&nbsp;64bits&nbsp;in&nbsp;and&nbsp;out,&nbsp;and&nbsp;use&nbsp;comb&nbsp;logic&nbsp;to&nbsp;<br /><br /><br />7+7&nbsp;=&nbsp;(3+3+1)+(3+3+1)<br />
Fourier00 发表于 2009-5-15 20:11 | 显示全部楼层

lz是为了让这个玩意编译过去

lz是为了让这个玩意编译过去?&nbsp;<br />可以试试大一点的片子,或者用虚拟pin
beinghu 发表于 2009-7-3 15:56 | 显示全部楼层

用个top模块包起来

top模块的io少于300就没事了
氧化 发表于 2009-7-3 21:15 | 显示全部楼层

Fourier00 正解!

Fourier00&nbsp;正解!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

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

1

主题

1

帖子

0

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