[求助] 关于 on-chip memory的问题
- UID
- 149027
- 性别
- 男
|
[求助] 关于 on-chip memory的问题
我现在想在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编辑过] |
|
|
|
|
|
- UID
- 79720
- 性别
- 男
|
你使用片内ram做nios的存储器还是作逻辑的储存呢,作nios的存储器不可能出现这种问题的. |
|
|
|
|
|
- UID
- 149027
- 性别
- 男
|
我就是用它来做nios II的存储器,在sopc builder里面我就是选择的默认设置,只更改了内存大小。只要大小超过4kb马上编译出错。而我在编译4kb内存完成以后系统可以运行“hello world”。只是内存太小无法运行稍大一点的程序。这说明应该不是系统的问题,只是不知道是哪有设置问题导致不能使用所有的内存位。 |
|
|
|
|
|
- UID
- 79720
- 性别
- 男
|
如果你只有一个nios系统的话,你看看你用了多少cache,一共用了多少ram,如果ram够的话不可能出现这种问题的。 |
|
|
|
|
|
- UID
- 148657
- 性别
- 男
|
on_chip_ram 的上限问题我也遇到过,不过没有探究下去。 我认为是不可以把所有的FPGA片内ram资源都用作on_chip_ram的!(只是目前的认识,有待证实) 但是,根据你的NIOS外设情况,4kB应该是够了(屏蔽掉nios提供的系统初始化代码)。 建议你深入学习NIOS 的software handbook, 理解自动执行的alt_main()! |
|
|
|
|
|
- UID
- 123169
- 性别
- 男
|
嗯,我觉得楼上的说的很好啊!不可以把所有的FPGA片内ram资源都用作on_chip_ram的 另外,on_chip_ram 的问题好像大家都遇到过,应该把遇到的状况都写下来,拿来大家都讨论一下! |
|
|
|
|
|
- UID
- 79720
- 性别
- 男
|
on-chip的确是重要,但是在nios系统中一般都用sram或者sdram,只是在测试nios系统时要用到on-chip,保证硬件没有问题。 |
|
|
|
|
|
- UID
- 149027
- 性别
- 男
|
on-chip memory 有时候确实不重要,但是在我现在的研究中不能使用任何片外内存,所以片内内存大小就至关重要了。现在测试看来能用的内存确实只有4kb,这是无法改变的。不过我的程序用ANSI C 编写只有10kb左右大小,如果用汇编来编写的话应该还有进一步减小的空间。 我在Altera的资料中看到有纯汇编编译和Inline Assembly两种汇编方法,应该都可以在Nios IDE中的GCC实现。 可是我一直无法找到相应的教程,请问有没有人能提供这样的教程或者具体的编程实例啊?谢谢啦 |
|
|
|
|
|
- UID
- 79720
- 性别
- 男
|
UP3板子用的是1C6,片内有20条M4K的RAM,也就是片内有10K的ram,如果你的代码就是10K的话,估计会出问题,我觉得8K的片内RAM应该不会出问题的。你是说只要你的片内ram超过4K就会出问题吗?不能再大了。 |
|
|
|
|
|
- UID
- 149027
- 性别
- 男
|
是啊,理论上应该是可以用8kb左右的,但是事实上超过4kb就无法编译成功了,在用4kb编译后显示实际存储位利用率只有46%。不过这是在我的系统中有JTAG的情况下,如果不用JTAG而直接把IDE编译后的文件下载到片上运行后再编译就能成功。只是用这种编译方式调试程序起来太麻烦,所以看来还是得用汇编来缩小程序大小了。 |
|
|
|
|
|
- UID
- 79720
- 性别
- 男
|
那看来也只有如此了,你的板子上没有其他的外挂存储器了吗? |
|
|
|
|
|