高层次综合hls设计第一章
- 高层次综合
- 高层次综合的优势
Xilinx的VIVADO HLS高层次综合工具,其设计是将C语言转换为RTL寄存器传输级实现,从而在FPGA实现算法功能,但是需要注意的是,这里的C语言设计和传统单片机或者ARM或者PC上的C语言设计是有本质区别的,这里的C语言设计本身要遵守C语言设计规范,同时也要符合硬件设计特性,也就是说C语言编写的代码是能够有硬件资源映射出来的,你写C代码是具有电路或者电路组件的严格物理意义的,你写的C语言,到底是代替寄存器reg,还是wire连线,还是mux多路复用,还是swith选择,是作为FIFO还是作为RAM,接口封装是封装为普通的IO端口,还是FIFO接口,或者RAM接口,或者stream接口,lite接口,还是memory接口。
代码设计总体分为三个子集,C语言设计方式,C++设计方式,以及SystemC设计方式,其中C/C++设计归为一类,SystemC设计单独分为一类。这么分类的原因是C/C++设计只能设计同步逻辑,对异步逻辑设计是无能为力的;SystemC是可以设计异步逻辑的,多时钟设计逻辑也是使用SystemC来进行设计的。
基于FPGA平台设计C语言,是充分利用FPGA可以充分利用大规模并行处理架构,性能,成本和功耗比传统处理器更胜一筹。
高层次综合设计的专门文档为UG998.
高层次综合作为一个桥梁,连接了硬件设计和软件设计,将传统的两个门类进行了打通,从而提高了设计效率。设计效率的提高表现在:
- 提高了硬件任意的设计和工作效率,主要体现在,你不用利用verilog或者VHDL来对算法原理进行描述实现,而是从更高维度来进行算法的设计和实现。
- 在充分利用硬件性能的同时,硬件设计任意在比较高层次进行设计工作,减少了工作量缩短了设计周期
- 为软件设计任意提升了系统性能,软件人员直接转硬件设计需要时间和周期,高层次设计让软件设计人员也不需要太精通硬件设计的情况也,能够快速的入门算法硬件加速设计
- 软件人员即使不懂FPGA开发,也可以着手FPGA算法移植工作。
- 通过高级综合工具,你可以基于C语言进行FPGA平台的算法开发
- 开发时间大大降低
- C语言平台可以进行仿真验证
- 通过指令集优化指令来控制C语言综合进程
- 复杂算法实现