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
    +关注

    关注

    1603

    文章

    21331

    浏览量

    593302
  • led
    led
    +关注

    关注

    237

    文章

    22456

    浏览量

    645903
  • python
    +关注

    关注

    51

    文章

    4678

    浏览量

    83477
收藏 人收藏

    评论

    相关推荐

    简谈Xilinx Zynq-7000嵌入式系统设计与实现

    PLPS中,这样就可实现独无二和差异化的系统功能。与传统的FPGA方法不同的是,ZYNQ 7000 SoC总是最先启动PS内的处理器,
    发表于 04-10 16:00

    AD9681是否可被zynq-7020的pl端驱动?

    您好: 我想咨询AD9681是否可以被zynq-7020的PL端驱动(zynq7020的性能是否足够)。我们需要做卫星的探测载荷,由于卫星能源控制严格,我们需要低功耗、多通道(至少8个)、高采样率
    发表于 12-04 08:18

    【KV260视觉入门套件试用体验】PYNQ初次上手体验

    PYNQ 是 AMD 的个开源项目,用于快速进行自适应计算平台的开发 。 使用Python语言和库,我们可以利用FPGA和ARM协同开发的优势来构建项目
    发表于 10-18 01:22

    【KV260视觉入门套件试用体验】 硬件加速之—使用PL加速FFT运算(Vivado)

    三、硬件加速之—使用PL加速FFT运算(Vivado) 前四期测评计划: 、开箱报告,KV260通过网线共享PC网络 二、Zynq超强辅助-PYNQ配置,并使用XVC(Xilinx
    发表于 10-02 22:03

    ZYNQ设计的基本流程

    ZYNQ内部的总体框架如所示,PS中包含2个ARM Cortex-9的内核,一些基本的外设扩展口以及Memory接口。PSPL的相互通信通过两个通路完成,分别是GP(General
    的头像 发表于 09-22 09:26 564次阅读
    <b class='flag-5'>ZYNQ</b>设计的基本流程

    【KV260视觉入门套件试用体验】Zynq超强辅助-PYNQ配置,并使用XVC(Xilinx Virtual Cable)调试FPGA逻辑

    加速矩阵乘法运算(Vitis HLS) 四、硬件加速之—使用PL加速FFT运算(Vivado) 先来波主观评价: 我认为 PYNQZynq
    发表于 09-16 14:15

    基于PSPL的1G/10G以太网解决方案

    电子发烧友网站提供《基于PSPL的1G/10G以太网解决方案.pdf》资料免费下载
    发表于 09-15 10:05 0次下载
    基于<b class='flag-5'>PS</b>和<b class='flag-5'>PL</b>的1G/10G以太网解决方案

    Linux下如何通过UIO监控PL给到PS的中断

    xilinx mpsoc 平台中,PSPL 进行交互时,PS 需要获取 PL 发出的中断信号。从 mpsoc 技术参考手册 ug1085 TRM 中可知,
    发表于 08-24 16:06 705次阅读
    Linux下如何通过UIO监控<b class='flag-5'>PL</b>给到<b class='flag-5'>PS</b>的中断

    xilinx ZYNQ7000系列基本开发流程之PS

    ZYNQ 芯片分为 PLPSPS 端的 IO 分配相对是固定的,不能任意分配,虽然 PS 端的 ARM 是硬核,但是在
    的头像 发表于 08-11 09:36 5414次阅读
    xilinx <b class='flag-5'>ZYNQ</b>7000系列基本<b class='flag-5'>开发</b>流程之<b class='flag-5'>PS</b>端

    如何为自己的ZYNQ板卡创建Pynq镜像

    Xilinx Pynq 框架允许我们将 Python 和可编程逻辑结合起来。让我们看看如何为自己的ZYNQ板卡创建 Pynq 镜像。
    发表于 08-07 09:26 990次阅读
    如何为自己的<b class='flag-5'>ZYNQ</b>板卡创建<b class='flag-5'>Pynq</b>镜像

    Zynq系列FPGA的亮点

    的FPGA有本质区别,其是以处理器为中心的。Zynq就是两大功能块,PS部分和PL部分,说白了,就是 ARM 的 SOC 部分和 FPGA部分。其中,PS 集成了两个ARM Corte
    的头像 发表于 08-06 10:20 785次阅读
    <b class='flag-5'>Zynq</b>系列FPGA的亮点

    详解Zynq的两种启动模式

    Zynq-7000AP SOC器件有效利用了片上CPU来帮忙配置,在没有外部JTAG的情况下,处理系统(PS)与可编程逻辑(PL)都必须依靠PS来完成芯片的初始化配置。
    发表于 08-02 09:33 813次阅读
    详解<b class='flag-5'>Zynq</b>的两种启动模式

    【资料分享】Xilinx Zynq-7010/7020工业核心板规格书(双核ARM Cortex-A9 + FPGA,主频766MHz)

    、CAN、UART等通信接口,可通过PS端加载PL端程序,且PS端和PL端可独立开发。核心板经过专业的PCB Layout和高低温测试验证,
    发表于 06-25 09:56

    【资料分享】Zynq-7010/7020工业核心板规格书(双核ARM Cortex-A9 + FPGA,主频766MHz)

    1 核心板简介创龙科技SOM-TLZ7x是款基于Xilinx Zynq-7000系列XC7Z010/XC7Z020高性能低功耗处理器设计的异构多核SoC工业核心板,处理器集成PS端双核ARM
    发表于 06-21 15:19

    ZYNQ(FPGA)与DSP之间GPIO通信实现

    例程位置ZYNQ例程保存在资料盘中的Demo\\ZYNQ\\PL\\FPGA_DSP_GPIO文件夹下。DSP例程保存在资料盘中的Demo\\DSP\\XQ_GPIO_FPGA文件夹下。1.1.2
    发表于 06-16 16:02