实现在基本PS系统上添加两个通用I/O IP核。
一、添加两个GPIO实例
1、打开design_1.bd文件
2、配置zynq
勾选AXI GP0 interface
选择General - Enable Clock Resets - 选中FCLK_RESET0_N
选择FCLK_CLK0
之后点击ok
3、添加IP核
(1)找到AXI_GPIO并双击,将其添加到设计中
(2)选择AXI_GPIO,可以通过以下设置修改其名称
(3)按照以下配置GPIO
(4)选择自动连线
重新绘制系统块图
4、继续添加IP核
(1)添加gpio
添加之后修改名称
(2)配置IP核
(3)修改AXI Interconnect
(4)手动连线
同时连接
连接好后重新绘制
(5)为buttons分配地址
选择buttons右键 Assign Address
5、连接外部GPIO
对设计验证
二、设计综合
1、更新HDL文件
(2)综合
查看自动分配好的引脚
三、生成比特流和导出硬件到SDK
1、生成bit
2、导出硬件设计
File-Export-Export Hardware
3、启动SDK
File-Launch SDK
四、生成测试程序
1、删除前一个工程所生成的应用工程和板级支持包
2、删除前一个工程生成的硬件平台信息
3、File- new -Board Support Package
之后如下,点击OK自动编译BSP工程
4、新建应用工程
File-New -Application Project
5、添加.c文件
选择src文件夹,右键 new .c
# include "xparameters.h"
#include "xgpio.h"
int main(void)
{
XGpio dip,push;
int psb_check,dip_check;
xil_printf("--Start of the Program--\r\n");
XGpio_Initialize(&dip,XPAR_SWITCHES_DEVICE_ID);
XGpio_SetDataDirection(&dip,1,0xffffffff);
XGpio_Initialize(&push,XPAR_BUTTONS_DEVICE_ID);
XGpio_SetDataDirection(&push,1,0xffffffff);
while(1)
{
psb_check=XGpio_DiscreteRead(&push,1);
xil_printf("Push Buttons Status %x\r\n",psb_check);
dip_check=XGpio_DiscreteRead(&dip,1);
xil_printf("DIP Switch Status %x\r\n",dip_check);
sleep(1);
}
6、bit流文件下的ZYNQ
SDK下 Xilinx- Program FPGA 下载成功之后蓝灯亮起
7、下载应用程序
选择TestApp 右键 Run As -Launch on Hardware (GDB)