环境: quartus v13.0 64位。 DE2 cycloneII EP2C35F672C6N (学校的开发板,还是想同学借的呵呵)
主要实现flash的烧录,虽然实现了但是还是有很多运气的成分(如:ip核的连线问题,flash的时序和相关的器件连接,SDRAM的时序收敛,软件用的例程)。种种表明我还有漫漫长路要走,才能算入门。
1、复位不正常。(可能原因:没有加时序约束或者是复位向量没有指向SDRAM,而是FLASH。但是flash 还没有烧录导致复位失败,等等测试,,,)
2、flash的烧写失败。
测试复位不正常是否由复位向量指向flash(此时flash还没有程序)的原因。
经过测试:复位向量指向SDRAM也能正常复位。
然后我将复位地址指向cfi_flash_0.uas.
flash的配置如下:需要三个器件:tri-state conduit bridge ,tri-state condit sharer, generic tri-state controller (来源DE2的例程)
这是根据具体的flash型号来配置的:(我的来源也是例程)
到此flash在ip中的配置结束。
在顶层例化中:由于ip核中没有生成复位接口要在顶层给复位置1。(引脚分配一定要正确,特别是sdram_dqm)
flash下载的两种文件.sof(FPGA内部配置数据,通过JTAG下载,下载后实现FPGA的硬件功能)和.elf (软件程序下载文件)
.sof 通过epcs controller 下载, .elf 通过cfi flash 下载。这是我试出来的,开始我都是通过cfi flash 下载,发现和很奇怪的现象:上电没有反应,下载了.sof文件led灯闪了,(心里就无语了,我还没下.elf文件呢)唯一的解释就是.elf文件已经下载成功了。但是为什么.sof文件没有下载成功???我带着疑惑试着重新下载由于粗心,没有选cfi_flash而是默认的epcs。我发现后想改,但是没改试试看。结果上电程序就跑起来了。
问题1:自从将复位信号指向cfi_flash_0.uas后,就不能run as hardware.出现下载hardware configuration 遇到一个问题。如下图
问题2: 有时候调了半天就是不知道问题在哪,比如:sysid not found 。重启下eclipse 就没问题了。也就是说我不了解generate BSP, edit BSP, build BSP project, build app, workspace 到底有什么关系,以及这些动作都在做了写什么。