主要内容

使用Zynq板在实时音频输入上运行音频过滤器

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

介绍

在这个例子中,你:

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

  2. 使用音频参考设计在Zynq板上执行

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

在你开始之前

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

  • 用于Xilinx Z万博1manbetxynq平台的HDL编码器支持包

  • Xilinx Zynq平台的嵌万博1manbetx入式编码器支持包

  • Xilinx Vivado版本2019.1

  • ZedBoard或Zybo Board

设置Zedboard板,请参阅创建Zynq硬件和工具部分的瞄准Xilinx Zynq平台的例子。将手机或MP3播放器的音频输入连接到杰克和耳机或扬声器HPH出来千岁板上的插孔,如下所示。类似的设置可以在Zybo板上完成。对于Zybo Board设置,请参阅设置Zybo Board部分的定义自定义板和Zynq工作流程的参考设计的例子。

介绍

在以下模型中,音频文件用作DUT子系统的输入,Audio_filter.在Simulink中对该模型进行仿真后,可以听到处理后的万博1manbetx音频效果音频设备的作家频谱分析仪块显示滤波音频输出的频谱图。

modelname =.“hdlcoder_audio_filter_biquad”;Open_System(ModelName);

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

可以使用MATLAB®功能或在Simulink®中生成滤波器系数。万博1manbetx在此模型中,FilterDesigner工具用于为每种类型的滤波器生成滤波器系数。然后将这些滤波器系数导出并存储为MATLAB文件。这些系数将用于在Simulink中设计过滤器。万博1manbetx在该模型中,来自Simulink的离散IIR滤波器块根据相应的滤波器系数用作各种频带或高通滤波万博1manbetx器。

您可以通过在Simulink中模拟该模型来测试该模型。万博1manbetx频谱分析仪上看到的频率范围和通过音频设备写入器块听到的音频效果应该根据选择的滤波器类型而变化。过滤器选择块用于选择要对音频输入进行的过滤类型。

为Zynq板定制模型

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

对于Zybo板,请参阅创作Zybo板上的音频系统参考设计

在参考设计中,左和右声道音频数据组合在一起以形成单个通道。它们被连接,使得较低的24位是左声道,上部24位是右声道。在上面所示的S万博1manbetximulink模型中,Data_in被分成2个通道,即左右。它们的幅度除以2,并且将2个通道添加在一起以形成单个通道。过滤在此频道上完成。

data_in.Valid_in是AXI4流信号。要了解如何使用AXI4-Stream接口,请参阅基于简化流协议的模型流算法部分在zynq工作流程中使用AXI4-Stream接口入门的例子。data_in.包含要处理的音频数据Valid_in作为启用信号。每个过滤器映射到Zedboard或Zybo板上的LED,以直观地指示过滤器是开还是关。

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

使用AXI4-Stream接口生成HDL IP核

接下来,您可以启动HDL工作流顾问,并使用Zynq硬件-软件协同设计工作流在Zynq硬件上部署该设计。有关更详细的一步一步的指南,您可以参考瞄准Xilinx Zynq平台的例子。

1.使用Matlab命令窗口中的以下命令设置Xilinx Vivado Synthesis Path。运行命令时使用自己的Vivado安装路径。

hdlsetuptoolpath (“ToolName”“Xilinx Vivado”“路径”“C: \ Xilinx \ Vivado \ 2019.1 \ bin \ vivado.bat ');

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

目录(fullfile (matlabroot,“工具箱”'hdlcoder'“hdlcoderdemos”“customboards”“ipcore”));目录(fullfile (matlabroot,“工具箱”'hdlcoder'“hdlcoderdemos”“customboards”'zedboard'));

对于Zybo Board使用以下命令。

目录(fullfile (matlabroot,“工具箱”'hdlcoder'“hdlcoderdemos”“customboards”“ipcore”));目录(fullfile (matlabroot,“工具箱”'hdlcoder'“hdlcoderdemos”“customboards”“ZYBO”));

3。从DUT子系统启动HDL Workflow Advisor,hdlcoder_audio_filter_biquad / Audio_filter或者双击模型中的Launch HDL Workflow Advisor框。

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

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

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

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

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

3。右键单击任务3.2,生成RTL代码和IP核心,并选择运行到选定任务生成IP核。您可以在生成的IP核报告中找到IP核的注册地址映射和其他文档。

将IP集成到AXI4-Stream兼容的参考设计中

接下来,在HDL Workflow Advisor中运行嵌入式系统集成任务将生成的HDL IP核部署到Zynq硬件上。

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

2。单击Result窗格中的链接以打开生成的Vivado项目。在Vivado工具中,单击开放块设计查看Zynq设计图,其中包括生成的HDL IP核、其他音频处理IP和Zynq处理器。

3。在HDL Workflow Advisor中,运行其余任务以生成软件界面模型,并构建和下载FPGA比特流。选择下载任务中的编程方法项目目标设备要将FPGA比特流下载到Zynq板上的SD卡上,因此在激活Zynq板时,您的设计将自动重新加载。

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

软件界面模型是在任务4.2中生成的,生成软件界面模型

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

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

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

  3. 从硬件窗格中,单击监控和曲调按钮。

  4. 单击模型工具串上的按钮。嵌入式编码器构建模型,下载可执行到Zynq Loard硬件的ARM,执行它,并将模型连接到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打开。