一种FPGA用基于PCIe的集成化逻辑分析模块制造技术

技术编号:7440552 阅读:250 留言:0更新日期:2012-06-16 12:21
一种FPGA用基于PCIe的集成化逻辑分析模块,它包括触发控制器、DMA控制器、报文发送引擎、报文接收引擎和PCIe收发控制器。本发明专利技术不仅可以实现SignalTap或ChipScope的所有功能,还可以解决大型设计中BlockRAM余量不够用的情况,因为此时数据不是存在芯片内部而是导出到CPU侧的内存中,只要内存允许便可以采集足够量的数据。另外,由于触发模块是寄存器级代码,那么可以通过修改这里的代码来实现更为复杂的触发设置,远比SignalTap或ChipScope灵活得多。在大型设计中,CPU、FPGA共存于一个系统很常见,而PCIe链路又是很多高速系统常用通道,因此本方案的适用场合广泛。

【技术实现步骤摘要】

本专利技术涉及FPGA开发领域,尤其是基于PCIe链路的高效链式DMA控制采集数据的设计与实现,具体地说是一种FPGA用基于PCIe的集成化逻辑分析模块
技术介绍
目前,随着现代处理器技术的发展,在互连领域中,使用高速差分总线替代并行总线是大势所趋。与单端并行信号相比,高速差分信号可以使用更高的时钟频率,从而使用更少的信号线,完成之前需要许多单端并行数据信号才能达到的总线带宽。PCI总线使用并行总线结构,在同一条总线上的所有外部设备共享总线带宽,而 PCIe总线使用了高速差分总线,并采用端到端的连接方式,因此在每一条PCIe链路中只能连接两个设备。这使得PCIe与PCI总线采用的拓扑结构有所不同。PCIe总线除了在连接方式上与PCI总线不同之外,还使用了一些在网络通信中使用的技术,如支持多种数据路由方式,基于多通路的数据传递方式,和基于报文的数据传送方式,并充分考虑了在数据传送中出现服务质量QoS (Quality of Service)问题。PCIe总线采用了串行连接方式,并使用数据包(Packet)进行数据传输,采用这种结构有效去除了在PCI总线中存在的一些边带信号,如INTx和PME#等信号。在PCIe总线中,数据报文在接收和发送过程中,需要通过多个层次,包括事务层、数据链路层和物理层。 PCIe总线的层次结构如图所示。PCIe总线的层次组成结构与网络中的层次结构有类似之处,但是PCIe总线的各个层次都是使用硬件逻辑实现的。在PCIe体系结构中,数据报文首先在设备的核心层 (Device Core)中产生,然后再经过该设备的事务层(Transaction Layer)、数据链路层 (Data Link Layer)和物理层(Physical Layer),最终发送出去。而接收端的数据也需要通过物理层、数据链路和事务层,并最终到达Device Core0在FPGA (现场可编程门阵列)芯片设计工作中,由于设计存在错误或缺陷,设计人员需要通过设计实体中逻辑信号变化情况来分析系统中错误源头。这时,设计人员可以利用逻辑分析仪来分析系统,也可以利用Altera公司的SignalTap工具或Xilinx公司的 ChipScope工具抓取波形来分析系统。然而利用逻辑分析仪设计的话需要把信号拉到空闲引脚上,这样非常不方便。如果利用SignalTap或Chipkope的话,虽然能很方便地采集所需信号,但是这个二者又局限于芯片内部的BlockRAM的剩余量限制,往往大型设计中 BlockRAM没有足够的余量来供SignalTap或Chipkope使用,这样就使得工具采集的信号量非常少,在很多情况下不能满足需要。
技术实现思路
本专利技术的目的是针对上述FPGA (现场可编程门阵列)芯片设计中存在的问题,提出一种FPGA用基于PCIe的集成化逻辑分析模块。本专利技术的技术方案是一种FPGA用基于PCIe的集成化逻辑分析模块,其特征是它包括触发控制器、DMA控制器、报文发送引擎、报文接收引擎和PCIe收发控制器,所述的PCIe收发控制器作为逻辑分析模块的控制信号输入端连接逻辑分析模块所在产品系统的CPU,PCIe收发控制器的控制信号输出端连接报文接收引擎的控制信号输入端,报文接收引擎的一控制信号输出端连接 DMA控制器的一对应控制信号输入端,另一控制信号输出端连接触发控制器的控制信号输入端,触发控制器作为逻辑分析模块的逻辑数据输入端采集设计实体模块的触发条件的逻辑数据,触发控制器的控制信号输出端连接DMA控制器的对应控制信号输入端,DMA控制器的控制信号端与报文发送引擎双向连接,报文发送引擎的逻辑数据输入端连接设计实体模块的对应逻辑数据输出端,报文发送引擎的逻辑数据输出通过PCIe收发控制器输出至逻辑分析模块所在产品系统的CPU。本专利技术的设计实体模块指烧结到FPGA芯片里的逻辑代码,能实现产品所要求的功能,所述的集成化逻辑分析模块实现的功能是采集设计实体模块中相应的信号以实现的。根复合体是PCIe链路的交换开关,用于挂载PCIe设备即用于挂载具有PCIe收发控制器的FPGA,交换PCIe链路报文,是PCIe链路的重要组成部分。本专利技术的触发控制器用于判断报文接收引擎发送过来的触发条件,直到它从设计实体模块采集的逻辑信号满足判断条件,输出控制信号至DMA控制器进行数据采集操作, DMA控制器产生当前发送报文所需的目的地址和报文长度字段,给报文发送引擎,在报文发送引擎完成一次DMA传输后,将结束信息送给DMA控制器。本专利技术的DMA控制器包括RAM,通过PCIe初始化配置将这块RAM映射到CPU的内存空间里,CPU通过对这片空间写配置命令字,即可实现CPU对本系统实施命令控制;所述的PCIe初始化配置是指CPU初始化PCIe收发控制器,分配总线号,将DMA控制器里的RAM 映射到系统存储器空间里,从而使FPGA成为CPU的PCIe总线上可以访问的挂接设备。本专利技术的报文接收引擎用于接收CPU下发的指令报文,对指令报文解析并将相应命令控制字输入到DMA控制器中。本专利技术的PCIe收发控制器用于接收来自CPU的命令报文,将事务层报文转发给报文接收引擎;同时,将来自报文发送引擎的事务层报文,发送到CPU。本专利技术的分析模块包括以下工作步骤首先,PCIe收发控制器接收来自根复合体的PCIe链路报文,转发该PCIe链路报文到报文接收引擎;报文接收引擎解开报文,提取 PCIe链路报文里的触发开关、触发条件、触发值和触发无关项,以及采集数据存储的起始地址和存储深度信息;将上述信息送到DMA控制器;报文接收引擎将触发开关,触发条件,触发值和触发无关项信息送到触发控制器;根据实体模块中采集的数据来判断,当触发点到来时,触发控制器发出采集使能信号至DMA控制器;DMA控制器产生当前发送报文所需的目的地址和报文长度字段,给报文发送引擎;在报文发送引擎中,根据采集的实体中的数据产生PCIe链路报文,并送给PCIe收发控制器;PCIe收发控制器通过根复合体将大量采集数据传送至逻辑分析模块所在产品系统的内存中。一种FPGA,包括FPGA用基于PCIe的集成化逻辑分析模块和设计实体模块,设计实体模块的逻辑数据输出端与逻辑分析模块的数据信号输入端相连,逻辑分析模块的数据信号输出端与根复合体的数据信号输入端相连,逻辑分析模块的控制信号输入端通过PCIe控制链路与根复合体的控制信号输出端相连,根复合体与CPU的控制信号端双向连接。本专利技术的根复合体是PCIe链路的交换开关,用于挂载PCIe设备即用于挂载具有 PCIe收发控制器的FPGA,交换PCIe链路报文,输出逻辑数据至内存中存储。本专利技术的有益效果本专利技术不仅可以实现SignalTap或Chipkope的所有功能,而且还可以解决大型设计中BlockRAM余量不够用的情况,因为此时数据不是存在芯片内部而是导出到CPU侧的内存中,只要内存允许便可以采集足够量的数据。另外,由于触发模块是寄存器级代码,那么可以通过修改这里的代码来实现更为复杂的触发设置,远比SignalTap或Chipkope灵活得多。在一般大型设计中,CPU、FPGA共存于一个系统是很常见的,而PCIe链路又是很多高速系统常用通信通道,所以本方案的适用场合本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:陈庚
申请(专利权)人:南京中兴特种软件有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术