英语水平太差真是个硬伤,每次看xilinx的文档简直就是地狱一样,以前总能找到一些大神的博客来解救,但现在开始学习HLS几乎没有什么中文资料,只能啃着英文的,效率不得不说是太低了,特别是一些优化功能啥的,就算每个单词会了但还是不明白整体的意思,希望多看几份文档会好一些吧QAQ~为了放止自己忘记学过的东西,所以这里写点日记备忘一下哈哈。
学习HLS主要看的是ug871和ug902两个文档,好吧一个200+页一个600+页,不一边实践一边看我估计是撑不下去的了。
简单看了一下两个文档,惯例先自己写个简单的程序熟悉一下过程。
这里写一个简单的两个数组相加的程序,转换成逻辑就是将两个ram或rom中的数据相加存入另一个ram中。
新建工程,添加add.cpp,add_tb.cpp,整个结构和vivado中写testbench差不多,不过只是将hdl语言换成了c语言了而已,虽然功能部分c语言部分感觉很抽象,但testbench用c语言写感觉挺符合逻辑的,verilog中的initial语句这种串行执行的方式本来就像是c语言的风格。
工程:
代码:add.cpp
#include "add.h"
void add_arary(data_t src1[16],data_t src2[16],data_t dst[16])