硬件:Xilinx Zynq-7000 SoC ZC706app
版本:vivado2015.4设计
Zynq上有三种GPIO方式,AXI-GPIO是其中一种,须要建立一个AXI-GPIO核,AXI总线链接至ZYNQ。code
而后配置GPIO的宽度和初始状态。blog
All Outputs:设置成输出,根据须要配置。get
GPIO Width为GPIO的数量,这边配置成2it
Default Output Value为GPIO初始状态,这边为了让2路GPIO都为高状态设置成0x00000003(0‘b 11)io
从新Create HDL Wrapper,找到引脚 ,生成一个两个位宽的引脚output [1:0]gpio_rtl_tri_o,而后再对这两个引脚约束。class
set_property PACKAGE_PIN J15 [get_ports gpio_rtl_tri_o[0]] set_property IOSTANDARD LVCMOS15 [get_ports gpio_rtl_tri_o[0]] set_property PULLUP true [get_ports gpio_rtl_tri_o[0]] set_property PACKAGE_PIN H14 [get_ports gpio_rtl_tri_o[1]] set_property IOSTANDARD LVCMOS15 [get_ports gpio_rtl_tri_o[1]] set_property PULLUP true [get_ports gpio_rtl_tri_o[1]]
至此FPGA部分设计完成,生成镜像。配置
下面是PS部分的设计。硬件
找到AXI设备,设置方向,配置电平
//获取设别 int status = XGpio_Initialize(&gps,XPAR_AXI_GPIO_0_DEVICE_ID); //设置方向,channel 1,全部方向都为输出 XGpio_SetDataDirection(&gps, 1,0x00); //设置电平,channel 1,全部输出都为0 XGpio_DiscreteWrite(&gps, 1,0);