关注分享主机优惠活动
国内外VPS云服务器

基于Zynq-7000系列的硬件开发学习课程——Xilinx Vivado HLS案例(二)

摘要:case case函数控制评估底板会每隔一段时间翻转一次状态。工程描述时钟工程中配置的时钟是,在案例中用来计算开关量状态控制的间隔时间,生成的内核也需要连接时钟。图顶层函数情况顶层函数在。因为默认值为,所以的值为。

前言本文主要介绍HLS用例的使用,适用于开发环境:Windows 7/10 64bit,Xilinx Vivado 2017.4,Xilinx Vivado HLS 2017.4,Xilinx SDK 2017.4。

Xilinx Viva DOHLS(高-级综合)工具支持C、C++等语言到硬件描述语言的转换,也支持基于OpenCL等框架的Xilinx可编程逻辑器件的开发,可以加快算法开发的进程,缩短上市时间。

本案例使用的是创龙科技的TLZ7x-EasyEVM-S开发板,这是一款基于Xilinx Zynq-7000系列XC7Z010/XC7Z020高性能低功耗处理器的异构多核SoC评估板。处理器集成PS端双核ARM Cortex-A9+PL端Artix-7架构,28nm可编程逻辑资源,评估板由核心板和评估背板组成。核心板经过专业PCB布局和高低温测试验证,稳定可靠,可满足各种工业应用环境。

TLZ7x-EasyEVM-S评估板

TLZ7x-EasyEVM-S评估板接口资源丰富,可引出千兆网口、双通道摄像头、USB、Micro SD、CAN、UART等接口,支持LCD显示扩展和Qt图形界面开发,方便产品方案快速评估和技术预研。

Led_flash Case Case功能:控制评估背板的LED2每0.5s翻转一次状态

HLS项目显示,HLS项目中配置的时钟为100MHz。在这种情况下,时钟用于计算LED2开关状态控制的0.5s间隔,生成的IP核也需要连接到时钟。如果需要修改时钟频率,请打开HLS项目并点击,在弹出的界面中的合成栏中进行修改。

图26

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

图27

点击后,可以在弹出的界面中查看或设置合成栏中的顶层功能。

图28

该功能控制评估背板LED2每0.5s翻转一次状态,项目中设置的时钟为100MHz(周期为10ns),for循环中的计数值为10000000,所用时间为10ns x 100000000 = 1s。

关于编译和仿真,请参考本文档中的HLS开发流程描述部分进行编译。编译完成后,进入仿真界面,点击一步运行,进入led_flash()函数。

图29

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

图31

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

图32

IP核测试请参考本文档的HLS开发流程描述部分,完成IP核测试前的准备工作。

HLS项目生成的IP核是led_flash_0。

图33

将PL端可执行文件加载到。位格式,您可以看到评估背板的LED2在闪烁。

Key_led_demo case功能:通过按键2控制和评估背板的LED2状态。

HLS项目显示,HLS项目配置的时钟为100MHz。在这种情况下,背板的LED2状态通过控制KEY2来评估,但实际上并未使用时钟。如果需要修改时钟频率,请打开HLS项目并点击。

,在弹出的界面合成栏中进行修改。

图34

顶层函数案例顶层函数是key_led_demo.cpp中的key _ led _ demo()。

图35

点击后,可以在弹出的界面中查看或设置合成栏中的顶层功能。

图36

默认情况下,该键对应的IO为上拉高电平。按键时,key_i为0;释放该键时,key_i为1。

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

图37

关于编译和仿真,请参考本文档中的HLS开发流程描述部分进行编译。编译后进入仿真界面,点击一步运行,可以看到控制台窗口打印的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端可执行文件加载到。位格式,按下键2打开LED2,松开键2关闭led 2。

未经允许不得转载:主机频道 » 基于Zynq-7000系列的硬件开发学习课程——Xilinx Vivado HLS案例(二)

评论 抢沙发

评论前必须登录!