PS-AXI-GPIO-流水灯设计
PS-AXI-GPIO-流水灯设计
1、实验目的
在了解了AXI协议的基本内容后,通过已经设计好的AXI的IP核来了解实际设计中AXI的工作原理和设计原理是必要的。这个实验以前实际上按照教程做过,但是没有过多地注意AXI总线的作用和地位,对于AXI协议还是当作黑盒子处理。但是,如果想要将自己的FPGA设计挂到AXI上,了解AXI的具体原理是必要的。这次的回顾除了对一些操作做出具体的解析外,主要任务就是了解IP核的AXI的原理,为下一步基于AXI4打包FL的IP核打好基础。
2、实验操作
(1)构建硬件平台
从目标看,依次添加PS ,AXI-GPIO两个IP核,按照常用开发板设计好,使用默认的自动补齐和连线。这个硬件平台就搭建完成。
配置来看,led需要四个输出,所以AXI-GPIO需要一个四位位宽的输出GPIO。
然后就可以进入引脚设置和生成bit流。
至于对具体的结构会在后面的实验分析中进行,这里只是大致的看一下操作。详细的操作在下面的博文中有:GPIO实验
(2)实现软件设计
这部分需要补充的就是如何使用AXI总线调用外设。一般来说官方对于ARM内核使用的AXI上的IP核上都有比较全面的库。通过这些封装好的库可以有效地使用AXI协议。这部分只需要考虑如何使用即可。
假设已经知道如何导入硬件和初始化设置,这里主要针对一些简单的ARM功能进行编程,方便调试硬件。
【1】对于一个空的工程而言,加入主函数main是第一步。
【2】使用系统函数是基本的操作。如果熟悉的人当然可以直接加入头文件和调用系统函数,完全没压力。但是对于初学者来说,面对大量的可用资源往往不知从何下手。这里提供一个简单的方法。
先看一下vitis的ARM处理器的操作系统的基本框架:

这是vitis创建工程的目录结构。上面的system,也就是操作系统的文件。下面的wrapper则是硬件资源的初始化文件。感觉这两个的关系类似BOOT和WINDOWS的关系。至于文件内容,如果只是想基于ARM内核做开发的话,可以忽略。但是需要了解大致的分布,方便寻找资源来设计。一开始vitis打开了rsc文件夹。这个文件夹就是源文件(也就是用户文件)放置的地方。在这个地方创建一个包含main的主函数,就启动了这个ARM内核。
【3】面对空无一物的主文件,首先要找的就是需要定一个硬件的地址方便操作。这里的地址有一个主地址和一个从地址。主地址可以在硬件设计时分配,这里是0x4120,可以在address editor中找到并且修改。光有主地址还是不够的,这里还需要从地址。所有的地址在vitis中可以查看:

