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