一种基于SoPC的FPGA在线测试方法

发布者:532829319hmk最新更新时间:2011-04-01 来源: 现代电子技术关键字:SoPC  FPGA  在线测试  NiosⅡ  altera 手机看文章 扫描二维码
随时随地手机看文章
   

摘要:针对Altera公司现有FPGA在线测试方法无法适应大批量测试/激励数据自动传输的情况,论文提出了一种基于SoPC的FPGA在线测试方法,该方法采用Nios II控制数据传输过程、DMA协助数据传输、FIFO作为数据暂存,采用自定义外设完成了DMA模块与FIFO的接口设计,从而DMA可以直接操作FIFO,测试结果表明该方法是一种可行且高效的FPGA在线测试方法。创新性在于充分利用JTAG接口完成FPGA的在线测试,同时测试数据能够写入PC中的文件/激励数据从文件读出。
关键词:在线测试:SoPC;DMA;Host-Base File System

    可编程逻辑器件供应商Altera公司针对FPGA的开发推出了6种系统在线测试方法:SignalTapⅡ、SignalProbe、Logic Analyzer Inter-face、In-System Sources and Probes、In-System Memory Content Editor以及Virtual JTAG。上述各种在线测试方法中,只有最后两种方法允许PC和FPGA进行基于文件的数据交互。而In-System Memory Content Editor只允许用户手动更新FPGA片上RAM的内容,不利于测试数据的大规模自动采集和传输。Virtual JTAG虽然可以实现测试数据采集和传输的自动控制,但是需要利用TCL接口函数编写代码,而且要求用户对JTAG有深入的了解,增大了开发难度。本文提出了一种基于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读从外设类似,只是没有中断请求信号,这里不再详述。

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  在线测试  NiosⅡ  altera 引用地址:一种基于SoPC的FPGA在线测试方法

上一篇:高阶FIR滤波器的计算机设计与FPGA实现
下一篇:FPGA为你免除微控制器停产的后顾之忧

推荐阅读最新更新时间:2024-05-02 21:20

Altera推业界最低成本PCI-SIG兼容开发套件
           Arria GX FPGA开发套件符合PCI-SIG 2007年8月8号,北京 ——Altera公司(NASDAQ: ALTR)今天宣布,其低成本Arria GX FPGA开发套件在首次提交后便通过了PCI-SIG的兼容性测试。Altera Arria GX FPGA结合Altera PCI Express x4 MegaCore知识产权(IP)功能,组成了业界成本最低的PCI-SIG兼容开发套件。套件为设计人员开发通信、存储、计算、工业、医疗和消费类应用的PCI Express (PCIe)、Serial RapidIO (SRIO)和千兆以太网(GbE)解决方案提供了理想平台。采用PCIe外形卡,低成本
[新品]
内容可导址存储器的FPGA设计与应用
    摘要: 内容可寻址存储器(CAM)是一种快速匹配存储器件,在通信、雷达等许多领域有着广泛的应用。在介绍CAM基本原理的基础上,提出了以两类新型FPGA实现CAM的设计方法。例举了一种基于CAM实现关联比较器及其在雷达截获系统信号处理领域的重要作用。     关键词: FPGA 内容可寻址存储器(CAM) APEX系列 VIRTEX系列 关联比较器 内容可寻址存储器(CAM)是一种新型的存储器,它的高速、并行、易扩展和实现的灵活性使它一出现就得到人们的重视。CAM基于内容寻址,通过硬件电路实现快速匹配。CAM的并行处理特性使得它在数据分选领域倍受青睐,被广泛应用于以太网网址搜寻、数据压缩、模式识别
