基于Nios-II实现流水灯

这篇具有很好参考价值的文章主要介绍了基于Nios-II实现流水灯。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实验步骤

1、新建Quartus项目,选择使用的芯片

基于Nios-II实现流水灯

这里我选择的芯片类型为EP4CE115F29C7,你也可以根据自己需要,选择其他芯片。

注意,部分芯片(例如MAX10-02SCM)经过笔者测试,似乎使用不了Nios-II,因为会提示无法使用mif文件。

2、Qsys设计

2.1 进入Tools -> Platform Designer

基于Nios-II实现流水灯

进入后,首先点击File -> Save ,保存为Kernel.qsys。

2.2 设置时钟主频

这里设置为50MHz,与所选芯片的时钟保持一致。

基于Nios-II实现流水灯

2.3 添加Nios-II Processor并设置

左边的IP Catalog中,选择Nios-II Processor,并点击Add添加。

基于Nios-II实现流水灯

暂时不修改它的其他配置信息。

右键重命名为"cpu",并按图操作进行时钟线连接。

基于Nios-II实现流水灯

连接之后变成这样:

基于Nios-II实现流水灯

2.4 添加JTAG并配置

左边选择JTAG_UART_Intel_FPGA_IP,点击Add。

基于Nios-II实现流水灯

右键重命名为uart,并按图进行时钟线,复位线,数据线的连接:

基于Nios-II实现流水灯

同时还要连接中断:

基于Nios-II实现流水灯

2.5 添加RAM

选择On-Chip Memory (RAM or ROM) Intel FPGA,点击Add加入。

基于Nios-II实现流水灯

连接时钟线,数据线与复位线。

基于Nios-II实现流水灯

右键将其改名为onchip_ram,双击它,按图配置其大小:

基于Nios-II实现流水灯

2.6 添加PIO

左边选择PIO,将其加入进来。

基于Nios-II实现流水灯

连接clk,reset,s1并导出输出端口:

基于Nios-II实现流水灯

这里将输出命名为out_led

2.7 添加System ID Peripheral

按图操作:

基于Nios-II实现流水灯

基于Nios-II实现流水灯

2.8 其他设置

双击cpu,进入Vector,按图操作:

基于Nios-II实现流水灯

点击System -> Assign Base Address

基于Nios-II实现流水灯

点击System -> Create Global Reset NetWork

基于Nios-II实现流水灯

生成HDL

基于Nios-II实现流水灯

基于Nios-II实现流水灯

3、Quartus设计

3.1 添加原理图文件

返回到Quartus页面,新建原理图文件:

基于Nios-II实现流水灯

双击空白处,加入生成的bsf文件:

基于Nios-II实现流水灯

右键生成IO端口,并修改led端口为out_led:

基于Nios-II实现流水灯

基于Nios-II实现流水灯

3.2 添加qip文件

基于Nios-II实现流水灯

3.3 设备引脚设置

Assignments -> Device ->Device and Pin Options

基于Nios-II实现流水灯

基于Nios-II实现流水灯

进行编译后,配置物理引脚。

基于Nios-II实现流水灯

进行全编译。

现在,Quartus设计完成,连接板子,将sof文件烧录到板子里面。此时不会有任何现象。

4、 Nios-II Eclipse设计

4.1 进入Nios-II Eclipse

点击Tools -> Nios II SoftWare Build Tools for Eclipse

基于Nios-II实现流水灯

将工作空间设置为quartus项目目录:

基于Nios-II实现流水灯

4.2 新建项目

按图点击:

基于Nios-II实现流水灯

写项目名称,选择helloworld模板。

图中勾选的文件是与qsys文件同级的sopcinfo文件:

基于Nios-II实现流水灯

创建好后,替换成以下代码:

#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;
}
4.3 编译与运行

右键项目文件夹,点击Build Project

基于Nios-II实现流水灯

编译完成后,连接好板子,点击Run As Nios II Hardware,即可看到流水灯现象。

5、遇到过的错误

5.1 Eclipse无法生成模板项目

基于Nios-II实现流水灯

这里我的解决方案是回到Platform Designer,将on-chip ram的指令线也连上(cpu.instruction master)

5.2 Exclipse Run As Hardware无法下载程序

我没弄懂为什么有这个bug,我是重新写了个Nios-II Eclipse项目就好了。

5.3 创建好Eclipse项目后,修改软核导致项目无法编译

右键项目->Nios II->BSP Editor->Generate

实验现象

基于Nios-II实现流水灯

心得体会

本次实验实现了NIOS-II制作流水灯。虽然过程一波三折,但是最终还是实现了预期效果。文章来源地址https://www.toymoban.com/news/detail-410585.html

