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.