Xilinx 的高层次综合(High Level Synthesis, HLS)技术是将C/C++/SystemC软件语言转换成Verilog或VHDL硬件描述语言的技术。现已应用在SDAccel,SDSOC等工具中,使得软件工程师不要了解FPGA,也可以用FPGA来实现硬件加速。Xilinx 的HLS技术是收购了AutoESL或得的。HSL能够快速生成可实现硬件算法加速器所需要的HDL代码,而且提供完整的AXI接口,能直接插入Zynq SOC的PL。

HLS是Xilinx公司推出的最新一代FPGA设计工具。高级综合工具的核心是调度(Schedule)和绑定(binding)或分配(allocation)。调度用来确定操作将发生在哪个时钟周期。一方面,调度考虑控制、数据流和用户指令;另一方面,分配所约束的资源。绑定用于确定每个操作所使用的库单元。绑定考虑了元件的延迟和用户的命令。HLS主要有以下功能:

(1) 从C语言到RTL级实现。关键在于综合约束。

(2) 从C语言中提取出控制和数据流。

(3) 从默认和用户定义的命令,实现设计。

设计中C代码关键属性

(1) 函数,所有的代码由函数组成。函数用于表示设计的层次,这对于硬件也是一样的。

(2) 参数,顶层函数的参数决定了硬件RTL的端口。

(3) 数组,默认地数组用RAM实现(或FIFO)。

注:对应地Altera的高层次综合技术推是SDK for openCL。

参考文献:

[1] 何宾. Xilinx FPGA 权威设计指南——Vivado 2014集成开发环境. 电子工业出版社.

[2] 孟宪元,陈彰林等. Xilinx新一代FPGA设计套件Vivado应用指南. 清华大学出版社.

[3] Xilinx的HLS出来后,verilog语言会被淘汰吗? http://bbs.eetop.cn/thread-465087-1-1.html. 2015-10-22.

Xilinx HLS的更多相关文章

  1. 利用Xilinx HLS实现LDPC译码器

    1. 概述 采用Xilinx HLS快速实现的部分并行,全流水的LDPC译码器. 环境:Vivado HLS 2018.2 码字:IEEE 802.16e 2/3A 算法:Min-Sum Algori ...

  2. 高层次综合(HLS)-简介

    本文是我近段时间的学习总结,主要参考了Xilinx的技术文档以及部分网上其他资料.文档主要包括ug998<Introduction to FPGA Design Using High-Level ...

  3. HLS图像处理系列——肤色检測

    本博文採用Xilinx HLS 2014.4工具.实现一个肤色检測的模块.当中,本文重点是构建HLS图像处理函数. 新建HLSproject的步骤,本博文不再详述. 本project新建之后,仅仅加入 ...

  4. 动手写一个简单版的谷歌TPU

    谷歌TPU是一个设计良好的矩阵计算加速单元,可以很好的加速神经网络的计算.本系列文章将利用公开的TPU V1(后简称TPU)相关资料,对其进行一定的简化.推测和修改,来实际编写一个简单版本的谷歌TPU ...

  5. Simple TPU的设计和性能评估

    深度学习飞速发展过程中,人们发现原有的处理器无法满足神经网络这种特定的大量计算,大量的开始针对这一应用进行专用的硬件设计.谷歌的张量处理单元(Tensor Processing Unit,后文简称TP ...

  6. 基于Vivado HLS在zedboard中的Sobel滤波算法实现

     基于Vivado HLS在zedboard中的Sobel滤波算法实现 平台:zedboard  + Webcam 工具:g++4.6  + VIVADO HLS  + XILINX EDK + ...

  7. HLS入门收集(1)

    使用HLS各种问题 关于求指数函数 exp(x) 在HLS中使用exp(x),也就是指数函数.不能导出RTL到EDK也就是Pcore  只能导出为VIVADO IP:相关解释:见官方论坛 http:/ ...

  8. Vivado HLS与System Generator:联系与区别

    在很多年以前的ISE套件里面,有个功能强大的AccelDSP,它可以可自动地进行浮点到定点转换,并把算法生成可综合的HDL,还可以创建用于验证的测试平台,但是在4年前左右的时候销声匿迹了,当时的说法是 ...

  9. Xilinx 网站资源导

    Xilinx 网站资源导读 ———版权声明———–本文作者 Ricky Suwww.fpganotes.comrickysu.fpga@gmail.com 欢迎转载,转载请保持原样及署名商业使用须得到 ...

随机推荐

  1. 百度地图API应用之获取用户的具体位置

    功能的大概:用户通过点击地图上面的位置,在地图上面进行描点,然后再把获取的到的地理位置保存到地图上面的地址栏目中. 主要是百度地图API的使用 .代码如下: var map = new BMap.Ma ...

  2. UILabel 常见问题总结

    写在前面:笔者在iOS软件开发中发现UILabel控件有些问题反复出现,所以在这里做点总结,方便自己查阅,也能给大家提供相关问题的解决方案. 一:当label里的内容显示满了的时候,能够自动将字体变小 ...

  3. Git如何删除自己创建的项目

    版本管理器第二行最右边,找到倒三角,下面的Edit Project,拖动鼠标到最下面,Remove project ,弹出框Confirmation required里面输入项目名字,如项目名字为“w ...

  4. CodeBlocks+Qt(MinGW)配置

    1.安装CodeBlocks 官网:http://www.codeblocks.org/ 下载地址:http://www.codeblocks.org/downloads/26 有以下两种选择 cod ...

  5. ML一些零散记录

    朴素贝叶斯的假定条件:变量独立同分布 一般情况下,越复杂的系统,过拟合的可能性就越高,一般模型相对简单的话泛化能力会更好一点,增加隐层数可以降低网络误差(也有文献认为不一定能有效降低),提高精度,但也 ...

  6. 【旧文章搬运】Idle进程相关的一些东西

    原文发表于百度空间,2009-05-13========================================================================== Idle进 ...

  7. Java中的Cloneable接口与深拷贝、浅拷贝

    Cloneable接口是一个标记接口,也就是没有任何内容,定义如下: 这里分析一下这个接口的用法,clone方法是在Object种定义的,而且是protected型的,只有实现了这个接口,才可以在该类 ...

  8. ubuntu的NAT方式上网配置

    vm菜单栏虚拟机--->设置---->网络适配器---->勾选NAT方式 vi /etc/network/interfaces修改配置文件如下: auto loiface lo in ...

  9. Oracle UNDO Tablespace size & Table Size

    Table Space Query select SEGMENT_NAME,bytes/1024/1024,a.* from dba_segments a UNDO Table Space Size ...

  10. 洛谷 - P1118 - 数字三角形 - next_permutation

    https://www.luogu.org/problemnew/show/P1118 next_permutation的第二个参数是最后一个元素的下一个元素,sort也是一样!有毒!这么低级的错误. ...