这就是地址配置文件的目录。注意这个目录是在wrapper下的,可以快速查找到对应设备的地址。
【4】基于地址的操作
这里使用的是官方IP核,一般是有用户手册来标明从地址对应的寄存器。对于自定义的基于AXI4的设计,这部分由设计者掌握。如何快速查找到官方IP的手册,在vivado中有快捷方式。实质上这里就是自动调用DOCNAV打开对应文件。
在BD视图中右击IP核,在列表中找IP document的具体文档,一般第一个就可以。
这里由于我使用DocNav是更新的,所以这里就不展示,以后再解决这个问题。
从地址0x0000就是数据位,默认为输出,这里也不用修改输出模式。所以可以直接基于地址操作寄存器。
【5】寄存器操作
这里就需要在wrapper中找rsc文件,从里面调用响应的函数即可。
3、实验结果
这里只是初步接触基于软件设计的调试,实验结果以后有时间做出来再看。这里首先掌握ARM内核调试的方法,为后面的操作打下基础。
PS-AXI-GPIO-流水灯设计的更多相关文章
- C语言基于NIOSII的软件开发及流水灯设计
一.Quartus II 12.1 (32-Bit)进行硬件设计 1.所需要的系统元器件组成 2.系统电路图 二.Nios II 12.1 Software Build Tools for Eclip ...
- 毕业回馈-89C51之GPIO使用(流水灯)
今天分享一个89c51制作的8位流水灯案例.使用Proteus仿真. 同上一遍文章不同.上一篇文章中对于GPIO操作主要是位操作,即sbit led1=P0^0;其中P0^0代表p0.0这个引脚,然后 ...
- (一)GPIO 编程实验 LED 流水灯控制
7个寄存器 是R1-R16.(当然,里面有很多是分几个模式的,所以总共有37个)类似于单片机的R0-R7. GPXCON,GPXDAT等等是另外的寄存器,应该叫,特殊功能寄存器,类似于单片机的P0,P ...
- zedboard学习记录.2.PS+PL 流水灯与uart
1.建立一个工程. 硬件设计 2.IP integrator -> create block desgin;Run Block Automation. 3.add IP -> AXI GP ...
- Xilinx Vivado的使用详细介绍(4):Zedboard+vivado之流水灯(加SDK)
Vivado+zedboard之初学流水灯 Author:zhangxianhe 环境:vivado 2016.3(已验证适用于2015.4) 开发板:Zedboard version xc7z020 ...
- STM32学习笔记(二) 基于STM32-GPIO的流水灯实现
学会了如何新建一个工程模板,下面就要开始动手实践了.像c/c++中经典的入门代码"hello world"一样,流水灯作为最简单的硬件设备在单片机领域也是入门首推.如果你已经有了一 ...
- S5PV210_流水灯
1.整体思路:把相应的配置数据写入相应的寄存器,控制GPIO电平(Led.s)——运用工程管理Makefile编译.链接文件(由Led.s编译得到led.bin,该文件用于USB启动方式点亮LED,若 ...
- 第一个Linux驱动-流水灯【转】
转自:http://www.xuebuyuan.com/1856562.html 水平有限,描述不当之处请指出,转载请注明出处http://blog.csdn.net/vanbreaker/artic ...
- 【接口时序】2、Verilog实现流水灯及与C语言的对比
一. 软件平台与硬件平台 软件平台: 1.操作系统:Windows-8.1 2.开发套件:ISE14.7 3.仿真工具:ModelSim-10.4-SE 硬件平台: 1.FPGA型号:XC6SLX45 ...
- 第一个FPGA工程—LED流水灯
这一章我们来实现第一个FPGA工程-LED流水灯.我们将通过流水灯例程向大家介绍一次完整的FPGA开发流程,从新建工程,代码设计,综合实现,管脚约束,下载FPGA程序.掌握本章内容,大家就算正式的开始 ...
随机推荐
- 【OpenGL ES】Blinn改进的冯氏光照模型
1 前言 光照元素主要有环境光(ambient).漫反射光(diffuse).镜面反射光(specular),光照模型主要有冯氏模型和 Blinn 改进的冯氏模型,两者区别在与镜面反射光的计算,冯 ...
- Golang Web 框架 Gin 基础学习教程集合目录
Gin Web 框架基础学习系列目录 01-quickstart 02-parameter 03-route 04-middleware 05-log 06-logrus 07-bind 08-val ...
- macOS使用CodeRunner快速配置fortran环境
个人网站:xzajyjs.cn 由于一些项目的缘故,需要有fortran的需求,但由于是M1 mac的缘故,不能像windows那样直接使用vs+ivf这种经典配置.搜了一下网上主流的跨平台方案,主要 ...
- zip压缩模块,tarfile压缩模块,包和模块,format格式化的复习--day17
1.zipfile模块 import zipfile #导入模块 1.压缩文件 (1)创建压缩包 参数1压缩包名字,参数2以w模式创建,参数3压缩固定写法 zf = zipfile.ZipFile(& ...
- django中_meta组件
# _meta组件是一个django中任何一个model类的类实例用来自省的api,简单点说,比如有一个Accounts的模型,则 Accounts._meta # 常用接口 model.Userin ...
- 我的第一个项目(十三) :组件间传值的一些方案(vuex,eventbus,localStorage)
好家伙, 先说一下我的需求,我要组件间传值 1.eventBus 前端兄弟组件传值eventbus无法使用 不报错也不触发,就很奇怪 //eventBus.js import Vue from & ...
- MySQL 数据库死锁排查
死锁排查方法 查看进程状态 show processlist; 查看行锁的状态 show status like 'InnoDB_row_lock%'; 查询是否有死锁 show engine inn ...
- 【Azure 云服务】Azure Cloud Service如何来设置固定IP地址(ReservedIP)
问题描述 在云中环境,部署的应用到云服务(Cloud Service)都是动态的IP地址,所以在添加DNS记录的时候,都是使用CNAME,但如果需要在DNS中添加A记录,则需要一个固定IP. 解决方案 ...
- 【Azure 应用服务】收集App Service 关于Availability Zone, Health check 以及 Traffic Manager的文档,并了解高可用(HA)和灾备(DR)
问题描述 收集App Service 关于Availability Zone, Health check 以及 Traffic Manager的文档,并了解高可用(HA)和灾备(DR)的具体办法 问题 ...
- Jupyter Notebook 遇上 NebulaGraph,可视化探索图数据库
在之前的<手把手教你用 NebulaGraph AI 全家桶跑图算法>中,除了介绍了 ngai 这个小工具之外,还提到了一件事有了 Jupyter Notebook 插件: https:/ ...