http://m.blog.csdn.net/article/details?id=19934837

http://www.cnblogs.com/rocbomb/archive/2014/07/29/3876683.html

前面我做了几个实验 都没有用过 开关,这一次用一用

发现 vivado 真的挺方便 所以 使用 vivado 开发

1.建工程

我使用 vivado 2013.4

创建新工程 –》 next –》next

勾选 Do not specify sources at this time   //这样跳过后面两个添加文件页面

选择 board –》 zedboard –》next –》finsh

就创建完了。

2.PL端 IP核添加与连线

创建一个空的 Diagram

Create Block Design -》点 ok

接下来 添加 IP核  可以点击 提示 Add IP  也可以点击 

搜索 zynq 点 第一个

然后 点击 Run Block Automation  自动配置

点击  添加 GPIO

接下来 会提示 Run Connection Automation 自动连线

选择 S_AXI    变成下图

系统自动添加了 一些IP核

继续点击 Run Connection Automation  -》 GPIO

选择 led_8bits  -》 OK

同样的方法 添加  GPIO IP核  -》 Run Connection Automation 两次  选择 sws_8bits

就完成了

点击  红圈处 验证 一下。

3.生成 bit 的过程

点击 Source  -》 design_1  右键 –》 Create HDL Wrapper  -》 OK

然后  Synthesis 、 Implementation 、Bitstream 依次过一遍

这个过程费时间。。  Synthesis 以后 一直点ok    最后 点击 Generate Bitstream

4.输出到SDK

选上 launch SDk 点 OK  就启动SDK 了

我的 SDK 是

点击 FILE –》 new –>  Application project

选一个 helloworld

复制以下代码

 1 #include <stdio.h>
 2 #include "platform.h"
 3 #include "xparameters.h"
 4 #include "xgpio.h"
 5 #include "sleep.h"
 6 #include "platform.h"
 7 #include "xil_types.h"
 8 #include "xgpiops.h"
 9
10
11 /************************** Constant Definitions *****************************/
12
13 /*
14  * The following constant maps to the name of the hardware instances that
15  * were created in the EDK XPS system.
16  */
17 #define XPAR_LEDS_ID XPAR_AXI_GPIO_0_BASEADDR  //AXI_GPIO_0 是添加的第一个 gpio 所以是 leds
18 #define XPAR_SWS_ID XPAR_AXI_GPIO_1_BASEADDR   //那么 这个自然是 开关了
19
20 int main()
21 {
22     static XGpio LED_Ptr;//定义GPIO指针
23     static XGpio SWS_Ptr;
24     int XStatus;
25     int num = 0;
26     //初始化 LED
27     XStatus = XGpio_Initialize(&LED_Ptr,XPAR_AXI_GPIO_0_DEVICE_ID);
28     if(XST_SUCCESS != XStatus)
29             print("GPIO INIT FAILED\n\r");
30     XGpio_SetDataDirection(&LED_Ptr, 1,0x00);//通道1;设置方向 0 输出 1输入, 0x00表示8位都是输出
31     XGpio_DiscreteWrite(&LED_Ptr, 1,0x00);
32
33     //初始化 开关
34     XStatus = XGpio_Initialize(&SWS_Ptr,XPAR_AXI_GPIO_1_DEVICE_ID);
35     if(XST_SUCCESS != XStatus)
36             print("GPIO INIT FAILED\n\r");
37     XGpio_SetDataDirection(&SWS_Ptr, 1,0xFF);//通道1;设置方向 0 输出 1输入 0xFF表示8位都是输入
38
39
40
41     while(1){
42         num = XGpio_DiscreteRead(&SWS_Ptr, 1);  //从开关处 读数据
43         printf("Numb %d\n\r", num);
44         XGpio_DiscreteWrite(&LED_Ptr, 1,num);   //直接写入 led
45         usleep(1000);      //delay 1ms
46     }
47
48     printf("end\n\r \n\r");
49     return 0;
50 }

确保 zedboard 已经连到电脑上 并打开电源

先 xilinx Tools –> ProgramFPGA

然后   -> Run As –> Launch on Hardware (GDB)

可以看到 结果  64 + 1

第 7 个 和 第 1 个  开关 是开的

表示 所以 led 也亮了

