目 录

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)的更多相关文章

  1. 学习参考《Flask Web开发:基于Python的Web应用开发实战(第2版)》中文PDF+源代码

    在学习python Web开发时,我们会选择使用Django.flask等框架. 在学习flask时,推荐学习看看<Flask Web开发:基于Python的Web应用开发实战(第2版)> ...

  2. 《阿里巴巴Java开发手册》更新为《Java开发手册》

    新版一览:华山版<Java开发手册> <阿里巴巴Java开发手册>始于阿里内部规约,在全球Java开发者共同努力下,已成为业界普遍遵循的开发规范,涵盖编程规约.异常日志.单元测 ...

  3. 【DSP开发】【Linux开发】基于ARM+DSP进行应用开发

    针对当前应用的复杂性,SOC芯片更好能能满足应用和媒体的需求,集成众多接口,用ARM做为应用处理器进行多样化的应用开发和用户界面和接口,利用DSP进行算法加速,特别是媒体的编解码算法加速,既能够保持算 ...

  4. FlaskWeb开发:基于Python的Web应用开发实战

    所属网站分类: 资源下载 > python电子书 作者:熊猫烧香 链接:http://www.pythonheidong.com/blog/article/63/ 来源:python黑洞网,专注 ...

  5. (转)微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(采用 Baidu Eclipse)

    原文传送门(http://blog.csdn.net/bingtianxuelong/article/details/17843111) 版本说明:     V1:         2014-2-13 ...

  6. C#开发之基于NPOI的操作Excel开发体验

    最近遇到一个数据导入的需求,语言是.net framework 4.7的C#.但是,这次主要探讨NPOI的体验,原则就是向前兼容.所以采用.xls的支持.网上的资料,我稍微整合了一些. #1 单元格下 ...

  7. 微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(MyEclipse + SVN)

    等待加载完成后,在"Personal Sites" 栏目中会显示你加载的SVN的相关内容,展开"SVN"分别选择"Core SVNKit Librar ...

  8. 微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(采用 Baidu Eclipse)

    3.通过 SVN 检入工程     在 bae 上的应用添加部署成功后,如图 7     点击“点击查看”按钮,会打开一个新页面,页面上会打印 “hello world” ,这是因为我们的应用包含有示 ...

  9. Android 项目优化(七):阿里巴巴Android开发手册整理总结

    本来之前觉得Android项目优化系列的文章基本整理完毕了,但是近期看了一下<阿里Android开发手册>有了很多收获,想再整理一篇,下面就开始吧. 先在这里列一下之前整理的文章及链接: ...

  10. CH02基于ZYNQ的嵌入式LINUX移植

    CH02基于ZYNQ的嵌入式LINUX移植 1.1概述 实验环境: Windows 10 专业版 Vmware workstation 14.1.1 Ubuntu 16.04.3 Xilinx SDx ...

随机推荐

  1. Dinky实时计算平台

    前言:Apache Flink 作为新一代的实时计算框架已经被应用到各个行业与领域,其岂存在着应用的痛点比如 FlinkSQL 在线IDE.作业提交不友好.作业无监控报警等.很大程度上说,FlinkS ...

  2. 入门Semantic Kernel:OneApi集成与HelloWorld

    引言 从这一章节开始正式进入我们的 Semantic Kernel 的学习之旅了. 什么是Semantic Kernel? Semantic Kernel是一个轻量级的开源框架,通过 Semantic ...

  3. Aliplayer通过HLS流式播放Aliyun Mps(媒体处理)转码的加密视频

    前言 公司需求,上传的视频需要加上公司Logo,同时播放需要采用流式播放禁止下载. 现有的环境在阿里云上,所以自然想到了阿里云的产品[媒体处理]的转码功能. 转码配置 配置比较简单,采用阿里云HLS标 ...

  4. PageOffice 在线打开 word 文件实现痕迹保留、键盘批注、手写批注

    一.痕迹保留 Word中的痕迹一般指的是审阅文档的用户对文档所做的修改(插入和删除)操作.在PageOffice的强制留痕模式下,用户对文档所做的任何修改都会以痕迹的形式保留下来,不同用户对文档做的修 ...

  5. Vue3:Cannot read properties of null (reading 'isCE')

    Cannot read properties of null (reading 'isCE')   这个问题是在vue3中引入elementui的列表框时出现的.经过网上查询,有说是装了两个vue版本 ...

  6. c语言在Linux中的使用

    gcc版本升级 如何验证gcc正常使用,编译c以及运行 过程 要验证GCC(GNU Compiler Collection)是否正常使用,您可以按照以下步骤进行操作: 检查GCC是否安装:打开终端或命 ...

  7. Swoole 源码分析之 TCP Server 模块

    首发原文链接:https://mp.weixin.qq.com/s/KxgxseLEz84wxUPjzSUd3w 大家好,我是码农先森. 今天我们来分析 TCP Server 模块 的实现原理,下面这 ...

  8. 阿里巴巴 MySQL 数据库之建表规约(一)

    建表规约 强制部分 [强制] 表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint (1 表示是,0 表示否). 说明:任何字段如果为非负数,必须是 ...

  9. winfrom 程序自己删除自己

    [DllImport("kernel32.dll")] public static extern uint WinExec(string lpCmdLine, uint uCmdS ...

  10. 8.14考试总结(NOIP模拟39)[打地鼠·竞赛图·糖果·树]

    一举一动,都是承诺,会被另一个人看在眼里,记在心上的. T1 打地鼠 解题思路 数据范围比较小,不需要什么优化. 直接二维前缀和枚举右下角端点就好了. code #include<bits/st ...