kevinleez 发表于 2011-1-8 22:56:40

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

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

input cpld_addr;
inout cpld_data;
input cpld_nwr;

reg lcd_buf;
always @(posedge cpld_nwr or posedge reset)
begin
if(reset)
   begin

   end
else
   begin
   if(cpld_addr == 'd0)
         lcd_buf] = cpld_data;
   end
end

qianhng 发表于 2011-1-8 23:03:33

嘿嘿,每个LE只有一个存储单元,32byte=32*8bit=248bit,单单这一项已经消耗248个LE了......

matthewchan 发表于 2011-1-9 10:10:14

正解。
提一句:
硬件语言,例如verilog只是种表达方式,与c语言并没什么本质区别。
关键的是,脑海要有硬件的思想。
呵呵

cfqxdgr 发表于 2011-1-9 12:45:41

完全错误的编程思路……

kevinleez 发表于 2011-1-9 13:56:10

如何说是完全错误的编程思路,我知道32*8=256个LE。。。但是实际用了400多个。。。感觉应该不会有多处150多个LE来组合各个逻辑啊。

cfqxdgr 发表于 2011-1-9 14:30:04

因为开一个缓冲区然后刷新它这是MCU编程的思路,存储空间都是线性排列的。在逻辑器件里,1个LE才能存1bit,而且由于分布开来,布线出来是很难保证时序的,没有效率。
页: [1]
查看完整版本: 关于二维数组编译为什么会占用那么多逻辑单元