zynq学习06 zynq的PL中加入的AXI_GPIO IP核来控制GPIO操作相关推荐

  1. FPGA设计中,Vivado 调用IP核详细操作步骤

    FPGA设计中,Vivado 调用IP核详细操作步骤 今天给大侠带来了FPGA设计中,Vivado 调用IP核详细操作步骤,话不多说,手把手教学,请往下看. 首先咱们来了解一下vivado的IP核,I ...

  2. FPGA中ISE软件调用IP核导入(.coe)文件并绘制正弦函数

    作为一个FPGA小白,本人在学习FPGA软件的过程中看到了这个例子,网上也有相关的教程,奈何实在写的不清楚,我自己花了挺久才弄懂,为了在以后学习中少走弯路,把自己学习到的做个教程吧,供同样是小白的同学 ...

  3. zynq学习03 zynq中三种实现GPIO的方式

    http://m.blog.csdn.net/article/details?id=52123465 http://blog.chinaaet.com/songhuangong/p/43084 本文介 ...

  4. 【FPGA学习】Quartus II中NCO与FFT ip核的仿真

    FPGA有许多IP核使用起来很方便,本篇博客记录一下NCO以及FFT的IP核使用和学习,实验平台是Altera公司的EP4CE40F23C8N 参考资料: Altera--NCO IP核详解 ALTE ...

  5. FPGA中如何使用加法器IP核设计累加器

    使用加法器IP核设计累加器 前言 一.顺序累加器设计 二.滑动累加器设计 总结 前言 在之前的一个项目中,我的工程一部分运算中主频达到了400MHz时钟.当时的运算需要用到cnt累加器,但是在最后的综 ...

  6. vivado中复数乘法器的ip核调用及其仿真的详细介绍

    复数乘法器的ip核可在下图的​​​​​中找到 ip核的输入配置和输出配置如下图所示 当我们在选择multplier construction的Use LUTs选项时,选择的是三次乘法的算法,相比于四次 ...

  7. zynq学习04 zynq中PS通过MIO控制LED

    http://m.blog.csdn.net/article/details?id=40954363 这几天在学习zynq,zynq芯片集成了两片arm a9的内核,和xilinx的fpga可编程部分 ...

  8. zynq学习01 zynq 单独使用PL模块点亮led

    对于xilinx的ZC706开发板单独使用PL做流水等试验的网上例程几乎是空白,大多数是PS+PL实验.如果是刚开始接触ZC706板,想写一个单独的PL程序时,你肯定以为很快就可以上手.但是如果你开始 ...

  9. zynq学习05 Zynq 7000 emio的gpio操作

    http://m.blog.csdn.net/article/details?id=44566855 本文讲述怎样使用emio功能的gpio,涉及到fpga部分,软件涉及到一级引导程序fsbl的创建及 ...

最新文章

  1. 使用node.js进行API自动化回归测试
  2. 逢低买入?比特币、莱特币和比特币现金反弹行情一触即发?
  3. 解决使用Navicat等工具进行连接登录mysql的1130错误,无法使用Ip远程连接的问题(mysql为8.0版本)
  4. 2021MIT博士pluskid年终总结
  5. 阿里云边缘云全新架构升级,助力CDN操控新体验
  6. Anbox 和 LXC 代码规模
  7. 基础练习 数列特征 c语言
  8. 电脑不能开机维修_MacBook维修 苹果笔记本电脑进水不开机
  9. Meidapipe 3D手势姿态跟踪算法,手机端实时检测 ,多个手势同时捕捉
  10. 后端工程师的「跨域」之旅
  11. 微信开发 调用摄像机拍照(录像)功能
  12. 案例:需求问题的解决方案
  13. python数据导出excel_python实现数据导出到excel的示例
  14. PVD桌面怎样重新调整personal vDisks大小
  15. NET Core-学习笔记(二)
  16. Norton Ghost V12
  17. 【裴礼文数学分析】例1.1.5
  18. 第四十一章 SQL命令 DROP VIEW
  19. Spark问题3之SparkException:Error notifying standalone scheduler's driver endpoint
  20. 如何在html中播放本地视频文件【兼容ie、火狐、谷歌、360浏览器等】

热门文章

  1. python中的open函数实例_Python中open函数注意点
  2. php进攻教程,如何对PHP程序中的常见漏洞进行攻击(下)_php基
  3. 29岁双非计算机硕士毕业好就业吗,双非硕士与985本科生对比,两者“含金量”谁高?HR回答太现实...
  4. @override代表什么意思_混凝土中C20、HZS180都代表什么意思?
  5. gradle 查看依赖类库版本_使用Gradle命令查看项目中库的依赖关系
  6. ios微信登录不上服务器,iOS微信授权登录
  7. php get 传循环出来的参数_PHP性能优化小技巧
  8. vba 根据分辨率 缩放显示比例_【显示百闻录】第一讲:关于屏幕尺寸、比例以及分辨率...
  9. 动态标题_动态打印区域和打印标题
  10. 通信系统之信道(一)