这个例子展示了如何使用FPGA数据捕获与现有的HDL代码来读取FPGA内部信号。从现有的FPGA设计开始,该设计实现了片上模数转换器(ADC)来采样音频信号。ADC IP公开了一个用于控制的Avalon®内存映射(MM)从接口和用于数据输出的Avalon流接口。这个FPGA设计已经包含了一个Avalon MM主模块来启动ADC。使用FPGA数据捕获功能,将ADC输出数据从Avalon流接口采集到MATLAB®工作空间。
马铃薯草
高密度脂蛋白校验™
HDL验证器支持英特尔®F金宝appPGA板的包
固定点设计器™
英特尔Quartus®Prime软件,其中包含支持版本金宝app金宝app支持EDA工具和硬件
Arrow®DECA MAX®10 FPGA开发板
1.确认电源开关处于关闭状态。
2.在FPGA开发板和主机之间连接JTAG下载电缆。
3.(可选)通过3.5 mm音频电缆将FPGA电路板的线路连接到FPGA板的线路端口,如3.5 mm。如果跳过此步骤,则捕获的数据是随机噪声。
设置Intel Quartus.This示例假设Intel Quartus可执行文件位于文件中C: \ \ 18.0 \负责第四的\ bin \ quartus.exe
.如果可执行文件的位置不同,则使用路径。
hdlsetuptoolpath(“ToolName”、“阿尔特拉第四的二世”、“路径”,“C: \ \ 18.0 \负责第四的\ bin \ quartus.exe ');
推出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数据捕获组件,请单击生成.报告显示了这一代的结果。
您必须将生成的HDL IP核心包含在示例FPGA设计中。您可以从生成的报告复制模块实例代码。在此示例中,使用ADC输出和8位自由运行计数器将所生成的HDL IP连接。
打开adc_top.v
文件。取消这个代码。
数据捕获u0 (.clk(adc_clk), .clk_enable(adc_valid), .ready_to_capture(), .adc_out(adc_out), .counter(counter[7:0]));
节省adc_top.v
,编译已修改的FPGA设计,并使用以下TCL脚本创建FPGA编程文件。
系统(“quartus_sh - t adc_deca_max10。tcl &”)
本示例中包含的Tcl脚本执行这些步骤。
1.创建一个新的Quartus项目。
2.将示例HDL文件和生成的FPGA数据捕获HDL文件添加到项目中。
3.编制设计。
4.编程FPGA。
等到Quartus过程在下一步之前成功完成。这个过程大约需要5到10分钟。
导航到生成FPGA数据捕获组件的目录。
CD HDLSRC.
推出FPGA数据捕获工具。此工具是为数据捕获信号定制的。
LaunchdatacupTureApp.
要启动数据捕获,请单击捕获数据.数据捕获对象请求来自FPGA的一个缓冲区捕获的数据。默认设置是立即捕获,无需等待触发条件。
捕获的数据被保存到一个结构中,datacaptureout.
,在MATLAB工作空间中。如果您有DSP System Toolbox™软件,捕获的数据也会显示为信号波形逻辑分析仪工具。
要从特定事件周围从FPGA捕获数据,可以在其中配置触发条件FPGA数据捕获工具。例如,仅在计数器达到一定值后才能捕获音频数据。
选择触发阶段数作为1
.在触发第一阶段部分中,选择信号作为计数器
.的,以启用此触发信号+按钮。选择相应的触发条件值(价值) 作为10
.触发模式自动更改为在触发器上.此更改告诉FPGA在捕获和返回数据之前等待触发条件。此图显示了这些工具设置。
点击捕获数据一次。这一次,数据捕获IP返回1024个样本,它们是在检测到计数器等于10时捕获的。
要从FPGA捕获触发值中的特定位的数据,无论其他位如何,都可以使用位屏蔽值配置触发条件。
例如,要仅在计数器第7位为1时捕获音频数据,可以设置触发器条件值(价值) 到0bx1xxxxxx.
如图所示。
点击捕获数据一次。
数据捕获IP触发捕获范围为[64,127]和[192,255]的计数器值的音频数据。
要从FPGA捕获重复事件,请配置捕获窗口数量在里面FPGA数据捕获工具。
例如,要在八个不同的时隙中捕获音频数据,请选择捕获窗口数量作为8
.此图显示了更新后的工具设置。
点击捕获数据.数据捕获IP返回每个128个样本的八个窗口,其数量为1024的总样本深度。
窗口深度=采样深度/捕获窗口数;
的逻辑分析仪工具将此结果显示为触发器的八个出现,音频数据记录为128个样本。
信号捕捉窗口
和触发位置
分别指示相应的窗口号和触发器位置。
这个场景解释了如何通过在多个触发阶段中提供一系列触发条件来捕获数据。要在多个触发条件下捕获数据,必须选择触发阶段数作为大于1的值FPGA数据捕获工具。
例如,要在5个时钟周期中计数器值从0到5时捕获音频数据,请遵循以下步骤。
1.选择触发阶段数作为2
.
2.在触发第一阶段部分中,选择信号作为计数器
.的,以启用此触发信号+按钮 。选择相应的触发条件值(价值) 作为0
.
3.在触发第二阶段部分,选择信号计数器
.的,以启用此触发信号+按钮。选择相应的触发条件值(价值) 作为5
.选择触发超时设置为5
.
该图显示了更新的工具设置。
点击捕获数据.当数据捕获IP在5个时钟周期内检测到触发阶段2的触发条件时,捕获1024个样本,在此之前检测到触发阶段1的触发条件。