嵌入式HLS 案例开发手册——基于Zynq-7010/20工业开发板(2)
目 录
2 led_flash 案例 19
2.1 HLS 工程说明 19
2.2 编译与仿真 20
2.3 IP 核测试 23
3 key_led_demo 案例 23
3.1 HLS 工程说明 23
3.2 编译与仿真 25
3.3 IP 核测试 27
前 言
本文主要介绍 HLS 案例的使用说明,适用开发环境: Windows 7/10 64bit、Xilinx Vivado
2017.4 、Xilinx Vivado HLS 2017.4 、Xilinx SDK 2017.4。
测试板卡是基于创龙科技Xilinx Zynq-7000系列XC7Z010/XC7Z020高性能低功耗处理器设计的异构多核SoC工业级核心板。

2 led_flash 案例
案例功能:控制评估底板 LED2 每隔 0.5s 将状态翻转一次。
2.1 HLS 工程说明
(1) 时钟
HLS 工程配置的时钟为 100MHz ,案例将该时钟用于计算 0.5s 间隔时间进行 LED2 亮
灭状态控制,生成的 IP 核亦需接入该时钟。如需修改时钟频率, 请打开 HLS 工程后点击

,在弹出的界面中的 Synthesis 栏目进行修改。

图 29
(2) 顶层函数
案例顶层函数为 led_flash.cpp 中的 led_flash()。

图 30
点击

后,可在弹出的界面中的 Synthesis 栏目查看或设置顶层函数。

图 31
该函数控制评估底板 LED2 每隔 0.5s 将状态翻转一次。工程设置的时钟为 100MHz(周
期 10ns) ,在 for 循环里计数值为 100000000,用时为 10ns x 100000000 = 1s 。
2.2 编译与仿真
请参考本文档

进行单步运行,
HLS 开发流程说明章节,进行编译。编译完成后, 进入仿真界面点击
进入 led_flash()函数。

图 32

图 33
继续点击

进入 for 循环,当 i < 50000000 时, *led_o 等于 1(true)。

图 34
点击

全速运行或修改 i 的值为 50000000,当 i ≥ 50000000 时,*led_o 等于 0(false)。

图 35
2.3 IP 核测试
请参考本文档 HLS 开发流程说明章节,完成 IP 核测试前的准备工作。
HLS 工程生成的 IP 核为 led_flash_0。

图 36
加载 PL 端.bit 格式可执行文件,即可看到评估底板的 LED2 进行闪烁。
3 key_led_demo 案例
案例功能:通过按键 KEY2 控制评估底板的 LED2 状态。
3.1 HLS 工程说明
(1) 时钟
HLS 工程配置的时钟为 100MHz 。案例通过按键 KEY2 控制评估底板的 LED2 状态,实
际没有使用该时钟。 如需修改时钟频率, 请打开 HLS 工程后点击

,在弹出的界面中的 Synthesis 栏目进行修改。

图 37
(2) 顶层函数
案例顶层函数为 key_led_demo.cpp 中的 key_led_demo()。

图 38
点击

后,可在弹出的界面中的 Synthesis 栏目查看或设置顶层函数。

图 39
按键所对应的 IO 默认是上拉、高电平。按下按键时, key_i 为 0;松开按键时, key_i 为 1。
普通标量类型参数对应 IP 核的输入接口, 如 key_i 作为输入。指针类型参数可作为输
入输出, 如*led_o 作为输出。

图 40
3.2 编译与仿真
请参考本文档

进行单步运行,
led_o 的值为 1。
HLS 开发流程说明章节,进行编译。编译完成后, 进入仿真界面点击 可看到 Console 窗口打印 led_o 的值。由于 key_i 默认值为 0 ,因此

图 41
修改 key_i 的值为 1,并继续点击

进行单步运行。

图 42
此时可看到 led_o 的值为 0 。

图 43

3.3 IP 核测试
请参考本文档 HLS 开发流程说明章节,完成 IP 核测试前的准备工作。
HLS 工程生成的 IP 核为 key_led_demo_0。

