NIOSII 软核的流水灯

1、SOPC和Nios
1.1、SOPC简介

    1、SOPC(System On Programmable Chip,可编程的片上系统)是Altera公司提出来的一种灵活、高效的SOC解决方案。它将处理器、存储器、I/O口、LVDS、CDR等系统设计需要的功能模块集成到一个可编程器件上,构成一个可编程的片上系统。

    2、Qsys:
Altera公司在Quartus II 11.0 之后推出了Qsys集成开发工具从开始流程上看,与之前的SOPC builder没有太大的区别,但是在实际开发中有很多的不同点,Qsys取代SOPC builder也将成为一个趋势。Quartus II 11.0版本还没有取消SOPC builder,不过取消了之前版本的快捷方式,取而代之的是Qsys快捷方式,具体在菜单Tool->SOPC builder启动。

    3、Qsys作用:
①通过集成IP核快速实现SOPC系统
②自动创建IP核之间的互联逻辑
③自定义IP核

1.2、Nios Ⅱ

    1、Nios II系列软核处理器是Altera的第二代FPGA嵌入式处理器,其性能超过200DMIPS

    2、产品:
Nios II/f(快速)——最高的系统性能,中等FPGA使用量
Nios II/s(标准)——高性能,低FPGA使用量
Nios II/e(经济)——低性能,最低的FPGA使用量

    3、作用:
    使用Nios II软件开发工具能够为Nios II系统构建软件,即一键式自动生成适用于系统硬件的专用C/C++运行环境。Nios II集成开发环境(IDE)提供了许多软件模板,简化了项目设置。此外,Nios II开发套件包括两个第三方实时操作系统(RTOS)——MicroC/OS-II(Micrium),Nucleus Plus(ATI/Mentor)以及供网络应用使用的TCP/IP协议栈。

2、创建工程项目
2.1、Qsys设置

    1、启动 Quartus II 软件,选择File->New Project Wizard,在出现的界面下先Next,填写工程的路径和名称,然后接着Next,直到出现下面界面并进行相应操作。接着一路Next,直到Finish,完成工程的创建。
    2、使用Qsys,选择Tools->Qsys
在这里插入图片描述

    3、双击System Contents中的clk_0进行系统时钟的设置,默认为50MHz,可根据实际情况进行更改
在这里插入图片描述

    4、在搜索框中,输入nio,找到Nios II Processor,点击Add进行添加
在这里插入图片描述

    5、得到如下界面,保持默认设置,点击Finsh完成
在这里插入图片描述

    6、在搜索框中,输入on_chip,找到On_Chip Memory,点击Add进行添加
在这里插入图片描述

    7、设置大小为10K,其他保持默认设置在这里插入图片描述

    8、在搜索框中,输入jtag,找到JTAG UART,点击Add完成JTAG UART的添加(作用:利用JTAG完成,URAT通信功能),其它的同样保持默认设置
在这里插入图片描述

    9、在搜索框中,输入sys,找到System ID Peripheral,点击Add完成System ID Peripheral的添加(作用:为Nios II生成一个ID号)
在这里插入图片描述

    10、窗口输入 pio 找到”PIO”后点击
Add,设置Width 为 8bits,Direction 选择 output,其余选项保持默认,点击
Finish
在这里插入图片描述

    11、IP核的连接clk,reset,datamaster需要和其他所有IP核连接,nios ii的指令端口(instruction_master)只与存储器进行连接,nios ii中jtag_debug_model_reset与外部IP核进行连接 。jtag端口的中断信号的连接,其中0表示中断的优先级(可以进行设置)
在这里插入图片描述

    12、从”System Contents”标签栏双击建立好的 cpu 进入 Nios II Processor 的配置界面,配置 Reset Vector 和 Exception Vector 为””onchip_ram.s1”,点击 Finish
在这里插入图片描述

    13、系统分配地址选择System->Assign Base Address
在这里插入图片描述

    14、选择Generate->Generate,保持默认设置,点击Generate,选择Save
在这里插入图片描述

    保存文件
在这里插入图片描述

    生成成功后关闭就行
在这里插入图片描述

2.2、创建顶层文件

    1、创建顶层文件,在原理图(BDF)文件中添加 PD 生成的系统符号,如图 1.36 在空白处双击将已生成的qsys_led.bsf加入 顶层文件中。如下图所示
在这里插入图片描述
在这里插入图片描述

    2、为了之后能编译成功,还需要将对应的 Quartus II IP File (.qip) 加入项目中。步骤如下:
①点击 Assignments-Settings,添加 kernel.qip 文件,如下图所示。
在这里插入图片描述
②选中该文件后,点解 OK 按钮加入 kernel.qip 文件,然后添加
在这里插入图片描述

    3、引脚连接
在这里插入图片描述

    4、菜单里选择 Device…——>Device and pin options进行 unused pin 设置,可能会收到外部信号的干扰,将未用引脚设置为 As input tri-stated
在这里插入图片描述

    5、
在这里插入图片描述

    6、编译工程成功
在这里插入图片描述

    7、进行物理引脚配置并再次进行编译
在这里插入图片描述

2.3、软件设计

    1、打开Tools——>Nios II Software Build Tools for Eclipse
在这里插入图片描述

    2、点击File->New->Nios II Application and BSP from Template创建文件
在这里插入图片描述

    3、选择硬件设计部分的文件,填写工程名称以及工程Template
在这里插入图片描述

    4、BSP是板级支持包,把软件与底层硬件隔离开,直接点击Finish在这里插入图片描述

    5、打开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;
 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;
}

    6、点击保存,选择hello_wold_bsp,右键后,选择Nios II——>Generate BSP
在这里插入图片描述

    7、编译应用文件,选择hello_world右键后,点击Build Project
在这里插入图片描述

    编译完成
在这里插入图片描述

3、工程测试
3.1、硬件下载

    1、在quartus Ⅱ中选择下载工程
在这里插入图片描述

    2、选择生成的.sof文件进行下载,完成后显示进度100%
在这里插入图片描述

3.2、软件下载

    1、找到刚刚编译成功的大文件,右键选择Run as——>Nios II Hardware
在这里插入图片描述

    2、等待下载完成
在这里插入图片描述

3.3、运行结果

在这里插入图片描述

参考:
https://blog.csdn.net/qq_43279579/article/details/115933154

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值