首页> 中国专利> 基于串行高速总线的FPGA硬件抽象层及其实现方法

基于串行高速总线的FPGA硬件抽象层及其实现方法

摘要

本发明公开了一种基于串行高速总线的FPGA硬件抽象层,以FPGA厂家提供的串行高速总线的IP核为对外接口,对内提供统一的接口给用户或是通信组件使用,包含如下功能模块:IRESP模块、IREQ模块、DATA_CTRL模块、TREQ模块。本发明还公开了FPGA硬件抽象层的实现方法。用户或是通信组件就可以通过使用硬件抽象层提供的统一的接口来方便的进行系统内通信,并可以在不同型号和规格的FPGA间任意移植程序,解决了基于串行高速总线的软件无线电系统中,FPGA的应用软件移植性、操作性和可重用性差的问题。

著录项

  • 公开/公告号CN104133963A

    专利类型发明专利

  • 公开/公告日2014-11-05

    原文格式PDF

  • 申请/专利权人 中国航空无线电电子研究所;

    申请/专利号CN201410366166.5

  • 发明设计人 羿昌宇;沈聪;李裕;吴敏;

    申请日2014-07-29

  • 分类号G06F17/50(20060101);

  • 代理机构上海和跃知识产权代理事务所(普通合伙);

  • 代理人杨慧

  • 地址 200233 上海市徐汇区桂平路432号

  • 入库时间 2023-12-17 01:54:18

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-03-22

    授权

    授权

  • 2014-12-10

    实质审查的生效 IPC(主分类):G06F17/50 申请日:20140729

    实质审查的生效

  • 2014-11-05

    公开

    公开

说明书

技术领域

本发明涉及串行高速总线架构下硬件平台的硬件抽象层设计方法,尤其涉及其中基于FPGA(现场可编程逻辑阵列)的硬件抽象层(以下简称MHAL)的实现方法。 

背景技术

无线通信中不同的通信模式和功能采用不同的工作频段、调制方式、通信协议和加密方式等,这些差异限制了不同通信设备间的连通,带来了不便。软件无线电的思想就是以一个通用、标准、模块化的硬件平台为依托,通过软件编程来实现无线电台的各种功能。 

MHAL介于硬件平台和软件之间,它为了屏蔽硬件差异将硬件的实现抽象出来,负责处理软硬件差异,并完成相关接口功能。同时,软件无线电的硬件平台间通常通过高速总线连接。其中串行高速总线使用广泛,它是一种针对高性能嵌入式系统芯片间和板间互连而设计的总线技术,具有协议简单、软件开销小、延时小和打包效率高等优点,现今主流的FPGA厂商均各自设计了相应的IP核。 

在现有的无线电通信系统中,较常用的硬件平台有PowerPC、FPGA和DSP等,未采用MHAL的传统方法是在不同硬件平台上设计不同的应用软件,使用不同的接口规范,且相同硬件平台也存在多样的型号、技术体制和原理,所以软件和接口规范也有差异。以这种方式在硬件平台上设计应用软件有如下弊端: 

(1)移植性差。由于不同的系统有不同的接口,每次程序代码移植到新的系统中时,接口都需做相应改变。 

(2)操作性差。不同的软件设计方法使得用户的使用方法也不同,造成使用上的不方便。 

(3)可重用性差。在不同的硬件平台上各自采用不同的程序架构和接口,导致只能用于特定的硬件平台上,不能复用在其它硬件平台上。 

发明内容

本发明的目的是提供一种基于串行高速总线的FPGA上MHAL的设计方法,当基于串行高速总线的软件无线电系统中的所有FPGA硬件平台都使用该MHAL,用户或是通信组件(以下简称HC)就可以通过使用MHAL提供的统一的接口来方便的进行系统内通信,并可以在不同型号和规格的FPGA间任意移植程序,解决了基于串行高速总线的软件无线电系统中,FPGA的应用软件移植性、操作性和可重用性差的问题。 

本发明的目的通过以下技术方案来实现: 

图2为MHAL的整体设计框图。以FPGA厂家提供的串行高速总线的IP核为对外接口, 对内提供统一的接口给HC使用。各个模块的功能如下: 

1)IRESP模块:负责处理IP核向IRESP接口发送的HC请求回应的消息,该设计中用于配置本地器件地址后请求获取当前器件地址,以验证回应的地址与之前配置的地址是否一致; 

2)IREQ模块:负责控制IP核的IREQ接口,向IP核发送由DATA_CTRL模块发来的HC的请求,包括配置本地器件地址(以下简称MAINTENANCE事务)的请求和发送数据包(以下简称NWRITE事务)的请求; 

3)DATA_CTRL模块:根据HC的请求类型向IREQ模块传输配置器件地址的信息,以及从TX_FIFO中取出要发送的数据,按照发送数据所需格式打包发送给IREQ模块进行发送; 

4)TREQ模块:负责处理通过IP核的TREQ接口接收的,由通信系统内其它硬件平台发送过来的数据,从发来信息的包头解析出器件地址,并将接收到的数据写入相应RX_FIFO中。 

MHAL给HC留的统一接口如下: 

1)SET_ID_DONE:由IRESP模块通过判断回应的器件地址是否为之前配置的器件地址后拉高或拉低,若配置地址正确则为高电平,错误为低电平; 

2)DEVICE_ID_EN:配置本地器件地址使能,高电平时写入要配置器件地址; 

3)DEVICE_ID:要配置的器件地址; 

4)FULL:TX_FIFO满信号,当TX_FIFO不满时写入数据,反之不能写入; 

5)TX_WRITE_EN:写使能,高电平的同时写入要发送的数据; 

6)TX_WRITE_DATA:发送数据的接口; 

