【FPGA学习】使用SingalTap II 抓取波形

这篇具有很好参考价值的文章主要介绍了【FPGA学习】使用SingalTap II 抓取波形。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

最近学习了在Quarus II 中运用嵌入式逻辑分析仪Singal Tap II 对数据波形进行抓取,对实现过程作一个记录和总结。本文就以之前写的串口收发程序作为样例,介绍Singal Tap II 的使用流程和步骤。
参考资料:《FPGA 实战开发指南》。


一、SingalTap II 是什么?

Singal Tap II 是一种嵌入到Quartus II 内部的逻辑分析仪,当RTL文件在仿真后没有问题,但是上板验证后又得不到正确的实验现象时,由于FPGA内部波形难以观察,常需要采用逻辑分析仪将内部信号引出。而外部逻辑分析仪存在着价格昂贵、FPGA端口数量不足、引脚间距小引出困难等问题。而Singal Tap II 则以低成本的方式解决了成本高、引出信号困难的问题,适用于仿真代码覆盖率未达到100%,多输入异步信号难以仿真以及存在芯片信号之间相互串扰等仿真难以解决的情况,将板上数据信号引出便于查找BUG。

二、使用流程

样例采用简单的串口收发模块,抓取其中的波形中间变量和输出端口数据以供观察。

1.创建SingalTap II 文件

先打开我们的样例工程文件,创建文件可以在tools–SingalTap II Logic Analyzer打开,也可以在File–New–SingalTap II Logic Analyzer File创建,
singaltap2,FPGA学习,fpga开发
singaltap2,FPGA学习,fpga开发
创建文件后将文件保存在工程文件夹下,此时会报输入信号为空,不用管它,继续保存。
singaltap2,FPGA学习,fpga开发
进入到页面内部,页面主要分为四个部分:①:主要控制设备连接以及后续程序下载sof文件;②:信号配置界面,选择抓取波形的参考时钟、信号抓取的形式、信号触发的优先级等;③:显示抓取的Data数据以及设置抓取的触发条件;④:程序层级以及设计日志信息。
singaltap2,FPGA学习,fpga开发

2.配置信号触发形式

首先配置系统时钟,点击下图选择系统时钟,在Named栏目写入系统时钟,在筛选器Filter中选中常用的SingalTap II:pre-synsynthesis,在顶层模块RS232中寻找,在左下方栏目中双击系统时钟,添加到右方,点击OK即可。
singaltap2,FPGA学习,fpga开发
接下来配置信号采集方法以及采集深度:①:采样深度点击Sample depth 后的下拉,选择1K,采样的波形时间长度 = 采样深度 * 采样周期。由于SingalTap采集的波形数据需要FPGA内部的RAM空间来存储数据,所以这里采集深度合适就好,无需过大。RAM type 在芯片有多个RAM块时可以选择,这里我们选择默认;②:Segmented是分段式采集,每次满足设定的触发条件,采集一定数量的数据,直到采集满,以4 256 sample segments 为例,每次触发采集256个数据,可以循环触发四次。本次我们不勾选此项;③:存储类型,选择第一个continous连续进行采样。
singaltap2,FPGA学习,fpga开发
设置触发条件:①:流程控制采用顺序控制,另外一个选项基于状态控制的方法适用于较为复杂的情况触发情况下;②:触发位置,选择pre trigger position 仅采集触发位置后方的数据;③:触发条件,我们设置为1个优先级别,如果设置多个优先级别,则会由最高级别优先触发后才会允许低级别的条件触发,当所有条件均触发以后才会进行数据的抓取。
singaltap2,FPGA学习,fpga开发

3.选择待抓取信号

在图中双击空白处或者右击后选择Add Nodes,进入到以下界面:Named选择通配符 “ * ” ,筛选器选择SingalTap II:pre-synsynthesis,Look in : 在顶层文件中进行查找,点击list出现所有数据。
singaltap2,FPGA学习,fpga开发
找到模块中我们需要观察的若干个数据,添加到右侧中,点击OK。
singaltap2,FPGA学习,fpga开发
上述步骤完成后,setup 界面更新为下图:
singaltap2,FPGA学习,fpga开发

4.设置信号触发条件

在setup界面进行触发条件的配置,其中右上角的触发条件可以选择各个数据的条件是与还是或,或是其他自定义的情况,本文选用常见的与条件,只有每个数据都满足触发条件才开始数据的采集。
singaltap2,FPGA学习,fpga开发
其中每一个数据,右击选择触发的条件,其中:

Don’t Care:不关心
Low:低电平触发
Falling Edge:下降沿触发
Rising Edge:上升沿触发
High:高电平触发
Either Edge:上升沿或下降沿触发

我们这里将输入数据的接收模块中的start_flag设置为高电平触发,其他均设置为不关心;start_flag是检测rs232协议中开始位的低电平的标志位,当其拉高一个时钟周期后,开始进行串行数据到并行数据的转换。这样的话,只有当串口发送给下位机时,才会引起start_flag拉高,进而满足触发条件。
singaltap2,FPGA学习,fpga开发
此外,因为现在的情况下,波形数据的抓取是在上电一段时间后才开始执行,有的信号仅在上电开始的较短时间内存在,可能会遗漏数据。因此,需要设置为上电后就使得触发器在准备触发状态,右击下图中Instance中的 auto_signaltap_0 右击选择Enable Power-Up Trigger,注意此时上述信号的触发条件需要重新进行设置,设置完成后回到工程文件界面对文件重新进行全编译。至此,触发条件基本配置完成。

singaltap2,FPGA学习,fpga开发

5.上板提取信号

完成触发条件的配置后,连接好我们的FPGA开发板的电源、下载线、USB转串口线。在setup中选择下载器USB-Blaster,关闭选项框。
singaltap2,FPGA学习,fpga开发
选中下载器以后,系统自动识别出了设备,接下来点击下图处,选择sof文件。
singaltap2,FPGA学习,fpga开发
下载文件到开发板中,下载完成以后,这里的文件状态为:Not Running,即未运行。
singaltap2,FPGA学习,fpga开发
先选中auto_singaltap_0,然后单击单次运行按钮,文件状态变为等待上电状态,上方显示程序正在运行。
singaltap2,FPGA学习,fpga开发
singaltap2,FPGA学习,fpga开发
接下来打开上位机界面,配置好波特率9600,串口号,然后发送一串8位数据11223344,随后数据就被抓取并显示在data界面。
singaltap2,FPGA学习,fpga开发
至此,我们已经能够抓取所需的波形并进行观察啦!

5.释放存储空间

之前提到,SingalTap II 是占用FPGA内部的RAM资源进行波形抓取的,所以在观察波形以后,有必要对占用的空间进行释放。从Assignments–settings–SignalTap II Logic Analyzer,取消勾选Enable SignalTap II Logic Analyzer 即可,取消勾选后占用的RAM资源即可释放。
singaltap2,FPGA学习,fpga开发

总结

路漫漫其修远兮,要学习的还有很多呀,继续努力吧!文章来源地址https://www.toymoban.com/news/detail-518616.html

到了这里,关于【FPGA学习】使用SingalTap II 抓取波形的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 040-第三代软件开发-全新波形抓取算法

    : Qt 、 Qml 、 抓波 、 截获 、 波形 欢迎来到我们的 QML C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。 在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观

    2024年02月06日
    浏览(27)
  • FPGA学习任意波函数信号发生器的设计(基于quartus II13.0)

    平台: quartus II 13.0 仿真:signal tap II 语言:VHDL 方式:原理图bdf输入 芯片:Cyclone IV E: EP4CE6E22C8 设计一任意波函数信号发生器,具备以下两功能: ①能输出标准正弦波波形。 ②能输出任意函数波形。 首先明确实验用到的宏模块操作是在tool——MeGaWizard Plug-In Manager中(如下图)

    2024年02月03日
    浏览(33)
  • 使用Quartus II做FPGA设计遭遇的一些问题

    问题1:Error:Width mismatch in pin_name – source is 。。。 ** 问题2:Error (275028): Bus name allowed only on bus line – pin “data[7…0]” Error (275029): Incorrect connector style at port “test_data[7…0]” for symbol “inst” of type top

    2024年02月11日
    浏览(42)
  • FPGA实现的多波形信号发生器,支持正弦、方波、锯齿波、三角波及调制,配备仿真和实物制作功能,使用Verilog HDL编写

    基于FPGA的DDS多波形信号发生器,可以产生正弦波,方波,锯齿波三角波,调制波形2psk.2askAM调制,可以仿真,可以制作实物,可以进行讲解! 使用可以使用Quarter9.0自带仿真软件进行仿真波形。 也可以使用quarter13.1与modesim进行联合仿真进行仿真波形! 使用verilog HDL语言进行编

    2024年04月12日
    浏览(39)
  • 【LabVIEW FPGA入门】插值、输出线性波形

            NI 的可重配置 I/O (RIO) 硬件使开发人员能够创建自定义硬件,以在坚固耐用、高性能和模块化架构中执行许多任务,而无需了解低级 EDA 工具或硬件设计。使用 RIO 硬件轻松实现的此类任务之一是模拟波形生成。本教程介绍了使用 CompactRIO 硬件和 LabVIEW FPGA 模块输出

    2024年04月09日
    浏览(33)
  • 学习如何独立的使用Modelsim进行仿真验证?——编写verilog文件并查看仿真波形

    本篇记录如何独立的使用Modelsim进行仿真,便于之后查看。 Modelsim独立仿真的步骤: 创建工作文件夹——编译设计文件——导入及运行仿真——调试结果 具体的: 1、新建一个工程 指定工程名称、路径和默认库名称。一般情况下,设定Default Library Name默认库名称为work。 指定的

    2023年04月08日
    浏览(32)
  • DDS信号发生器Verilog波形发生器FPGA

    名称:DDS信号发生器Verilog波形发生器 软件:Quartus 语言:Verilog 要求:  1.可产生正弦波,锯齿波,三角波,方波4种波形,频率可调  2.具有波形选择、起动、停止功能。 代码下载:DDS信号发生器Verilog波形发生器_Verilog/VHDL资源下载 代码网:hdlcode.com 部分代码展示 设计文档

    2024年02月07日
    浏览(41)
  • Verilog代码生成FPGA仿真波形文件(VCD)介绍

    Verilog代码生成FPGA仿真波形文件(VCD)介绍 在FPGA设计中,我们需要对设计的电路进行仿真以检查其正确性。VCD(Value Change Dump)文件是一种常用的仿真波形文件格式,可以记录电路仿真过程中各个信号的变化情况。本文将介绍如何使用Verilog代码来生成VCD文件。 首先,我们需

    2024年02月06日
    浏览(34)
  • 基于FPGA的MSK调制波形Verilog代码Quartus仿真

    名称:基于FPGA的MSK调制波形Verilog代码Quartus仿真(文末获取) 软件:Quartus 语言:Verilog 代码功能: 基于FPGA的MSK调制波形 1、输入调制原始数据,输出MSK调制波形 2、包括差分编码模块,MSK调制模块,DDS模块,有符号乘法器模块等 1. 工程文件 2. 程序文件 3. 程序编译 4. RTL图

    2024年02月20日
    浏览(26)
  • 从小白开始学FPGA,vivado实操第一次,初步产生波形

            上次介绍了如何创建工程,这次来实现一个波形的产生,vivado用的是Verilog语言,语法很简单就不单独说了,慢慢在程序里很快就学会了,大概的介绍我粘在文章最后,想看就看不想看直接实操也行。         在创建的主程序中找到这个模块的括号,我把括号内容

    2024年02月05日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包