在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3393|回复: 7

[求助] 关于二维数组编译为什么会占用那么多逻辑单元

[复制链接]
发表于 2011-1-8 15:35:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
我现在是CPU+CPLD的结构。我的CPLD链接1602的LCD,然后我在CPLD内开辟32个byte的ram空间作为1602液晶屏的显示buf。然后我的CPU通过地址线和数据线以及读写控制线对这个显示buf进行刷新即可。
中间对显示buf的操作,我把程序列出,各位帮我看看这样是不是有问题,这段程序加上去,编译结果,logic elements多了进400个,狂晕啊。(使用的是EPM1270T144).

input [13:0] cpld_addr;
inout [7:0] cpld_data;
input cpld_nwr;

reg[7:0] lcd_buf[31:0];
always @(posedge cpld_nwr or posedge reset)
  begin
  if(reset)
   begin

   end
  else
   begin
   if(cpld_addr[13:5] == 'd0)
         lcd_buf[cpld_addr[4:0]] = cpld_data;
   end
  end
发表于 2011-1-8 20:32:16 | 显示全部楼层
一看哥们就是做单片机的,memory资源很少的。可不像C语言那样可以释放空间。
 楼主| 发表于 2011-1-8 23:00:05 | 显示全部楼层
楼上的哥们眼光不错。。。请问有什么方式可以优化啊?
发表于 2011-1-8 23:21:53 | 显示全部楼层
没法优化,硬件对应的是电路。软件是流程。
发表于 2011-1-9 10:32:30 | 显示全部楼层
LS兄弟说得对,如果你非要用32个REG来做BUF,那这个资源省不了。
如果CPLD中有RAM资源的话,也可以考虑RAM,一样的效果。
发表于 2011-1-9 12:18:22 | 显示全部楼层
除了32个寄存器外,还有1个5bits的地址译码器,和1个10bits的比较器,这些都要用LE构造。
不知道EPM1270T144的LE内部有多少资源,400个可能也是所需要的。

如果用RAM肯定能省LE,你可以告诉综合器采用RAM综合你的2维变量。
但是FPGA中RAM还是比较大的,32Bytes用1个Block RAM肯定够了。
发表于 2011-1-20 16:21:41 | 显示全部楼层
把寄存器阵列改成RAM。
reg[7:0] led_buf[31:0]是寄存器阵列。很消耗资源。
发表于 2011-1-20 21:39:08 | 显示全部楼层
呵呵,用CPLD是不是太浪费了做这个啊。CPLD那么贵,而且你这样做,每个数据地址位都是一个触发器啊。用的资源太多了,当然划不来了。不如加个小单片机,就几块钱。你这个CPLD成本贵啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-6-29 12:03 , Processed in 0.019841 second(s), 9 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表