查看: 1616|回复: 0

创龙TLZ7x-EasyEVM评估板试用5:PS和PL片内通信

[复制链接]
  • TA的每日心情
    开心
    2022-8-6 16:18
  • 签到天数: 72 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2020-6-4 10:01:32 | 显示全部楼层 |阅读模式
    分享到:
    创龙TLZ7x-EasyEVM评估板试用5:PS和PL片内通信
        Zynq系统芯片是赛灵思公司(Xilinx)推出的行业第一个可扩展处理平台,该平台的核心本质就是把通用的ARM Cortex-A9MPCore处理器(PS)系统和低功耗28nm工艺技术的7系列可编程逻辑(PL)部分集成在一个芯片上,以实现高度的灵活性、强大的配置功能和高性能。相比以前ARM芯片+FPGA芯片的硬件系统,最大的优势就是在于PS/ARM和PL/FPGA之间通信带宽,因为ARM芯片和FPGA芯片在PCB上互连的话并行总线的位宽和速率都有限制,而Zynq系统芯片在片内实现的PS和PL间通信可以采用更大的总线位宽和更高的通信速率以获得非常大的通信带宽,并且片内互联相比片外互联还可以减少通信消耗的功耗,节省PCB面积。首先我们来了解下Zynq系统芯片在PS和PL间有哪些通信互联结构或者通信方式,参考下面的ZYNQ的系统框图:
    51.jpg
    PS和PL间的通信方式有四种:
    1、EMIO方式,如上图标1处所示,相当于把PS外设的引脚内部连接到FPGA上,总共有192个EMIO可以作为GPIO连接到PL部分,其中128个为PS输出到PL部分,64个为PL输出到PS部分,这个只适用于低速通信的场合。
    2、AXI_GP接口方式,如上图标2处所示,总共有四个通信接口,总线宽度都是32位,包括两个AXI_GP主设备接口(PS为主设备)和两个AXI_GP从设备接口(PS为从设备),主要用在一般速率或者通用情况下的互连通信。
    3、AXI_HP接口,如上图标3处所示,总共有四个通信接口,总线宽度可以配置为32位或者64位,都是高性能/带宽的AXI3.0标准的接口,PL为主设备发起访问,主要用于PL访问PS侧的存储器,包括DDR内存和片内RAM, 主要用在速率要求比较高的情况下的PS和PL通信。
    4、AXI_ACP接口(加速器一致性端口),如上图标4处所示,总线宽度是64位,PL为主设备发起访问,通过该接口,PL可以直接访问PS的cache,同时也可以第一时间将逻辑加速运算结果送至cache中,特点是有很低的延迟,适合做专用指令加速器模块的通信接口。
    以上对PS和PL间的可能的通信方式了解后,我们以创龙科技提供的tl-axi-gpio-led-demo例程进行实验,该例程在PL侧使用了一个AXI GPIO IP核,PS处理器通过上面介绍的AXI_GP接口来访问控制该GPIO IP,具体步骤如下:
    1、拷贝创龙科技提供的第一张光盘的Demo\All-Programmable-SoC-demos\tl-axi-gpio-led-demo目录到一个工作目录,然后打开vivado2017.4工具的Tcl Console窗口,输入下面命令进入脚本所在目录,如cd C:/ tl-axi-gpio-led-demo/hw/src/scripts目录;然后执行vivado -mode batch -source tl_axi_gpio_led_project.tcl -tclargs tlz7x-easyevmxc7z020clg400-2,Tcl脚本执行完成后,在工程源码" hw \src\runs"目录下生成对应开发平台的Vivado工程。
    2、进入Vivado工程所在的hw \src\runs路径,双击tl-axi-gpio_led.xpr文件打开工程。然后在工程界面左侧点击"IPINTEGRATOR -> Open Block Design"打开块图,双击块图中的AXIGPIO核框图后可以查看到设置GPIO Width为1位,点击块图中的"Address Editor"选项,可以查看到AXI GPIOIP核分配的地址为0x4120_0000,在PS端通过该地址用AXI接口控制IP核,如下图示:
    52.jpg
    3、参考第一张光盘的用户手册目录下的《3-1-2-基于TcL脚本生成xsdk工程及编译.pdf》文档,首先编译第2步打开的工程产生Bitstream,然后在Vivado的菜单栏"File -> Export -> Export Hardware…",弹出对话框中点击OK导出硬件描述文件,生成的文件位于工程目录的" hw \src\runs\tl_axi_gpio_led.sdk\tl_axi_gpio_led_wrapper.hdf"文件,将该文件拷贝到“\sw\baremetal_demo\src”目录下。
    4、双击vivado2017.4安装目录下的"Xilinx\SDK\2017.4\bin\xsct.bat"文件将XSCT终端打开,在XSCT终端输入如下命令进入到脚本所在目录:cd C:/ tl-axi-gpio-led-demo/sw/baremetal_demo/src,在输入source tl_axi_gpio_led_ps.tcl命令生成xsdk工程,如下图示:
    53.jpg
    5、关闭XSCT终端,在双击vivado2017.4安装目录下的"Xilinx\SDK\2017.4\bin\ xsdk.bat "文件将Xilinx SDK工具打开,在弹出的Workspace选择界面中,点击"Browse…"按钮,选择需要打开的xsdk工程或者直接输入xsdk工程所在路径,如C:/ tl-axi-gpio-led-demo/sw/baremetal_demo/src/tl_axi_gpio_led.sdk。然后在SDK工具界面点”Window->Show View -> ProjectExplorer”调出工程浏览界面(如果有Welcom界面需要先关闭),然后就可以正常编译调试程序了。
    6、实际测试,首先连接JTAG下载器到开发板上,然后把开发板的启动方式拨码开关拨码为010101(1~6 JTAG模式),最后打开电源开关给开发板上电,再在SDK工具界面先编译程序,然后下载FPGA bitstream后再下载PS程序,最后可以看到底板上的LED2在闪烁,具体操作视频如下所示:





    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-19 09:27 , Processed in 0.109747 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.