Nios II 实现流水灯实验

Nios II 实现流水灯实验

  • 一.硬件设计
  • 1.新建Quartus项目
    • 2. 设计Nios ii
  • 二.软件设计

前言

实验目标:
学习 Quartus 、Platform Designer、Nios-II SBT 的基本操作;初步了解 SOPC 的开发流程,基本掌握 Nios-II 软核的定制方法;掌握 Nios-II 软件的开发流程,软件的基本调试方法。

主要内容:
在DE2-115开发板上用Nios软件编程方式完成LED流水灯显示

用Nios软件编程通过DE2-115开发板串口输出“Hello Nios-II”字符到笔记本电脑串口助手

实验原理:
控制 LED 灯闪烁的用户程序代码很小,可将其固化在片内 ROM 来执行。变量、堆栈等空间使用片内 RAM,不使用任何片外存储器。整个系统的框图如下图所示。
从图 1.1 控制 LED 闪烁的系统框图可知,其它逻辑与 Nios II 系统一样可存在于 FPGA中。Nios II 系统可与其它片内逻辑相互作用,取决于整个系统的需要。为了简单起见,本实验在 FPGA 内不包括其它逻辑。

在这里插入图片描述

一.硬件设计

1.新建Quartus项目

在这里插入图片描述
这里我选择的芯片类型为EP4CE115F29C7,你也可以根据自己需要,选择其他芯片

2. 设计Nios ii

  • 设计时钟
    点击Tools 进入Platform Designer
    在这里插入图片描述
    鼠标放在 clk_0 处点击右键 Edit 或是双击 clk_0 元件,对 Clock 进行时钟设置,设为 50M

在这里插入图片描述

  • 添加部件
    添加 CPU 和外围器件。从 PD 的元件池中选择以下元件加入到当前设计的系统中:Nios II 32-bit CPU、jtag uart、片上存储器、PIO、system ID。

① 添加 Nios II 32-bit CPU
a. 在“component library”标签栏中找到“Nios II Processor”后点击 Add(在查找窗口输出 nios 即可)
在这里插入图片描述
② 添加 jtag uart 接口。jtag uart 接口是 Nios II 嵌入式处理器新添加的接口元件,通过内嵌在 Intel FPGA 内部的 JTAG 电路,可以实现在 PC 主机与 Qsys 系统之间进行串行字符流通信。
在这里插入图片描述
③添加 PIO 接口
在这里插入图片描述
⑤ 添加片 System ID Peripheral 核
a. 从下图左侧”Component Library”标签栏中的查找窗口输入 sys 找到” System ID Peripheral”后点击 Add。
b. 保持默认选项,单击 Finish。如下图所示:
在这里插入图片描述
依照下图进行连线
在这里插入图片描述
分配基址
在这里插入图片描述
双击CPU进入以下界面更改重置容器
在这里插入图片描述
生成 Qsys 系统:点选”Generation HDL”标签栏中 Generate 按钮生成 Qsys 系统。
在这里插入图片描述

硬件设计完成

进行逻辑连接和生成管脚
(1)逻辑连接。开发板晶振为 50M,与系统默认一致,因此,这里我们不需要修改。
(2)点击鼠标右键选取 Generate Pin for Symbol Ports 生成管脚。如下图所示
在这里插入图片描述
将管脚”inclk0”改名为 clock,管脚”reset_reset_n”改名为 reset_n,管脚 out_led_export[7…0]改为 out_led[7…0]。如下图所示

在这里插入图片描述

二.软件设计

进入eclipse
在这里插入图片描述
新建项目
在这里插入图片描述
选择导入sopcinfo文件,Hello world 模板

在这里插入图片描述
将hello world 代码替换成以下代码

#include "system.h"
#include "altera_avalon_pio_regs.h"
#include "alt_types.h"
#include "stdio.h"
const alt_u8
led_data[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
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;
 printf("Hello Nios-II\n");
 while (i<500000)
 i++;
 }
 return 0;
}

右键项目文件夹,点击Build Project
在这里插入图片描述
编译完成后,连接好开发板,点击Run As Nios II Hardware,即可看到流水灯现象。

