集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 873|回复: 1

求教大神,一条语句占用了FPGA9万多个逻辑单元

[复制链接]
lakas 发表于 2013-4-16 15:58:23 | 显示全部楼层 |阅读模式
语句是:
input wire[11:0] addr,//接入的是dsp_ea[14:3]
output reg[16:0] q,

reg[7:0] headers[0:256*8-1],
//'define TEST
'ifdef TEST
....
'else
always@(posedge clk)begin
if(rden)begin
q[7:0]<=headers[addr[11:0]];
q[15:8]<=headers[addr[11:0]+1];
end
end
'endif
编译时没有语法错误,但是会显示逻辑单元不够用而出错,会占用9万多个逻辑单元。但是注释掉q[7:0]<=headers[addr[11:0]]; 和q[15:8]<=headers[addr[11:0]+1];这两条语句则只用9千多个逻辑单元。最开始q是8位的reg型,后来逻辑有改动,将q设为16位的reg或者wire都出现这个问题。
FPGA芯片是EP3C55F484I7,用的是QUARTUSII 11.1。
lureny 发表于 2013-4-19 10:04:14 | 显示全部楼层
嗯,这个还真有点意思,reg[7:0] headers[0:256*8-1]这句话基本上就要8192个单元。
q[7:0]<=headers[addr[11:0]]; 这个是2048选一,你有16个这样的2048选一。
如果可以,你现在是16bit的选择,你不妨先做一个 1bit的选择看看需要多少单元。
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-6-27 16:24 , Processed in 0.067966 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表