主要内容

运行在现场音频输入音频过滤器使用ZYNQ局

这个例子展示了如何建模一个音频系统,并使用音频参考设计在Zynq®板上实现它。

介绍

在这个例子中,您可以:

  1. 模型一个音频系统与低通,带通和高通滤波器

  2. 实现它使用的音频参考设计ZYNQ板

本例的目标是通过Zedboard或Zybo board的线路输入接收音频输入,在FPGA上进行处理,并将处理后的音频传输给扬声器。上图显示了这样一个系统的高级体系结构。它使用一个音频编解码器接口到外设,并将模拟信号转换为数字信号,反之亦然。音频编解码器ip用于配置音频编解码器,并用于在Zynq Soc和音频编解码器之间传输音频数据。Filter IP用于音频处理。ARM处理器用来控制要使用的滤波器类型,即低通、带通或高通。

在你开始之前

要运行此示例,必须安装并设置以下软件和硬件:

  • 用于Xilinx Z金宝appynq平台的HDL编码器支持包

  • Xilinx Zynq平台的嵌金宝app入式编码器支持包

  • 赛灵思Vivado版本2019.1

  • ZedBoard或Zybo局

要设置Zedboard板,请参阅建立ZYNQ五金工具在节瞄准Xilinx Zynq平台例子。从移动电话或MP3播放器连接音频输入LINE IN杰克和耳机或扬声器HPH出来如下图所示。类似的设置可以在Zybo板上完成。有关Zybo板设置,请参阅准备好泽博冲浪板在节为Zynq工作流定义自定义板和参考设计例子。

介绍

在下面的模型中,音频文件被用作DUT子系统的输入,Audio_filter。在模拟在Simulink这种模式下,处理后的音频效果可以金宝app通过听到音频设备的作家块和频谱分析仪块显示过滤音频输出的声谱图。

modelname ='hdlcoder_audio_filter_biquad';open_system (modelname);

模型低通,带通和高通滤波器系统

滤波器系数可以使用MATLAB®函数或在Simulink®中生成。金宝app在此模型中,使用filterDesigner工具为每种类型的过滤器生成过滤系数。然后将这些滤波系数导出并存储为MATLAB文件。这些系数将用于在Simulink中设计滤波器。金宝app在该模型中,利用Simulink中的离散IIR滤波器块根据相应的滤波器系数分别作为Biquad金宝app低通、带通或高通滤波器。

您可以通过模拟在Simulink模型试验这种模式。金宝app看到的频谱分析仪的频率范围,并通过音频设备作家块听到音频效果应该取决于过滤器的选择的类型。过滤器选择块用于选择滤波要对音频输入进行的类型。

定制ZYNQ板模型

为了在Zedboard上实现这个模型,您必须首先在Vivado中创建一个参考设计,该设计接收Zedboard上的音频输入,并将处理后的音频数据传输出Zedboard。有关如何创建集成音频过滤器模型的参考设计的详细信息,请参阅在ZYNQ局创作了音频系统的参考设计例子。

对于Zybo板,请参阅在ZYBO板上编写音频系统参考设计

在参考设计中,左右声道音频数据被组合在一起形成一个单独的声道。它们被连接起来,这样低24位是左通道,高24位是右通道。在上面的Sim金宝appulink模型中,Data_in被分为两个通道,分别是左通道和右通道。它们的大小除以2,两个通道相加形成一个通道。过滤在这个通道上完成。

Data_inVALID_IN是AXI4-Stream信号。要理解如何使用AXI4-stream接口,请参考型号流算法简化流协议部分开始使用Zynq工作流中的AXI4-Stream接口例子。Data_in包含要处理的音频数据和VALID_IN作为启用信号。每个过滤器映射到Zedboard或Zybo板上的LED,以直观地指示过滤器是开还是关。

FilterSelect输入端通过AXI4 LITE接口控制。

生成HDL IP核与AXI4-流接口

接下来,你就可以开始工作流程HDL Advisor和使用ZYNQ软硬件协同设计工作流程,部署在ZYNQ硬件这样的设计。对于更详细的一步一步的指导,你可以参考瞄准Xilinx Zynq平台例子。

1.在MATLAB命令窗口中使用以下命令设置Xilinx Vivado合成工具路径。运行该命令时,请使用您自己的Vivado安装路径。

hdlsetuptoolpath(“工具名称”“Xilinx Vivado”“刀具路径”'C:\赛灵思\ Vivado \ 2019.1 \ BIN \ vivado.bat');

2.使用以下命令将IP存储库文件夹和Zedboard注册文件添加到MATLAB路径中:

让addpath(完整文件(matlabroot,“工具箱”“hdlcoder”'hdlcoderdemos''customboards'“智芯”));让addpath(完整文件(matlabroot,“工具箱”“hdlcoder”'hdlcoderdemos''customboards'“ZedBoard”));

