AC620FPGA NIOS II学习笔记——LED闪烁

简介

NIOS II是一个软核操作系统,是利用FPGA内部的逻辑资源构造的一个CPU内核

Quartus配置步骤

NIOS核

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
e系列会更省资源,但是性能会降低
f系列相反
在这里插入图片描述
现在都是None无法选择,因为还没有添加ROM与RAM

ROM&RAM

在这里插入图片描述
添加 rom与ram

CPU ID

在这里插入图片描述
创建CPU ID,(因为同一个FPGA可能会被创建多个CPU,所以需要对其进行编号)

IO

在这里插入图片描述
创建IO口
在这里插入图片描述

内部连线

在这里插入图片描述
在连接内部总线时,对于会存储指令的部件需要将指令总线进行连接,对于只存放数据的只连接数据总线

时钟、地址分配

这个时候信息栏会报许多错误,原因是地址有冲突
但首先需要设置CPU的外部CLK频率
在这里插入图片描述
修改地址可以手动修改
在这里插入图片描述
也可以自动生成
在这里插入图片描述
就此大功告成

工程代码

module nios_led(
	clk,
	rst,
	led
);

input clk,rst;
output led;

nios u0(
	.clk_clk(clk),
	.reset_reset_n(rst),
	.led_export(led)
);

endmodule

全部完成后创建顶层module,就可以烧写到板子里了

Eclipse配置步骤

这是第一次使用这个软件,他的作用是使用C语言对软核NIOS进行编写代码
在这里插入图片描述
打开后,若第一次打开可能需要等一段时间,然后指定工作空间。

工程创建

在这里插入图片描述
打开软件后创建模板工程
在这里插入图片描述
在这里需要指定sopcinfo文件,他会自动识别出CPU
在这里插入图片描述
在这里插入图片描述
选择Hello World Small模板

代码修改

因为Hello world模板需要用到printf函数调用串口,但是并没有实现串口,所以直接编译会报错,需要将代码进行修改
在这里插入图片描述

#include "system.h"
#include "altera_avalon_pio_regs.h"
#include "alt_types.h"

int main()
{ 
  alt_u8 led = 0;
  alt_u32 i;

  /* Event loop never exits. */
  while (1)
  {
	  led = 0;
	  IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE,led);
	  i = 500000;
	  while(i--);
	  led = 1;
	  IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE,led);
	  i = 500000;
	  while(i--);
  }

  return 0;
}

工程配置

将编译器的优化功能关闭
在这里插入图片描述
在这里插入图片描述

目标板连接与代码下载

在下载代码到目标板之前需要做写配置
在这里插入图片描述
在这里插入图片描述
选择下载目标
在这里插入图片描述
在这里插入图片描述
这里需要注意,必须SystemID 与 SystemTimestamp的目标与期望都相等才可以

若出现SystemTimestamp不相等,是因为烧进板子里的软核 与 eclipse 基于的 BSP文件 不相匹配,需要刷新Eclipse的工程

总结

其实总体来说难点不多,多的是一些细节,不注意可能会掉坑里,貌似eclipse不支持热重载,所以外部文件变化后他也没有更新,就导致出了差错

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值