基于Nios-II的流水灯

基于Nios-II的流水灯

  • 一、Qsys设计
    • (一)新建项目
    • (二)Platfrom Designer
    • (三)设置时钟主频
    • (四)添加Nios-II Processor并设置
    • (五)添加JTAG并配置
    • (六)添加RAM
    • (七)添加PIO
    • (八)添加System ID Peripheral
    • (九)其他设置
      • 1.基地址分配
      • 2.配中断号
      • 3.指定 NIos II 的复位和异常地址
      • 4.点击 Qsys 主界面菜单栏中的”System”下的”Create Global Reset Network”
      • 5.生成 Qsys 系统:点选”Generation HDL”标签栏中 Generate 按钮生成 Qsys 系统
  • 二、Quartus设计
    • (一)添加原理图文件
    • (二) 添加qip文件
    • (三)设备引脚设置
  • 三、Nios-II Ecilpse设计
    • (一)进入Nios-II Eclipse
    • (二) 新建项目
    • (三)编译与运行

一、Qsys设计

(一)新建项目

选择芯片
在这里插入图片描述

(二)Platfrom Designer

进入Tools -> Platform Designer
在这里插入图片描述启动 Platform Designer 后,点击 File-save,在文件名中填写为 kernel后点击 OK

(三)设置时钟主频

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

(四)添加Nios-II Processor并设置

在“component library”标签栏中找到“Nios II Processor”后点击 Add
在这里插入图片描述将 nios2_qsys_0 重命名为 cpu,点击” Rename”即可重新命名
在这里插入图片描述
将 cpu 的 clk 和 reste_n 分别与系统时钟 clk_0 的 clk 和 clk_reset 相连(右键器件—> connection)
在这里插入图片描述
再连接将其他相连,连接之后变成这样:

在这里插入图片描述

(五)添加JTAG并配置

左边选择JTAG_UART_Intel_FPGA_IP,点击Add。
在这里插入图片描述将 jtag-uart_0 重命名为 jtag-uart并进行 clk、reset 以及 master-slave 喝中断 irq的连线
在这里插入图片描述

(六)添加RAM

从左侧”Component Library”标签栏中的查找窗口输入 On Chip 找到”On-Chip Memory(RAM or ROM)”后点击 Add
在这里插入图片描述
在”Size”栏中的”Total memory size”窗口中输入 40960(即片上内存的大小为 40KB),
其余选项保持默认,点击 Finish
在这里插入图片描述将 onchip_memory2_0 改名为 onchip_ram
进行时钟、数据端口、指令端口的连接,连接后如下图所示
在这里插入图片描述

(七)添加PIO

从下图左侧”Component Library”标签栏中的查找窗口输入 pio 找到”PIO”后点击Add
在这里插入图片描述将pio_0 改名为 pio_led。并在在 Export 栏处双击,把输出口引出来,并命名为 out_led。
进行时钟、数据端口、指令端口的连接:
在这里插入图片描述

(八)添加System ID Peripheral

从左侧”Component Library”标签栏中的查找窗口输入 sys 找到” System ID Peripheral”后点击Add
在这里插入图片描述
将 sysid_qsys_0 改名为 sysid,进行时钟、数据端口的连接:
在这里插入图片描述

(九)其他设置

1.基地址分配

点击 PD 主界面菜单栏中的”System”下的”Assign Base Addresses”。在这里插入图片描述在这里插入图片描述

2.配中断号

在”IRQ”标签栏下点选”Avalon_jtag_slave”和 IRQ 的连接点就会为”jtag_uart”核添加一个值为 0 的中断号。
在这里插入图片描述

3.指定 NIos II 的复位和异常地址

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

4.点击 Qsys 主界面菜单栏中的”System”下的”Create Global Reset Network”

完成后会自动连接所有复位端口
在这里插入图片描述
最终完成的连接图:
在这里插入图片描述

5.生成 Qsys 系统:点选”Generation HDL”标签栏中 Generate 按钮生成 Qsys 系统

在这里插入图片描述如果提示是否保存.qsys 文件,请选择保存,点击 Close 后关闭窗口后,再关闭 Platform Designer 主界面。

二、Quartus设计

(一)添加原理图文件

返回到Quartus页面,新建原理图文件:
在这里插入图片描述
双击空白处,加入生成的bsf文件:
在这里插入图片描述

(二) 添加qip文件

