Xilinx HLS
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的更多相关文章
- 利用Xilinx HLS实现LDPC译码器
1. 概述 采用Xilinx HLS快速实现的部分并行,全流水的LDPC译码器. 环境:Vivado HLS 2018.2 码字:IEEE 802.16e 2/3A 算法:Min-Sum Algori ...
- 高层次综合(HLS)-简介
本文是我近段时间的学习总结,主要参考了Xilinx的技术文档以及部分网上其他资料.文档主要包括ug998<Introduction to FPGA Design Using High-Level ...
- HLS图像处理系列——肤色检測
本博文採用Xilinx HLS 2014.4工具.实现一个肤色检測的模块.当中,本文重点是构建HLS图像处理函数. 新建HLSproject的步骤,本博文不再详述. 本project新建之后,仅仅加入 ...
- 动手写一个简单版的谷歌TPU
谷歌TPU是一个设计良好的矩阵计算加速单元,可以很好的加速神经网络的计算.本系列文章将利用公开的TPU V1(后简称TPU)相关资料,对其进行一定的简化.推测和修改,来实际编写一个简单版本的谷歌TPU ...
- Simple TPU的设计和性能评估
深度学习飞速发展过程中,人们发现原有的处理器无法满足神经网络这种特定的大量计算,大量的开始针对这一应用进行专用的硬件设计.谷歌的张量处理单元(Tensor Processing Unit,后文简称TP ...
- 基于Vivado HLS在zedboard中的Sobel滤波算法实现
基于Vivado HLS在zedboard中的Sobel滤波算法实现 平台:zedboard + Webcam 工具:g++4.6 + VIVADO HLS + XILINX EDK + ...
- HLS入门收集(1)
使用HLS各种问题 关于求指数函数 exp(x) 在HLS中使用exp(x),也就是指数函数.不能导出RTL到EDK也就是Pcore 只能导出为VIVADO IP:相关解释:见官方论坛 http:/ ...
- Vivado HLS与System Generator:联系与区别
在很多年以前的ISE套件里面,有个功能强大的AccelDSP,它可以可自动地进行浮点到定点转换,并把算法生成可综合的HDL,还可以创建用于验证的测试平台,但是在4年前左右的时候销声匿迹了,当时的说法是 ...
- Xilinx 网站资源导
Xilinx 网站资源导读 ———版权声明———–本文作者 Ricky Suwww.fpganotes.comrickysu.fpga@gmail.com 欢迎转载,转载请保持原样及署名商业使用须得到 ...
随机推荐
- 启动vmware中的虚拟机的时候,提示Failed to lock the file
http://www.vixual.net/blog/archives/842 VMware Server 當掉後重新啟動 Guest OS 時,出現 cannot open the disk '*. ...
- YTU 2419: C语言习题 等长字符串排序
2419: C语言习题 等长字符串排序 时间限制: 1 Sec 内存限制: 128 MB 提交: 650 解决: 249 题目描述 在主函数中输入n(n<=10)个等长的字符串.用另一函数对 ...
- 重入锁ReentrantLock用法以及如何实现重进入
在java多线程中,可以使用synchronized实现线程之间的同步互斥,但在jdk1.5中增加了ReentrantLock类也能达到同样的效果,而且在使用上更加灵活,扩展功能上更加强大. 创建My ...
- close() was never explicitly called on database
在用SQLiteDatabase的时候如果碰到说database或者cursor没有关闭,可以在使用完之后加上: if (!cursor.isClosed()) { cursor.close(); } ...
- MFC之document与view实践总结
Document/View是MFC的基石,负责程序数据的管理和显示,Doculent和Viewd的关系有一档一视,一档多视和多档多视,下面将分别对实现过程中的重点知识进行总结. 1. 视图的同步更新 ...
- 【扬中集训 DAY4T3】holiday
[题目链接] 点击打开链接 [算法] 建C棵线段树即可,注意要用前缀和优化 [代码] 这是标程 #include <bits/stdc++.h> using namespace std; ...
- 关于spring boot打出的jar包在Linux中运行
众所周知, spring boot打出的jar包可以通过 "java -jar xxx.jar"的方式来运行 但是在Linux中, 通过这个命令运行的话会占用该窗口, 当我们 Ct ...
- POJ 1737 经典DP
问题:求含有n个点的连通图的个数. 解: 考虑DP,$f(n)$表示n个点,每个点都和点1相连,且n个点互相连通的图的个数. (蓝字非常重要,这个条件有效地避免了重复计算) $g(n)$表示n个点,每 ...
- Vue Router的配置
1.beforeEnter function requireAuth (route, redirect, next) { if (!auth.loggedIn()) { redirect({ path ...
- Java 8的Lambda学习
参考资料:https://www.dotnetperls.com/lambda-java Lambdas用于创建函数对象.通过它们,我们可以在其它方法内部指定方法,甚至可以把方法做为参数传递给其它方法 ...