搜索
bottom↓
回复: 15

被Cyclone III搞得死去活来,特来求教。epcs@ciii复位无法boot ------------问题解决

[复制链接]

出0入0汤圆

发表于 2011-3-7 21:24:43 | 显示全部楼层 |阅读模式
请问 tear086 .COM 缺氧 的问题解决了没有啊,我现在遇到了同样的问题,ep3c55+epcs16+sdram,程序和逻辑都固化进
epcs16,复位地址指向epcs16,程序运行空间指定为sdram,调试工具用的是quartus ii /nios ii 8.0+sp1版本的。程序和逻辑固化好,掉电后重新上电,程序运行不起来,但是在线运行一遍nios ii,整个板子能正常工作,说明编写的程序和sdram都是没问题的。
看时间好像问题间隔得挺久了,但还是希望楼主能回复一下,到底结果怎么弄的,谢谢了。问题解决不了,真的也快崩溃了。

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2011-3-8 09:32:05 | 显示全部楼层
我原来用CII时也碰到过这个问题, 搞了很久才发现原因。 跟使用哪一个版本的软件应该没有关系,我当时在线下载也可以跑!但烧到epcs就不行, 后来查来查去发现sdram的 字节使能NBS0,NBS1的那两个IO口(高低位)对调了! 交换回正确的就可以工作了!

我就不明白,为什么用JTAG下载调试就可以跑!

建议: 用Nios II IDE中创建一个memory test 模板工程来测试一下系统连接的各个flash 或 sdram是否都正确读写了!

出0入0汤圆

 楼主| 发表于 2011-3-8 18:18:24 | 显示全部楼层
回复【1楼】cicnx
-----------------------------------------------------------------------

非常谢谢。我用的SDRAM是mt48lc8m32系列的,对于DQMH和DQML两个管脚都是直接拉低,让它一直使能有效的。不知道这样行不行。

出0入0汤圆

 楼主| 发表于 2011-3-8 18:27:29 | 显示全部楼层
回复【1楼】cicnx
-----------------------------------------------------------------------
不是mt48lc8m32,是mt48lc8m16。

原理图设计是别的同事弄的,运行程序的SDRAM挂了两片mt48lc8m16,组成32bit。同事设计原理图的时候将两片SDRAM的DQMH和DQML管脚分别连接了起来,因此是需要两个信号控制。而FPGA的SOPC系统自带的SDRAM Controller生成的顶层模块是DQM[3:0],一共4个信号,分别对应两片的DQMH、DQML。因为我有看到别人写的对于SDRAM的操作,就是直接将DQMH和DQML两个输出赋值为0的。我就想当然的没把SDRAM Controller生成的DQM[3:0]输出赋值给外面的两个信号,直接在顶层模块里拉低输出了DQMH、DQML。

出0入0汤圆

 楼主| 发表于 2011-3-8 18:34:06 | 显示全部楼层
回复【1楼】cicnx
-----------------------------------------------------------------------

sdram的 字节使能的字节使能能不能直接拉低,一直使它有效啊?

出0入0汤圆

发表于 2011-3-8 19:16:38 | 显示全部楼层
http://blog.ednchina.com/ilove314/1895479/message.aspx
请看特权的博文。

出0入0汤圆

 楼主| 发表于 2011-3-8 19:59:28 | 显示全部楼层
回复【5楼】yuphone .COM 缺氧®
-----------------------------------------------------------------------

谢谢啊。但是我的情况跟帖子里说的还有些不一样。我的epcs16固化ep3c55的逻辑和程序应该是成功的,因为我将程序的运行空间在nios ii里设置成指向FPGA内部存储资源定制的on_chip_ram时,逻辑和程序都是运行成功的,用示波器测试到了输出的信号。而将运行程序的空间指向外挂的sdram时,程序就跑不起来了,而逻辑是配置好了,因为此时用signal tap ii就能运行起来,不需要重新配置。

出0入0汤圆

 楼主| 发表于 2011-3-8 20:02:39 | 显示全部楼层
而且将程序运行空间指向sdram,通过usb下载线在jtag口在线运行一次程序,是可以运行起来的。

出0入0汤圆

 楼主| 发表于 2011-3-14 18:12:48 | 显示全部楼层
问题解决。主要是运行nios ii程序的SDRAM Controller生成的DQM[3:0]4个信号应该依次赋给高、低16bitSDRAM的DQMH、DQML,而不能高低颠倒,也不能简化成两个信号输出。固化好逻辑和程序后,在上电瞬间或者复位瞬间,才能看到DQM[3:0]4个信号输出有高有低,等系统稳定后,DQM[3:0]一直输出低电平。因此这个问题与软件版本无关。

出0入0汤圆

 楼主| 发表于 2011-3-14 18:21:00 | 显示全部楼层
多谢1楼  cicnx 的提示。通过JTAG口,利用USB下载线在nios ii在线调试时,之所以能够运行成功,是因为这种情况下并不需要将程序从epcs里复制到SDRAM,从而对SDRAM进行写操作,DQM[3:0]主要是在写操作时起作用。我还用示波器看了一下DQM[3:0],在线调试依次时,其上并没有高低电平间隔输出,一直都是低电平的。

出0入0汤圆

发表于 2011-3-14 19:48:42 | 显示全部楼层
赶紧mark 手上有一片25

出0入0汤圆

发表于 2011-12-9 23:26:16 | 显示全部楼层
回复【8楼】jane0324
-----------------------------------------------------------------------

我也遇到了同样的问题,也是直接把SDRAM的DQMH ,DQML拉低了,从你的情况来看,NIOS2是不是在每次复位时首先对SDRAM作了一些测试才开始运行的哦?
这个问题我也搞了好多天了,现在差不多发现问题了,明天去试试。

出0入0汤圆

发表于 2011-12-11 09:28:06 | 显示全部楼层
收藏,好帖。

出0入0汤圆

发表于 2012-2-17 11:59:12 | 显示全部楼层
嗯,不错!类似的问题还会在DDR2/DDR3中出现。。。。。大家注意一下

出0入0汤圆

发表于 2013-7-22 10:27:49 | 显示全部楼层
MARK了  最近正在搞DDR2!!!

出0入9汤圆

发表于 2014-7-5 10:01:22 | 显示全部楼层
jane0324 发表于 2011-3-14 18:12
问题解决。主要是运行nios ii程序的SDRAM Controller生成的DQM[3:0]4个信号应该依次赋给高、低16bitSDRAM的 ...

想问一下,我现在的情况SDRAM的DQM直接接地时,EPCS里的程序只有SOF文件部份正常运行,ELF文件部份不能运行。这个情况是不是因为SDRAM的DQM直接接地引起的?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-27 00:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表