读书人

深入浅出FPGA-17-xilinx_zynq7000_EPP

发布时间: 2012-11-12 12:31:58 作者: rapoo

深入浅出FPGA-17-xilinx_zynq7000_EPP上一个简单实验(PS+PL)

引言

前面两个实验,PL是传统的FPGA开发,PS是传统的嵌入式开发。

zynq7000EPP是xilinx比较高端的FPGA开发板,XC7Z020内部集成了两个cortexa9的硬核,外部有1G的DDR3,所以单纯做FPGA太浪费了。但是单纯用PS资源,就没必要用FPGA了,所以只有将两者结合使用才能体现其价值所在。

即,PS+PL。添加自己的一个IP到AXI总线上,然后通过SDK编码控制它的寄存器,这就是本小节的实验内容。


17.1 实验目的

1》 熟悉zynq7000 EPP资源和design suite

2》 PL编码,PS编码,实现一个简单逻辑。

17.2 实验环境

Board :ZYNQ7000 EPP

Device:XC7Z020CLG484ACX1221

Design suite:14.1 (PlanAhead+XPS+SDK)

17.3 实验准备

a) 会planAhead创建工程:ps_pl。

b) 简单了解和使用XPS和SDK


17.4 实验内容

a) 添加自己一个IP:rill_ip,挂到AXI上,此IP有一个output连到外部一个LED上。

b) 在SDK编写C代码控制这个IP的寄存器来控制此设备,进而控制LED的闪烁。


17.5 实验步骤

a) 打开planAhead,创建embedded新工程,添加PS7。

b) 打开XPS->hardware,添加自己的ip:rill_ip。

c) AXI4-lite.

d) 一个32位寄存器。

e) 生成driver。

f) 修改此IP的文件:MPD文件,rill_ip.vhd,user_logic.vhd。三个文件。

File:mpd,1个地方需要修改,如图:这3个文件的路径很深,不好找,截图上面有路径,方便很多。

可以根据截图找到对应位置,然后添加相应代码。

也可以参考附录代码。

深入浅出FPGA-17-xilinx_zynq7000_EPP下一个简单实验(PS+PL)


File:rill_ip.vhd: 2个地方需要修改。

深入浅出FPGA-17-xilinx_zynq7000_EPP下一个简单实验(PS+PL)深入浅出FPGA-17-xilinx_zynq7000_EPP下一个简单实验(PS+PL)

File:user_logic.vhd: 3个地方需要修改。

深入浅出FPGA-17-xilinx_zynq7000_EPP下一个简单实验(PS+PL)深入浅出FPGA-17-xilinx_zynq7000_EPP下一个简单实验(PS+PL)深入浅出FPGA-17-xilinx_zynq7000_EPP下一个简单实验(PS+PL)

g) 将此ip添加到XPS工程。

h) 自动映射。注意port名称,ucf文件里要用。

i) 添加UCF文件,内容:ps_pl.ucf。

j) Create TOP HDL,然后生成bitstream。

k) 导出hardware,launch SDK。

l) 在SDK里创建helloword工程。

m) SDK编码,内容:helloworld.c。读写寄存器。

n) Program FPGA

o) Run AS,configure

p) Run


17.6 实验结果

看板子,DS18这个led会由亮变灭:串口也有打印。

,深入浅出FPGA-17-xilinx_zynq7000_EPP下一个简单实验(PS+PL)



附:

文件1:rill_ip_v2_1_0.mpd:

/* * Copyright (c) 2009 Xilinx, Inc.  All rights reserved. * * Xilinx, Inc. * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A * COURTESY TO YOU.  BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS * ONE POSSIBLE   IMPLEMENTATION OF THIS FEATURE, APPLICATION OR * STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION * IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE * FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION. * XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO * THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO * ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE * FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE. * *//* * helloworld.c: simple test application */#include <stdio.h>#include "platform.h"#include "../../hello_world_bsp_0/ps7_cortexa9_0/include/xgpiops_hw.h"#include "../../hello_world_bsp_0/ps7_cortexa9_0/include/xparameters.h"#define LED_BASE_ADDR XPAR_RILL_IP_0_BASEADDRvoid my_process(void);int main(){    init_platform();    my_process();    cleanup_platform();    return 0;}void my_process(void){int ret = 0;printf("my_process start...");ret = XGpioPs_ReadReg(LED_BASE_ADDR, 0);printf("read0 :%d\n\n",ret);XGpioPs_WriteReg(LED_BASE_ADDR, 0, 0);ret = XGpioPs_ReadReg(LED_BASE_ADDR, 0);printf("read1 :%d\n\n",ret);XGpioPs_WriteReg(LED_BASE_ADDR, 0, 1);ret = XGpioPs_ReadReg(LED_BASE_ADDR, 0);printf("read2 :%d\n\n",ret);}/************ EOF *************/

总结

这三个实验包含了高端FPGA的主要的三种开发方式。也是典型的使用方式。这三个小实验搞明白了的话,就算入门了吧。

再进一步的话,只不过是逻辑复杂些,代码量多一些。这就需要其他方面的知识和技能了。

读书人网 >软件开发

热点推荐