vivado + zedboard 初体验

版权声明:小兵所有 https://blog.csdn.net/weixin_42767056/article/details/83933499

vivado + zedboard 初体验

参考文章:https://www.cnblogs.com/rocbomb/archive/2014/07/29/3876683.html
vivado:2017.1 (下载地址:https://www.0daydown.com/04/731603.html)
zedboard:AES-Z7EV-7Z020-G
Zynq-7000 SoC XC7Z020-CLG484-1
512 MB DDR3
256 Mb Quad-SPI Flash
4 GB SD 卡
板上 USB-JTAG 编程
10/100/1000 Ethernet
USB OTG 2.0 和 USB-UART
PS & PL I/O 扩展 (FMC, Pmod™, XADC)
多显示 (1080p HDMI, 8-bit VGA, 128 x 32 OLED)
I2S Audio CODEC

1、安装vivado

默认安装一直到最后,如果出现C++ 2015安装失败的选项的话,下载一个DirectX Repair修复一下再重新装(下载地址:https://dl.pconline.com.cn/download/360074-1.html)

2、尝试一下板子

裸板
要注意编程口在电源线旁边。
结构框图
这是结构框图。PS+PL+一堆外设

3、硬件

1)新建工程

在这里插入图片描述
新建工程
在这里插入图片描述
工程名和目录
在这里插入图片描述
先不制定RTL
在这里插入图片描述
选择板子,有C和D,没搞清,我就用默认的试试了
然后继续,生成工程

2、用IP搭积木

在这里插入图片描述
新建个block
在这里插入图片描述
开始放IP了

在这里插入图片描述
在这里插入图片描述
给IP连个线

在这里插入图片描述
重复此过程添加GPIO,连线的时候左边选S_AXI。
在这里插入图片描述
给GPIO关联到LED上,用作指示灯

重复上两步再添加一个GPIO选S_AXI,并关联到sws_8bits上,用作开关

在这里插入图片描述
点击验证,大概率都没问题
右键design,添加个外套
然后开始跑流程,Synthesis, Implementation, Generate Bitstream
在这里插入图片描述
速度挺慢的,一个结束会弹出对话框继续另一个。

在这里插入图片描述
在这里插入图片描述
导出硬件

在这里插入图片描述
启动软件

扫描二维码关注公众号,回复: 4342423 查看本文章

4、软件

在这里插入图片描述
软件启动了
在这里插入图片描述
在这里插入图片描述
新建软件工程

在这里插入图片描述
打开helloworld.c对动点手脚

#include <stdio.h>
#include "platform.h"
#include "xparameters.h"
#include "xgpio.h"
#include "sleep.h"
#include "platform.h"
#include "xil_types.h"
#include "xgpiops.h"


#define XPAR_LEDS_ID XPAR_AXI_GPIO_0_BASEADDR  //添加 led
#define XPAR_SWS_ID  XPAR_AXI_GPIO_1_BASEADDR  //添加 开关

int main()
{
    static XGpio LED_Ptr;//定义LED的指针
    static XGpio SWS_Ptr;//定义开关的指针
    int state = 0;
    
    //初始化 LED
    XGpio_Initialize(&LED_Ptr,XPAR_AXI_GPIO_0_DEVICE_ID);
    XGpio_SetDataDirection(&LED_Ptr, 1,0x00);//通道1;设置方向 0 输出 1输入, 0x00表示8位都是输出
    XGpio_DiscreteWrite(&LED_Ptr, 1,0x00);//开始全关

    //初始化 开关
    XGpio_Initialize(&SWS_Ptr,XPAR_AXI_GPIO_1_DEVICE_ID);
    XGpio_SetDataDirection(&SWS_Ptr, 1,0xFF);//通道1;设置方向 0 输出 1输入 0xFF表示8位都是输入

    while(1){
        state = XGpio_DiscreteRead(&SWS_Ptr, 1);  //从开关处 读数据
        printf("Numb %d\n\r", state);
        XGpio_DiscreteWrite(&LED_Ptr, 1,state);   //数据写入 led
        usleep(1000);      //延时 1ms
    }

    return 0;
}

在这里插入图片描述

在这里插入图片描述
选好硬件和bitstream,然后编程
在这里插入图片描述
下载软件运行
在这里插入图片描述
叮咚,亮了

猜你喜欢

转载自blog.csdn.net/weixin_42767056/article/details/83933499