基于SoPC的FPGA在线测试方法

发布者:VS821001最新更新时间:2011-11-09 关键字:SoPC  FPGA在线测试 手机看文章 扫描二维码
随时随地手机看文章

  本文提出了一种基于SoPC的FPGA在线测试方法,是对现有FPGA在线测试方法的一种有效的补充。

  1 在线测试数据操作流程

  基于SoPC的FPGA在线测试方法的数据操作流程如图1所示。如果用户需要采集FPGA的测试数据并且上传至PC机,则用户首先要将被测试数据写入DMA读从外设,然后系统自动启动DMA控制器,将数据送入Nios II的数据存储器。再由JTAG UART控制器经JTAG接口上传至Nios II IDE(NiosⅡIntegrated Development Environment,Nios II开发环境),Nios II IDE将接收到的数据写入测量数据存储文件,从而完成了FPGA测试数据的上传。如果用户需要将PC机中的激励数据文件下载至FPGA,则系统首先在Nios II IDE中通过Host-Based File System读出激励文件数据,然后由JTAG接口经JTAG UART控制器下载至Nios II处理器的数据存储器,Nios II发起DMA写传输把数据从数据存储器搬运至DMA写从外设并写入FPGA片上FIFO,从而完成了激励数据的下载。

  

 

  2 SoPC平台架构

  SoPC系统部件组成见图2,系统包括Nios II处理器、On-Chip RAM、JTAG UART、EPCS控制器,SYSID、定时器、DMA读控制器dma_0、DMA写控制器dam_1,以及自定义DMA读从外设fifo_control与自定义DMA写从外设ext_rdfifo_controller。NiosⅡ的复位地址为EPCS控制器,异常地址为On_ChipRAM。DMA读控制器的读主端口连接至自定义DMA读从外设,写主端口连接至On-Chip RAM,DMA写控制器的读主端口连接至On-Chip RAM,写主端口连接至自定义DMA写从外设。系统的JTAG UART主要实现JTAG接口的控制,使FPGA能够通过JTAG接口与PC机进行通信。

  3 DMA读、写从外设的设计

  测试数据在DMA控制器读数据之前是存储在片上FIFO的,而激励数据是通过DMA控制器写入片上FIFO的。然而DMA控制器数据读、写主端口采用的是Avalon存储器映射接口(Avalon Memory Mapped Interface,Avalon-MM接口),不能直接对FIFO进行操作,Altera公司也没有提供相应的控制器核,需要用户自己开发DMA读从外设用于控制FIFO把测试数据传送给DMA控制器,以及DMA写从外设用于控制FIFO接收DMA控制器的激励数据。本文开发的DMA读从外设模块结构框图如图3所示。

  

 

  DMA读从外设包括了3个端口,即控制从端口、DMA从端口以及FIFO写端口。DMA读从外设的控制从端口包括3个寄存器,分别是状态寄存器status、控制寄存器control、FIFO已使用字数寄存器usedw。NiosⅡ通过读/写这些寄存器获取此外设的状态以及实现对此外设的控制。另外,控制端口还包含了中断接口用于此外设向NiosⅡ发起中断请求。DMA读从外设产生中断请求有2种情况:一是内部FIFO写满;二是收到外部测试数据的包结束信号。此时,即使FIFO未写满,DMA读从外设也会发起中断请求,从而实现采集的测试数据的立即传输。DMA从端口采用带流控制信号的AvalonMM总线,用于实现DMA控制器的测试数据读操作;管道接口是测试数据写入此外设的FIFO接口,包括数据总线、写有效信号和一些状态信号(如FIFO写满信号等)。DMA写从外设的结构与DMA读从外设类似,只是没有中断请求信号,这里不再详述。

[page]

4 数据传输的NiosⅡ控制

  4.1 DMA控制器的操作

  Altera公司为DMA控制器提供了硬件抽象层(HAL)接口函数,使用这些函数编程需要注意的地方主要有2点:一是要考虑到Cache数据的一致性问题,在调用发送/接收函数之前需要调用相关函数清除数据Cache中的内容;另外一个需要注意的地方是DMA控制器的alt_dma_txchan _send()函数以及alt_dma_rxchan_prepare()函数的第3个参数表示的是请求DMA控制器发送/接收的字节数,而不是字或者双字、四字数。

  4.2 Host-Base File System

  Altera公司提供的Host-Base File System组件可以使正在目标板上执行的程序读/写存储在主机上的文件,文件的数据是NiosⅡIDE通过Altera下载线缆与目标板进行数据交互的。目标板上的程序可以使用ANSIC标准库函数如fopen、fread等函数来进行文件的操作,用户使用Host-Base File System前必须先在NtosII IDE工程中添加这个软件组件,而且只能运行在Debug模式下。另外,对于上传至PC的测试数据,也可以使用设置标准输入/输出信息存放于主机上的某个文件(在NiosⅡIDE/Run/Run…/Common下指定)而绕开Host-BaseFile System,但是对于主机文件数据下载给目标板的情况,对文件的操作必须添加这个组件。

  4.3 测试数据读、写控制

  当需要采集测试数据时,首先在FPGA内部用硬件语言编写模块把测试数据存入DMA读从外设的FIFO,然后DMA读从外设产生中断请求,NiosⅡ接到中断请求后,首先查看中断产生的原因是FIFO写满还是数据包结束。若中断原因是数据包结束,则NiosⅡ读DMA读从外设的usedw寄存器获取FIFO已使用字数,并把这个值作为DMA控制器的传输长度发起DMA传输;若是FIFO写满,则发起固定长度(如FIFO深度)的DMA读传输,DMA传输完毕后用ANSIC标准函数fwrite()把数据写入PC机的数据文件。

  对于存储在PC机上的数据激励文件,NiosⅡIDE首先通过ANSIC标准函数fread()读入NiosⅡ的数据存储器,在查询DMA写从外设中FIFO未满时,把数据写入外部的FIFO,完成数据激励文件的传输。

  5 系统验证

  5.1 系统测试条件

  本次测试中FPGA芯片为Altera公司的CycloneIII EP3C120F484C8,系统时钟为50 MHz,使用的JTAG传输线缆为USB Blaster,NiosⅡ为经济模式,自定义DMA读、写外设内部FIFO均为2 K×16 b,NiosⅡ数据存储器On-Chip RAM大小为60 KB,使用Host-Base File System组件,在NiosⅡ工程属性中选中“Reduced device drivers”,经过NiosⅡIDE编译后代码占用程序存储空间为50 KB。

  5.2 测试数据传输测试

  在FPGlA目标系统测试数据上传至PC的测试中,在FPGA内部用verilog语言编写了一个数据源模块,数据源输出为2~8 000的计数值,数据宽度为16位,在数据8 000输出时,数据包结束信号有效,这样既可以验证FIFO满中断的情况又可以验证数据包结束中断的情况。测试数据源首、尾部的SignalTapⅡ测试波形如图4所示。在NiosⅡIDE,通过把pritnf()函数输出的调试信息自动存放到一个文本文件中,删去首、尾的调试信息即得到有效数据文件。文本文件数据结果如图5所示,其中数字后面的小黑块代表换行符,从结果看,此方法实现了测试数据的正确上传(注:由于测试数据太长,文中只给出数据的首部和尾部的截图)。

  

 

  5.3 激励数据传输测试

  在激励数据传输测试时激励数据为存储于PC机上的计数值为1~2048二进制流文件,数据宽度为16位,通过加入Host-Base File System组件调用fopen()与fread()函数完成数据的读出,当查询DMA写从设备未满时发起DMA传输,图6是外部逻辑读DMA写从设备中FIFO的Signal Tap II测试波形图。从图中的结果看,数据读出为1~2 048,实现了激励数据的正确下载。

  

 

  6 结语

  本文提出了一种基于SoPC的FPGA在线测试方法,这种在线测试方法可以把存储在FPGA片上FIFO的测试数据通过JTAG接口上传至PC机并写入文件,也可以把存储在PC机上的激励文件通过JTAG接口下载到FPGA的片上FIFO。相比Altera已有的在线测试方法,此方法采用DMA操作,具有较高的数据吞吐量;采用NiosⅡ控制测试/激励数据的传输,无需手动操作;采集过程的控制由C语言编写,简单易用;使用PC机上的激励文件或者把测试数据存储为PC机上的文件,可以使用其它分析工具(如Matlab)产生激励文件或者对测试数据文件进行分析;另外,此方法对测试数据的采样深度没有限制。因此,这种在线测试方法具有广泛的应用前景。

 

 

关键字:SoPC  FPGA在线测试 引用地址:基于SoPC的FPGA在线测试方法

上一篇:基于CC2480的土壤温度和水分梯度测量系统
下一篇:一种新型的油库液位测量系统

推荐阅读最新更新时间:2024-03-30 22:20

基于SOPC的列车通信网卡的设计
  国内外车载网络技术的发展是随着现场总线网络技术的发展而发展起来的,先后产生了RS485、Lonworks、WorldFIP等多种总线网络形式。1999年,国际电工委员会(IEC)颁布了IEC-61375标准,该标准中将车载网络分为两级总线的层次结构,即用于连接各节可动态编组的车辆间的绞线式列车总线WTB(Wire Train Bus)和用于连接车辆(或固定编组的车辆单元)内部各种设备的多功能车辆总线MVB(Multifunction Vehicle Bus),它们之间的列车总线节点起着网关的作用,其中MVB网络由于较低的要求和其易用性高的特点,在实际中运用很广泛。本文通过深入研究几种列车通信网络产品底层协议,特别是TCN的底层
[汽车电子]
无刷直流电机驱动控制器的S0PC技术研究
  无刷直流电机具有无电刷和换相火花,体积小,低噪声等诸多优点,广泛应用在当今的控制系统中。目前对无刷直流电机的控制主要由单片机和DSP实现。但是其外围电路复杂,对系统的稳定性和可靠性有较大的影响。近年来,基于可编程门阵列(FPGA)的硬件设计技术已经成为一种全新的设计思想。与专用集成电路(ASIC)不同的是,FPGA本身只是标准的单元阵列,没有一般集成电路所具有的功能,但用户可以根据需要,通过专门的布局布线工具对其内部进行重新编程,在最短的时间内设计出自己专用的集成电路,从而提高产品的竞争力。由于它以纯硬件的方式进行并行处理,而且不占用CPU的资源,所以可以使系统达到很高的性能。本文用纯硬件的方式设计实现了无刷直流电机驱动控制器
[工业控制]
基于SoPC的步进电机多轴控制器
步进电机是一种完全数字化的电动执行机构,从原理上说,其角位移与驱动脉冲的个数成正比,在正常情况下,步进电机具有使用简单、运动精确、连续运行无累积误差等特点,因而被广泛应用于各种位置控制系统中。当前由于仪器内部的机械系统日益复杂,其运动往往是多自由度的,因而通常需要利用多个步进电机的运动合成来实现系统的各种动作。例如,对图1所示的半自动生化分析仪的取样针移位系统,该系统的动作执行就是由两部分组成的:一是固定基座上的步进电机控制取样横臂进行垂直方向上的升降运动;二是滑块上的步进电机控制取样横臂进行水平方向上的旋转运动。这两个运动的合成实现了取样横臂的位置变换。 传统的步进电机多轴控制器是以微控制器(MCU)/微处理器(MPU)/专
[应用]
基于SOPC的温湿度自动控制系统
引言 SOPC(System On a Programmable Chip)称为可编程片上系统,它是基于用可编程逻辑器件(FPGA或CPLD)的可重构的片上系统(SOC)。可编程片上系统(SOPC)是AL-TERA公司提出的一种灵活、高效的SOC解决方案。它将处理器、存储器、I/O口等系统设计需要的功能模块集成到一个可编程器件上,构成一个可编程的片上系统。SOPC结合了SOC和CPLD、FPGA各自的优点,具备有以下基本特征:至少包含一个嵌入式处理器内核;具有小容量片内高速RAM资源;丰富的IP核资源可供选择;足够的片上可编程逻辑资源;处理器调试接口和FPGA编程接口;包含部分可编程模拟电路;单芯片、低功耗、微封装。 温湿
[工业控制]
基于<font color='red'>SOPC</font>的温湿度自动控制系统
SoPC系统设计的综合优化方案
为了提高设计性能(有时甚至只是为了达到设计要求),对所设计的SOPC系统进行综合优化是非常必要的。论文结合具体工程,以Altera公司的FPGA EP2S60为例,探讨了SOPC系统设计的综合优化方法。 1 综合优化设计的一般流程和方法 在FPGA处理器没有选定前,可以进行SOPC系统的开发。根据编译和优化的效果指导处理器芯片的选型,选择合适的处理器型号、速度等级和封装。当硬件系统设计好后,就只能在已选择好的处理器芯片上进行优化。一般的优化方法有Verilog程序代码优化、编译和布线优化设置,在添加Nios II系统后也涉及对Nios II系统的优化。在设计过程中应遵循模块化设计思想,如果前面的优化都不能达到满意的效果
[嵌入式]
基于SOPC的MPEG-4视频播放器
摘要 介绍Altera SOPC平台上MPEG-4视频播放器的实现。以NiosII用户自定义指令方式实现IQ、IDCT、MC等计算密集型功能模块,从而在XviD Codec基础上实现Simple Profile视觉框架下,L1级、QCIF、25 fps的MPEG-4视频实时解码。 关键词 MPEG-4 视频播放器 SOPC NiosII 引言   多媒体技术实用化的关键技术之一,就是解决视频、音频数字化以后数据量大,与数字存储媒体、通信网容量小的矛盾,其解决途径就是压缩。   为了支持低比特率视频传输业务,MPEG(Moving Picture Experts Group)推出了MPEG-4标准。于1999年正式成为国际标准的
[手机便携]
基于SoPC的双边带调幅波系统设计
调幅就是用低频调制信号去控制高频波信号的振幅。经过振幅调制的高频载波称为调幅波,它保持着高频载波的频率特性,但包络线的形状和信号波形相似。产生调幅波的主要方法是利用波形合成技术。目前波形合成技术主要有两种通用的方法,一种是使用专用的数字频率合成DDS芯片,另一种是基于SoPC的解决方案。专用 DDS 芯片的功能比较多,但控制方式固定、不灵活。而在FPGA芯片上利用DDS信号可以很容易地实现各种比较复杂的调频、调相和调幅信号,具有良好的实用性。   1 DSB的基本原理与调制模型   当调制信号为单频信号时,若设调制信号为uΩ(t)=UΩmcosΩt,载波信号为uc(t)=Ucmcosωct,通常要求ωc Ω,则双边带调幅
[嵌入式]
基于<font color='red'>SoPC</font>的双边带调幅波系统设计
车载导航监控终端功能需求及基于SOPC技术设计方案
1 引 言 车载导航监控终端可广泛用于交警巡逻车、消防用车、公安用车、运钞车、长途客车及一些特殊车辆上, 监控中心通过无线通信网络与车载导航监控终端进行信息交流, 从而实现监控中心对车辆的集中、高效、可视化管理以及车辆之间的相互协作。 本设计系统分析了车载导航监控终端的各种功能需求, 借助 ltera StratixTM 系列FPGA EP1S10丰富的逻辑资源, 应用SOPC Builder开发工具实现了车载导航监控终端硬件结构的高度集成。同时,利用N ios嵌入式处理器强大的处理能力, 配合使用 C /OS- II实时操作系统, 实现了终端对多种传感信息的实时、高效处理。 2 功能描述 车载导航监控终端主要实现
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved