0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PYNQ案例(一):ZYNQ的PL与PS开发

电子设计 ? 来源:Pynq ? 作者:Pynq ? 2020-12-25 14:11 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

上一期的学习中,我们系统性地介绍了PYNQ与ZYNQ地区别与联系。PYNQ = Python + ZYNQ,即将ZYNQ部分功能的Python化,直接调用Python库和FPGA硬件库进行功能的开发。

Pynq降低了开发人员的门槛,但知其然也知其所以然,开发效率将会更高。因此,在进入PYNQ的python开发之前,我们先来学习ZYNQ的PL与PS开发,为接下来的学习提供良好的基础。

本部分的学习,我们依旧借助PYNQ_z2来完成。

1. ZYNQ功能块
ZYNQ中包含两大功能块:PS部分和PL部分。

PS部分指Processing System,一个基于双ARM Cortex A9内核的处理系统,其中集成了内存存储器和外部存储器接口,以及如GPIO、UART接口等大量的外设。

PL部分指Programmable Logic,基于Xilinx 7系列架构的可编程逻辑单元,通过PL部分可以为ARM定制很多外设,这也是ZYNQ的一大优点。

2. ZYNQ整体架构
ZYNQ中虽然包含PS端和PL端,但是整个设计是以ARM处理器中心的,PS端的ARM内核可以独立于PL端运行;虽然PL端也可以独立于PS端运行,但是PL的配置是由PS端完成的,所以不能采用传统的固化FLASH的方式固化PL端程序。

PS端和PL端通信是通过AXI接口协议连接,这个协议是AMBA的一部分,是一种高性能、高带宽、低延迟的片内总线。

3. vivado与PL开发
下面我们通过一个LED灯的小项目进行本部分学习:

实验:轮流点亮LED灯

1. 打开vivado hls,点击Create New Project Project”,创建一个新工程。

2. 设置工程名led和路径,在工程类中中选择RTL Project,目标语言“Target language“选择选择“Verilog Verilog”,多语言混合编程。

选择板子的时候搜索xc7z020clg400-1,这是PYNQ的板子号,选择完成(PYNQ-Z2板采用ZYNQ XC7Z020-1CLG400C SoC)。

3. 新建一个 VerilogHDL 文件,可以通过右击 Design sourse 选择 AddSourse,选择第二个选项

选择 CreateFile…在弹出下面窗口填写新建源文件名称

创建完成点击 Finish

4. 在用户区 VerilogHDL 文件窗口中输入源程序,保存时文件名与实体名 保持一致,代码如下:

o4YBAF9uHx6AFyosAADJJJLoq1M006.png

得到的最终界面:

pIYBAF9uHySAfD19AAVNWkGbCyo885.png

5. 新建约束文件,输入下面指令

pIYBAF9uHyaAGPlqAAEW2Ef8TWQ369.png

6.单击”Run Synthesis“开始综合->弹出的对话框单击”OK“->综合完成后单击”cancle“->点击“Constrain wizard"

点击finish

7. 时序约束向导分析出设计中的时钟,这里把“sys_clk”频率设置为50Mhz,然后点击Skip to Finish结束时序约束向导。

在弹出的框选择OK,接着选finish

这个时候led.xdc文件已经更新,点击“Reload”重新加载文件

8. 点击“Generate Bitstream”,直接生成bit 文件。

在弹出的对话框中可以选择任务数量,这里和CPU核心数有关,一般数字越大,编译越快,单击”OK”

9. 这个时候开始编译,可以看到右上角有个状态信息,在编译过程中可能会被杀毒软件、电脑管家拦截运行,导致无法编译或很长时间没有编译成功。

编译中没有任何错误,编译完成,弹出一个对话框让我们选择后续操作,这里选项“open hardware manager” ,然后单击“OK”

10. 下载到板子

1)连接好开发板的 JTAG接口,给开发板上电

2)可以看到JTAG扫描到arm和 FPGA 内核

3)选择FPGA内核,右键选择“Program Device...” ,在弹出窗口中点击“Program”

4)等待下载,下载完成以后,我们可以看到4 颗LED开始每秒变化一次

编辑:hfy
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1646

    文章

    22070

    浏览量

    619738
  • led
    led
    +关注

    关注

    242

    文章

    23875

    浏览量

    675419
  • python
    +关注

    关注

    56

    文章

    4831

    浏览量

    87371
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    正点原子Z15I ZYNQ 开发板资料发布!板载PCIe2.0、SPFx2、MIPI CSI等接口,资料丰富!

    正点原子Z15I ZYNQ 开发板资料发布!板载PCIe2.0、SPFx2、MIPI CSI等接口,资料丰富! 正点原子Z15I ZYNQ开发板,核心板全工业级设计,主控芯片
    发表于 05-30 16:59

    正点原子Z20 ZYNQ 开发板发布!板载FMC LPC、LVDS LCD和WIFI&蓝牙等接口,资料丰富!

    接口等外设。开发板提供了丰富的开发文档和软件资源,涉及FPGA开发、Vitis开发、Linux系统开发和Qt
    发表于 05-30 16:55

    ZYNQ FPGA的PS端IIC设备接口使用

    zynq系列中的FPGA,都会自带两个iic设备,我们直接调用其接口函数即可运用。使用xilinx官方提供的库函数,开发起来方便快捷。
    的头像 发表于 04-17 11:26 ?1156次阅读
    <b class='flag-5'>ZYNQ</b> FPGA的<b class='flag-5'>PS</b>端IIC设备接口使用

    Zynq7000处理器的配置详解

    添加好ZYNQ7 Processing System IP核后,需要对其进行配置,双击弹出如下窗口。绿色部分表示ZYNQ PS部分中可配置的项目,可以双击转向相应的设置界面,也可以直接在左边的导航列表中选择。
    的头像 发表于 03-27 09:37 ?1306次阅读
    <b class='flag-5'>Zynq</b>7000处理器的配置详解

    从零开始驯服Linux():ZYNQ-Linux启动文件构建全解析

    定位问题并优化代码。本教程我们就一起来看一下,如何基于正点原子提供的出厂相关源代码,制作ZYNQ开发板的启动文件,并成功运行Linux系统。 1.1制作前准备工作1)、
    发表于 03-20 16:48

    ZYNQ基础---AXI DMA使用

    前言 在ZYNQ中进行PL-PS数据交互的时候,经常会使用到DMA,其实在前面的ZYNQ学习当中,也有学习过DMA的使用,那就是通过使用自定义的IP,完成HP接口向内存写入和读取数据的方式。同样
    的头像 发表于 01-06 11:13 ?2510次阅读
    <b class='flag-5'>ZYNQ</b>基础---AXI DMA使用

    基于Xilinx ZYNQ7000 FPGA嵌入式开发实战指南

    电子发烧友网站提供《基于Xilinx ZYNQ7000 FPGA嵌入式开发实战指南.pdf》资料免费下载
    发表于 12-10 15:31 ?38次下载

    ZYNQ 7035/7045开发板原理图

    ZYNQ 7035/7045开发板原理图
    发表于 12-05 13:46 ?13次下载

    基于PYNQ和机器学习探索MPSOC笔记

    新版本中,不仅仅介绍了MPSOC的体系结构和应用场景,更是结合当前应用最广的PYNQ框架和机器学习应用进行分析。作为本不可多得的免费电子英文书籍,本书既是使用Zynq MPSoC的开发
    的头像 发表于 11-16 11:32 ?734次阅读
    基于<b class='flag-5'>PYNQ</b>和机器学习探索MPSOC笔记

    ZYNQ核心板学习笔记

    此款开发板使用的是 Xilinx 公司的 Zynq7000 系列的芯片,型号为 XC7Z020-2CLG484I,484 个引脚的 FBGA 封装。
    的头像 发表于 10-24 18:08 ?2806次阅读
    <b class='flag-5'>ZYNQ</b>核心板学习笔记

    PICO-IMX8PL和SRG-IMX8PL:共创您的物联网集成网关

    凭借为工业物联网构建的平台,全新PICO-IMX8PL和SRG-IMX8PL将强大的物理硬件与精英开发工具相结合,使解决方案更易于推向市场。SRG-IMX8PL系统赋予用户制造高品质、
    的头像 发表于 10-12 08:01 ?935次阅读
    PICO-IMX8<b class='flag-5'>PL</b>和SRG-IMX8<b class='flag-5'>PL</b>:共创您的物联网集成网关

    正点原子ZYNQ7015开发板!ZYNQ 7000系列、双核ARM、PCIe2.0、SFPX2,性能强悍,资料丰富!

    ! 正点原子Z15 ZYNQ开发板,搭载Xilinx Zynq7000系列芯片,核心板主控芯片的型号是XC7Z015CLG485-2。开发板由核心板+底板组成,外设资源丰富,板载1路
    发表于 09-14 10:12

    [XILINX] 正点原子ZYNQ7035/7045/7100开发板发布、ZYNQ 7000系列、双核ARM、PCIe2.0、SFPX2!

    7000系列芯片,核心板支持Xilinx Zynq-7035、Zynq-7045和Zynq-7100三种型号。开发板由核心板+底板组成,外设资源丰富,板载2路千兆以太网接口(
    发表于 09-02 17:18

    复旦微PS+PL异构多核开发案例分享,基于FMQL20SM国产处理器平台

    本文主要介绍复旦微FMQL20S400M的PS + PL异构多核开发案例,开发环境如下: Windows开发环境:Windows 7 64b
    发表于 08-22 14:04

    使用PYNQ训练和实现BNN

    使用 PYNQ 可以轻松在 FPGA 上实现加速 AI/ML,而无需编写行 HDL!让我们看看如何做到这点。
    的头像 发表于 08-05 17:15 ?1121次阅读
    使用<b class='flag-5'>PYNQ</b>训练和实现BNN