文章目录
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