效果展示
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/676560.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

期权交易要怎么计算盈亏?期权盈亏平衡点是什么?

今天带你了解期权交易要怎么计算盈亏&#xff1f;期权盈亏平衡点是什么&#xff1f;期权盈利和亏损的计算公式取决于具体的交易策略和期权类型。 期权交易要怎么计算盈亏&#xff1f; 期权买方盈亏计算&#xff1a; 对于期权买方&#xff08;无论是认购期权还是认沽期权&…

逻辑门(与门、或门、非门、异或门)

一、实验目的 了解DE1-SOC开发板一些外设。 掌握常用组合逻辑门电路的基本原理。 学习Verilog HDL的基本语法。 学习使用ModelSim工具对设计的电路进行仿真&#xff0c;包括编写Testbench仿真代码&#xff0c;以及ModelSim工具的使用。 熟悉使用Quartus软件从创建Quartus工…

什么是Swagger UI ,swagger ui 的authorization怎么获取?

什么是Swagger UI Swagger UI 是一个用于可视化和交互式地展示API文档的工具。它是Swagger&#xff08;现称为OpenAPI&#xff09;生态系统的一部分&#xff0c;旨在帮助开发者和API用户更好地理解、测试和调试API。 主要功能和作用 1. API文档自动生成&#xff1a; Swagge…

【Java高级教程】集合部分

参考链接 一、 Java 数据结构 二、 Java 集合框架 三 Java ArrayList 四 Java LinkedList 五 Java HashSet 六 Java HashMap 七 Java Iterator&#xff08;迭代器&#xff09; 八 Java Object 类 ava Object 类是所有类的父类&#xff0c;也就是说 Java 的所有类都继承了 Obj…

常用ai模型和一些术语的科普

本文是早年浏览easyai.tech后留下的笔记。 文章目录 神经网络CNNRNNGANKNNCPU和GPU/TPUNLPNo free lunch theoremtransformer注意力机制自动编码器&#xff0c;自编码器GNN推荐系统附录NFL的两个例子 神经网络 水流&#xff0c;水龙头&#xff0c;流量阀。 可以回想CNN分类MNI…

StretchSense:将手部动作无缝集成到Xsens全身动捕系统中

在动画制作中逼真的手部动作可以大幅提升角色的情感表现能力&#xff0c;这将使观众更加轻易的走进角色&#xff0c;感受角色的情感变化并更加快速的了解角色的性格特点。如性格外向的角色将拥有更加复杂的手部动作表达。因此有效加强角色的手部动画真实度有助于吸引更多的观众…

基于Java+Vue智慧社区管理系统设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝1W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;还…

22-验证码的处理

验证码这种问题是比较头疼的&#xff0c;对于验证码的处理&#xff0c;不要去想破解方法&#xff0c;这个验证码本来就是为了防止别人自动化登录的。 目前最快速解决的三个手段&#xff1a; 去掉验证码&#xff1a;比较适合新开发但未上线的系统。设置万能码&#xff1a;比较适…

【GD32】06 - SPI (含ST7735S TFT-LCD屏幕驱动)

这篇文章我们看看GD32中如何实现SPI&#xff0c;软件SPI的话可以参考我之前的文章&#xff0c;把对应操作GPIO口的代码从STM32改成GD32就可以使用了。 【快速上手STM32】SPI通信协议&&1.8寸TFT-LCD&#xff08;ST7735S&#xff09;_tftlcdst7735和stm32-CSDN博客文章浏…

docker部署skywalking

skywalking版本下载 1&#xff1a;拉取skywalking的oap镜像(可以选择自己的版本&#xff0c;最好与ui&#xff0c;agent版本一致) docker pull apache/skywalking-oap-server:9.5.02&#xff1a;启动oap docker run -d -p 11800:11800 -p 12800:12800 --name sw_oap apache/…

HCIE数通,为啥是网工的“黄金标准”?

