对Xilinx Cyclone系列EP2C8Q208C8芯片进行在线测试研究

随着fpga向低成本、低功耗、高性能方向发展,其i/o引脚大多采用微间距tofp或bga封装工艺,因而使引出多种内部信号的i/o引脚以及fpga的验证工作变得非常困难,同时fpga的验证和调试耗时占总开发时间的50%以上。
在验证和调试系统时,传统上是把信号线引到i/o引脚,然后采用示波器、逻辑分析仪或总线分析仪进行测量和分析。由于这些设备相当昂贵,而且调试时又需要许多连线夹,因此一不小心就会烧坏器件或电路板。
伴随着eda 工具的快速发展,altera公司在quartusⅱ软件中开发出一种嵌入式调试工具signaltapⅱ,它是基于逻辑分析核的嵌入式逻辑分析仪,不仅具备普通逻辑分析仪的触发、数据采集和存储功能,还可访问fpga器件内部的所有信号和节点,除altera公司开发的这种嵌入式逻辑分析仪外,其他主流fpga公司,如 xilinx、lattice、actel等也有相似技术,其中最具代表性的是xilinx公司的chipscope pro工具,它是专为xilinx fpga系统内的凋试而设计的。chip-scope pro核心集成在fpga中,支持所有xilinx fpga系列,并通过标准的jtag端口提供实时的调试和验证能力。
2 signaltap ii原理
signaltap ii嵌入逻辑分析仪是专门用于quartus ii设计软件中的第二代系统级调试工具。对于嵌人式逻辑分析仪内核(知识产权ip核)插入fpga的设计,同时提供触发功能和存储功能。在fpga运行过程中,满足触发条件时signaltapⅱ将启动采样并储存数据,采样数据不断刷新片内存储器内容。signaltapⅱ通过下载线byteblasterⅱ,将捕获到的信号数据从器件的ram资源载至quartusⅱ开发环境,以实时显示波形。这样就能使开发者在整个设计过程中,以系统级的速度来观察硬件和软件的交互作用。
目前,signaltapⅱ逻辑分析仪可以支持的器件系列有:cyclone、cycloneⅱ、cyclone ⅲ、apextⅱ、apex 20ke、apex20kc、apex20k、excalibur、mercury、stratix gx、stratix、stratixⅱ、stratix ⅲ等。
3 signaltapⅱ使用方法
使用signaltapⅱ的一般程序是:设计人员在完成设计并编译工程后,建立signaltap ⅱ(.stp)文件,并加入工程、配置stp文件、编译并下载没计到fpga、在quartus ⅱ软件中显示被测信号的仿真波形。
设置signaltapⅱ文件的基本流程如下:
(1)设置采样时钟。决定了显示信号波形的分辨率,根据altera公司的建议最好使用全局时钟,而非门控时钟,否则会使采样时钟处于不能准确反映设计数据的状态。
(2)配置采样深度,确定ram的大小。用户可指定要观测数据的采样点数,即数据存储深度。
(3)设置buffer acquisition mode。包括循环采样存储和连续采样存储两种模式。图1给出stp参数配置过程。
(4)触发级别。signaltapⅱ是支持多触发级的触发方式,最多可支持10级触发。在多级触发中,signaltapⅱ首先对第一级触发模式进行触发;当第一级触发表达式满足条件,测试结果为true时,signaltapⅱ对第二级触发表达式进行测试;依次类推,直到所有触发级均完成测试,并且最后一级触发条件为true时,signaltapⅱ开始捕捉信号状态。
(5)触发条件。可以设定复杂的触发条件用以捕获相应的数据,以协助调试设计。当满足触发条件时,在signaltapⅱ时钟的上升沿采样被测信号。
(6)设置被测信号。在signaltapⅱ逻辑分析仪窗口,双击鼠标左键,弹出的node finder对话框,在filter中选择要加人stp文件的节点或总线。图2所示给出了待测信号及触发设置。
完成stp设置后,加载sam对象文件(.sof),在device列表中选择目标器件,点击program device图标进行器件编程,点击run analysis进行采集、分析数据,如图3所示。
4 实例分析
现以ft245bm型usb与ep2c8 0208c8n型fpga间的简单通信为实例,具体说明如何采用signaltapⅱ验证fpga的设计。其顶层设计文件如图4所示。
ft245bm是ftdi(future technology devices intlltd)公司的一种快速usb通信接口。它无需编写片内固件程序。ftdi公司提供d2xx官方驱动程序,使用d2xx驱动程序能获得更好的数据传输性能,且传输速率最大可达1 mb/s。
ft245bm的主要功能是在内部硬件逻辑的作用下实现usb串行数据格式与并行数据格式的双向转换。pc机通过usb接口与ft245bm进行数据交换,ft245bm通过并行方式与下位微控制器通信。利用单芯片实现usb与并行fifo缓冲区的双向数据传输;通过简单的四线握手信号与fpga等逻辑器件接口;ft245bm通过8位并行数据口d[0,7]和4位读写状态/控制口rxf#、txe#、rd#、wr实现与ep2c8交换数据,而pc机与ft245bm间通过uisb总线传输数据。可选的外部eeprom用于存储usb设备的特定信息,通过eecs、eesk、eedata来完成数据的写入和读出。
在调试中,按照上述signaltapⅱ的使用步骤,在编译后的工程中添加stp文件,并对文件进行设置。首先设置采样时钟gclk,系统时钟采用32.768 mhz;然后添加采样深度的设置,设为2 k;最后在stp文件中将buffer acquisitionmode分别设为连续存储和循环采样存储两种模式进行验证。连续存储方式记录采样操作的连续过程,而在循环采样存储方式下signaltapⅱ记录多次采样时刻数据。
当外部实验开发系统连接好后,进行编译下载。单击signaltapⅱ面板上的autorun analysis按钮,启动signaltapⅱ进行采样和分析,此时就能从signaltadⅱ数据窗通过jtag口观察到来自实验板上fpga内部的实时信号,该实例的输出信号如图5所示。
实际中将遇到许多竞争处理和不完善的地方,然而由于使用了signaltapⅱ工具,所以能直观地看到内部的逻辑状况,这大大减少了开发周期,并能顺利地进行调试。
5 结语
quartus中的signaltapⅱ工具成功克服了传统逻辑分析仪的缺点,提供了一个测试器件的很好途径,还具有实时可视性,大大减少了调试、验证过程花费的时间,加快了设计周期。通过对cycloneⅱ系列ep2c8q208c8进行实验,证实该测试手段大大提高了系统的调试能力,效果很好。但需注意的是,它是一块自主逻辑,需要占据fpga资源。比如ram,le等,资源消耗量与需采集的数据量成正比。因此不能无限制地采集信号,一般采集信号的深度不大。再者,由于时钟的限制,无法看到有毛刺的现象,实际应用中也存在一定的限制。另外,signaltapⅱ工作在jtag方式,调试完成后,需将signaltapⅱ移除设计,以免浪费资源。


荣泰以消费者需求为核心,不断推出更智能的健康产品
智能办公场所综合安防监控系统解决方案
东芝将停止在日本生产手机 中国工厂不受影响
Allegro MicroSystems 公司推出全新超小型
NVIDIA上代主流主力卡RTX 2060重新恢复上市
对Xilinx Cyclone系列EP2C8Q208C8芯片进行在线测试研究
海思4K/H.265+的SoC-Hi3519拥有华为自主IP视频技术
采用高可信度的MOSFET模型进行基于模型的功率转换器设计
Adafruit PN532 RFID / NFC的快速入门指南
一种基于场路结合、对具有屏蔽机壳的电子设备进行系统级电磁敏感性仿真分析的新方法.
国芯思辰 |霍尔开关AH466可替代HAL248用于冰箱开关门灯的控制
明纬电源40W单组输出电源供应器 DRA-40系列
摩托罗拉新机moto G8曝光搭载骁龙675处理器支持指纹解锁功能
Go1.19版本开始原生支持LoongArch架构
阿里巴巴将现有应用都实现微服务化?
Hi nova9 Pro一周体验:为什么说它能让你心动?
为什么叫shot?为什么shot比掩膜版尺寸小很多?
PowerQUICC II数据错误保护机制探讨
体验华为云 Serverless FunctionGraph,一分钟上线应用
高速量子加密如何帮助保护未来的互联网