[应用]
DSP in FPGA:FIR滤波器(二)
  这一节主要讲解一下转置型FIR滤波器实现。   FIR滤波器的单位冲激响应h(n)可以表示为如下式:      对应转置型结构的FIR滤波器,如图1所示,抽头系数与上一节中讲解直接型FIR滤波器的实例相同,滤波器阶数为10。      图1   可以发现转置型结构不对输入数据寄存,而是对乘累加后的结果寄存,这样关键路径上只有1个乘法和1个加法操作,相比于直接型结构,延时缩短了不少。   综合得到结果如下:   Number of Slice Registers: 1   Number of Slice LUTs: 18   Number of DSP48E1s: 11   Minimum period: 4.854ns{1
[嵌入式]
DSP in <font color='red'>FPGA</font>:FIR滤波器(二)
FPGA在多制式视频转换系统中的应用
FPGA 在多制式视频转换系统中的应用 1 引言 目前, 在军事、工业和医学领域存在着大量的非标准视频系统, 其视频信号只能在专业的设备上才能播放和录制。而实际中广泛采用的是标准电视信号(PAL ,NTSC, SECAM) 或VGA 视频, 这就给这些领域内的观测监督和学术交流造成了许多困难。以医学信号为例, 目前, 国内医院很多科室的手术监控设备都是国外进口的一体式设备, 手术影像资料只能供室内的几名医生观看, 无法通过电视系统传送到外部监测。如能将非标准视频流转换为标准视频流, 无疑会给这些领域带来很大的便利。时下的视频转换系统大多存在转换速度慢、功能单一、图像质量不高的缺点, 且一般是一机一用。本文介绍了基于单片机+
[工业控制]
莱迪思全新MachX03D FPGA 搭配硬件可信根极大提升安全性
莱迪思半导体公司(NASDAQ:LSCC),低功耗可编程器件的领先供应商,今日宣布推出MachXO3D FPGA,用于在各类应用中保障系统安全。不安全的系统会导致数据和设计盗窃、产品克隆和过度构建以及设备篡改或劫持等问题。OEM可以使用MachXO3D轻松实现可靠、全面、灵活的基于硬件的安全机制,保障所有系统固件的安全。MachXO3D可以在系统生命周期的各个阶段(从生产到系统报废),组件固件遭到未经授权的访问时,对其保护、检测和恢复。 组件的固件已逐渐成为网络攻击最为常见的目标。2018年,超过30亿各类系统的芯片由于固件安全问题,面临数据窃取等威胁。不安全的固件还会因为设备劫持(DDoS攻击)、设备篡改或破坏等隐患,让OE
[嵌入式]
FPGA的模糊控制交通灯控制方案设计
1 概述 为了解决城市交通拥挤的问题,需要从供求两个方面来采取措施:一是加强城市道路的基础建设,二是要充分利用、提高现有路网的利用效率。目前,国内的城市交通灯大多数都是采用固定的绿信比(一个信号相位的有效绿灯时长与周期时长之比),不能满足交叉路口车辆的时变性要求。 模糊控制技术作为智能控制的重要分支之一,它的最大特点是针对各类具有非线性、强耦合、不确定性、时变的多变量复杂系统,在各个控制领域中得到广泛的应用,并取得良好的控制效果。在城市道路中存在大量的平面交叉路口,交叉路口一般可以分成十字形、X形、T行、Y行和多路交叉形,本文以十字形交叉路口作为研究对象。 在平面交叉路口上某一支或者几支交通流所获得的通行权称为信号权,简称相位。
[嵌入式]
苏州国芯选择S2C的FPGA原型工具开发参考设计
2010年11月10日,S2C Inc.,领先的快速SoC原型解决方案供应商宣布苏州国芯,领先的32位RISC CPU IP供应商,已选择S2C的FPGA原型工具开发和推出其CPU参考设计。C*Core CPU参考设计采用S2C的第四代S4 TAI Logic Module,S4支持Altera最大的Stratix-4 FPGA元件。设计团队能轻易地将众多IP模块和C*Core CPU集成到多达三千万ASIC门的设计。 苏州国芯科技的32位精简指令集处理器系列提供行业领先的低功耗高性能嵌入式处理器。超过40家知名客户已获得许可将C*Core IP用于各种嵌入式应用产品,应用C*Core 32位处理器的SoC出货量超过六千
[嵌入式]
Efinix推出车规级集成RISC-V内核的FPGA
Efinix公司针对汽车行业推出了一系列具有32位RISC-V内核的FPGA器件,这些器件在多个方面展现出了其卓越的性能和适应性。 首先,Titanium Ti375 FPGA符合汽车标准,并已通过ISO26262认证,这是汽车制造商所重视的一项安全标准。它采用16纳米工艺制造,拥有高达100万个逻辑元件,以及一个四核32位RISC-V内核。这个内核具有一个强大的CPU,采用了具有多种扩展的ISA RISC-V 32,使得它在处理复杂任务时能够表现出色。此外,它还通过了AEC-Q100 1级认证,进一步证明了其在汽车应用中的可靠性和稳定性。 Titanium Ti375 FPGA还配备了多种接口和控制器,以满足汽车应用中的
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved