嵌入式硬件开发学习教程XilinxV

北京中科医院是骗子 http://www.xxzywj.com/m/

前言

本文主要介绍HLS案例的使用说明,适用开发环境:Windows7/bit、XilinxVivado.4、XilinxVivadoHLS.4、XilinxSDK.4。

XilinxVivadoHLS(High-LevelSynthesis,高层次综合)工具支持将C、C++等语言转化成硬件描述语言,同时支持基于OpenCL等框架对Xilinx可编程逻辑器件进行开发,可加速算法开发的进程,缩短产品上市时间。

本次案例用到的是创龙科技的TLZ7x-EasyEVM-S开发板,它是一款基于XilinxZynq-系列XC7Z/XC7Z高性能低功耗处理器设计的异构多核SoC评估板,处理器集成PS端双核ARMCortex-A9+PL端Artix-7架构28nm可编程逻辑资源,评估板由核心板和评估底板组成。核心板经过专业的PCBLayout和高低温测试验证,稳定可靠,可满足各种工业应用环境。

TLZ7x-EasyEVM-S评估板

TLZ7x-EasyEVM-S评估板评估板接口资源丰富,引出千兆网口、双路CAMERA、USB、MicroSD、CAN、UART等接口,支持LCD显示拓展及Qt图形界面开发,方便快速进行产品方案评估与技术预研。

led_flash案例

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

HLS工程说明

时钟

HLS工程配置的时钟为MHz,案例将该时钟用于计算0.5s间隔时间进行LED2亮灭状态控制,生成的IP核亦需接入该时钟。如需修改时钟频率,请打开HLS工程后点击,在弹出的界面中的Synthesis栏目进行修改。

图26

顶层函数

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

图27

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

图28

该函数控制评估底板LED2每隔0.5s将状态翻转一次。工程设置的时钟为MHz(周期10ns),在for循环里计数值为000000,用时为10nsx000000=1s。

编译与仿真

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

图29

继续点击后进入for循环,当i时,*led_o等于1(true)。

图31

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

图32

IP核测试

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

HLS工程生成的IP核为led_flash_0。

图33

加载PL端.bit格式可执行文件,即可看到评估底板的LED2进行闪烁。

key_led_demo案例

案例功能:通过按键KEY2控制评估底板的LED2状态。

HLS工程说明

时钟

HLS工程配置的时钟为MHz。案例通过按键KEY2控制评估底板的LED2状态,实际没有使用该时钟。如需修改时钟频率,请打开HLS工程后点击

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

图34

顶层函数

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

图35

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

图36

按键所对应的IO默认是上拉、高电平。按下按键时,key_i为0;松开按键时,key_i为1。

普通标量类型参数对应IP核的输入接口,如key_i作为输入。指针类型参数可作为输入输出,如*led_o作为输出。

图37

编译与仿真

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

图38

修改key_i的值为1,并继续点击进行单步运行。

图39

此时可看到led_o的值为0。

图40

IP核测试

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

HLS工程生成的IP核为key_led_demo_0。

图41

加载PL端.bit格式可执行文件,按下KEY2则LED2点亮,松开KEY2则LED2熄灭。




转载请注明:http://www.aierlanlan.com/rzfs/5135.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了