signaltap使用简记
转自:http://blog.163.com/taofenfang_05/blog/static/64214093201021751534644/
概述:
利用FPGA片上资源实现逻辑分析仪的功能。signaltap和你自己的逻辑设计一起被quartus编译,生成的sof文件中会包含signaltap。使用时在quartus中打开当前工程,打开stp文件(signaltap的定义文件),把sof下载到器件中就可以开始抓取波形了。
用法:
1. 在工程中加入signaltap: tools->signaltapII logic analyzer,设置采样时钟、欲抓取的波形、触发条件。所有这些信号必须源自于自己的逻辑设计中已有的信号,可以是rtl中的信号、引脚上的信号、综合后的门级信号。
2. 可以为每个被抓取的信号单独设置触发方式。最简单的方法是:只对一个被采样信号设置触发方式,其余信号的触发方式都设成‘don't care‘
3. 编译工程,得到包含signaltap的sof文件。打开stp文件,连接好FPGA板,配置JTAG chain让软件找到FPGA器件,把sof下载到器件中就可以开始抓取波形了。
4. 改变触发方式是不需要重新编译工程的,其他操作就需要重新编译工程
几个特点:
1.signaltap的时钟: signaltap是在采样时钟的上升沿进行采样。采样时钟不仅可以使用design中的任何一个信号,还可以指定从FPGA pin外部输入时钟,Altera建议采用全局时钟。一个普遍的错误的观点认为signaltap的采样时钟局限于design中的时钟频率,所以不能观察到design中clk的glitch,这是片面的。假设design中的最高clk是10Mhz,那么我们可以外加一个(或用pll生成一个)100Mhz的时钟给signaltap,这样就可以看到任何宽度大于1/100 us的glitch了。
2. 加入被采样信号时有2个选项:data enable、trigger enable,如果不勾选data enable会减少缓存容量,节省FPGA资源。
3. 缓存配置:有mem block的器件可以选择mem type,这决定了signaltap的采样存储区域是用FPGA的逻辑单元实现还是用mem block实现。
4. 增量编译:Altera建议使用signaltap的工程开启增量编译,如不开启,post-fit信号将不能用于高级触发方式。推测quartus是编译完design之后再通过增量编译来把signaltap编译进来,可以先将工程分区,把signaltap划到一个分区中,这样当修改了signaltap之后只需编译signaltap部分就可以了。
tips:
1. ‘trigger in/out’属于外触发方式。当in触发条件满足时开始抓取波形,同时在out上输出一个使能信号,这用于多个signaltap存在时触发其他的LA。
2. 设置和编译含有signaltap的工程不需要JTAG和FPGA保持连接,使用时只需要stp和sof这2个文件就可以抓取波形了。
以下转抄:
SignalTap II的特点及使用
--- SignalTap II嵌入逻辑分析仪集成到Quartus II设计软件中,能够捕获和显示可编程单芯片系统(SOPC)设计中实时信号的状态,这样开发者就可以在整个设计过程中以系统级的速度观察硬件和软件的交互作用。它支持多达1024个通道,采样深度高达128Kb,每个分析仪均有10级触发输入/输出,从而增加了采样的精度。SignalTap II为设计者提供了业界领先的SOPC设计的实时可视性,能够大大减少验证过程中所花费的时间。目前SignalTap II逻辑分析仪支持的器件系列包括:APEXT II, APEX20KE, APEX20KC, APEX20K, Cyclone, Excalibur, Mercury, Stratix GX, Stratix。
--- SignalTap II将逻辑分析模块嵌入到FPGA中,如图1所示。逻辑分析模块对待测节点的数据进行捕获,数据通过JTAG接口从FPGA传送到Quartus II软件中显示。使用SignalTap II无需额外的逻辑分析设备,只需将一根JTAG接口的下载电缆连接到要调试的FPGA器件。SignalTap II对FPGA的引脚和内部的连线信号进行捕获后,将数据存储在一定的RAM块中。因此,需要用于捕获的采样时钟信号和保存被测信号的一定点数的RAM块。
--- 使用SignalTap II的一般流程是:设计人员在完成设计并编译工程后,建立SignalTap II (.stp)文件并加入工程、配置STP文件、编译并下载设计到FPGA、在Quartus II软件中显示被测信号的波形、在测试完毕后将该逻辑分析仪从项目中删除。以下描述设置 SignalTap II 文件的基本流程:
--- 1.设置采样时钟。采样时钟决定了显示信号波形的分辨率,它的频率要大于被测信号的最高频率,否则无法正确反映被测信号波形的变化。SignalTap II在时钟上升沿将被测信号存储到缓存。
--- 2.设置被测信号。可以使用Node Finder 中的 SignalTap II 滤波器查找所有预综合和布局布线后的SignalTap II 节点,添加要观察的信号。逻辑分析器不可测试的信号包括:逻辑单元的进位信号、PLL的时钟输出、JTAG引脚信号、LVDS(低压差分)信号。
--- 3.配置采样深度、确定RAM的大小。SignalTap II所能显示的被测信号波形的时间长度为Tx,计算公式如下:
--- Tx="N"×Ts
--- N为缓存中存储的采样点数,Ts为采样时钟的周期。
--- 4.设置buffer acquisition mode。buffer acquisition mode包括循环采样存储、连续存储两种模式。循环采样存储也就是分段存储,将整个缓存分成多个片段(segment),每当触发条件满足时就捕获一段数据。该功能可以去掉无关的数据,使采样缓存的使用更加灵活。
--- 5.触发级别。SignalTap II支持多触发级的触发方式,最多可支持10级触发。
--- 6.触发条件。可以设定复杂的触发条件用来捕获相应的数据,以协助调试设计。当触发条件满足时,在signalTap时钟的上升沿采样被测信号。
--- 完成STP设置螅 玈TP文件同原有的设计下载到FPGA中,在Quartus II中SignalTap II窗口下查看逻辑分析仪捕获结果。SignalTap II可将数据通过多余的I/O引脚输出,以供外设的逻辑分析器使用;或输出为csv、tbl、vcd、vwf文件格式以供第三方仿真工具使用。
signaltap使用简记相关推荐
- ProGit-读书简记
ProGit-读书简记 from: http://lanbing510.info/2016/12/07/ProGit.html?ref=myread 写在前面 Git是一个非常好的版本管理工具,最早是 ...
- FPGA实验三——计数器的实现并用SignalTap验证
实验三 • 1.参照代码,设计一个0-17的计数器,当计数值为17的时候, OV输出1,其他输出0,注意设定合理的信号位宽. • 2.针对以上计数器,修改输出逻辑,当计数值为0-8时, OV输出0,9 ...
- 嵌入式逻辑分析仪SignalTap II 设计范例
嵌入式逻辑分析仪-SigbalTap II,脱离软件仿真,嵌入式逻辑分析仪,多通道数据测试,在没有外置logic的时候.还是比较爽的事情 本例中用正弦波.三角波.锯齿波.方波波形数据为参考,简要讲解S ...
- SignalTap II逻辑分析仪的使用
一.例子 我们使用如图1所示的verilog代码所实现的开关电路作为例子.这个电路把DE系列开发板上的前8个开关简单的和对应的8个红色LED相连接.它是这样工作的:在时钟(CLOCK_50)的上升沿读 ...
- Mysql一主多从和读写分离配置简记
Mysql一主多从和读写分离配置简记 标签: mysql数据库服务器class数据库servermanager 2012-05-30 16:44 14981人阅读 评论(1) 收藏 举报 分类: 数 ...
- (Z)使用SignalTAP II为了避免某些节点被弄丢, 必须要关闭的编译选项
Original address: http://blog.ednchina.com/riple/74835/message.aspx# 以前遇到过几次类似问题,只知道关闭一下就可以通过,但是没搞清原 ...
- (z)如何在SignalTAP II中保留特定节点
Original address: http://blog.ednchina.com/riple/74826/message.aspx 在使用SignalTAP II的过程中,我经常发现一些用于调试的 ...
- asp.net core 3.0 更新简记
asp.net core 3.0 更新简记 Intro 最近把活动室预约项目从 asp.net core 2.2 更新到了 asp.net core 3.0,记录一下,升级踩过的坑以及经验总结,包括但 ...
- (筆記) 如何增加SignalTap II能觀察的reg與wire數量? (SOC) (Quartus II) (SignalTap II)
Abstract 無法在SignalTap II觀察reg與wire,主要都是因為被Quartus II優化的關係,在Quartus II簡單的設定,就能增加SignalTap II能觀察的數量. I ...
最新文章
- DotNet的JSON序列化与反序列化
- python【力扣LeetCode算法题库】409-最长回文串(数学 计数器)
- 查看windows 端口进程
- Deepin v20系统关机或重启的时候提示unattended upgrades shutdown的解决办法
- view.post不执行的坑点
- idea插件sonar安装使用教程
- C语言库文件ctype.h中重要的库函数
- Qt动态映射qobject_cast()
- oracle 函數索引(1)
- Android(java)学习笔记97:使用GridView以及重写BaseAdapter
- 10个最好的免费响应式Joomla模板
- Word中公式编辑倒V和横线加法
- 使用DOS命令查找并复制指定目录及其子目录下的同一后缀所有文件
- imagemagick对于图像处理的一些方式
- 【python】sys模块操作使用
- Trie——BZOJ4567/Luogu3294 [Scoi2016]背单词
- STM32 定时器编码器模式时,如何理解编码器计数
- 轮播图图片大小不统一
- oc对mysql支持_iOS中数据库使用什么技术实现的
- 深入理解计算机系统 (第 1 节)
热门文章
- UE5 CommonUI初学笔记
- 我是如何解决电脑连接WiFi提示无线适配器或访问点有问题
- 1901年-2020年全球气象数据 CRU TS 介绍、下载与使用教程
- NCL 错误 fatal:Loop end must be scalar, can‘t execute loop
- 从此不求人:自主研发一套PHP前端开发框架-沈逸-专题视频课程
- 两个时间相差距离多少天多少小时多少分多少秒
- 台积电投注美国,结果美国却在放弃台积电,外媒:卸磨杀驴
- 嘉立创盘中孔设计要求汇总
- AIX 热添加FcOE卡
- 南方科技大学计算机世界排名,2021年南方科技大学专业排名排行榜公布 附招生专业目录及计划...