2 确定资源
在接下来的设计中,需要对每个处理部分的时钟周期计数。通常,每个时钟周期可以完成二到三个运算,然后确定所需的FPGA资源以适应代码。可以在多个FPGA中分段运行代码来获得更高的计算能力。这些解决方案的拓展非常容易,只要使用所需的多个FPGA(最多5个),系统将自动检测它们。在该例子中,设计是基于处理块的。这些块按顺序被发送给每个FPGA,或者从每个FPGA收集起来(其逻辑是代码的一部分)。一个FPGA的加速比例可以达到37:1,而10个FPGA(每两个电路板上有5个)可以达到370:1。对设计进行编码相对简单,因为设计主要由C语言完成,除了一些需要特殊Handel-C指令的新功能。这些新指令包括:增强位操作、并行处理、宏操作和公式、任意宽度的变量、FPGA存储器接口、RAM和ROM类型、信号(代表硬件中的信号线)以及通道(在代码并行分支或时钟域之间通信)。工具条中的“代码转换”可以完成C和Handel-C的样本转换。
3 对环境的仿真
再下一步是建立仿真环境,并在其中测试和优化硬件代码。仿真环境提供了完整的bit-true/cycle-true仿真,并对FPGA的实现进行可靠的模拟。利用设计输出与C软件仿真输出的比较来测试精度,同样也可得到FPGA处理器上真实运行速度的报告。通常,进行结构块仿真有助于找到设计中的问题,因为这些块在重组后可以确定总体的运行效果。可在仿真过程中做进一步的调整,如利用流水线在每个时钟周期内进行单输入单输出的测试,或将处理过程细分到更多的并行数据流中直到FPGA的资源利用率达到100%。此外,在硬件编译时也能发现算法的最慢点并对其优化,在FPGA甚至板子之间分割算法还可以获得额外的速度。利用软件,进一步调整可获得更好的性能。然而,精确调整带来的性能增益却会下降。通过简单的增加FPGA非常具有成本效益。并不需要使设计完美化,因为基于这些结果的设计可以在任何时候进行快速的仿真和优化。一旦仿真完成,就可以将设计编译到硬件里并激活数据流管理(DSM),以便将数据流送到FPGA处理器板而不是仿真器中。
访问TI网站,获取最新技术信息全面了解德州仪器(TI)的处理器电源参考设计:交叉参考搜索、应用手册、工具和软件、方框图参考设计、模拟eLAB。