Nios-II编程入门

Nios-II编程入门

一. 实验目标

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

二、 实验内容

1.在DE2-115开发板上分别用 Verilog和 Nios软件编程两种方式完成LED流水灯显示,理解两种方式的差异;

2.分别用Verilog和Nios软件编程, 实现DE2-115开发板串口输出“Hello Nios-II”字符到笔记本电脑串口助手。

3.分别在DE2-115开发板和树莓派上编写串口通信程序, 实现树莓派串口指令对FPGA板子上的流水灯程序的控制,控制方式自定

三、实验过程

1、新建Quartus项目

  • 项目命名为hello_led

image-20240512115746399

image-20240512120056384

image-20240512120257432

2、进行硬件平台设计

Tools->Platform Designer

image-20240512120348075

3、在新窗口中添加相关外设并连线

  • 将时钟频率设置为50MHz

image-20240512160939418

image-20240512161009558
  • 添加Nios II Processor,设置保持默认即可

image-20240512161200815

  • Nios II Processor重命名为cpu

image-20240512161434955

  • 添加JTAG UART,设置保持默认,重命名为jtag-uart

image-20240512161741511

  • 添加On-Chip Memory(RAM or ROM),将Size栏中的Total memory size改为40960,其余设置保持默认,外设重命名为onchip_ram

image-20240512161951672

  • 添加PIO(Parallel I/O) Intel FPGA IP,设置保持默认,重命名为pio_led,并在在 Export 栏处双击,把输出口引出来,并命名为out_led

image-20240512162405273

image-20240512162603567

  • 添加System ID Peripheral,设置保持默认,重命名为sysid

image-20240512162801033

  • 进行连线
image-20240512165418508
  • 设置cpu->Vector->onchip_ram.s1,若没有这个选项检查一下onchip_ram的两个s1是否都已连接

image-20240512165447887

  • 主界面菜单栏中的System下的Create Global Reset Network完成后会自动连接所有复位端口。

image-20240512165739853

  • System下的Assign Base Addresses

image-20240512170216127

  • Generation HDL标签栏中Generate按钮生成Qsys文件,文件命名为kernel

image-20240512170544341

  • 完成后关闭Platform Designer窗口

3、Quartus设计

  • 新建原理图文件

image-20240512171151350

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

image-20240512171249533

image-20240512213010445

  • Assignments->Settings,添加 kernel.qip 文件

image-20240512213210061

4、进行逻辑连接和生成管脚

  • 在 kernel 模块内点击鼠标右键选取 Generate Pin for Symbol Ports 生成管脚

image-20240512213328754

  • 将管脚”inclk0”改名为 clock,管脚”reset_reset_n”改名为 reset_n,管脚 out_led_export[7…0]改为 out_led[7…0]。

image-20240512214006602

  • 菜单里选择Assignment->device,然后如下图所示点击 Device pin options

image-20240512214140116

  • 编译

  • 分配物理针脚

image-20240512215612956

  • 全编译

5、软件部分设计

  • Tools->Nios II Software Build Tools for Eclipse

image-20240512221106453

image-20240512221321844 image-20240512221456331
  • 修改程序
#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)
 	{ 
        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;
}

image-20240512221727634

  • 编译代码

image-20240512221812927

6、编译下载

连接 JTAG 到开发板,确定已正确安装驱动,防火墙不会影响到 JTAG的正常工作。最后给开发板上电。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Nios II是一个基于Intel FPGA的嵌入式处理器架构。在Eclipse中进行Nios II开发时,可以使用一些快捷键来提高效率。例如,引用中提到的Ctrl O可以查看一个类的纲要,列出其方法和成员变量。Ctrl T可以查看一个类的继承关系树,从顶部到底部显示。Alt + 左右方向键可以在代码中进行前进和后退,类似于浏览器的前进和后退按钮。Ctrl Alt H可以查看一个方法被哪些其他方法调用,产生一个调用关系树。Ctrl J可以进行正向增量查找,快速定位到某个单词。这些快捷键可以在Eclipse中提高Nios II开发的效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [NIOS II Eclipse出现fatal error - cygheap base mismatch detected](https://blog.csdn.net/ZLK1214/article/details/115017373)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [NIOS II - Eclipse - Operation - 快捷键](https://blog.csdn.net/qq_25144391/article/details/89399519)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值