分享

Zynq入门基础实验一之Helloworld

 NQ的图书馆 2017-10-15

一.实验平台

    我们采用的是自己设计的Zynq实验板,与Xilinx官方的Zedboard基本兼容。

二.实验内容

   我们使用PS部分的uart1,电路板上留出485接口,通过485转232串口线,即搭好本实验的实验平台。通过将vivado下新建的硬件平台生成bitstream文件,导入到SDK,然后在SDK上新建helloworld的程序,运行程序即可在终端上打印出helloworld信息。

三.注意事项:

  1. 关于Zynq:

      Zynq的PS外设可配置成MIO和EMIO。MIO是PS的I/O接口对应到芯片外部引脚54个引脚,这些引脚可用在GPIO、SPI、UART、TIMER、Ethernet、USB等功能上。
EMIO是使用拓展IO,因为MIO引脚资源有限,将MIO上放不下的而又想使用的IO接口连到PL上,从PL引脚连到外部,这就是EMIO。我们知道,PS部分访问PL
部分的资源,一般可通过AXI GP(低速访问)、AXI HP(高速访问)、AXI ACP(用得较少),但有了EMIO,就可以通过EMIO直接连到一些简单PL模块上,用作模
块的控制信号,这样就可以绕过复杂的AXI总线访问。

     一般来说FPGA设计中,顶层文件的Input Output端口都要给它约束到指定引脚; 但Zynq引脚资源主要分为PS Pin、FPGA Pin、Jtag Config Pin、GTX Pin(高速串行收发引脚)、XADC Pin; PS Pin分为PS_POR_B(上电复位引脚)、PS_CLK(系统时钟)、PS_SRST_B(系统复位)、PS_MIO、PS_MIO_VREF、PS_DDR Pin; 因此我们看到在Diagram中的PS部分(除了EMIO)的Make External端口没有约束到具体引脚,因为硬件上已经约束好了。PL部分的Make External端口是一定要在xdc文件中约束到指定引脚。

  2. 在板子上运行程序

      本工程中只使用了PS上的uart1(MIO48、MIO49)、因uart0默认是配置成EMIO的,没有用到PL部分的资源,因此可以去掉FCLK、AXI_GP相关资源,但为了方便,
采用processing_system7_0的默认配置,只添加uart1外设,先Generate output product,然后产生wrapper文件,最后生成bitstream文件,然后在SDK上新建helloworld工程。
运行程序,打印Helloworld到Terminal;

     记住: 纯PS设计时,在板子上跑SDK程序只需Run As --> Run Configurations --> Run; PS+PL设计时,需要先Program FPGA,然后再Run

四. 实验步骤

  1. 在Vivado下新建工程,配置PS使能uart1,Generate output product,然后产生wrapper文件

  2. 生成bit文件,并导出bitstream到硬件,打开SDK

  3. 在SDK中新建Helloworld工程

  4. Run As --> Run Configurations --> Run;Run Configuration这步要配置uart波特率为115200

  5. 实验结果如图:

  


五. 附录工程文件

    F:\Xilinx\zedboard\vivado\Zynq_Intro\Lab1_helloworld


   



       








    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多