7)DEST_ID:数据发送的目标器件地址; 

8)FLAG:当其为高电平时,说明接收到了数据; 

9)RX_READ_EN:接收数据使能,高电平时接收数据; 

10)RX_DATA:接收数据的接口。 

MHAL实现如图3、图4、图5所示的器件地址配置、数据发送和数据接收3个功能。下面分别进行详细的介绍。 

1)器件地址配置 

软件无线电通信架构中需要对各个硬件平台及组件进行地址的编排,这样系统资源调度者无需关心底层如何通信和处理,只需根据器件地址找到并使用该资源即可。其具体实现步骤如下: 

a.拉高DEVICE_ID_EN信号,并在DEVICE_ID接口写入要配置器件地址; 

b.DATA_CTRL模块将器件地址传递给IREQ模块; 

c.IREQ模块根据MAINTENANCE事务时序将数据传输给串行高速总线串行高速总线的IP核; 

d.串行高速总线的IP核将器件地址配置进寄存器中; 

e.IREQ模块向IP发出读取当前器件地址请求; 

f.IP核通过IRESP接口反馈当前的器件地址信息至MHAL,由IRESP模块将其与之前要配置的器件地址比较; 

g.若器件地址与要配置的地址相同,则表明地址配置成功,MHAL将SET_ID_DONE接口拉高反馈给HC,反之拉低。若配置不成功则重复b~g步骤,直至成功。 

2)数据发送 

串行高速总线的协议规定最大的数据包为256字节,但实际应用的数据包往往超过256字节,所以需要一个发送缓冲区即TX_FIFO来存储要发送的数据。HC使用MHAL需要对外发送数据时,先向TX_FIFO写入数据。DATA_CTRL模块只要发现TX_FIFO中有数据就从TX_FIFO取出数据,首先取出数据包头(数据包头含数据长度信息),判断要发送数据的长度,若长度大于256字节则每次取出256字节,直到全部取出,反之则一次全部取出,与目的器件地址一起传递给IREQ模块,采用NWRITE事务时序发送给IP核,由IP核将数据发送出去。具体步骤如下: 

a.判断MHAL的FULL信号是否拉高,拉高则说明FIFO满不能发送,继续等待,不满则可以发送; 

b.HC拉高TX_WRITE_EN引脚,将数据写入FIFO,并在DEST_ID写入发送目的地址; 

c.DATA_CTRL模块一旦发现TX_FIFO中有数据,就通过数据包头判断数据长度,若数据长度大于256字节则每次从TX_FIFO中取出最大256字节数据一包发送给IREQ模块,直至全部取出;若数据长度小于256字节,则一次取出给IREQ模块; 

d.IREQ模块每收到一包数据,就将数据根据NWRITE事务时序将发送给IP核; 

e.IP核将数据发送出去到指定器件地址的器件上。 

3)数据接收 

当FPGA接收到数据时,IP核通过TREQ接口将数据发送到TREQ模块,TREQ模块将数据解析出来发送到接收缓冲区即RX_FIFO中,HC通过MHAL的FLAG信号来判断是否接收到数据,并将数据从RX_FIFO中取出。具体实现步骤如下: 

a.IP核将接收到的数据发送给TREQ模块; 

b.TREQ模块将数据发送给RX_FIFO; 

c.HC判断FLAG,若为高,则拉高RX_READ_EN引脚,从RX_FIFO中取出数据;若为低则等待; 

附图说明

图1是MHAL通信系统框架示意图。 

图2是本发明MHAL的整体框架示意图。 

图3是本发明中MHAL配置器件地址流程图。 

图4是本发明中MHAL发送数据流程图。 

图5是本发明中MHAL接收数据流程图。 

图6是实施例中基于串行高速总线的FPGA的MHAL实施方案系统框图。 

具体实施方式

下面给出一种本发明的实施方式和步骤。 

图6为实例的系统组成框图。整个系统主要包括两块分别有一片XC5VFX70T的FPGA和光模块的FPGA开发板以及收发共两根光纤线。用两根光纤线将两块板的光模块的收发端口分别互连,每个FPGA中都加载MHAL程序。下面用这两块FPGA通过MHAL进行串行高速总线的相互通信,通过Xilinx的ChipScope软件来监控FPGA的所有端口。 

第一步,配置器件地址: 

1)用户程序拉高MHAL的DEVICE_ID_EN接口,并通过DEVICE_ID接口写入器件地址0x53; 

2)通过ChipScope软件监控MHAL的SET_ID_DONE的引脚是否为高,高则表明器件地址写入成功; 

3)重复上述1)和2)步骤,将另外一个FPGA的器件地址配置为0x63。 

第二步,收发数据: 

1)器件地址配置为0x53的FPGA拉高TX_WRITE_EN接口,通过TX_WRITE_DATA接口写入数据2000字节长度的任意数据,DEST_ID接口写入目标器件地址0x63; 

2)在器件地址配置为0x63的FPGA判断FLAG接口是否为高,当FLAG拉高时则拉高RX_READ_EN引脚,从RX_DATA接口接收数据; 

3)观察接收到的数据以及数据长度是否与发送的数据以及数据长度相同,相同则证明收发数据功能正常; 

4)重复以上1)~4)步骤20次,验证功能正常; 

5)转换收发双方,从器件地址配置为0x63的FPGA上发送数据至地址为0x53的FPGA上,重复以上1)~5)。 

以上所述,仅为本发明的一个具体实例,所涉及到芯片不仅局限于这1款,任何FPGA芯片都可应用于本发明中,所以本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明所述的技术范围内,所做的变化或替换,都应涵盖在本发明的保护范围内。因此,本发明的保护范围应以权利要求书的保护范围为准。 

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号