论文部分内容阅读
在电磁计算方法中,FDTD(Finite-Difference Time-Domain)即时域有限差分算法被广泛使用。FDTD实际是在空间域内对电场值和磁场值进行交替计算,而在时间域上对FDTD算法公式进行迭代更新的一种计算方法。但FDTD仿真效率低的问题一直是限制其在电磁计算应用中的主要瓶颈。对于提升FDTD的计算速度,人们已尝试通过各种方法,例如大型工作站、并行计算网络、或使用C++以及OpenGL在GPU上编写FDTD算法等等,但是仍然无法满足某些电磁工程问题对FDTD提出高效计算的要求。因此,研究如何缩短FDTD计算的时间具有重大实践意义。本文以FDTD的硬件计算为背景,首先介绍了FDTD硬件加速系统的基本结构,其次介绍了加速FDTD计算的各种方法,例如采用流水线和并行计算的方式、在HPC系统平台上构建FDTD的模型空间等等。然后介绍了我们在Altera Cyclone II的FPGA(EP2C35F672C6)上实现的二维FDTD算法。本设计中的FDTD算法模块由计算单元、存储单元以及控制单元组成。其中计算单元通过调用Altera公司的LPM加减器、LPM乘法器来实现,主要完成三个FDTD公式的计算和更新;存储单元是由FPGA内嵌的Block RAM搭建,主要用于存储FDTD计算网格中的电场值和磁场值;而控制单元主要完成FDTD计算过程中各个单元电路状态之间的转换以及存储单元读写地址的控制等等。通过Verilog HDL在FPGA目标板上将该FDTD算法模块设计出来。作为一个完整的FDTD计算系统,FDTD算法模块与系统主机之间的数据传输设计也是必不可少的。本文选择基于USB接口的数据传输方式,其接口芯片采用Cypress公司的CY7C68013A。在CY7C68013A的Slave FIFO模式下完成系统主机与FDTD算法模块之间的双向数据通信。此外还在VC++6.0中开发了本计算系统的软件部分,包括其USB固件程序、USB驱动程序以及主机用户程序。在系统主机上,由用户在软件界面中将FDTD算法的激励源数据、时间步数和启动命令通过USB接口发送到FDTD算法模块中,FDTD算法模块会将计算结果写入异步FIFO中。然后主机用户程序通过USB接口读取异步FIFO中的数据,获得计算结果。最后对本系统进行了实验测试,发现计算结果与软件仿真几乎完全一致,FPGA的最高工作频率可达106.26MHz,USB数据的传输速率可达16Mbyte/s。