本帖最后由 wudianjun2001 于 2015-12-22 14:58 编辑
一、引言 MAX10 FPGA是ALTERA在2014年新推出的器件,通过内置FLASH使其具有CPLD的非易失特性,又具有一般FPGA的性能,而逻辑容量上却远大于一般CPLD,这使ALTERA NIOS软核处理器也可以应用于MAX10 FPGA,这极大地增强了使用FPGA作为控制时的灵活性,本文拟一步一步的体验下NIOS的使用,软件环境为Quartus II 14.1 和STB 14.1。 二、实验操作 NIOS开发分为两部分,一是硬件开发,是基于Quartus II 和Qsys工具,二是软件开发,基于STB工具,下面为STEP BY STEP新建工程体验NIOS体验的使用. 1.新建工程,选择器件,如下面图示步骤:
主要的是选择好器件, 其它所有为缺省就可以。 2.如下图示在工具栏内点击打开Qsys工具:
3.按下图示在Qsys工具分别添加nios2_gen2、pio、jtag_uart、sysid_qsys、onchip_memory.
4. 进行系统互连,连接好的信号如下图示:
注意这里CLK我们直接设为50M,不在外加PLL,另外PIO用来控制LED需要EXPORT为外部引脚。
5.设置NIOS处理器的复位和例外向量位置,如下图示:
6.设置基地址,如下图示:
7.文件另外保存为test1.qsys, 注意这里我们是生成的文件为quartus II工程的顶层文件,所以需要命名和工程名一样,然后生成的HDL文件.
在弹出界面直接点Generate就OK了。
8.quartus II主界面把test1.qsys添加到quartus II工程,如下图示:
9.先编译一遍工程,然后定义好脚位重复编译一遍工程,最后下载到FPGA内。
至止硬件设计完成,下面我们开始软件设计: 10.打开STB工具,选择一个目录为工作区:
11.新建一个hello world 工程:
上图点红圈处选择生成的sopcinfo文件,红框出填软件工程名字,然后点Finish完成。
12.BSP设置如下图示:
然后保存BSP设置和点Generate产生BSP:
13. 添加下面代码到hello_world.c,然后分别编译BSP和工程软件: #include "alt_types.h" #include "altera_avalon_pio_regs.h" #include "system.h" #include <stdio.h> void delay(void) { alt_u32 i =0; for(i=0; i<1000000; i++); } int main() { while(1) { printf("Hello from Nios II!\n"); IOWR_ALTERA_AVALON_PIO_DATA(PIO_BASE,0x1); delay(); IOWR_ALTERA_AVALON_PIO_DATA(PIO_BASE,0x0); delay(); } return 0; }
14.下载软件到硬件上,可以看到LED再闪,同时一直串口打印Hello from Nios II!。
三、主要参考资料 1.m10_handbook.pdf 2.AN730 Nios II Processor Booting Methods in MAX 10 Devices.pdf 3.n2cpu_nii5v1.pdf 4.n2sw_nii5v2.pdf 5.n2cpu_nii51007.pdf 以上都是ALTERA原厂资料,各位童鞋可到ALTERA网站下载到,
|