对于Zybo板使用以下命令。

让addpath(完整文件(matlabroot,“工具箱”“hdlcoder”'hdlcoderdemos''customboards'“智芯”));让addpath(完整文件(matlabroot,“工具箱”“hdlcoder”'hdlcoderdemos''customboards'“ZYBO”));

3.从DUT子系统启动HDL流程顾问,hdlcoder_audio_filter_biquad / Audio_filter或者在启动HDL工作流程顾问双击框模型。

目标接口设置已经在这个示例模型保存Zedboard,所以在任务1.1到1.3的设置会自动加载。要了解更多关于在模型中保存目标接口设置,可以参考在模型中保存目标硬件设置例子。

在任务1.1,IP核生成被选中的目标工作流程,ZedBoard被选中的目标平台。如果你使用Zybo板然后选择ZYBO作为目标平台而不是Zedboard。

在任务1.2中,带有AXI4流接口的音频系统被选中的参考设计

AXI4-Stream接口用于在参考设计和过滤算法IP之间传输音频数据。AXI4-Stream接口包含数据(数据)和控制信号,如数据有效(有效的)、背压(准备好)和数据边界(TLAST)。至少数据有效的产生AXI4-Stream IP核所需的信号。在任务1.3中,目标平台接口表加载如下图所示。音频数据流端口,VALID_INData_inValid_outData_out,被映射到AXI4-流接口,Pass_through_LED,BiQuad_LPF_LED,BiQuad_BPF_LED,BiQuad_HPF_LED映射到Zedboard上的led和控制参数端口Filter_select映射到AXI4-精简版界面。如果使用的是Zybo板然后通过选择手动映射的LED,将过滤器led通用[0:4]

AXI4-Stream接口以主/从模式通信,主设备将数据发送到从设备。因此,如果数据端口是输入端口,则将其分配给AXI4-流从接口,如果数据端口是输出端口,则将其分配给AXI4-流大师界面。

3.右键单击任务3.2,生成RTL代码和IP核,选择运行到选定的任务以生成IP核。你可以找到在生成的IP核报告的IP内核寄存器地址映射和其他文档。

集成IP到axi4流音频兼容参考设计

接下来,在HDL工作流顾问,你运行嵌入式系统集成任务部署上ZYNQ硬件生成的HDL IP核。

1.4.1运行任务,创建项目。该任务将生成的IP核插入带有AXI4流接口的音频系统参考设计。如图1所示,这个参考设计包含处理Zedboard的音频数据的ip。生成的项目是一个完整的Zynq设计,包括算法部分(生成的DUT算法IP)和平台部分(参考设计)。有关如何创建集成音频过滤器模型的参考设计的详细信息,请参阅在ZYNQ局创作了音频系统的参考设计在ZYBO板上编写音频系统参考设计例子。

2.单击结果窗格中的链接,打开生成的Vivado项目。在Vivado工具,单击开放式模块设计以查看ZYNQ设计框图,其包括所生成的HDL IP核心,其它音频处理IP地址和ZYNQ处理器。

3.在HDL Workflow Advisor中,运行其余的任务来生成软件接口模型,并构建和下载FPGA位流。选择下载在任务编程方法计划目标设备将FPGA位流下载到Zynq板的SD卡上,这样当您循环Zynq板电源时,您的设计将自动重新加载。

生成ARM可执行文件以在FPGA Fabric上调整参数

在Task 4.2中生成了一个软件界面模型,生成软件接口模型

1.在您从软件接口模型生成代码之前,注释掉音频输入源和音频输出接收器,即从多媒体文件,数据类型转换,缓冲区,音频设备写入器和频谱分析仪块。这些块不需要在ARM处理器上运行。Audio_filter IP在FPGA fabric上运行为*Filtering_Algorithm"。ARM处理器使用AXI4-Lite接口选择滤波器类型,即Biquad Low pass, band pass, High pass或pass Through。

  1. 在生成的模型中,单击硬件窗格和去硬件设置打开配置参数对话框。

  2. 选择解算器并将“停止时间”设置为“inf”,单击“确定”。

  3. 在“硬件”窗格中,单击监视和优化按钮。

  4. 点击运行按钮在模型工具条上。Embedded Coder构建模型,下载ARM可执行文件到Zynq板硬件,执行它,并将模型连接到Zynq板硬件上运行的可执行文件。

该类型的过滤器中使用可使用下拉选项中选择过滤器选择堵塞

过滤后的音频输出可通过插入耳机或扬声器听到HPH出来杰克在Zynq的董事会。根据选择的滤波器,Zynq板上相应的LED会打开。在本例中,当选择Pass through (No filter used)选项时LD0打开,当选择Biquad Low Pass filter时LD1打开,当选择Biquad Band Pass filter时LD2打开,当选择Biquad High Pass filter时LD3打开。