当前位置: 首页 > news >正文

PL端案例开发手册

目    录

  

1 工程编译、程序加载方法

1.1 工程编译

1.2 程序加载

2 led-flash

2.1 案例说明

2.2 操作说明

2.3 关键代码

更多帮助

  

本文主要介绍PL端案例的使用说明,适用开发环境:Windows 7/10 64bit、Xilinx Unified 2022.2。在进行本文如下操作前,请先按照调试工具安装文档安装Xilinx Unified 2022.2开发工具包。本文默认使用创龙科技的TL-DLC10下载器进行操作演示,请使用下载器连接评估板JTAG接口至PC端USB接口

注:本案例基于创龙科技Xilinx UltraScale+ MPSoC系列XCZU7EV高性能处理器设计的高端异构多核SoC工业核心板

PL端案例位于产品资料“4-软件资料\Demo\FPGA-HDL-demos\”目录下,案例使用Verilog语言进行开发。案例包含project和bin两个目录,其中project目录下包含案例工程文件,bin目录下含有案例可执行文件。案例目录详细说明见下表:

1

目录

文件/目录

说明

bin

xxx_xczu7ev.bin/xxx_xczu7ev.bit

PL端可执行文件

project

PL端Vivado工程

处理器硬件资源详细开发说明可查阅产品资料“6-开发参考资料\数据手册\核心板元器件\ZYNQ\”目录下的文档。

  1. 工程编译、程序加载方法

本章节以产品资料“4-软件资料\Demo\FPGA-HDL-demos\目录下的led_flash案例为例,演示工程编译、程序加载等相关操作方法。此案例的功能是PL端控制评估底板的LED2进行闪烁。

请将对应案例目录拷贝至Windows非中文路径下。

备注:Windows路径有长度限制,路径太长将会导致工程打开出错。

  1. 工程编译

进入案例工程对应平台目录,双击.xpr文件打开Vivado工程。

1

在弹出的界面中,点击"PROGRAM AND DEBUG"栏目下的"Generate Bitstream"选项。

2

如弹出如下对话框,请点击Yes。

3

弹出如下界面,请点击OK

4

耗时约3~6min后,工程编译完成,编译时间与PL端工程大小、PC机性能相关。编译完成后,将弹出如下界面,请点击Cancel即可。

5

此时将在案例工程目录的"xxx.runs\impl_1\"路径下生成PL端.bit与.bin格式可执行文件。其中.bit文件一般通过下载器进行加载运行,.bin文件可基于PS端加载运行。

6

  1. 程序加载

请将评估板启动方式选择拨码开关设置为0000(1~4),此档位为JTAG模式,再将评估板上电。将Vivado界面左下角的"Open Hardware Manager"栏目展开,点"Open Target"后点击"Auto Connect"选项。

7

等待Vivado识别评估板,识别成功后如下图所示。

8

右击xczu7_0后点击"Program Device…"选项

9

弹出界面的"Bitstream file"栏,选择待加载的PL端.bit格式可执行文件,已编译的工程将会自动选择,再点击Program进行加载。

10

11

加载完成后,即可看到评估底板的LED2进行闪烁,说明程序基于下载器加载并运行成功。

  1. led-flash
  1. 案例说明

案例功能:控制评估底板LED2每隔0.5s将状态翻转一次。

管脚约束请查看案例工程"xxx.srcs\constrs_1\imports\constraints\"目录下的.xdc文件。

12

  1. 操作说明

程序运行后,即可看到评估底板的LED2进行闪烁,

  1. 关键代码

层文件为"led_flash\project\led_flash.srcs\sources_1\imports\hdl\led_flash.v",关键代码说明如下。

  1. 根据50MHz时钟定义0.5s延时计数值。

13

  1. 使用STARTUPE3原语提供LED时钟及复位。

14

  1. 使用eos_n信号对LED延时进行复位;延时计数值累计次数达到设定的延时值,则翻转LED输出状态。

15

RTL原理图如下所示:

16

http://www.lryc.cn/news/137550.html

相关文章:

  • 华为OD-整数对最小和
  • Ubuntu 22LTS 配置静态IP
  • 【Python】Python爬虫:网络数据的提取利器
  • 20.图的遍历
  • ARM DIY(一)电源、SD卡座、SOC 调试
  • 数学建模知识之小白入门篇
  • 【日常积累】Linux下ftp服务安装
  • 确定了,TikTok将于9月12日正式关闭美国半闭环
  • ATFX汇评:英国7月零售销售年率大降,GBPUSD仍未升破1.3000
  • CTFhub-sqli注入-Referer注入
  • 【案例】登录注册
  • Unity 物体的运动之跟随鼠标
  • C++基础Ⅱ变量
  • Linux管理SpringBoot应用shell脚本实现
  • 一篇搞懂浏览器的工作原理(万字详解)
  • C语言调用python训练的机器学习模型(项目需求轻体量)
  • get和post请求的区别以及post请求的url参数问题
  • android NullPointerException externalCacheDir
  • 设计模式-过滤器模式(使用案例)
  • 成功解决修改已经push到远程git仓库的commit message
  • Ubuntu18.04 交叉编译openssl-1.1.1
  • 七夕学算法
  • 在C++中利用rapidjson实现Python中的字典(Dict)
  • 数组和指针练习(3)
  • 如何用树莓派Pico针对IoT编程?
  • 【填坑向】MySQL常见报错及处理系列(ERROR! The server quit without updating PID file)
  • 如何处理MySQL自增ID用完
  • Docker 安装教程【菜鸟级】
  • centos7.9 用docker安装mysql8.0
  • JVM和消息队列面经(自用)