SignalTap_在FPGA系统调试中的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
收稿日期:2009-01-14
作者简介:王海华(1982— ),女,湖北襄樊人,助教,硕士。
文章编号:1008-8245(2009)02-0012-03
Si gnal Tap II 在FPG A 系统调试中的应用
王海华
(黄石理工学院电气与电子信息工程学院,湖北黄石435003)
摘 要:SingalTap II 逻辑分析仪是A ltera 公司Quartus II 软件中内嵌的一种调试程序,通过把一段执行逻辑
分析功能的代码和客户的设计组合在一起编译、布局布线,完成传统逻辑分析仪的功能,可以在调试过程中观察软硬件的交互作用。
文章通过一个十进制计数器的设计实例,详细阐述用SignalTap II 对FPG A 调试的具体方法和调试步骤。
实验结果证明,该调试方法操作方便,实时性较高,可加快系统的开发过程。
关键词:SignalTap II ;FPG A;硬件调试
中图分类号:T N492 文献标识码:A
Appli cati on of Si gnalTap II i n Debuggi n g of FPGA Syste m
WANG Haihua
(School of Electrical and Electronic Infor mation Engineering,Huangshi Institute of Technology,Huangshi Hubei 435003)
Abstract:SignalTap II l ogic analyzer,which is an e mbedded debugging p r ogram in Quartus II s oft w are of A ltera com 2pany,not only can accomp lish the functi ons of traditi onal l ogic analyzer but als o monit or the interacti on of hard ware and s oft w are in the p r ocess of debugging thr ough the comp ilati on and the p lace ment and r outing of the design which combines codes perf or m ing l ogic analysis functi on with client’s design .This paper expounds the concrete debugging methods and step s by the examp le of a deci m al counter .The experi m ental results show that the debugging method fea 2tures in the convenient operati on and high real -ti m e perf or mance,which accelerates the devel opment of the system.Key words:SignalTap II ;FPG A;hard ware debugging
随着逻辑设计复杂性的不断增加,仅靠软件仿真来了解设计系统的硬件功能已远远不够,而不断需要重复进行的硬件系统的测试也变得更为困难。
嵌入式逻辑分析仪的使用可以将高效的硬件测试手段和传统的系统测试方法相结合,从而解决这些问题。
它可以随设计文件一并下载于目标芯片中,用以捕捉目标芯片内部信号节点处的信息,且不影响原硬件系统的正常工作,具有无干扰、便于升级、使用简单、价格低廉等特点
[1]。
本
文介绍SignalTap II 逻辑分析仪的主要特点和使用流程,并以一个实例介绍其具体的操作方法和步骤。
1 SignalTap II 的特点及使用流程
SignalTap II 逻辑分析仪是第二代系统级调试
工具,能够获取、显示可编程片上系统(S OPC )的实时信号,在系统设计中观察硬件和软件的交互作用。
SignalTap II 专用于Quartus II 软件,与其它嵌入式逻辑分析仪相比,其支持的通道数最多,抽样深度最大,时钟频率最高。
目前SignalTap II 逻
辑分析仪支持的器件系列包括:APEXT II,A 2
PEX20KE ,APEX20KC ,APEX20K,Cycl one ,Excali 2bur,Mercury,Stratix GX ,Stratix 。
在实际监测中,
第25卷 第2期2009年4月 黄 石 理 工 学 院 学 报JOURNAL OF HUANGSH I I N STI T UTE OF TECHNOLOGY
Vol .25 No .2
Ap r 2009
SignalTap II将测得的样本信号暂存于目标器件中的嵌入式RAM(如ES B、M4K)中,然后通过器件的JT AG端口将采得的信息传出,送入计算机进行显示和分析。
SignalTap II允许对设计中所有层次的模块的信号节点进行测试,可以使用多时钟驱动,而且还能通过设置以确定前后触发捕捉信号信息的比例[2]。
使用SignalTap II的一般流程是:①设计人员在完成设计与编译工程后,建立SignalTap II (.st p)文件并加入当前工程中;②根据测试需要配置该STP文件;重新编译工程并将该设计下载到FPG A中;③利用Quartus II软件观察、分析被测信号的波形;④在测试完毕后,可将该逻辑分析仪从工程中删除。
设置SignalTap II文件的基本步骤是[3]:①设置采样时钟。
采样时钟决定了显示信号波形的分辨率,它的频率要大于被测信号的最高频率,否则无法正确反映被测信号波形的变化。
SignalTap II 在时钟上升沿将被测信号存储到缓存。
②设置被测信号。
可以使用Node Finder中的SignalTap II滤波器查找所有预综合和布局布线后的SignalTap II 节点,添加要观察的信号。
逻辑分析器不可测试的信号包括:逻辑单元的进位信号、P LL的时钟输出、JT AG引脚信号、LVDS(低压差分)信号。
③配置采样深度、确定RAM的大小。
SignalTap II所能显示的被测信号波形的时间长度为Tx,计算公式为Tx=N×Ts(N为缓存中存储的采样点数,Ts为采样时钟的周期)。
④设置buffer acquisition mode。
buffer acquisition mode包括循环采样存储、连续存储两种模式。
循环采样存储也就是分段存储,将整个缓存分成多个片段(seg ment),每当触发条件满足时就捕获一段数据。
该功能可以去掉无关的数据,使采样缓存的使用更加灵活。
⑤触发级别。
SignalTap II支持多触发级的触发方式,最多可支持10级触发。
⑥触发条件。
可以设定复杂的触发条件用来捕获相应的数据,以协助调试设计。
当触发条件满足时,在SignalTap时钟的上升沿采样被测信号。
完成STP设置后,将STP文件同原有的设计下载到FPG A中,在Quartus II中SignalTap II窗口下查看逻辑分析仪捕获结果。
SignalTap II可将数据通过多余的I/O引脚输出,以供外设的逻辑分析器使用;或输出为csv、tbl、vcd、v wf文件格式以供第三方仿真工具使用。
2 实例分析
本文以一个十进制计数器为例,具体说明使用SignalTap II进行实时测试的具体过程。
本文的设计实例是基于A ltera公司Cycl one系列的EP1C6Q240C8[4]。
该实例由VHDL设计完成,选择Tools菜单中的RT L V iewer项,可以打开工程各层次的RT L电路图,如图1所示[5]。
双击图形中有关模块,或选择左侧各项,可逐层了解各层次的电路结构。
由图1可以看出,电路主要由1个比较器、1个加法器、1个数据选择器和1个4位锁存器组成。
图1 实例的RT L电路图
根据上述SignalTapⅡ的使用步骤,首先调入待测信号:4位输出总线信号CQ、内部4锁存器第2期 王海华:SignalTap II在FPG A系统调试中的应用 13
总线CQ I 信号和COUT 。
对SignalTap Ⅱ的参数进行设置,如图2所示。
逻辑分析仪的采样时钟选为工程的主频时钟信号CLK;采样深度设为1kB 。
在Buffer acquisiti on mode 框中的Circulate 栏设定采样深度中起始触发的位置,选择前点触发(Pre
trigger position )。
最后选择触发信号和触发方式,
在Trigger 框中的Trigger 栏选择1;选中Trigger 前面的复选框,并在Source 栏选择触发信号,在此选择EN 作为触发信号,在Pattern 栏选择上升沿触发方式。
外部实验开发系统连接好,进行编译下载。
单击SignalTap Ⅱ面板上的Autorun Analysis 按钮,
启动SignalTap Ⅱ进行采样和分析。
单击左下脚的
Data 页和“全屏控制”按钮,然后按键1(EN ),使
由低到高,产生一个上升沿,作为SignalTap II 的采样触发信号,这时就能在SignalTap II 数据窗通过
JT AG 口观察到来自实验板上FPG A 内部的实时信
号,如图3所示。
数据窗的上沿坐标是采样深度的二进制位数,全程是1024位(前位触发在12%深度处)。
如果希望观察到将要形成模拟波形的数字信号波形,可以右键单击所要观察的总线信号名(如CQ I ),在弹出的下拉菜单中选择总线显示模式“Bus D isp lay For mat ”为“L ine Chart ”,即可获得如图4所示的“模拟信号波形”。
图2 SignalTap II
的参数设置图
图3 SignalTap II
的信号数据图
图4 SignalTap II 的信号波形图
3 结论
SignalTap II 嵌入式逻辑分析器,提供了芯片
测试的一个很好的途径。
通过SignalTap II 测试芯
片无需外接专用仪器,它在器件内部捕获节点进
行分析和判断系统故障。
通过对Cyclone
EP1C6Q 240C8器件的实验证实该测试手段大大
提高系统的调试能力,具有很好的效果。
另外,在调试FPG A 的时候,
(下转第21页)
14
黄 石 理 工 学 院 学 报 2009年
fix->y wrap step=0;
fix->line_length=XRES/8;
return0;
}
(4)刷屏的实现
这里要注意的就是刷屏时一定记得坐标改变,就是在往屏上读的时候,一定根据datasheet上的要求,按页读,否则只能读到第一页上。
还有注意本代码中是每次读8位,所以申请空间时不可以是16位的,否则显示时就只显示一半。
这些都是我们碰到的问题。
(5)lcd G U I的撰写
完成framebuffer驱动后,怎么能在LCD上显示图象,这就是G U I程序的任务,就是把要写的内容写到framebuffer上相应的位置。
但本驱动要注意的是lcd屏上的点与framebuffer的映射关系。
下面是本程序的全局变量的定义
int fp=0,screensize;
struct fb_var_screeninfo vinfo;
struct fb_fix_screeninfo finfo;
char3fbp;
下面是初始化部分,将fb0与G U I的buffer做个映射
fp=open("/dev/fb/0",O_RDWR);//open the device
…….
screensize=vinfo.xres3vinfo.yres3vinfo. bits_per_p ixel/8;
fbp=(char3)mmap(0,screensize,PROT_ READ|PROT_WR I TE,MAP_SHARED,fp,0);
通过以上程序在交叉环境下进行调试编译,并加载到移置好的linux内核中,通过字库生成软件生成相应的点阵进行测试,该液晶显示屏能稳定的工作,并能根据用户的要求显示相应的字符或图形。
4 结束语
本文介绍了嵌入式系统下如何利用linux系统的framebuffer控制显示芯片,用mmap可以既快速又简单地访问显示卡的内存,很容易实现对显示屏的操作。
结果证明这种方法可以简单而高效地对显示屏进行控制,ST7565R结构简单,可广泛应用于嵌入式设备中。
参考文献
[1] Sitr onix.ST7565R65ⅹ132dot matrix LCDcontr oller/
[J/OL].[2006-03-10]htt p://www.sitr .
t w/sitr onix/p r ocluct.nsf/doc/ST2565R?open.Docu2
ment
[2] 许庆丰.嵌入式L inux下彩色LCD驱动的设计与实
现P MT(peop le Management Technol ogy)[J].电子产
品世界,2003:[02A]:48-52
[3] Corbet,J.L inux设备驱动程序[M].3版.北京:中
国电力出版社,2006
[4] A lessa mdr o Rubini.linux设备驱动程序[M].4版.
北京:中国电力出版社,2000
[5] 王田苗.嵌入式系统设计与实例开发[M].北京:
清华大学出版社,2003
(责任编辑 梅军进)
(上接第14页)
还可以设置多个嵌入式测量模块,使其具有更强的功能,这样极大地加快了系统的开发进程,从而为社会带来巨大的经济效益。
参考文献
[1] 邓成,长亚妮.嵌入式逻辑分析仪在FPG A设计中
的应用[J].现代电子技术,2004,4(3):12-15 [2] 潘松,黄继业,曾毓.S OPC技术实用教程[M].北
京:清华大学出版社,2005
[3] 黄智伟.FPG A系统设计与实践[M].北京:电子工
业出版社,2005
[4] 谭会生,张昌凡.E DA技术及应用[M].西安:西安
电子科技大学出版社,2003
[5] 梁起,姜永林,高玉龙.SignalTap II在N i os II系统调
试中的应用[J].自动化技术与应用,2006,25(8):
47-49
(责任编辑 吴鸿霞)
第2期 高 芹:嵌入式linux下framebuffer显示驱动的方法 21。