Nios II 基础工程和自定义组件

本文介绍了如何在Quartus Prime 18.1环境下,结合Platform Designer,建立一个包含Nios II处理器的基础工程,并添加自定义组件来控制LED闪烁。详细步骤涵盖了从创建Quartus工程、配置Nios II处理器、建立时钟和内存模块,到编写顶层HDL模块、编译工程,再到设计和集成自定义Avalon-MM接口的LED控制器组件,最终实现通过Nios软件控制LED的闪烁效果。
摘要由CSDN通过智能技术生成

软件环境:Quartus Prime Standard 18.1 Window 10

硬件环境:小梅哥 AC501 开发板

主要参考:

本实验使用 Nios 的自定义组件控制开发板上 LED 闪烁。

本文首先建立了基于片上 RAM 的基础 Nios 工程,之后在该工程上添加基于 Avalon-MM 接口的自定义组件,修改 Nios 软件后实现 LED 闪烁。

建立 Quartus 工程

打开 Quartus 软件,选择菜单 File > New …,在弹出窗口中选择 New Quartus Prime Project,点击 OK 按钮。

在这里插入图片描述

在 New Project Wizard 对话框中,按提示选择 Next 页面,需要进行特殊设置的页面包括以下页面,其它页面保持默认。

设置工程名称和路径:

在这里插入图片描述

选择 FPGA 芯片型号:

在这里插入图片描述

完成全部配置后点击 Finish 按钮创建新工程 cus_com。

在 Quartus 选择菜单项 Assignments > Settings,在配置窗口选择 Compilation Process Settings 页,选择 Use all available processors:

在这里插入图片描述

用 Platform Designer 建立 qsys 模块

在 Quartus 选择菜单项 Tools > Platform Designer,打开 Platform Designer 界面:

在这里插入图片描述

双击 clk_0 模块,配置时钟频率为 50 MHz

在这里插入图片描述

通过 IP Catalog 界面添加 System ID 模块,保持默认配置点击 Finish 按钮:

在这里插入图片描述

添加 JTAG UART 模块,保持默认配置点击 Finish 按钮:

在这里插入图片描述

添加 On-Chip Memory 模块,并配置为 128 KB 大小(小于当前 FPGA 芯片 1400 Kb 的 RAM 空间总量),其它配置项保持默认,点击 Finish 按钮:

在这里插入图片描述

添加 Nios II Processor 模块,设置为 Nios II/e 模式,其它配置保持默认,点击 Finish 按钮:

在这里插入图片描述

按下图,在 System Contents 界面连接各模块接口,保存当前设计,选择菜单项 System > Assign Base Addresses:

注意将 nios2 模块的 instruction_master 连接至 onchip_memory 的 s1:

在这里插入图片描述

双击 nios2 模块打开配置界面,进入 Vectors 页,设置 Reset vector memory 和 Exception vector memory 都为 on_chip memory:

在这里插入图片描述

按前述方法保持当前设计后,选择菜单项 Generate > Generate HDL…,在弹出窗口保持默认配置并且点击 Generate 按钮:

在这里插入图片描述

Quartus 工程顶层模块设计

添加 qsys 模块

回到 Quartus 软件,选择菜单项 Project > Add/Remove Files in Project,弹出窗口中点击 … 按钮,选择 Platform Designer 保存的后缀名为 qsys 的设计文件,完成后点击 OK 按钮:

在这里插入图片描述

在 Project N

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值