极客对Xilinx Vivado HLS工具使用经验和心得

众所周知 hackaday.com 网站上聚集着众多极客(geeker),他们打破传统,标新立异,敢于尝试新的东西,今天这篇文章搜集了这些极客对xilinx vivado hls工具使用经验和心得。
xilinx vivado hls是一个高级综合工具,能够将 c 语言转换成硬件描述语言(hdl),也就是说我们可以用 c 语言来实现 hdl 模块编程了。
图1 vivado hls工作流程
第一位 hacker是来自新西兰的 mike field,他是一个硬件hacker,还建立了自己的网站( www.hamsterworks.com ),他详细总结了vivado hls的使用步骤,他认为这个很有趣,值得每个人去尝试,vivado hls是一个ide开发环境,开发人员编写c工程代码,测试代码,然后利用hls转换为hdl硬件语言逻辑。
图2 xilinx赠送给mike field的microzed开发套件
tips技巧 作者总结如下:
1. hls工具会将c语言代码转换成伪机器代码,都可以用fpga逻辑(乘,加,递增等)来实现。
2. 循环操作代码分析,主要是根据语法。不能够被充分执行的循环会导致吞吐量的瓶颈,如果一个复杂的乘运算要花费30个周期,并且你要执行256次那么延迟时间就会介于30和7680周期之间。然而如果你使用原语指令(#pragma hls_pipeline)将其展开256次,那么实现方式就会变成7680级流水线,每个循环还可以接受新的数据。
3. 函数调用可能会引起分离的逻辑实例,支持子函数的创建,也可能引起一系列仲裁接口用于访问单个函数逻辑实例。
4. 对于这些伪机器代码如何连接会生成一个计划时间表,并且会充分考虑到期望的性能约束条件(时钟速度等)。
5. 然后代码生成器会将伪机器代码映射为hdl逻辑逻辑代码(verilog或vhdl),使用简单的流水线接口来处理参数和和、返回值。其实你还可以添加其它语法或者数据类型来构造axi协议接口的模块。
6. 最后你就可以将转换后的代码或者ip核添加到传统的hdl工程中。
看起来很简单,其实最重要的是最后我们要进行代码优化,排除bug。我们可以定制很多数据类型(n位的整数,或者固定精度的整数等),灵活的使用这些数据类型,可以帮助我们精简逻辑代码,提升系统设计性能。
第二位 hacker是 darren,他直接录制了一个说明视频。介绍了如何利用vivado hls生成fir滤波算法的hdl代码,并将代码添加到ise工程中,经过综合实现布局布线等操作后生成fpga配置文件,下载到fpga开发板中,darren采用的目标板卡是spartan-3 fpga。
图3 基于vivado hls生成fir滤波算法

高性能模拟、混合集成电路设计供应商——XBLW芯伯乐
基于STM32L431设计的云端绿化管理系统
TPMS技术及轮胎定位原理的电路设计
基于CD4017的电子骰子电路
国家电网变压器标准 电力变压器的原理 变电站工作原理
极客对Xilinx Vivado HLS工具使用经验和心得
自充电式电磁流量计的原理及设计
数字万用表的识别与使用图解—零式未来仪器代理课堂
康普携手意法半导体实现安全简便的物联网设备Matter配置
手机电视芯片制造:旧技术里谋商机
电动机选型注意事项
基于Arduino与机智云的家居环境远程系统设计(云平台部署)
AI算法进步神速对人工智能意味着什么
海康威视获得发明专利授权:“一种人体应激性信息识别方法、装置及电子设备
中国电信将持续强化IPTV平台赋能,打造有温度的“智慧乡村”!
马云:未来30年 数据将取代石油,成最强大能源
赛普拉斯推出全球最灵活的单芯片ARM Cortex-M0解决方案
腾讯加码人工智能,让机器“理解”世界
库卡协作机器人iiwa和传统机器人KR内部结构解析
如何使用电路仿真app进行大致仿真