图 44
加载 PL 端.bit 格式可执行文件,按下 KEY2 则 LED2 点亮,松开 KEY2 则 LED2 熄灭。
嵌入式HLS 案例开发手册——基于Zynq-7010/20工业开发板(2)的更多相关文章
- 学习参考《Flask Web开发:基于Python的Web应用开发实战(第2版)》中文PDF+源代码
在学习python Web开发时,我们会选择使用Django.flask等框架. 在学习flask时,推荐学习看看<Flask Web开发:基于Python的Web应用开发实战(第2版)> ...
- 《阿里巴巴Java开发手册》更新为《Java开发手册》
新版一览:华山版<Java开发手册> <阿里巴巴Java开发手册>始于阿里内部规约,在全球Java开发者共同努力下,已成为业界普遍遵循的开发规范,涵盖编程规约.异常日志.单元测 ...
- 【DSP开发】【Linux开发】基于ARM+DSP进行应用开发
针对当前应用的复杂性,SOC芯片更好能能满足应用和媒体的需求,集成众多接口,用ARM做为应用处理器进行多样化的应用开发和用户界面和接口,利用DSP进行算法加速,特别是媒体的编解码算法加速,既能够保持算 ...
- FlaskWeb开发:基于Python的Web应用开发实战
所属网站分类: 资源下载 > python电子书 作者:熊猫烧香 链接:http://www.pythonheidong.com/blog/article/63/ 来源:python黑洞网,专注 ...
- (转)微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(采用 Baidu Eclipse)
原文传送门(http://blog.csdn.net/bingtianxuelong/article/details/17843111) 版本说明: V1: 2014-2-13 ...
- C#开发之基于NPOI的操作Excel开发体验
最近遇到一个数据导入的需求,语言是.net framework 4.7的C#.但是,这次主要探讨NPOI的体验,原则就是向前兼容.所以采用.xls的支持.网上的资料,我稍微整合了一些. #1 单元格下 ...
- 微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(MyEclipse + SVN)
等待加载完成后,在"Personal Sites" 栏目中会显示你加载的SVN的相关内容,展开"SVN"分别选择"Core SVNKit Librar ...
- 微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(采用 Baidu Eclipse)
3.通过 SVN 检入工程 在 bae 上的应用添加部署成功后,如图 7 点击“点击查看”按钮,会打开一个新页面,页面上会打印 “hello world” ,这是因为我们的应用包含有示 ...
- Android 项目优化(七):阿里巴巴Android开发手册整理总结
本来之前觉得Android项目优化系列的文章基本整理完毕了,但是近期看了一下<阿里Android开发手册>有了很多收获,想再整理一篇,下面就开始吧. 先在这里列一下之前整理的文章及链接: ...
- CH02基于ZYNQ的嵌入式LINUX移植
CH02基于ZYNQ的嵌入式LINUX移植 1.1概述 实验环境: Windows 10 专业版 Vmware workstation 14.1.1 Ubuntu 16.04.3 Xilinx SDx ...
随机推荐
- Swift中Tuple的比较
Swift中Tuple的比较遵循如下规则: 1 被比较的Tuple中包含的元素个数必须一样,并且对应元素的类型也必须一样: 2 比较的结果由整个Tuple的比较结果来决定.比如,如果是相等比较,那么必 ...
- python教程6.5-excel处理模块
第三方开源模块安装 创建文件 打开已有文件 写数据 选择表 保存表 遍历表 按行遍历 按列遍历 遍历指定行列 遍历指定第几列数据 删除表 设置单元格样式 字体 对齐 设置行高列宽
- 将外部jar打入本地maven仓库
1.将jar包放入某不含中文的路径下 ,例如:E:\file\zip4j-1.3.2.jar 2.在命令行输入操作命令 mvn install:install-file -DgroupId=zip4j ...
- 干货 springcloud之 poenFeign的使用
PoenFeign集成到springcloud项目中 先创建一个springboot项目 这里就不多说了 application.yml文件: server: port: 8082spring: ap ...
- 本地项目文件上传到git
初始化项目: git init 与服务器项目关联:git remote add origin "http://**************************/r/ruoyi.git&q ...
- Smart - Luogu —— 智能的洛谷
@ 目录 安装 Stylus 谷歌 Edge 安装 Smart - Luogu 使用 尾声 安装 Stylus link 点击推荐下载,获取 crx 文件 谷歌 先点击右上角三个点,再点击扩展程序,然 ...
- 一个与 WSL2 建立远程的简单方法
前言 众所周知,windows 会通过虚拟交换机给本机和 wsl2(Linux 子系统)分别分配 ip.于是本机重启或重启 wsl 服务的时候会重新分配 ip.之前所作的端口转发,监听之类的都会失效. ...
- 人脸识别库 虹软 客户端 服务端 示例 基于虹软SDK在C/S 模式下的多人脸实时识别(C#)
https://github.com/18628271760/MultipleFacesProcess 一.前言 虹软开发SDK以来,其免费使用的营销策略,成功降低了中小企业使用人脸识别技术的成本.然 ...
- 通过计算巢轻松部署 Walrus
概述 Walrus 是一个用于管理和部署应用程序的平台,它提供了一个集中化的管理界面,使用户能够轻松地管理应用的生命周期,包括创建.配置.部署.监控和维护应用.Walrus 还提供了一些高级功能,如应 ...
- 002. git 分支管理
git分支 git分支,从本质上来讲仅仅是指向提交对象的可变指针,在这一点上与svn是有着本质区别,svn的分支实际就是个目录而已. git默认分支名字是 master,在多次提交操作后,你其实已经有 ...