Quartus14 Qsys Nios SDRAM HelloWorld

来源:互联网 发布:许继集团怎么样知乎 编辑:程序博客网 时间:2024/06/05 15:28

Quartus14 Qsys Nios SDRAM HelloWorld

花了好几天时间来熟悉整个流程
最后终于在黑金开发板上配制出来了
写得比较简略,因为已经有相关的教程了
只是把自己遇到问题写下来,希望可以提供参考
这里写图片描述

1.新建工程–>New–>Schematic file(我用的是原理图形式)

2.打开Qsys

这里写图片描述
①添加nios processor+jtag_uart+epcs+system id(防止程序与软核不对应)
直接在上图的搜索框里面搜就好了。再说一下Nios用Avalon总线与模块通讯,外设的信号如s1,slave等都要和Nios的data_master相连。FLASH、SDRAM等存储类型的模块不仅要连data_master,还要连instruction_master。
点上图的system选项可以选择自动分配地址、复位、中断。

②再添加PLL与SDRAM
PLL设置两个输出端口,我是50mhz输入。
C0二倍频即100MHZ给Nios及其他模块
C1也二倍频给SDRAM用,但注意设置相位,黑金开发板的是-72。
这里写图片描述

注意理解一个概念,这里添加的SDRAM是片内控制器,而软核程序运行所在的SDRAM是片外的,片内这个SDRAM控制器属于Nios的模块,所以时钟也是C0。

这里写图片描述

C1设置为Exported,作为外部接口,之后在原理图中和片外SDRAM的时钟管脚相连。

这里写图片描述

这里写图片描述

**这里一定要注意,不分配的话相当于SDRAM没有运行,下不进程序的!
Downloading ELF Process failed**

这里写图片描述

③EPCS部分
一些管脚有复用的情况,要设置为普通IO,不这样会报错。
这里写图片描述

下面这段是从别的地方摘抄的,我的报错没有记下来。

Error: Can’t place multiple pins assigned to pin location Pin_K22
(IOPAD_X41_Y19_N14) Info: Pin B[0] is assigned to pin location Pin_K22
(IOPAD_X41_Y19_N14) Info: Pin ~ALTERA_nCEO~ is assigned to pin
location Pin_K22 (IOPAD_X41_Y19_N14) 原因是不能分配给多功能管脚Pin_K22 。
这是由于Pin_K22
是一个多功能管脚,还有一个功能是nCEO,也是默认的功能。如果要用它当普通IO,需要提前设置一下:assignments>device>device
and pin options>dual-purpose pins里面把nCEO设置成use as regular i/o就可以了。

④另外:
这里写图片描述
程序存储器空间不够也会报错,上图是一开始用On chip memory时下程序报错,因为内存不够用,根据报错重新设置大小才行。

0 0