FPGA的NIOS-II开发入门

实验目的及设备需求

实验目的

(1)学习Quartus、Platform Designer、Nios II SBT的基本操作
(2)初步了解SOPC的开放流程,基本掌握Nios II软核的定制方法
(3)掌握Nios II软件的开发流程,软件的基本调试方法

实验设备

硬件:PC机、DE2-115FPGA实验开发平台
软件:Quartus 13.1、Nios II SBT

实验步骤

1)建立新项目
选择“file”–>“new project wizard…”
在这里插入图片描述
之后的对话框中点击“next”进入以下界面,选择文件保存地址以及项目名称,点击“next”
在这里插入图片描述
该页面为添加已有工程设计文件,我们这里不需要进行添加,直接点击“next”
在这里插入图片描述
之后选择芯片的型号,目标芯片:cycloneIVE系列的EP4CE115F29C7
在这里插入图片描述
完成后界面会显示项目名和顶层文件名
在这里插入图片描述
2)进行Qsys系统设计
点击“tool”下拉菜单的“Qsys”工具,出现以下对话框

在这里插入图片描述
保存为“kernel.qsys”
在这里插入图片描述
双击“clk_0”,对clock进行时钟设置,设为50m
在这里插入图片描述
添加CPU与外围器件,从PD的元件池中选择以下元件加入当前的系统
添加Nios II 32-bit CPU
直接在左上角搜索框内输入“nios”即可看到需要添加的内容,之后点击“add”即可
在这里插入图片描述
之后的窗口保持默认设置,点击“Finnish”
之后更改添加的Nios II 32-bit CPU名称为“CPU”
在这里插入图片描述
将 cpu 的 clk 和 reset_n 分别与系统时钟 clk_0 的 clk 和 clk_reset 相连
添加 jtag uart 接口
在这里插入图片描述
之后的窗口依旧保持默认配置,直接点击“finish”进行下一步,将其重命名为“jtag_uart”,clk、reset、avalon_jtag_slave 的连线,以及中断 irq 连线,中断号设为 0
在这里插入图片描述
继续搜索框内搜索,找到On-Chip Memory(RAM or ROM)进行添加
在这里插入图片描述
配置中设定内存为40960,其他的设置保持默认,之后点击“finish”
在这里插入图片描述
重命名为“onchip_ram”并完成clk1、s1、reset1的连接
在这里插入图片描述
添加 PIO 接口,在搜索框内搜索添加
在这里插入图片描述
之后的配置框内选择宽度为8,以及“output”,其他设置不变
在这里插入图片描述
重命名为“pio_led”,引出管脚:双击 Export 列的 external_connection ,命名为 out_led
在这里插入图片描述
连接clk、reset、s1
在这里插入图片描述
添加片 System ID Peripheral 核
在这里插入图片描述
之后保持默认设置,并重命名为“sysid”,连接clk、reset、control_slave
在这里插入图片描述
完成所有设定之后点击“system”中“assign base addresses”为分配基地址
在这里插入图片描述
指定Nios II 的复位和异常地址。
在这里插入图片描述
配置 Reset Vector 和 Exception Vector 为“onchip_ram.s1”
在这里插入图片描述
点击“generate”中的“generate…”
在这里插入图片描述
保存后点击“close”
在这里插入图片描述
之后回到Quartus II
选择“file”中的“new”,选择“Block Diagram/Schematic File”,点击“ok”
在这里插入图片描述
将之前创建的“kernel”放入框内
在这里插入图片描述
点击“assignments”中的“settings”,之后选择kernel.qip
在这里插入图片描述
点击“add”进行添加,点击“ok”完成
在这里插入图片描述
右击 kernel 模块,点击Generate Pin for Symbol Ports生成管脚
在这里插入图片描述
双击管脚名,重命名为 clk、reset_n、pio_led[7…0]
之后点击“Assignments”中的“Device”
在这里插入图片描述
操作如下
在这里插入图片描述
将未使用的引脚设置为“As input tri-stated”
在这里插入图片描述
设置特殊引脚为常规引脚“Use as regular I/O”
在这里插入图片描述
之后保存原理图文件

编译工程

完成上面的设定之后点击三角形进行编译
在这里插入图片描述
有警告没有报错即可
之后分配物理针脚,点击“pin planner”,分配针脚如下所示
在这里插入图片描述
然后启动nios II SBT
点击“tool”,选择选项中的“Nios II Software Build Tools for Eclipse”
工作空间为之前创建项目的位置
之后创建工程
在这里插入图片描述
选择 kernel.sopcinfo 文件,再输入工程名,选择 Hello World ,最后点击Finish
在这里插入图片描述
打开 hello_world.c 文件,修改为如下代码
在这里插入图片描述
代码为

#include <stdio.h>
#include "system.h"
#include "altera_avalon_pio_regs.h"
#include "alt_types.h"
const alt_u8
led_data[8]={0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF};
int main (void) {
 int count=0;
 alt_u8 led;
 volatile int i;
 //串口打印
 printf("Hello world!\n");
 //流水灯循环
 while (1)
  {
 	 if (count==7)
 	 {
 		 count=0;
 	 }
 	 else
 	 {
 		 count++;
 	 }
 	 led=led_data[count];
 	 IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, led);
 	 //延时的设置
 	 i = 0;
 	 while (i<5000000)
 		 i++;
   }
 return 0;
}

右键工程名,点击Build Project编译
在这里插入图片描述
在这里插入图片描述
之后运行项目,首先进行FPGA的配置
启动Quartus Prime Programmer
在这里插入图片描述
添加下载文件,然后点击【Start】开始下载,下载成功后关闭,回到 Eclipse 主界面
在这里插入图片描述
点击“Run”中的“Run Configurations…”
在这里插入图片描述
转到Target Connection标签栏,点击右侧的Refresh Connections将 USB-Blaster 加入,如下图所示:
在这里插入图片描述
点击【Apply】后点击【Run】。
下载完成后,可以看到 Console 里打印信息:Hello World,且开发板上流水灯显示。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值