首页 > 其他分享 >嵌入式HLS 案例开发手册——基于Zynq-7010/20工业开发板(2)

嵌入式HLS 案例开发手册——基于Zynq-7010/20工业开发板(2)

时间:2023-01-02 15:45:49浏览次数:45  
标签:LED2 led IP HLS 案例 Zynq key 20

目 录

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 熄灭。

 

标签:LED2,led,IP,HLS,案例,Zynq,key,20
From: https://www.cnblogs.com/Tronlong818/p/17019986.html

相关文章

  • 话说会火到2019年的句子
    1.一见钟情,钟的不是情,是脸。。。2.一场戏,累坏了小丑,笑坏了观众。。。3.是不是帅哥,剪个平头就知道了。是不是美女,卸了妆就知道了。。4.我要嫁的不是王子,而是把我......
  • Kusto 2023 快速入门 开篇 —— 启发式和探索式的大数据分析工具
    陈希章2023年1月2日于上海这是一个献给自己的新年礼物,但其实已经构思了很久,这一方面跟我多年的工作经历有关——我的职业生涯中最为有意思的部分可能就是跟数据打......
  • 20、前端基础-ES6---模块化
    ......
  • SQL Server 2012/2016/2017 新增函数
    /**************************************************************SQLServer2012新增的函数***************************************************************/ ......
  • foreach-2023-1-2
    for循环条件语句中的这个(intnum:nums)是什么意思?foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。foreach语句是for语句的特殊简......
  • Calendar 类的应用-2023-1-2
    Date类最主要的作用就是获得当前时间,同时这个类里面也具有设置时间以及一些其他的功能,但是由于本身设计的问题,这些方法却遭到众多批评,不建议使用,更推荐使用Calendar类进......
  • 2022年终总结
    波澜不惊的2022上半年在学校准备毕设相关的内容,以及参加春招找工作,因为个人不想当北漂,加上父母在成都的原因,所以目标定在成都,具体的面经可以看安全岗春招面经总结,最后选择......
  • Java 中基本类型和字符串之间的转换-2023-1-2
    在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换。其中,基本类型转换为字符串有三种方法:1.使用包装类的toString()方法2.使用String类的valueOf()......
  • StringBuilder-2023-1-2
    在Java中,除了可以使用String类来存储字符串,还可以使用StringBuilder类或StringBuffer类存储字符串,那么它们之间有什么区别呢?String类具有是不可变性。如运行结果......
  • 精华总结 |「跨越疫情之境,迈向新的征程」盘点一下2022年度我们开发团队对于云原生的技
    世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。「新的挑战已开启,回顾2022年最开心的两件事」一转眼,2022年就这么悄无声息的过去了,对......