vivado学习之PS与PL通信

刚开始学习PS与PL通信的时候,总是理解的不透彻,只能跟书上或者网上的教程学习,但是也只是照猫画虎。直到看了这篇博文:

http://xilinx.eetop.cn/viewnews-2547  这个说的很好,主要讲PL   和PS之间的通信,但是中间写了很多为什么要这么做。在网上找的很多其他资料根本就没有这方面的介绍

步骤大致如下:

1、创建一个block,加载XML文件。

2、在block中添加zynq的核,同是引出 DDR 和 FIXED_IO信号(不理解为什么要引出这两个,但是看了好多例程,都是把这两个引脚引出来了)。

3、添加你想用的外设,比如是GPIO还是UART,然后点击链接,会自动的添加另外两个模块,系统复位模块和AXI  interconnect 接口模块。根据接口之间的定义,他们会自动的连在一起。

     链接方式是:a)  PS模块中的M_AXI_GP0端口   链接    AXI interconnect 模块的 s00_axi

                        b)    AXI interconnect 模块 的 M00_AXI 接外设的 S_AXI

                        c)   当然时钟和复位信号都是公用的,需要链接。

                        上面这三个,在自己创建一个AXI的IP模块的时候也是这么连的。后面也要重点学习怎么把自己写的.V代码生成IP  ;怎么在创建的AXI  iP模块中添加代码来实现自己的功能

4、block生成之后,可以看到,已经给外设分配了寄存器地址。

     再按照教程上的,保存文件-----检测电器链接------generate output products (生成diagram block design) ----- create HDL wrapper (生成一个顶层文件) --- 添加约束,生成bit文件

     -------打开bd文件,打开implementation  design  ,然后 file > export> export hardware for SDK-----勾选include  bitstream 。

 

下面重点说一下怎么自己生成一个AXI  的 IP,添加自己的代码。首先,要对AXI的时序有一个大致的认识,虽然自动生成的代码中AXI时序已经写好了,但是自己也得懂一点。

http://blog.sina.com.cn/s/blog_651c92d301012onv.html   讲AXI时序

 

http://blog.csdn.net/shushm/article/details/49536845  讲怎么自己生成AXI接口的IP,并添加自己程序

 

 

http://www.cnblogs.com/milinker/p/5816985.html   将自己写的V文件做成IP核

你可能感兴趣的:(xilinx,FPGA,zynq)