捕捉音频信号从英特尔FPGA板使用FPGA数据捕获
这个例子展示了如何使用FPGA数据获取与现有的HDL代码阅读FPGA内部信号。从现有的FPGA设计实现一个片上模拟-数字转换器(ADC)样本一个音频信号。ADC IP公开阿瓦隆®内存映射(MM)奴隶接口控制和一个阿瓦隆为数据输出流接口。这FPGA设计已经包含一个阿瓦隆毫米主启动ADC。使用FPGA数据捕获功能收集从阿瓦隆ADC的输出数据流接口到MATLAB®的工作区中。
需求和先决条件
MATLAB
高密度脂蛋白校验™
高密度脂蛋白校验支持英特尔金宝app®FPGA板包
定点设计师™
第四的英特尔®'软件,支持版本中列出金宝app金宝appEDA工具和硬件支持
箭头®十马克斯®10 FPGA开发板
建立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
和8位计数器
。的adc_out
信号是数字音频样本的输出信号。下一个信号计数器
是一个8位不同步的计数器。配置数据捕捉组件操作这两个信号,遵循这些步骤。
1。添加一行港口通过单击表添加按钮一次。
2。名字第一个信号adc_out
第二信号计数器
。
3所示。改变两个信号的位宽12和8,分别。
4所示。选择FPGA供应商作为阿尔特拉
。
5。选择生成的IP语言作为Verilog
。
6。选择样本深度作为1024年
。这个值是样品的数量的每个信号数据采集工具返回MATLAB每次检测到一个触发器。
7所示。选择马克斯触发阶段作为2
。这个值是引发阶段的最大数量,您可以添加在数据捕获提供多个触发条件。
这个图显示了这些工具设置。
生成FPGA数据捕捉组件,点击生成。一份报告显示了生成的结果。
FPGA数据捕获HDL IP集成
您必须包含生成的HDL IP核心FPGA设计的例子。你可以复制模块实例代码生成的报告。在本例中,生成的高密度脂蛋白连接IP ADC输出和8位不同步的计数器。
打开adc_top.v
这个示例中提供的文件。取消这个代码。
datacapture情况(.clk (adc_clk) .clk_enable (adc_valid) .ready_to_capture (), .adc_out (adc_out) .counter(计数器(7:0)));
保存adc_top.v
、编译修改的FPGA设计和创建一个FPGA编程文件通过以下Tcl脚本。
系统(“quartus_sh - t adc_deca_max10。tcl &”)
Tcl脚本包含在本例中执行这些步骤。
1。创建一个新的第四的项目。
2。添加示例HDL文件和生成的FPGA数据捕获HDL文件到项目。
3所示。编制设计。
4所示。FPGA程序。
等到第四的过程成功完成在下一步。这个过程大约需要5到10分钟。
捕获数据
导航到FPGA的目录数据捕捉组件生成。
cd hdlsrc
启动FPGA数据捕获工具。这个工具是定制的数据捕获信号。
launchDataCaptureApp
数据采集开始,点击捕获数据。数据捕获对象请求一个缓冲FPGA的捕获数据。默认设置是立即捕获,而不必等待触发器条件。
捕获的数据保存到一个结构,dataCaptureOut
在MATLAB工作区。如果你有DSP系统工具箱™软件,获取的数据也显示为信号的波形逻辑分析仪工具。
狭窄的范围使用触发数据捕获
捕捉到FPGA的数据在一个特定的事件,您可以配置触发的条件FPGA数据捕获工具。例如,捕捉音频数据只有在一个计数器达到一定值。
选择数量的触发阶段作为1
。在触发第一阶段部分中,选择信号作为计数器
。通过单击启用该触发信号+按钮。选择相应的触发条件值(价值),10
。触发模式自动变化在触发。这种变化对FPGA等待触发条件之前捕获并返回数据。这个图显示了这些工具设置。
点击捕获数据一次。这次,捕获的数据捕获IP返回1024个样本,当它检测到柜台= 10。
捕获的数据中的特定部分的FPGA触发值,不管其他,您可以配置与bit-masked值触发条件。
例如,捕捉音频数据只有当计数器的第七位是1,设置触发条件值(价值)0 bx1xxxxxx
如这个图所示。
点击捕获数据一次。
数据捕获IP触发器捕获音频数据计数器值的范围(64、127)和(192、255)。
捕捉多次出现的事件
捕捉到FPGA的重复事件,配置捕获的窗口数量在FPGA数据捕获工具。
例如,捕捉音频数据在八个不同的时段,选择捕获的窗口数量作为8
。这个图展示了更新后的工具设置。
点击捕获数据。数据捕获IP返回八windows的128个样本,这相当于1024年总样本的深度。
窗口深度=样本深度/捕获窗口的数量;
的逻辑分析仪工具显示了这个结果八事件的触发,音频数据记录的128个样本。
的信号捕获窗口
和触发位置
分别显示对应的窗口数量和触发位置。
在多个触发器捕获数据阶段
这个场景解释了如何捕捉数据通过提供一系列的触发条件在多个触发阶段。用于捕获数据在多个触发条件,你必须选择数量的触发阶段值大于1FPGA数据捕获工具。
例如,当计数器值达到捕获音频数据从0到5中5时钟周期,遵循这些步骤。
1。选择数量的触发阶段作为2
。
2。在触发第一阶段部分中,选择信号作为计数器
。通过单击启用该触发信号+按钮。选择相应的触发条件值(价值),0
。
3所示。在触发第二阶段部分中,选择信号计数器
。通过单击启用该触发信号+按钮。选择相应的触发条件值(价值),5
。选择触发时间并设置它5
。
图显示了更新后的工具设置。
点击捕获数据。数据捕获IP捕获1024个样本当它检测到触发条件触发阶段2 5个时钟周期内,之前触发条件触发阶段1中检测到。