微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于FPGA的虚拟逻辑分析仪设计与实现

基于FPGA的虚拟逻辑分析仪设计与实现

时间:06-05 来源:互联网 点击:

逻辑分析仪是一种通用数据域测试仪器。应用在由中大规模数字集成电路组成的数字系统中,主要查找总线相关性故障,能以多种方式跟踪与显示总线上的数据流,是测量领域不可缺少的工具。

随着电子技术和计算机技术的发展,逻辑分析仪与 PC机相结合,从而出现了虚拟逻辑分析仪。研发虚拟逻辑分析仪成为近年的一个新的发展方向,虚拟逻辑分析仪扩展了逻辑分析仪的分析和计算能力,提高了性价比,且增强了仪器的通用性。现场可编程逻辑器件FPGA,是一种可由用户根据所设计的数字系统的要求,在现场由自己配置、定义的高密度专用数字集成电路。它具有设计方便、灵活、校验快和设计可重复改变的特点。本文讨论了一种基于FPGA的虚拟逻辑分析仪的设计,通过采用高性能的FPGA器件,再利用PC机的强大处理功能,配合LabVIEW图形化语言开发实现。

1 总体设计

本文设计的虚拟逻辑分析仪主要由数据采样存储、数据显示处理和接口三部分组成,其结构框图如图1所示。其中FPGA内部功能电路有数据锁存器、指令识别电路、采样时钟电路、触发识别电路、数据存储电路等。

虚拟逻辑分析仪的工作原理为:来自外部的多路被测数字信号通过电压比较器,与门限电平比较,得到标准数字信号,连接到FPGA的I/O口。用户根据分析数据的需求,通过PC 机上的软面板,设置初始化指令(触发方式、采样频率和存储深度指令等),PC机将初始化指令通过串口发送给单片机的P1口,再由单片机传给FPGA。然后 FPGA中的指令识别电路检测指令,当检测到命令字后,将命令存入各自的指令寄存器中。采样频率控制信号输出到采样时钟电路,由采样时钟电路生成各种频率的时钟信号提供给数据获取单元,数据获取单元根据时钟信号进行数据采样并锁存。同时,采样回来的数据经过触发识别电路,与触发字比较,若匹配则发出存储命令,数据存储电路收到存储命令之后控制SRAM进行数据存储。数据存储达到存储深度,则通过串口返回存满信号给PC机。此时PC机发出数据读取指令,将SRAM中的数据读到PC机,由PC机对数据分析和处理后,以二进制数字或波形图的方式显示在PC机屏幕上。

2 主要硬件模块的设计

2.1 电平判别电路

电平判别电路由数字电位器和高速电压比较器组成。由于被测电路可能工作在TTL、ECL或CMOS等不同的门限电平电路,本设计采用Xicor公司的32档数字电位器X9511,对基准电压5V进行精确分压,通过增量按键/PU和减量按键/PD的操作,实现不同的门限电平输出。本设计高速电压比较器采用Linear Technology公司的四运放集成芯片LT1721实现。为了信号的稳定性和可靠性,在电压比较器之前,先对被测信号进行电压跟随。电平判别电路如图2所示。

图中只给出了2个通道的信号电平判别,其中V-REF为门限电平,放大器A作电压跟随器,放大器B作电压比较器,IN0、IN1分别为第0、第1通道的被测输入信号,D0-IN、D1-IN为第0、第1通道输出的标准数字信号,提供给FPGA的数据锁存器。

2.2 FPGA系统

本设计选用的FPGA是Altera 公司Cyclone系列的EP1C3T144C8。FPGA器件的内部逻辑电路的设计,采用可编程逻辑器件的开发语言Verilog HDL和开发环境Quartus II来实现。通过JTAG 接口可以对 FPGA 在线编程、调试和测试。FPGA内部实现的功能电路有数据锁存器、指令识别电路、采样时钟电路、触发识别电路和数据存储电路等。各功能电路的关系如图3所示。

(1)指令识别电路

指令识别电路的功能是按照预先定义FPGA和单片机之间的通信协议,识别由PC机发出的指令,当识别到初始化指令时将指令进行解析,并分别存入各指令寄存器中,产生采样频率控制信号、触发方式控制信号、存储深度控制信号等去控制FPGA其他功能电路。

(2)采样时钟电路

采样时钟电路用于选择采样频率。本文设计的异步采样提供四种采样频率,由40MHz有源晶振提供基准时钟送到FPGA的可编程分频器,经过可编程分频电路之后产生40MHz、20MHz、10MHz和5MHz四种时钟,输出到时钟选择器。时钟选择器相当于一个单刀四掷的模拟开关,根据采样频率控制命令来控制某一路时钟接通,输出给采样存储模块。

(3)触发识别电路

触发识别电路的作用是识别触发并产生标志信号。本设计提供了四种常用的触发方式:随机触发、字触发、通道触发及延迟触发。

触发识别电路工作过程为:指令识别电路产生的触发方式控制信号,提供给触发方式选择器,触发方式选择器相当于一个2-4译码器,根据触发方式字使能对应的触发模块,输入的数据流在各功能触发识别模块中与用户设置的触发条件进行比较,若数据流中出现所设定的触发条件,则模块会输

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top