首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助] 关于 on-chip memory的问题

[求助] 关于 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编辑过]

你使用片内ram做nios的存储器还是作逻辑的储存呢,作nios的存储器不可能出现这种问题的.
在交流中前进,共同实现nios的应用。
我就是用它来做nios II的存储器,在sopc builder里面我就是选择的默认设置,只更改了内存大小。只要大小超过4kb马上编译出错。而我在编译4kb内存完成以后系统可以运行“hello world”。只是内存太小无法运行稍大一点的程序。这说明应该不是系统的问题,只是不知道是哪有设置问题导致不能使用所有的内存位。

如果你只有一个nios系统的话,你看看你用了多少cache,一共用了多少ram,如果ram够的话不可能出现这种问题的。

在交流中前进,共同实现nios的应用。

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的确是重要,但是在nios系统中一般都用sram或者sdram,只是在测试nios系统时要用到on-chip,保证硬件没有问题。
在交流中前进,共同实现nios的应用。

on-chip memory 有时候确实不重要,但是在我现在的研究中不能使用任何片外内存,所以片内内存大小就至关重要了。现在测试看来能用的内存确实只有4kb,这是无法改变的。不过我的程序用ANSI C 编写只有10kb左右大小,如果用汇编来编写的话应该还有进一步减小的空间。 我在Altera的资料中看到有纯汇编编译和Inline Assembly两种汇编方法,应该都可以在Nios IDE中的GCC实现。 可是我一直无法找到相应的教程,请问有没有人能提供这样的教程或者具体的编程实例啊?谢谢啦

UP3板子用的是1C6,片内有20条M4K的RAM,也就是片内有10K的ram,如果你的代码就是10K的话,估计会出问题,我觉得8K的片内RAM应该不会出问题的。你是说只要你的片内ram超过4K就会出问题吗?不能再大了。
在交流中前进,共同实现nios的应用。

是啊,理论上应该是可以用8kb左右的,但是事实上超过4kb就无法编译成功了,在用4kb编译后显示实际存储位利用率只有46%。不过这是在我的系统中有JTAG的情况下,如果不用JTAG而直接把IDE编译后的文件下载到片上运行后再编译就能成功。只是用这种编译方式调试程序起来太麻烦,所以看来还是得用汇编来缩小程序大小了。

那看来也只有如此了,你的板子上没有其他的外挂存储器了吗?
在交流中前进,共同实现nios的应用。
返回列表