没有合适的资源?快使用搜索试试~ 我知道了~
首页SignalTap 电子系统分析及仿真
SignalTap 电子系统分析及仿真
需积分: 10 8 下载量 58 浏览量
更新于2023-05-25
收藏 45.96MB PDF 举报
据笔者的理解,无论是TimeQuest,Modelsim 还是 SignalTap 它们都是调试工具。然而,所谓调试就是一边观察对象,一边将操作逼近预 期的结果。调试在宏观上可以是观察输出,或说可视化调试对象的行为... 可是在微观 观上,调试可以是捕捉一些内部的细节变化。
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/10365885/bg1.jpg)
FPGA 那些事儿《工具篇 III》
FILE 01: 上线调试与下线调试
下午之际,笔者收拾好东西正准备离开,看见一旁的师兄正饶有心事望着窗外。印象中,
忧郁的师兄并不多见,于是笔者带着恶作剧的心情去调侃它一下。
笔者:『 怎么了,师兄?想家了吗?』
师兄:『 哎呀,师弟 ... 俺正在思考严肃问题! 』
笔者:『 师兄,别见外,让小弟帮你分担。 』
师兄:『 也好,多一个人多一份见解!尤其是你,鬼主意超多。 』
笔者:『 师兄,这是损我,还是夸我?』
师兄:『 当然是损你啦,师弟!哈哈哈!』
笔者:『 别闹了,切入主题吧 ... 』
师兄:『 师弟,你觉得 SignalTap 的用途在哪里?』
话完之后,笔者进入片刻的思考。据笔者的理解,无论是 TimeQuest,Modelsim 还是
SignalTap 它们都是调试工具。然而,所谓调试就是一边观察对象,一边将操作逼近预
期的结果。调试在宏观上可以是观察输出,或说可视化调试对象的行为 ... 可是在微观
观上,调试可以是捕捉一些内部的细节变化。
传统的单片机应该是倾向前者,因为单片机推崇高级编程,最小的调试单位也只有指令
尺寸而已。换之,FPGA 则是倾向后者多一些,因为它们更接近底层,最小的调试单位
可以去到时钟或者门级。话虽如此,调试又可以进一步分为下调与上调两种,下调就是
下线调试的意思,上调则是上线调试的简称。
所谓下调就是在掉电或者虚拟的环境之中进行调试,例如 TimeQuest 与 Modelsim 都是
属于下调范畴。我们知道 Modelsim 是一只仿真软体,它可以播放波形以及验证模块等,
然而 Modelsim 的调试工作更多是发生在虚拟环境。其中,我们可以利用激励文件创建
仿真环境,或者产生刺激与反应等。
相对之下,TimeQuest 这只软体较为纯粹许多,它是利用数学公式创建环境,然后再利
用约束命令达到激励效果。下线调试说好不好,说坏不坏,好处就是抽象的环境允许天
马行空的可能性发生,坏处则是调试结果与实际结果有一段的距离。学习 FPGA 经常会
碰见这样的情况,下调结果 Okay 就是实际结果不 Okay,又或者下调结果不 Okay 可是
实际结果却 Okay 等尴尬的局面 ...
这是下调超典型的问题,年轻的笔者也经常在哪里扑街,最终搞到心灰意冷,不再赞颂
它的美 ... 话虽如此,下调试既然是抽象的东西,偶尔用来验证疯狂的想法也不错(笔
者经常这么干)。如果读者是搞专业验证,那么它的份量可能比会更重一些。如果是一
般建模,那么下调的用处不那么严重。更多内容,读者可以参考《工具篇 I&II》。
笔者:『 我认为 SignalTap 至少不是下调的工具。』
师兄:『 为什么? 』
![](https://csdnimg.cn/release/download_crawler_static/10365885/bg2.jpg)
FPGA 那些事儿《工具篇 III》
笔者:『 因为 SignalTap 在启动的时候,师兄总是和开发板形影不离 ... 』
师兄:『 喂喂!俺也有人类的女朋友 ... 』
笔者:『 别误会,师兄!我的意思是 SignalTap 必须配合上线设备一起使用。』
师兄:『 你解释的空隙太多了,只要一句上调就足够了!』
没错,SignalTap 就是上调的工具。所谓上调就是在上电或者在实时的环境下,进行调试
的工作。如果读者是单片机的爱好者,那么上调也有热调的别称。上调的情况与下调完
全相反,好处就是测试结果几乎接近真实,缺点就是物理受限很多,而且激励的自由度
也不高。例如笔者买一架只有几个按钮的的上调设备就要饿肚子半年 ...
上调并没有下调一般多姿多彩的工具,除了昂贵又笨重的外置设备以外,很少有第三方
的上调工具同时兼容所有 FPGA,即时有也价格不菲。所以说,第一方(芯片厂商)所
提供的内置工具是唯一的选择,例如 Altera 的 SingalTap 或者 Xlinx 的 ChipScope 等。
(笔者记得第三方的上调工具好像是 Synosys 的 Identify)
再者,出于商业竞争的关系,自家的 FPGA 也仅适合自家的上调工具而已,把它们反过
来使用当然行不通。由于笔者是 A 派的家伙,故这本《工具篇 III》也是围绕在 SignalTap
的身上,所以 Xlinx 的朋友真对不起。
理论上,上调工具虽然不及下调工具强大,但是在建模的情形下,上调工具比起下调工
具更具实用性,这点笔者可以拍胸口保证。因为上调不仅不用创建复杂的环境,而且配
置工作简单又少,最重要是可以一边建模一边调试。还有,笔者在建模的时候,最讨厌
就是注意力被打乱或者被分散,下调就是如此。
例如 100% 的注意力,有 70~60% 都消耗在准备工作之上,有 20~10%被疲倦吃掉,余
下只有不到 10~5% 的注意力很难正确解析一项结果。反之,上调的准备工作只要
20~10% 的份儿而已,余下的注意力都可以放在解析的工作之上。所以说,下调往往比
上调更累人,更耗时间,也更耗精神 ... 然而,最致命还是调试结果严重偏离真实性,
这些缺点唯有读者在建模其中才会深刻感受。
师兄:『 师弟,怎么可以把下调工具贬到一文不值?』
笔者:『 师兄,我不是这个意思 ... 个人而言,我更喜欢上调工具!』
师兄:『 喂喂,别忘了!下调也是咱们的工作之一?偏食不好哦!』
笔者:『 都说不是这个意思!小弟只是从建模的角度去分析罢了!』
师兄:『 建模也要下调呀!』
笔者:『 哼!建模不好的蠢货才会整天下调下调一边叫!』
师兄:『 纳尼!你说俺!你在说俺 ... 你在暗示俺!可恶!』
糟糕,较真的性格又不小心把师兄惹怒了。师兄是传统的汉子,生活喜欢按照长长的计
划进行,它认为下调占据建模很重要的地位,所以是不择不扣的黑骨粉,尤其是
Modelsim 这只工具,它更是爱死。反之自己,不按规矩就是生活习惯,个人认为下调
太蹉跎青春了,无法原谅精力浪费在建模以外,用脑仿真最好。
![](https://csdnimg.cn/release/download_crawler_static/10365885/bg3.jpg)
FPGA 那些事儿《工具篇 III》
下调究竟重不重要?这类我们问题曾在《工具篇 II》争论到天翻地覆,最后以师兄的转
身作为落幕,结果哪位大男人既然不说话几个月,真是服了!当然,笔者也有过失的地
方,但是过渡依赖下调工具就是不行,至少个人不能原谅。因为建模会严重被拖累,笔
者也因为这样错过许多场重要的约会,结果惹怒小花不说话几个月 ...
笔者认为,不管上调还是下调,调试工具的用途都是补助建模,它们两者均有同样的目
的,只是环境不同而已,好不好用则是见仁见智。下调虽然偏离真实,但是调试尺寸很
大,小致寄存器,大致整座平台,几乎任何对象都可以以抽象的形式去调试。
图
1.1
时钟信号(抽象)。
如图 1.1 所示,假设笔者尝试产生时钟周期为 10ns 的时钟信号,那么下调可以在没有硬
件的情况下,轻松完成这项工作。
1. initial // 激励文本
2. CLOCK = 0;
3. forever # 5 CLOCK = ~CLOCK;
4. end
代码 1.1
1. create_clock -add -period 10.000 // SDC 命令
代码 1.2
如代码 1.1~2 所示,它们都是产生周期为 10ns 的时钟信号,前者利用 Verilog 的验证语
言,后者则是利用 SDC 的约束命令 ... 当然,它们如何生效还要多多配合自己的环境才
行,有关这些内容可以参考《工具篇 I&II》。
图 1.2 时钟信号(实体)。
![](https://csdnimg.cn/release/download_crawler_static/10365885/bg4.jpg)
FPGA 那些事儿《工具篇 III》
相对之下,上调在生成时钟信号的时候,必须站在实体的角度去思考。如图 1.2 所示,
晶振正在为 FPGA 提供周期为 10ns 的时钟信号,对此晶振的频率必须是 100Mhz,又或
者由内部的 PLL 硬件进一步加工。上调虽然接近真实,但是调试的尺寸非常受限与物理
环境,如果晶振的频率不是 100Mhz,又或者 FPGA 没有 PLL 硬件的话,那么上调很难
产生周期为 10ns 的时钟信号。
图 1.3 测试发送操作(写操作)。
说完下调的好话,接下来又说下调的坏话。下调试虽然拥有很大的调试尺寸,但是它在
调试读操作的表现上非常尴尬。如图 1.3 所示,假设串口模块是调试对象,如果只是发
送操作(写操作),那么我们只要观察输出即可。
图 1.4 测试接收操作(读操作)。
如图 1.4 所示,如果调试的对象是读操作,例如接收串口的一阵信息什么的 ... 理论上,
读操作的内容必须由虚拟输入替代才行。
图
1.5
创建虚拟硬件测试接收操作(读操作)。
如图 1.5 所示,但是产生一段虚拟输入并非产生时钟信号那么简单,严肃一点就涉及到
专业验证的虚拟硬件。那么问题来了,设计一只虚拟硬件可能比设计一只模块还要复杂
许多,除非对方是搞专业验证,否者这是一起赔多少赚的买卖,建模也因此本末倒置。
懒惰的笔者当然不会设计整块虚拟硬件,而是描述一段有必要的功能而已。
此外,下调还有真实性的存疑。前面说过,抽象的下调,结果往往都是倾向理想,偏离
真实,这一情况导致仿真 Okay,时序 Okay,就是实际结果不 Okay 的尴尬场面。对此,
专业验证则会基于理想的情况之下追加物理参数,尽管这样做可以逼近实际结果,可是
这些举动往往会使调试的工作越发复杂 ...
![](https://csdnimg.cn/release/download_crawler_static/10365885/bg5.jpg)
FPGA 那些事儿《工具篇 III》
说得难听一点,理想结果再怎么逼近实际物理结果,理想结果是不可能等价物理结果。
如果调试对象是简单的硬件,我们或许可以接受。反之,如果调试对象是 SDRAM 之类
的复杂硬件,读者就会大眼瞪小眼良久 ... 相对笔者,笔者的态度则是极端一点,任何
下调笔者都视为理想而非物理。因此,笔者不会说仿真结果就是硬件运行的实际表现,
而是一种排除物理因素的理想表现,这也是建模应该重视的地方,Verilog 可以描述的范
围。
图
1.6
测试发送(写操作)与接收(读操作)。
相反的,上调完全可以排除这些烦恼。如图 1.6 所示,无论测试对象是串口硬件还是
SDRAM 硬件,同样不管操作是否读写,上调都可以直接利用现有的资源。这样做,我
们不仅可以省下许多麻烦,而且调试结果也更加接近实际结果。在此,笔者需要强调一
下,尽管上调的来源是实体硬件,但是任何表现不完全等价物理结果,而是一种比较近
似的亚物理结果。
图 1.7 理想结果(左),亚物理结果(中),物理结果(右)。
如图 1.7 所示,假设两角 90°是理想结果,那么物理结果的两角可能是 120°与 60°,亚物
理结果的两角则是 100°与 80°。读者千万别误会,我们并非在学习数学,然而这项概念
是学习 FPGA 的重点。简单来说就是亚物理结果,虽然可以接受,但是不能尽信,亚物
理距离正真的物理结果还有一段尺寸,然而真正的物理结果只有专业设备才能测试得
到,但是那些设备都是一般人玩不起的宝贝。
乍看下,集成环境自带的上调工具尽是平民美食,我们顶多只能获取亚物理结果这一羊
羹而已 ... 鬼叫我们穷,有东西吃就好,别再奢侈太多!还好建模只要一份羊羹就以饱
腹,那些从事 ASCII 的家伙可能就无法满足了,笑!很抱歉,话题扯远了 ...
笔者:『 师兄,请冷静一下 ... 』
师兄:『 可恶!俺当然不会斤斤计较!让俺奉劝你一句,上调的成本可是很贵的!』
笔者:『 小弟,当然知道 ... 』
师兄:『 如果不是俺在下调哪里省吃省喝,咱们根本付不起上调! 』
笔者:『 师兄的用心良苦,小弟一直铭记在心 ... 』
剩余254页未读,继续阅读
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
qq_21539875
- 粉丝: 2
- 资源: 17
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)