前言
实验室项目需要,需要将在服务器段跑出的网络参数配置到FPGA上,一种方法是直接利用verilog或者vhdl直接去写一个网络的前向传播模型,另一种就是用 C/C++ 来描述网络的前向传播模型,然后利用Vivado的HLS将其转化为硬件描述语言——verilog或者vhdl。第一种方法资源利用率高,但需要考虑时序和并行性(硬件语言设计的两个重要因素),这一点比较困难;第二种方法相对高效且容易一点;作为一个新手,本着先将流程跑通的想法,我选择了第二种方法作为首次尝试的方法,通过高亚军老师的视频课来学习的,附上链接:https://www.bilibili.com/video/av41246874
先来谈谈CPU、GPU、DSP、FPGA之间的区别:https://blog.csdn.net/Qiuoooooo/article/details/81779583
对于一个软件工程师,应该掌握的程度:
- FPGA内部每个单元的功能;
- 具体的算法操作和每个单元之间的对应关系;
- 算法模型中资源的利用率;
- 算法模型的优化方法;
总结起来就一句话“怎样能使得我们用C/C++转化成的HDL代码可以高效运行?”