使用MATLAB辅助FPGA设计有三种方式。第一种方式是由MATLAB仿真、设计出来的系统参数直接在FPGA设计中实现,如在FIR滤波器设计过程中,由MATLAB设计出用户所需性能的滤波器系统参数,可在FPGA设计中直接使用,作为滤波器参数。
在FPGA设计过程中,目前的仿真调试工具只能提供仿真测试数据的时域波形,无法显示数据的频谱等特性,在对数据进行分析、处理时不够方便。例如,在设计数字滤波器时,在FPGA开发环境中很难直观、准确地判断滤波器的频率响应特性,在编写仿真测试激励文件时,依靠Verilog HDL语言也很难产生用户所需要的具有任意信噪比的输入信号。这些问题给数字信号处理技术的FPGA设计与实现带来了不小的困难。但是,FPGA开发环境中无法解决的复杂信号产生、处理、分析的问题,在MATLAB中却很容易实现。因此,只要能在FPGA开发环境与MATLAB之间搭建起可以相互交换数据的通道,就可有效解决FPGA设计中所遇到的难题。第二种方式用于仿真测试过程中,即由MATLAB仿真产生出所需特性的测试数据并存放在数据文件中,由FPGA仿真软件读取测试数据作为输入数据源,由FPGA仿真软件将仿真出的结果数据存放在另一数据文件中,MATLAB再读取仿真后的数据,并对数据进行分析,以此判断FPGA程序是否满足设计需求。
第三种方式是由MATLAB设计出相应的数字信号处理系统,并在MATLAB中直接将代码转换成Verilog HDL或VHDL语言代码,在Vivado等开发环境中直接嵌入这些代码即可。
前两种方式最为常用,其中第一种方式为本书采用的设计方式;读者可参考《Xilinx FPGA数字信号处理设计——基础版》了解第二种设计方式。第三种方式近年来应用也较为广泛,这种方式可以在用户完全不熟悉FPGA硬件编程的情况下完成FPGA设计,但这种方式在一些系统时钟较为复杂或对时序要求较为严格的场合下不易满足需求。