对于一个或者部分在FPGA上设计实现的应用,设计实现之前应该从以下一个方面着手:
-
Scale/limitation
- 做设计之前,首先要考虑解决问题的规模以及它的限制,针对性设计,规模不一样的问题,可能设计方案完全不同。 -
Throughput
- 对外读写数据的速率,比如xilinx的U200,CPU和FPGA读写DDR。都存在最大的数据吞吐量,那么设计上必然不能超过这个门限。
- 内部单个计算单元最大的throughput,一共能放置多少个PU,这样也存在一个门限。木桶原理取决于最短的。 -
Frequency
- 频率主要取决于设计,由于资源的分布是固定的,算法实现需要用到资源以及通过布线实现信号传输,所以逻辑复杂度和资源布线的连线复杂度都会影响频率。一般而言资源利用率越高会导致布线越困难,导致频率越低,另外一些计算密集的单元,对延时要求越短,频率越低,还有就是资源的复用程度越高也会导致布线越困难,从而使频率越低。 -
Resource
- 资源就很明显,一个算法实现,需要多少储存、计算资源,直接与芯片选项相关。