其他分享
首页 > 其他分享> > 基于 Nios II 的串口打印和流水灯设计【使用 Quartus 软件】【掌握 SOPC 开发流程】

基于 Nios II 的串口打印和流水灯设计【使用 Quartus 软件】【掌握 SOPC 开发流程】

作者:互联网

目录

一、前言

实验目的

实验设备

实验内容

实验原理

二、实验步骤

第一步:硬件部分设计

1)建立新项目

2)进行 Qsys 系统设计

(1)打开 Qsys。

(2)保存文件。

(3)设置时钟。

(4)添加 CPU 和外围器件。

——① 添加 Nios II 32-bit CPU。

说明:
(1)名字最前面应该使用英文;
(2)能使用的字符只有英文字母、数字、下划线 “ _ ”;
(3)不能连续使用 “ _ ”符号,在名字的最后也不能使用 “ _ ”。

——② 添加 jtag uart 接口。

jtag uart 接口是 Nios II 嵌入式处理器新添加的接口元件,通过内嵌在 Intel FPGA 内部的 JTAG 电路,可以实现在 PC 主机与 Qsys 系统之间进行串行字符流通信。

——③ 添加片上存储器 On-Chip Memory(RAM)核。

——④ 添加 PIO 接口。

——⑤ 添加片 System ID Peripheral 核。

——⑥ 完整 Qsys 系统设计。

3)完成 Qsys 设计的后续工作

(1)基地址分配。

(2)指定 Nios II 的复位和异常地址。

(3)使用 FPGA 资源。

4)原理图设计

(1)新建原理图文件

(2)加入 Quartus II IP File 文件。

(3)进行逻辑连接和生成管脚。

(4)芯片引脚设置。

(5)保存原理图文件。

5)编译工程及物理针脚分配。

(1)编译工程

(2)分配物理针脚

第二步:软件部分设计

1)启动 Nios II SBT

2)创建工程

#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;
}

3)运行项目

(1)配置 FPGA。

(2)运行/调试程序。

三、实验总结

四、参考资料

[1] 基于Nios II的hello world
[2] https://pan.baidu.com/s/1FaEIncAn4ezFWympe3QyDQ——提取码:pn3f

标签:Nios,Quartus,II,点击,添加,串口,Qsys
来源: https://blog.csdn.net/ssj925319/article/details/116028507