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

    关注

    1655

    文章

    22281

    浏览量

    630050
  • led
    led
    +关注

    关注

    243

    文章

    24433

    浏览量

    687251
  • python
    +关注

    关注

    57

    文章

    4856

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ALINX教程分享_Zynq UltraScale+ MPSoC PYNQ3.1.2移植

    本教程在 Ubuntu22.04.1 虚拟机中安装了 Xilinx 2024.1 的开发环境,基于该环境从源码编译 PYNQ 3.1.2 工程,生成能够在 ALINX AXU15EGB 开发板上运行的
    的头像 发表于 11-30 16:06 2155次阅读
    ALINX教程分享_<b class='flag-5'>Zynq</b> UltraScale+ MPSoC <b class='flag-5'>PYNQ</b>3.1.2移植

    高效升降压芯片 PL5500/PL5501:解锁宽压场景电源设计新可能

           在工业控制、汽车电子、智能设备等领域,电源电压波动是工程师面临的常见挑战 —— 输入电压可能高于、低于或等于设备所需的稳定输出电压,传统的单降压或升压芯片难以应对。而 PL
    的头像 发表于 11-19 15:01 293次阅读

    Zynq MPSoC PS侧PCIe高速DMA互连解决方案

    在涉及Xilinx Zynq UltraScale+ MPSoC的项目中,实现设备间高速、低延迟的数据传输往往是核心需求之。PCIe(尤其PS侧)结合DMA(直接内存访问)正是满足这类需求的理想技术方案。
    的头像 发表于 10-22 13:53 3078次阅读
    双<b class='flag-5'>Zynq</b> MPSoC <b class='flag-5'>PS</b>侧PCIe高速DMA互连解决方案

    ZYNQ PSPL数据交互方式

    ZYNQ SoC 的 PS (Processing System) 和 PL (Programmable Logic) 之间的数据交互是系统设计的核心。
    的头像 发表于 10-15 10:33 523次阅读
    <b class='flag-5'>ZYNQ</b> <b class='flag-5'>PS</b>与<b class='flag-5'>PL</b>数据交互方式

    RTthread怎么加载zynq的支持包?

    RTthread有xilinx zynq的芯片支持包了么,SDK管理器里面怎么下载ZYNQ的支持包呢?求助
    发表于 09-23 06:05

    PL4807-ADJ

    PL4807-ADJ
    发表于 09-08 18:53 0次下载

    AIWA PL70 维修手册

    AIWA PL70 维修手册
    发表于 06-09 14:54 2次下载

    正点原子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&amp;蓝牙等接口,资料丰富!

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

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

    zynq系列中的FPGA,都会自带两个iic设备,我们直接调用其接口函数即可运用。使用xilinx官方提供的库函数,开发起来方便快捷。
    的头像 发表于 04-17 11:26 1748次阅读
    <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 2248次阅读
    <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 3568次阅读
    <b class='flag-5'>ZYNQ</b>基础---AXI DMA使用

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

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

    ZYNQ 7035/7045开发板原理图

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