主要内容

使用Zynq板在现场音频输入中运行音频过滤器

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

简介

在这个例子中,你:

  1. 建模一个具有低通、带通和高通滤波器的音频系统

  2. 在Zynq板上使用音频参考设计实现它

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

在你开始之前

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

  • Xilinx Zynq平台的HDL编码器支持包

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

  • Xilinx Vivado版本2019.1

  • ZedBoard或Zybo Board

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

简介

在下面的模型中,一个音频文件被用作DUT子系统的输入,Audio_filter.在Simulink中对该模型进行仿真,处理后的音频效果可以通过仿真器听到音频设备的作家块和频谱分析仪块显示过滤音频输出的谱图。

modelname =“hdlcoder_audio_filter_biquad”;open_system (modelname);

建模一个具有低通、带通和高通滤波器的系统

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

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

为Zynq板定制模型

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

对于兹博板,请参考基于ZYBO板的音频系统参考设计

在参考设计中,左右声道音频数据被组合在一起形成一个单一声道。它们是连接的,低24位是左通道,上24位是右通道。在上面所示的Simulink模型中,Data_in被分为两个通道,即相应的左通道和右通道。它们的大小除以2,两个通道加在一起形成一个通道。滤波是在这个通道上完成的。

Data_in而且Valid_in为AXI4-Stream信号。要了解如何使用AXI4-stream接口,请参考用简化的流协议建模流算法部分在Zynq工作流中使用axis - stream接口部署模型的例子。Data_in包含要处理的音频数据和Valid_in充当使能信号。每个过滤器都映射到Zedboard或Zybo板上的LED,以直观地指示过滤器是打开还是关闭。

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

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

接下来,您可以启动HDL Workflow Advisor,并使用Zynq软硬件协同设计工作流将此设计部署到Zynq硬件上。有关更详细的一步一步的指南,您可以参考如何瞄准Xilinx Zynq平台的例子。

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

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

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

解压缩(“ipcore.zip”);解压缩(“ZedBoard.zip”);目录(genpath (“ipcore”));目录(genpath (“ZedBoard”));

对于Zybo板使用以下命令。

解压缩(“ipcore.zip”);解压缩(“ZYBO.zip”);目录(genpath (“ipcore”));目录(genpath (“ZYBO”));

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

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

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

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

AXI4-Stream接口用于在参考设计和过滤算法IP之间传输音频数据。AXI4-Stream接口包含数据(数据)和控制信号,例如数据有效(有效的)、背压(准备好了)和数据边界(TLAST).至少数据而且有效的AXI4-Stream IP核生成需要的信号。在Task 1.3中,目标平台接口表加载如下图所示。音频数据流端口,Valid_inData_inValid_out而且Data_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 core Report中找到IP核的注册地址映射和其他文档。

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

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

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

2.单击Result窗格中的链接以打开生成的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接口来选择滤波器类型,即双方低通、带通、高通或直通。

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

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

  3. 从Hardware窗格中单击监视和优化按钮。

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

中的下拉选项可以选择要使用的过滤器类型过滤器选择

过滤后的音频输出可以通过插入耳机或扬声器听到HPH出来在Zynq的董事会上。根据所选择的滤镜,Zynq板上相应的LED会打开。在本例中,当选择直通(不使用滤波器)选项时,LD0打开,当选择双方低通滤波器时,LD1打开,当选择双方带通滤波器时,LD2打开,当选择双方高通滤波器时,LD3打开。

Baidu
map