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.