到了这里,关于基于Nios-II实现流水灯的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 实验 6 流水灯设计

    6.1 实验目的 编 写 Verilog HDL 代 码 驱 动 开 发 板 上 10 颗 LED 实现流水灯效果 6.2 实 验 仪 器 与 器 材 1. EDA 开发软件 一 套 2.微机 一 台 3.实验开发系统 一 台 4.打印机 一 台 5.其他器件与材料 若 干 6.3 实 验 说 明 1、 10 位的流水灯,从左到右流水,每隔 500ms 流动一下

    2024年01月16日
    浏览(40)
  • ARM实验5-流水灯仿真实验

    一、实验名称:流水灯仿真实验 二、实验目的: 掌握ARM处理器的输入输出接口。 掌握通过MDK提供的仿真功能,实现系统的仿真运行。 通过该编程实验,进一步巩固和强化学生ARM汇编编程的能,ARM应用程序框架,培养学生实际应用的能力。 三、实验内容: 按下面电路图,编

    2024年02月15日
    浏览(39)
  • 【C51基础实验 LED流水灯】

    前言: 前几篇学会了LED驱动原理,并且成功点亮了一颗LED和实现了LED的闪烁,那么这篇紧接着就来解锁LED的新功能,LED流水灯。当然这里前提是基于肉眼余晖可见光达成的效果。 开发板上 LED 模块电路原理图如下图所示: 看上图中 LED 采用共阳接法 ,D1-D8 连接到单片机的

    2024年02月10日
    浏览(38)
  • S5PV210 | 裸机汇编LED流水灯实验

    目录 S5PV210 | 裸机汇编LED流水灯实验 开发板: 1.原理图 2.Datasheet相关 3.代码 3-1. 代码实现(流水灯,仅作演示) 3-2.工具 mkv210_image 代码 4.运行 SD卡启动 5.参考 上图中,当按下 POWER 键后, VDD_5V 和 VDD_IO 会产生 5V 和 3.3V 的电压,其中 D26 无须 GPIO 控制,为常亮状态,即我们所说的

    2024年02月03日
    浏览(40)
  • FPGA-DE2-115-实验一-亮度可调流水灯

    前言: 本文主要介绍了集成电路EDA这门课程的相关实验及代码。使用的软件是Quartus Ⅱ,该实验使用fpga芯片为cyclone IV EP4CE115F29C7。 (1)熟悉流水灯的工作原理; (2)了解设计中的优化方案; (3)进一步掌握PWM信号的设计; 利用FPGA板及4个LED发光二极管,设计一个亮度可调

    2024年02月04日
    浏览(50)
  • 使用Proteus 8.9仿真STM32F103流水灯实验

    STM32流水灯程序非常简单,在我的实验中使用GPIOC的引脚连接流水灯。主要程序如下: LED初始化:led.h  led.c test.c文件,main主函数:  工程目录如下,记得包含头文件。工程链接在文末。  编译生成.hex文件即可,接下来绘制仿真电路。 打开Proteus 点击新建工程。 我将工程保存

    2024年02月04日
    浏览(67)
  • ARTIX-7 XC7A35T实验项目之流水灯

    链接: Verilog刷题 通过LED流水灯实验,熟悉vivado软件开发FPGA的基本流程。包括器件选择、设置、代码的编写、编译、分配管脚、下载、程序FLASH固化烧录等。 vivado 2019.1 黑金AX7035开发板 从原理图可以看出,FPGA的IO输出低电平点亮LED,输出高电平LED熄灭。 FPGA的设计中通常使用计

    2024年02月08日
    浏览(38)
  • FPGA新起点V1开发板(三)——Quartus II软件的使用(流水灯的烧录以及sof转jic的方法记录)

    先创建一个工程文件夹 flow_led 再创建四个子文件夹 doc存放工程的设计文档或者其他一些datasheet文档、数据手册 par存放工程文件 rtl存放设计文件,也就代码 sim存放工程的仿真文件 第一个第四个可以为空,但是做此可以有良好的习惯 这是打开一个工程向导 这是选择FPGA的芯片

    2024年02月04日
    浏览(42)
  • 基于FPGA的花样流水灯的设计

    1、学习ISE Design Suite 14.7的基本操作; 2、掌握FPGA的开发流程; 3、学习时序电路的设计; 4、巩固状态机的相关知识。 根据对该实验要求的分析,设计状态转移图如下: 其中,在S1状态下LED灯从左往右依次亮;在S2状态下LED灯从右往左依次亮;在S3状态下LED灯从中间向两边扩散

    2024年01月16日
    浏览(42)
  • 流水灯实现

    流水灯指的是LED像水流一样点亮,即LED依次点亮但不立刻熄灭,等到4个LED都点亮后,再把所有灯一次性熄灭。

    2024年02月16日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包