我现在想在up3 板上设计一个小nios ii 系统,其中只有nios ii/e 核,jtag uart, timer和 on-chip memory. 这个板上的Cyclone芯片有92000个存储位大概应该是11kb左右大小。 但是我每次编译的时候最大只能用到4kb左右,超过这个数编译器就会出错显示 Can't place 76 RAM cells or portions of RAM cells in design. 而我用4kb的内存编译成功后显示实际内存用量只有46%。我的设计里面至少需要8kb的内存大小,剩下的那些存储位不知道为什么不能用。 请问有没有哪位高手知道如何能在设计里面使用尽可能多的存储位?
[此贴子已经被作者于2006-11-1 23:53:53编辑过]
如果你只有一个nios系统的话,你看看你用了多少cache,一共用了多少ram,如果ram够的话不可能出现这种问题的。
on_chip_ram 的上限问题我也遇到过,不过没有探究下去。
我认为是不可以把所有的FPGA片内ram资源都用作on_chip_ram的!(只是目前的认识,有待证实)
但是,根据你的NIOS外设情况,4kB应该是够了(屏蔽掉nios提供的系统初始化代码)。
建议你深入学习NIOS 的software handbook, 理解自动执行的alt_main()!
嗯,我觉得楼上的说的很好啊!不可以把所有的FPGA片内ram资源都用作on_chip_ram的
另外,on_chip_ram 的问题好像大家都遇到过,应该把遇到的状况都写下来,拿来大家都讨论一下!
on-chip memory 有时候确实不重要,但是在我现在的研究中不能使用任何片外内存,所以片内内存大小就至关重要了。现在测试看来能用的内存确实只有4kb,这是无法改变的。不过我的程序用ANSI C 编写只有10kb左右大小,如果用汇编来编写的话应该还有进一步减小的空间。 我在Altera的资料中看到有纯汇编编译和Inline Assembly两种汇编方法,应该都可以在Nios IDE中的GCC实现。 可是我一直无法找到相应的教程,请问有没有人能提供这样的教程或者具体的编程实例啊?谢谢啦
是啊,理论上应该是可以用8kb左右的,但是事实上超过4kb就无法编译成功了,在用4kb编译后显示实际存储位利用率只有46%。不过这是在我的系统中有JTAG的情况下,如果不用JTAG而直接把IDE编译后的文件下载到片上运行后再编译就能成功。只是用这种编译方式调试程序起来太麻烦,所以看来还是得用汇编来缩小程序大小了。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |