基于NIOSII软核的流水灯

一.硬件设计

  • 新建项目
    在这里插入图片描述

  • Tools->Qsys启动Qsys工具
    在这里插入图片描述

  • file->save保存文件,名为kernel
    在这里插入图片描述

  • 双击clk_0,设置时钟
    在这里插入图片描述

在这里插入图片描述

  • 添加Nios II Processor

在这里插入图片描述

保持默认

在这里插入图片描述

  • 重命名为cpu
    在这里插入图片描述

  • 添加JTAG UART

在这里插入图片描述

保持默认配置

在这里插入图片描述

  • 添加On-Chip Memory(RAM or ROM)

在这里插入图片描述

更改Total memory size为40960

在这里插入图片描述

  • 添加PIO接口

在这里插入图片描述

保持默认设置

在这里插入图片描述

  • 添加System ID Peripheral

在这里插入图片描述

保持默认设置

在这里插入图片描述

  • 接线及基地址分配如下
    在这里插入图片描述

  • 指定NIOS II的复位和异常地址
    在这里插入图片描述

  • 生成Qsys系统(菜单栏中Generation->Generate)
    在这里插入图片描述

  • Quartus建立原理图文件
    在这里插入图片描述

在这里插入图片描述

  • Assignments->Setting添加.qip文件
    在这里插入图片描述

  • 原理图如下(注意output需要连接粗线)
    在这里插入图片描述

  • 芯片引脚选择(Assignments->Device)
    在这里插入图片描述

在这里插入图片描述

  • 编译成功
    在这里插入图片描述

  • 分配物理引脚
    在这里插入图片描述

二.软件设计

  • Tools->Nios II Software Build Tools for Eclipse打开Eclipse
    在这里插入图片描述

  • 选择workplace
    在这里插入图片描述

  • file–>new–>Nios II Application and BSP from Template建立新的软件应用
    在这里插入图片描述

在这里插入图片描述

  • 代码如下
#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)
	{
	    printf("Hello world!\n");
		if (count==7)
		{count=0;}
		else
		{count++;}
		led=led_data[count];
		IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, led);
		i = 0;
		while (i<500000)
			i++;
	}
	return 0;
}
  • 编译后得到结果如下
    在这里插入图片描述

三.下载有关操作

四.总结

  • 本次实验参考指导书及学长学姐博客总体没有太大的问题,对于理论知识更加了解,遇到的问题主要为原理图处output需要用粗线,不然会编译错误。以及命名的问题,这次需要命名对应的地方不多,但是仍需注意。

五.参考博客

https://blog.youkuaiyun.com/qq_45659777/article/details/124034204

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值