点击 Assignments-Settings,添加 kernel.qip 文件
在这里插入图片描述

(三)设备引脚设置

Assignments -> Device ->Device and Pin Options
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
完成后关闭 Pin Planner,回到 Quartus Prime 主界面后再次编译项目。至此完成项目的硬件设计

三、Nios-II Ecilpse设计

(一)进入Nios-II Eclipse

点击Tools -> Nios II SoftWare Build Tools for Eclipse
在这里插入图片描述将工作空间设置为quartus项目目录:
在这里插入图片描述

(二) 新建项目

在这里插入图片描述
写项目名称,选择helloworld模板,勾选的文件是与qsys文件同级的sopcinfo文件
在这里插入图片描述
创建好后,替换成以下代码:

#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,即可看到流水灯现象

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

day11-StreamFile

1.Stream流 1.1 体验Stream流 需求&#xff1a;按照下面的要求完成集合的创建和遍历 创建一个集合&#xff0c;存储多个字符串元素 把集合中所有以"杨"开头的元素存储到一个新的集合 把"杨"开头的集合中的长度为3的元素存储到一个新的集合 遍历上一步得到…

linux 安装 mangodb 并设置服务开机自启

1、下载 wget http://mosquitto.org/files/source/mosquitto-1.6.8.tar.gz 2、解压 tar -zxvf mosquitto-1.6.8.tar.gz 3、编译安装cd mosquitto-1.6.8 make sudo make install4、在当前目录。进入mosquitto服务文件存放的文件夹 cd service/systemd可以看到3个文件 点击read…

动态规划----股票买卖问题(详解)

目录 一.买卖股票的最佳时机&#xff1a; 二.买卖股票的最佳时机含冷冻期&#xff1a; 三.买卖股票的最佳时期含⼿续费&#xff1a; 四.买卖股票的最佳时机III: 五.买卖股票的最佳时机IV: 买卖股票的最佳时机问题介绍&#xff1a;动态规划买卖股票的最佳时机是一个经典的…

如何使用多协议视频汇聚/视频安防系统EasyCVR搭建智慧园区视频管理平台?

智慧园区作为现代化城市发展的重要组成部分&#xff0c;不仅承载着产业升级的使命&#xff0c;更是智慧城市建设的重要体现。随着产业园区竞争的逐渐白热化&#xff0c;将项目打造成完善的智慧园区是越来越多用户关注的内容。 然而我们往往在规划前期就开始面临众多难题&#…

Mp3tag for Mac:音乐标签,轻松管理

还在为杂乱无章的音乐文件而烦恼吗&#xff1f;Mp3tag for Mac&#xff0c;让您的音乐库焕然一新&#xff01;它支持多种音频格式&#xff0c;批量编辑标签&#xff0c;让音乐管理变得简单高效。同时&#xff0c;自动获取在线数据库的音乐元数据&#xff0c;确保您的音乐库始终…

并发-判断线程对象是否处于活动状态 - isAlive

t.isAlive() 测试线程t是否处于活动状态&#xff0c;只要线程启动并且没有终止&#xff0c;方法返回值就是truestart()之前&#xff0c;线程不处于活动状态&#xff0c;之后就处于活动状态示例&#xff1a;运行结果&#xff1a;但是事情并没有这么简单&#xff0c;先来看一下以…

体验GM CHM Reader Pro,享受高效阅读

还在为CHM文档的阅读而烦恼吗&#xff1f;试试GM CHM Reader Pro for Mac吧&#xff01;它拥有强大的功能和出色的性能&#xff0c;能够让你轻松打开和阅读CHM文件&#xff0c;享受高效、舒适的阅读体验。无论是学习、工作还是娱乐&#xff0c;GM CHM Reader Pro都能成为你的得…

愿岁月温柔以待你,爱你不止三千遍│活动进行中:以AI之名,时光陪伴

愿岁月温柔以待你&#xff0c;爱你不止三千遍│活动进行中&#xff1a;以AI之名&#xff0c;时光陪伴 在这个充满温馨的母亲节&#xff0c;我们很高兴地宣布&#xff0c;星鸾云A平台推出了一项特别活动&#xff1a;“以AI之名&#xff0c;时光陪伴”。我们相信&#xff0c;科技…

HCIP的学习(11)