作为网络工程师&#xff0c;你不可能没听说过HCIE&#xff0c;也不可能没听过数通&#xff0c;也可能曾经考虑过要不要挑战这个认证。 HCIE数通为何被誉为网工的黄金标准&#xff1f;聊聊 01 什么是HCIE数通&#xff1f; HCIE数通认证是华为技术有限公司推出的一项高级别认证…

深度学习-05-反向传播理论知识

深度学习-05-反向传播理论知识 本文是《深度学习入门2-自製框架》 的学习笔记&#xff0c;记录自己学习心得&#xff0c;以及对重点知识的理解。如果内容对你有帮助&#xff0c;请支持正版&#xff0c;去购买正版书籍&#xff0c;支持正版书籍不仅是尊重作者的辛勤劳动&#xf…

使用 IPSET 添加 CDN 节点 IP(IPv4/IPv6)到防火墙白名单

明月的服务器一直使用的是 iptables,随着近几年 IPv6 的普及&#xff0c;明月切身体会到还是 IPSET 最方便了&#xff0c;无论你是 IPv4 还是 IPv6 都可以方便的管理&#xff0c;无论你是加入白名单还是黑名单&#xff0c;都非常的简单高效&#xff01;今天就参照明月自己的实操…

PyQt5串口测试工具

笔者经常会遇到使用上位机进行相关测试的场景&#xff0c;但现成的上位机并不能完全满足自己的需求&#xff0c;或是上位机缺乏使用说明。所以&#xff0c;自己写&#xff1f; 环境说明 pycharm 2023.2.25 python 3.10 anaconda 环境配置 conda create -n envsram ##…

Proxmox Backup Server 命名空间使用

作者&#xff1a;田逸&#xff08;formyz&#xff09; Proxmox Backup Server&#xff08;一下统称PBS&#xff09;从2.2版本开始&#xff0c;新增了命名空间这样一个功能。这个功能大大便利了多Proxmox VE集群或者单节点备份&#xff0c;在以前PBS版本中&#xff0c;如果有多个…

Windows系统下DOS命令

Windows系统下DOS命令 1. 与文件操作相关1.1 mkdir&#xff0c;md命令1.2 rmdir、rd命令1.3 dir命令1.4 start命令1.5 echo命令1.6 type命令1.7 copy命令1.8 move命令1.9 copy和move的区别1.10 del命令1.11 rename命令1.12 attrib命令1.13 fsutil命令1.14 assoc命令 2. 与网络相…

DevOps生命周期的8个阶段和DevOps pipeline 详解

您可能也在探索DevOps pipeline或工作流的概念&#xff0c;这些术语可能会根据不同的解释者而有所交替使用。尽管如此&#xff0c;DevOps生命周期和DevOps pipeline这两个术语更常被提及。 本文将首先阐述DevOps生命周期的概念&#xff0c;然后深入介绍DevOps pipeline。 Dev…

基于4G工业路由器的信息发布系统物联网应用方案

随着物联网技术的快速发展&#xff0c;智能信息发布系统已成为城市管理和信息传播的重要工具。而4G工业路由器作为连接信息发布终端与云平台的关键设备&#xff0c;其在提升信息发布效率方面发挥着至关重要的作用。为了提升智能信息发布系统的效率和智能化水平&#xff0c;智联…

怎么在pdf上编辑文字?帮你解决这个头疼的问题!

在信息爆炸的时代&#xff0c;PDF作为一种通用性极强的文件格式&#xff0c;广泛应用于各个领域。然而&#xff0c;对于许多用户来说&#xff0c;如何在PDF上编辑文字却是一个令人头疼的问题。今天&#xff0c;我们就来聊聊这个话题&#xff0c;并为大家推荐几款实用的PDF编辑软…

Python程序设计 身份证号的奥秘

第1关&#xff1a;判断性别 通过身份证的第17位也就是倒数第二位的数字可以辨别该身份证所属人的性别,奇数为男性,偶数为女性。 任务&#xff1a;输入身份证号&#xff0c;第17位若是偶数&#xff0c;输出男性&#xff0c;否则输出女性 如何截取字符串的一个字符 如何判断一个…