版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/k331922164/article/details/47623501

一、前言。

Signaltap是嵌入式逻辑分析仪,说到嵌入式,很容易让人想起ARM,其实Signaltap跟ARM没有半毛钱关系。这里的嵌入是嵌到FPGA的内部。

如果你用过Signaltap,就会发现,每次都要综合整个工程,再下载代码,然后才可以使用Signaltap,这说明了Signaltap是由一些逻辑电路组成,而不是仿真。

请不要把Signaltap和Modelsim混为一谈(如果是一样的话,就不用起两个名字了),就算两个软件的界面上的波形很像。

以下是Signaltap界面上的波形(代表实际的波形)。

以下是Modelsim界面上的波形(代表仿真的波形)。

二、基本操作。

首先,要确保你的工程能成功综合,并且所消耗的资源不能为0。

然后在Quartus界面下,点开Tools菜单,打开SIgnaltap。

在SIgnaltap界面下,确保Jtag和FPGA开发板能用。

设置主时钟,点击红色箭头所指的地方。

在Filter下,一般是选择Post-Compliation(综合后)。

点击List,可以看到节点名。

可以看到由原理图或者HDL文件的节点名了,这里选择clk50M。

这个clk50M不是随便选的,是原理图上的全局时钟,这里用晶振的时钟做为Signaltap的采样时钟,你也可以选PLL倍频后的时钟,这都是看具体情况而定。

选择采样深度,也就是采多少个点,这也是看具体情况而定,深度越大,需要的资源越多,这里选择128。

确保已选中Setup标签(红色箭头所指,选中为白色,未选中为灰色),然后双击红圈所示区域。

Filter同样选择综合后,同样点List列出所有节点。

选择你想要观察的节点,这里选的是dig和segment。

dig和segment,同样在原理图(或者HDL文件)中有出现过的,是有效的节点名。

成功添加节点的话,会在Setup和Data标签下,出现下图所示。

好了,现在你可以在Quartus界面下,点Save all以保存所有文件,然后综合,再到Signaltap界面下,选择sof文件,下载(红色箭头所示的图标)。

成功下载sof的话,可以看到Ready to acquire。而Instance Manager右边有四个图标,分别代表单次运行,连续运行,停止和读数据。

点连续运行,就能看到Signaltap在采集数据了(数据在不断地跳,难以观察)。

如果你不停止掉Signaltap,是不能综合代码的。

因为使用Signaltap,所以会额外消耗更多的资源,如果不想使用Signaltap的话,可以在Assignments->Settings设置一下,如下图所示。

只要去掉Enable SignalTap II Logic Analyzer前面的勾就可以了,这样,综合出来的电路就不带Signaltap了(资源会减少)。

三、高级操作。

1、条件触发。

先停止Signaltap,然后在Setup标签下,勾选条件触发下面的Basic AND,然后在下面输入想要的触发条件,这里填的是EF,意思是当dig(8bit)为十六进制的EF时,就会触发Signaltap采样,而其它情况不触发。其中Basic AND是所有触发条件相与之后为真,就触发采样,当然也可以选择Basic OR(相或为真就触发采样)和Advanced。

如果不满足触发条件,Signaltap就一直显示Waiting for trigger。

一般用上面的方法设置条件触发就够用了,如果有特殊要求,就用Signal Configuration下的条件触发,会有更强大的功能。

2、文件输出。

在File->Export,可以把Signaltap采样到的数据,保存为其它格式的文件,其中有csv,tbl,bmp,jpg,vcd,这五种格式可选。其中csv格式适合配合MATLAB使用。

3、数据格式。

在需要观察的节点上,右击。

然后在Bus Display Format下,可以选择不同的数据格式,以方便观察。其中unsigned/signed line chart是用来观察连续信号的波形,如DDS下的sin/cos,或者是FSK,QAM等。

4、设置时间单位。

在红色箭头所指的地方,右击一下,选择Time Units,可以设置时间单位。

我这里的采样时钟是50M,所以,周期是20ns。

这样,Signaltap每采一个数据,所需要的周期就是20ns。为什么这个时间单位需要人手设定?就是因为Signaltap不带频率计的功能(下面在Signaltap内部原理有讲述)。

5、MATLAB与Signaltap联合使用。

首先,要把signaltap运行起来,采集到数据。

然后,在MATLAB下,添加quartus的bin文件的路径(32位的添加bin,64位的添加bin64),然后调用alt_signaltap_run函数就可以了,但是我这里却找不到该函数,实际是有这个dll的,路径也添加正确,该方法未果。

四、Signaltap内部原理。

上图是signaltap的内部结构图,它是利用JTAG边界扫描的原理来读取FPGA内部节点的值,然后送到buffer(缓冲器),再由JTAG把数据送到quartus下的signaltap软件。

整个过程,都只有读取数据的作用,至于数据的频率(如DDS下的sin信号的频率)是无法直接知道的,只能让设计者自己计算得出。

五、其它问题。

1、为什么在clk50M下面,会产生clk50M~clkctrl这个信号?

在工艺映射表(适配后),可以查看到这个信号。

其实clk50M~clkctrl就是clk50M的buffer而已,用于提高扇出系数,这里fan-out=274。

2、为什么加了Signaltap之后,原来能用的代码,变得不能用?

因为Signaltap本身需要占用一些逻辑资源,而这些逻辑资源影响了综合器的布局布线,所以有些时候加了Signaltap,时序反而乱了。不过,也有加了Signaltap时序变好的情况。

3、既然Signaltap采出来的信号是实际的波形,但是某些时候却跟实际的不相符?

就算是用Signaltap采出来的波形,也是需要遵循采样定理的,如果不满足采样定理,那么采出来的波形不能代表实际的波形。

而且Signaltap里面的触发器本身有滤波的作用,所以有些很小的毛刺,采不到,但是用示波器可以看出来。

Signaltap的使用相关推荐

  1. FPGA实验三——计数器的实现并用SignalTap验证

    实验三 • 1.参照代码,设计一个0-17的计数器,当计数值为17的时候, OV输出1,其他输出0,注意设定合理的信号位宽. • 2.针对以上计数器,修改输出逻辑,当计数值为0-8时, OV输出0,9 ...

  2. 嵌入式逻辑分析仪SignalTap II 设计范例

    嵌入式逻辑分析仪-SigbalTap II,脱离软件仿真,嵌入式逻辑分析仪,多通道数据测试,在没有外置logic的时候.还是比较爽的事情 本例中用正弦波.三角波.锯齿波.方波波形数据为参考,简要讲解S ...

  3. SignalTap II逻辑分析仪的使用

    一.例子 我们使用如图1所示的verilog代码所实现的开关电路作为例子.这个电路把DE系列开发板上的前8个开关简单的和对应的8个红色LED相连接.它是这样工作的:在时钟(CLOCK_50)的上升沿读 ...

  4. (Z)使用SignalTAP II为了避免某些节点被弄丢, 必须要关闭的编译选项

    Original address: http://blog.ednchina.com/riple/74835/message.aspx# 以前遇到过几次类似问题,只知道关闭一下就可以通过,但是没搞清原 ...

  5. (z)如何在SignalTAP II中保留特定节点

    Original address: http://blog.ednchina.com/riple/74826/message.aspx 在使用SignalTAP II的过程中,我经常发现一些用于调试的 ...

  6. (筆記) 如何增加SignalTap II能觀察的reg與wire數量? (SOC) (Quartus II) (SignalTap II)

    Abstract 無法在SignalTap II觀察reg與wire,主要都是因為被Quartus II優化的關係,在Quartus II簡單的設定,就能增加SignalTap II能觀察的數量. I ...

  7. SignalTap II里面Power-Up Trigger的使用

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/huan09900990/article/details/78900696 在Quartusii中使用 ...

  8. quatus ii------调试利器 SignalTap II简介(基于TIGER BOARD 板子)

    1.为什么要用SignalTap ii: 在上板运行前都需要进行仿真,Modelsim 的使用可以使 FPGA 设计的许多错误扼杀在上板运行前,但这并不代表有了 Modelsim,我们的设计就天衣无缝 ...

  9. 【FPGA学习笔记】SignalTap II软件的使用

    一.SignalTap II软件简介 SignalTap II是第二代系统级调试工具,它集成在Altera公司提供的FPGA开发工具Quartus II软件中,可以捕获和显示实时信号,是一款功能强大且 ...

最新文章

  1. 计算机对英语口语考试成绩,英语口语考试面对“电脑考官” 有何临场技巧
  2. VS2008 安装盘的问题
  3. The Unique MST
  4. linux之dos2unix命令解决vi打开文件行尾巴显示^M
  5. Linux安全配置规范
  6. c语言课程设计做科普,【图片】发几个C语言课程设计源代码(恭喜自己当上技术小吧主)【东华理工大学吧】_百度贴吧...
  7. 安卓游戏广告加速插件_游戏加速器(强烈推荐!)[PC+安卓]
  8. 谷歌金山词霸正式发布--免费午餐越来越多
  9. 如何利用Social Listening从社会化媒体中“提炼”有价值的信息?
  10. 招行权证割肉比赛开演 10个交易日后寿终正寝
  11. 机器人无限火力无限e符文_无限火力快乐玩法:无限击飞机器人
  12. dfs和bfs走迷宫
  13. 台大郭彦甫教授Matlab讲解笔记(一)
  14. 浅谈 ext2 文件系统的特点、优缺点以及使用场景
  15. Spring Cloud中的Eureka和Zookeeper的区别在哪?
  16. Javaweb+mysql校园二手平台(用户设置、发布信息、信息管理、搜索信息,留言,及系统管理)
  17. html标签可以分为什么标签和什么标签,什么是HTML标签?HTML标签有什么作用?
  18. 总结了 30 段极简 Python 代码
  19. java实验三_JAVA实验三及总结
  20. android安卓手机怎么修改自己的ip地址

热门文章

  1. html怎么在jupyter编辑,jupyter home jupyter环境变量怎么设定
  2. find linux 目录深度_把 Linux 上的文件列表和排序玩出花来
  3. [蓝桥杯]试题 基础练习 Huffuman树
  4. Unity3D基础16:网格过滤器和渲染器
  5. bzoj 1662: [Usaco2006 Nov]Round Numbers 圆环数(枚举)
  6. HDU 5943 2016CCPC杭州 K: Kingdom of Obsession(二分匹配)
  7. matlab bwdist
  8. 吴恩达神经网络和深度学习-学习笔记-8-梯度消失与爆炸 + 梯度检测
  9. matlab2c使用c++实现matlab函数系列教程-toeplitz函数
  10. Vim编辑器显示行号且定义tab键为4个空格