OSPF的LSA详解 LSA头部信息 ​ [r2]display ospf lsdb router 1.1.1.1----查看OSPF某一条LSA的详细信息&#xff0c;类型以及LS ID参数。 链路状态老化时间 指一条LSA的老化时间&#xff0c;即存在了多长时间。当一条LSA被始发路由器产生时&#xff0c;该参数值被设定为0之后…

大模型面试常考知识点2

文章目录 1. LLM推理attention优化技术KV CachePageAttention显存优化MHA\GQA\MQA优化技术FlashAttention优化技术稀疏Attention1. Atrous Self Attention2. Local Self Attention3. Sparse Self Attention 2. LLM数据处理关键去重多样性保证构造扩充数据充分利用数据 参考文献…

图搜索算法 - 拓扑排序

相关文章&#xff1a; 数据结构–图的概念 图搜索算法 - 深度优先搜索法&#xff08;DFS&#xff09; 图搜索算法 - 广度优先搜索法&#xff08;BFS&#xff09; 拓扑排序 概念 几乎所有的工程都可分为若干个称作活动的子工程&#xff0c;而这些子工程之间&#xff0c;通常受…

深入理解WPF的ResourceDictionary

深入理解WPF的ResourceDictionary 介绍 在WPF中&#xff0c;ResourceDictionary用于集中管理和共享资源&#xff08;如样式、模板、颜色等&#xff09;&#xff0c;从而实现资源的重用和统一管理。本文详细介绍了ResourceDictionary的定义、使用和合并方法。 定义和用法 Res…

1057: 有向图的出度计算

解法&#xff1a; #include<iostream> using namespace std; int arr[100][100]; int main() {int vertex, edge;cin >> vertex >> edge;int i, j;while (edge--) {cin >> i >> j;arr[i][j] 1;}for (int i 0; i < vertex; i) {int sum 0;…

webjars学习

webjars介绍 官网&#xff1a;WebJars - Web Libraries in Jars github: WebJars GitHub 文档&#xff1a;WebJars - Documentation WebJAR 是一个用于管理Web前端依赖的工具。它允许开发者将特定的客户端库&#xff08;如JavaScript、CSS等&#xff09;打包成JAR&#xf…

python实现动态时钟功能

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 一.前言 时钟,也被称为钟表,是一种用于测量、记录时间的仪器。时钟通常由时针、分针、秒针等计时仪器组成,是现代社会不可或缺的一种计时工具。它的发明和使用极大地改变了人类的生活方式和时间观念。 时钟的类型有很多,…

WordPress插件Show IDs by Echo,后台显示文章、页面、分类、标签、媒体库、评论、用户的ID

WordPress的这款Show IDs by Echo插件&#xff0c;可以让我们设置是增加一列ID还是直接在“编辑 |快速编辑 |查看”操作后面增加ID&#xff0c;而且支持展示以下内容的ID&#xff1a; 文章页面类别标签评论自定义帖子类型自定义分类法用户媒体 Show IDs by Echo插件的安装及启…

解决常见的Android问题

常见问题&#xff1a; 1、查杀&#xff1a; 查杀一般分为两个方向一种是内存不足的查杀&#xff0c;一种的是因为温度限频查杀&#xff0c;统称为内存查杀&#xff0c;两个问题的分析思路不同 1、内存不足查杀&#xff1a; 主要是因为当用户出现后台运行多个APP或者是相机等…

Verlog-串口发送-FPGA

Verlog-串口发送-FPGA 引言&#xff1a; ​ 随着电子技术的不断进步&#xff0c;串口通信已成为嵌入式系统和计算机外设中一种广泛使用的异步通信方式。串口通信因其简单性、可靠性以及对硬件资源的低要求&#xff0c;在数据传输领域扮演着重要角色。在FPGA&#xff08;现场可编…

AcwingWeb应用课学习笔记

y总Web课链接&#xff1a; VSCode自动格式化 选中Format On Save不起作用 在设置中搜索default formatter&#xff0c;修改成Prettier-Code formatter 标签 文本标签虽然很多&#xff0c;但大部分可看成是预定好样式的<div>和<span>。&#xff08;div也是由sp…

关于一致性,你该知道的事儿(下)

关于一致性&#xff0c;你该知道的事儿&#xff08;下&#xff09; 前言一、并发修改单个对象1.1 原子写操作1.2 显示加锁1.3 原子的TestAndSet1.4 版本号机制 二、 多个相关对象的一致性2.1 最大努力实现2.2 2PC && TCCC2.3.基于可靠消息的一致性方案2.4.Saga事务 三、…