主要内容

流音频信号从英特尔FPGA板使用已经准备好,可以捕获信号

这个例子展示了如何使用一个已经准备好,可以捕获信号在一个FPGA数据获取与现有的HDL代码阅读FPGA流信号。这个例子从现有的FPGA设计实现一个片上模拟-数字转换器(ADC)样本一个音频信号。ADC知识产权(IP)公开阿瓦隆®内存映射(MM)奴隶接口控制和一个阿瓦隆为数据输出流接口。现有的示例包含一个简单的阿瓦隆毫米主启动ADC。使用FPGA数据捕获收集从阿瓦隆ADC的输出数据流接口和数据流到MATLAB®工作区。

ready_to_captureFPGA信号输出数据捕获HDL IP。这个输出捕捉连续数据提供你地方先进先出(FIFO)的FPGA数据捕获HDL IP和检查ready_to_capture信号流数据到数据捕获之前IP。您可能还需要检查FIFO不是空的。这个数字说明了连续数据采集工作流程。

阿瓦隆的音频数据流接口写入一个FIFO,和FIFO时阅读ready_to_capture信号是断言。为了避免数据溢出,FIFO时必须大到足以捕捉数据ready_to_capturedeasserted。在这个例子中,FIFO的深度配置为16 k和音频采样频率是50千赫。

需求和先决条件

  • MATLAB

  • 高密度脂蛋白校验™

  • 高密度脂蛋白校验支持英特尔金宝app®FPGA板包

  • 定点设计师™

  • 第四的英特尔®'软件中列出支持的版本金宝app金宝appEDA工具和硬件支持

  • 箭头®十马克斯®10 FPGA评估工具

  • DSP系统工具箱™

建立FPGA开发板

1。确认电源开关是关闭的。

2。连接JTAG下载电缆FPGA开发板和主机之间。

3所示。(可选)的输出端口连接FPGA板和一个音频源,如你的手机,通过3.5毫米音频电缆。如果你跳过这一步,捕获的数据将被随机噪音。

准备资源的例子

建立了英特尔第四的。这个例子假定英特尔第四的可执行文件位于文件C: \ \ 18.0 \负责第四的\ bin \ quartus.exe。如果你的可执行文件的位置是不同的,而不是用你的路径。

hdlsetuptoolpath (“ToolName”、“阿尔特拉第四的二世”,…“路径”、“C: \ \ 18.0 \负责第四的\ bin \ quartus.exe ');

生成FPGA数据捕捉组件

启动FPGA数据捕捉组件发生器通过执行这个命令在MATLAB工具。

generateFPGADataCaptureIP

这个例子中监控一个音频信号从现有的HDL代码系统。信号是一个12位adc_out。的adc_out信号是数字音频样本的输出信号。配置数据捕捉组件来操作这个信号,遵循这些步骤。

1。名字的信号adc_out在港口表中。

2。改变信号的位宽12。

3所示。选择FPGA供应商作为阿尔特拉

4所示。选择生成的IP语言作为Verilog

5。选择样本深度作为8192年。这个值是样品的数量的每个信号数据采集工具返回MATLAB每次检测到一个触发器。

这个图显示了这些工具设置。

生成FPGA数据捕捉组件,点击生成。一份报告显示了生成的结果。

FPGA数据捕获HDL IP集成

您必须包含生成的HDL IP核心FPGA设计的例子。你可以复制模块实例代码生成的报告。在这个例子中,将生成的高密度脂蛋白IP与ADC输出通过一个FIFO。

打开readyToCapture_top.v这个示例中提供的文件。取消这个代码。

datacapture情况(.clk(时钟),.clk_enable (adc_valid) .ready_to_capture (ready_to_capture) .adc_out (adc_out));

保存readyToCapture_top.v、编译修改的FPGA设计和创建一个FPGA编程文件通过以下Tcl脚本。

系统(“quartus_sh - t readyToCapture_deca_max10。tcl &”)

Tcl脚本包含在本例中执行这些步骤。

1。创建一个新的第四的项目。

2。添加示例HDL文件和生成的FPGA数据捕获HDL文件到项目。

3所示。编制设计。

4所示。FPGA程序。

等到第四的过程成功完成在下一步。这个过程大约需要5到10分钟。

捕获数据

导航到FPGA的目录数据捕捉组件生成。

cd hdlsrc

你必须设置捕获模式立即使用一个已经准备好,可以捕获的信号在一个FPGA数据捕获。捕捉数据的直接模式,遵循这些步骤。

1。创建一个FPGA数据采集系统对象™和配置这些属性。

DataCaptureObj = datacapture;DataCaptureObj。TriggerPosition = 0;DataCaptureObj。NumCaptureWindows = 1;setRunImmediateFlag (DataCaptureObj, 1);

2。不断捕捉FPGA数据。在这个例子中,捕捉NumberOfSampledepth快照数据。您可以修改NumberOfSampledepth根据需要的价值。

NumberOfSampledepth = 10;Sample_depth = 8192;adc_out = int16 (0 (NumberOfSampledepth * Sample_depth, 1));i = 1: NumberOfSampledepth [~, ~, adc_out(我* Sample_depth - (Sample_depth-1): * Sample_depth)) = (DataCaptureObj)步;结束

3所示。保存捕获音频数据捕获的数据写入. wav格式。过程或重播捕获的数据在稍后的时间。

audiowrite (“captured_audio_file.wav”,adc_out, 50000)

4所示。捕获的数据视图逻辑分析仪工具。的逻辑分析仪工具可以用几秒钟来加载数据的捕获快照。

范围= dsp.LogicAnalyzer (“NumInputPorts”,1“DisplayChannelFormat”,“模拟”,“DisplayChannelHeight”,100);标签= getDisplayChannelTags(范围);modifyDisplayChannel(范围、标记{1}“名字”,“adc_out”);范围(adc_out);

这个图显示了8 k的音频数据样本逻辑分析仪工具。

另请参阅

工具

功能

相关的话题