CN108984324A - Fpga硬件抽象层 - Google Patents
Fpga硬件抽象层 Download PDFInfo
- Publication number
- CN108984324A CN108984324A CN201810791103.2A CN201810791103A CN108984324A CN 108984324 A CN108984324 A CN 108984324A CN 201810791103 A CN201810791103 A CN 201810791103A CN 108984324 A CN108984324 A CN 108984324A
- Authority
- CN
- China
- Prior art keywords
- message
- module
- interface adaptation
- adaptation module
- bus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本申请提供一种FPGA硬件抽象层,其包括有组件接口适配和总线接口适配模块,由于设置有专门的组件接口适配模块将FPGA硬件抽象层与上层波形组件分离,设置有总线接口适配模块将FPGA硬件抽象层与底层的总线驱动分离,保证FPGA硬件抽象层代码具有平台无关特性,从而FPGA硬件抽象层能够稳定在不同平台中稳定可靠运行。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种FPGA(Field-Programmable GateArray,现场可编程逻辑门阵列)硬件抽象层。
背景技术
硬件抽象层(Hardware Abstraction Layer,HAL)是软件无线电系统中的一项关键技术,该技术旨在屏蔽底层硬件平台的复杂性和差异性,为运行在硬件抽象层上层的波形组件提供统一标准的数据收发接口,从而降低波形组件对具体硬件平台的依赖。因此硬件抽象层对于提高波形组件的模块化程度和跨平台可移植性具有十分重要的作用。
FPGA作为一种软件可编程的逻辑芯片,具有运行速度快、运算能力强的特点,特别适合完成实时性要求高、运算量大的操作,这些特点使得FPGA芯片在软件无线电系统中得到广泛应用,成为主力处理器芯片。因此,在FPGA上运行硬件抽象层,以屏蔽底层硬件平台差异,从而提高FPGA波形组件的可移植就变得意义十分重大。然而,由于FPGA程序编程语法复杂、开发和调试难度大,要实现一个灵活、高效、运行稳定可靠的FPGA硬件抽象层是一项十分复杂的工作。在传统的实现方法中,通常针对不同的底层硬件平台、针对上层运行的特定波形组件,专门开发特定的FPGA硬件抽象层,这就导致FPGA硬件抽象层开发难度大、开发周期长,且由于不同人员开发经验和水平不同,导致FPGA硬件抽象层的控制质量不一,严重影响应用FPGA系统(例如软件无线电系统)的稳定可靠运行。
发明内容
基于此,有必要针对上述技术问题,提供一种系统稳定运行的FPGA硬件抽象层。
一种FPGA硬件抽象层,包括组件接口适配模块、预存波形组件发送数据的目的逻辑地址与物理地址映射关系的LD-PD配置模块、报文发送封装模块以及总线接口适配模块;所述组件接口适配模块与上层的波形组件以及报文发送封装模块连接,所述LD(logicaladdress,逻辑地址)-PD(Physical Address,物理地址)配置模块与所述报文发送封装模块连接,所述报文发送封装模块与所述总线接口适配模块连接,所述总线接口适配模块与底层的总线驱动连接;
当波形组件有报文数据需要发送时,报文数据通过所述组件接口适配模块进入所述报文发送封装模块,所述报文发送封装模块根据所述报文数据携带的目的逻辑地址查询所述LD-PD配置模块中的目的逻辑地址与物理地址映射关系,判断所述报文数据达到的目的波形组件为本地或为远端,当为本地时,发送所述报文数据至组件接口适配模块,由所述组件接口适配模块发送所述报文数据至目的波形组件;当为远端时,所述报文发送封装模块将所述报文数据封装为硬件抽象层报文,将所述硬件抽象层报文以及所述报文数据对应的物理地址发送至所述总线接口适配模块,由所述总线接口适配模块将所述硬件抽象层报文发送至所述物理地址对应的总线驱动。
在其中一个实施例中,FPGA硬件抽象层还包括总线发送仲裁模块,所述报文发送封装模块通过所述总线发送仲裁模块与所述总线接口适配模块连接;所述报文发送封装模块将所述硬件抽象层报文以及所述报文数据对应的物理地址发送至所述总线发送仲裁模块,所述总线发送仲裁模块查询所述物理地址对应的总线驱动是否空闲,若空闲,则通过总线接口适配模块将所述硬件抽象层报文发送至所述对应的总线驱动;若不空闲,则根据数据发送优先级队列等待处理,当到达处理时刻时,通过所述总线接口适配模块将所述硬件抽象层报文发送至所述物理地址对应的总线驱动。
在其中一个实施例中,所述根据数据发送优先级队列等待处理,包括:
当当前所述硬件抽象层报文在数据发送优先级队列中优先级最高时,打断所述对应的总线驱动中当前传输。
在其中一个实施例中,所述组件接口适配模块加载有波形组件接口规范、且定义有波形组件的统一接口时序,所述总线接口适配模块加载有总线驱动接口规范、且定义有总线驱动的统一接口时序。
一种FPGA硬件抽象层,包括组件接口适配模块、报文接收解析模块、组件接收仲裁模块以及总线接口适配模块;
所述组件接口适配模块与上层的波形组件连接,所述组件接收仲裁模块与所述组件接口适配模块连接,所述报文接收解析模块与所述总线接口适配模块以及所述组件接收仲裁模块连接,所述总线接口适配模块与底层的总线驱动连接;
当波形组件接收远端发送的报文数据时,通过所述总线接口适配模块进入报文接收解析模块,所述报文接收解析模块从接收到的报文数据中解析出目的逻辑地址和数据,将解析出的目的逻辑地址和数据发送至组件接收仲裁模块,所述组件接收仲裁模块根据所述目的逻辑地址确定接收该报文数据的目的波形组件,若检测所述组件接口适配模块中所述目的波形组件对应的接收端口空闲,则由所述组件接口适配模块将解析出的数据发送至所述目的波形组件。
在其中一个实施例中,所述组件接收仲裁模块还用于当检测所述组件接口适配模块中所述目的波形组件对应的接收端口不空闲时,根据数据接收优先级队列等待处理,当到达处理时刻时,通过所述组件接口适配模块将所述解析出的数据发送至所述目的波形组件。
在其中一个实施例中,所述根据数据接收优先级队列等待处理,包括:
当当前所述解析出的数据在数据接收优先级队列中优先级最高时,打断所述目的波形组件对应的接收端口中当前传输。
在其中一个实施例中,所述组件接口适配模块加载有波形组件接口规范、且定义有波形组件的统一接口时序,所述总线接口适配模块加载有总线驱动接口规范、且定义有总线驱动的统一接口时序。
一种FPGA硬件抽象层,包括组件接口适配模块、预存波形组件发送数据的目的逻辑地址与物理地址映射关系的LD-PD配置模块、报文发送封装模块、总线发送仲裁模块、组件接收仲裁模块、报文接收解析模块以及总线接口适配模块;所述组件接口适配模块与上层的波形组件、报文发送封装模块以及组件接收仲裁模块连接,所述LD-PD配置模块与所述报文发送封装模块以及报文接收解析模块连接,所述报文发送封装模块与总线发送仲裁模块以及组件接收仲裁模块连接,所述总线发送仲裁模块以及所述报文接收解析模块与所述总线接口适配模块连接,所述总线接口适配模块与底层的总线驱动连接;
当波形组件有报文数据需要发送时,报文数据通过所述组件接口适配模块进入所述报文发送封装模块,所述报文发送封装模块根据所述报文数据携带的目的逻辑地址查询所述LD-PD配置模块中的目的逻辑地址与物理地址映射关系,判断所述报文数据达到的目的波形组件为本地或为远端,当为本地时,发送所述报文数据至所述组件接口适配模块,由所述组件接口适配模块发送所述报文数据至所述目的波形组件;当为远端时,所述报文发送封装模块将所述报文数据封装为硬件抽象层报文,将所述硬件抽象层报文以及所述报文数据对应的物理地址发送至所述总线发送仲裁模块,若所述物理地址对应的总线驱动空闲,则由总线接口适配模块将所述硬件抽象层报文发送至所述对应的总线驱动;
当波形组件接收远端发送的报文数据时,通过所述总线接口适配模块进入报文接收解析模块,所述报文接收解析模块从接收到的报文数据中解析出目的逻辑地址和数据,将解析出的目的逻辑地址和数据发送至组件接收仲裁模块,所述组件接收仲裁模块根据所述目的逻辑地址确定接收该报文数据的目的波形组件,若检测所述组件接口适配模块中所述目的波形组件对应的接收端口空闲,则由所述组件接口适配模块将解析出的数据发送至所述目的波形组件。
上述FPGA硬件抽象层,设置有专门的组件接口适配模块将FPGA硬件抽象层与上层波形组件分离,设置有总线接口适配模块将FPGA硬件抽象层与底层的总线驱动分离,保证FPGA硬件抽象层代码具有平台无关特性,从而FPGA硬件抽象层能够稳定在不同平台中稳定可靠运行。
附图说明
图1为一个实施例中应用于报文数据发送场景的FPGA硬件抽象层结构示意图;
图2为组件接收接口时序图;
图3为硬件抽象层报文格式示意图;
图4为另一个实施例中应用于报文数据发送场景的FPGA硬件抽象层方法的应用环境图;
图5为另一个实施例中总线发送仲裁模块架构示意图;
图6为一个实施例中应用于报文数据接收场景的FPGA硬件抽象层结构示意图;
图7为组件发送接口的时序图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
为便于详细解释本申请FPGA硬件抽象层的技术方案及其效果,下面将首先针对其相关的技术以及本申请FPGA硬件抽象层方案的核心技术原理进行说明。
FPGA硬件抽象层作为软件无线电系统中一个重要核心部件,历来都是研究的重点领域,过去的实现方式均是基于某一硬件平台定制化一个专门的硬件抽象层,将硬件抽象层和实现特定总线接口的IP核或RTL(Register Transfer Level,寄存器传输级)驱动结合在一起,此种实现方式无法将FPGA硬件抽象层作为一个独立于总线接口的可移植模块,这样当平台总线接口有变更需求,或者需要将硬件抽象层在不同平台之间移植时,就不得不根据新的总线接口重新设计硬件抽象层,因此耗时耗力。另外,研究发明,针对同一个FPGA内部多个波形组件需要共享同一个外部总线接口进行数据读写的情况,或者针对这些波形组件相互之间进行数据读写的情况,尚无通用的FPGA硬件抽象层实现方案,而是交由不同开发人员自己去实现,由此往往导致不同的硬件抽象层代码中包含针对特定组件数量和特定总线类型进行仲裁的代码,这样进一步导致FPGA硬件抽象层的实现缺乏标准性和通用性,无法作为一个独立的IP核在不同平台上相互移植和重用,造成了大量重复性的、低质量开发。
基于上述现状,本申请基于FPGA底层硬件平台总线接口类型的多样性,以及可能存在的同一个FPGA内部多个波形组件竞争同一个外部总线接口和相互之间通信的需求,设置有专门的组件接口适配模块110将FPGA硬件抽象层与上层波形组件分离,设置有总线接口适配模块140将FPGA硬件抽象层与底层的总线驱动分离,保证FPGA硬件抽象层代码具有平台无关特性,整个FPGA硬件抽象层与具体总线类型相关代码从FPGA抽象层内部实现中剥离出去,并进一步的,在抽象层内部引入发送仲裁(针对发送的FPGA硬件抽象层)和接收仲裁模块(针对接收的FPGA硬件抽象层),使得FPGA内部任意波形组件均可根据需要,调用标准统一的接口进行相互通信,并解决了多个组件之间相互通信的问题,实现了一个独立于底层硬件平台、独立于上层波形组件的通用的FPGA硬件抽象层,该硬件抽象层具有模块化程度高,复用性强,跨平台可移植性等特点。
基于上述原理,本申请提供一种应用于报文数据发送场景的FPGA硬件抽象层,包括组件接口适配模块110、预存波形组件发送数据的目的逻辑地址与物理地址映射关系的LD-PD配置模块120、报文发送封装模块130以及总线接口适配模块140;组件接口适配模块110与上层的波形组件以及报文发送封装模块130连接,LD-PD配置模块120与报文发送封装模块130连接,报文发送封装模块130与总线接口适配模块140连接,总线接口适配模块140与底层的总线驱动连接;
当波形组件有报文数据需要发送时,报文数据通过组件接口适配模块110进入报文发送封装模块130,报文发送封装模块130根据报文数据携带的目的逻辑地址查询LD-PD配置模块120中的目的逻辑地址与物理地址映射关系,判断报文数据达到的目的波形组件为本地或为远端,当为本地时,发送报文数据至组件接口适配模块110,由组件接口适配模块110发送报文数据至目的波形组件;当为远端时,报文发送封装模块130将报文数据封装为硬件抽象层报文,将硬件抽象层报文以及报文数据对应的物理地址发送至总线接口适配模块140,由总线接口适配模块140将硬件抽象层报文发送至物理地址对应的总线驱动。
组件接口适配模块110与外部波形组件连接,在组件接口适配模块110中记载有各波形组件接口规范,并且组件接口适配模块110还定义有统一的时序接口。具体来说,组件接口适配模块110:采用满足组件性能要求的接口规范,将数据按照规范化的接口协议发送或者接收至目的地。在应用于报文数据发送场景时,组件接口适配模块110中组件接收接口信号及时序定义如下表1。
表1为组件接收接口信号及时序定义
另外,组件接收接口时序图可以参见图2,在图2中,当硬件抽象层报文中的LD地址与组件端口输出的LD相同时,组件断言SOF(Start of Frame,起始标志)信号一个时钟周期,通知组件开始接收该数据帧,数据内容与写使能信号WR_EN对其,硬件抽象层在最后一个数据周期拉高EOF(End of Frame,结束标志)信号,表示该帧数据接收结束。
LD-PD配置模块120预先存储有波形组件发送数据的目的逻辑地址与物理地址映射关系。非必要的,上述映射关系可以以映射关系列表的形式存储。在实际应用中,每个波形组件首先将自己的逻辑地址(LD)向硬件抽象层注册,注册的LD存储在硬件抽象层本地LD列表中,然后,软件无线电核心框架再将该FPGA上所有波形组件要发送数据的目的逻辑地址(LD)与物理地址(PD)的LD-PD映射对以硬件抽象层报文的形式发到FPGA硬件抽象层的LD-PD配置模块120中。更具体来说,LD-PD配置模块120主要负责与软件无线电控制平台进行对接,软件无线电控制平台根据事先定义的报文格式生成配置命令实现HAL初始化,包括地址映射表维护,全局复位,设备ID配置,槽位号配置,组件端口优先级配置等功能,用户可透过HAL控制模块,按照其事先规划好的组件端口连接方案,部署组件间的端口相互连接。
报文发送封装模块130用于实现FPGA硬件抽象层中报文的封装。具体来说,报文发送封装模块130根据报文数据携带的目的逻辑地址查询LD-PD配置模块120中的目的逻辑地址与物理地址映射关系,判断报文数据达到的目的波形组件为本地或为远端,当为本地时,发送报文数据至组件接口适配模块110;当为远端时,报文发送封装模块130将报文数据封装为硬件抽象层报文,将硬件抽象层报文以及报文数据对应的物理地址发送至总线接口适配模块140。具体来说,硬件抽象层报文格式如图3所示,硬件抽象层报文帧格式非常简洁高效,其具体参数定义如下表2。
表2为硬件抽象层报文格式中各层定义
总线接口适配模块140与底层的总线驱动连接,总线接口适配模块140中加载有总线驱动接口规范、且定义有总线驱动的统一接口时序。具体来说,总线接口适配模块140规定了HAL与底层的总线驱动之间标准的交互接口,实现屏蔽底层硬件平台不同总线驱动差异的功能。具体的总线驱动程序由专门的驱动工程师实现,驱动工程师在完成驱动程序内部功能开发以后,只需按照总线接口适配模块140规定的标准接口对总线驱动进行接口封装,即可实现与HAL的数据交互。同样,按照总线接口适配模块140接口时序设计实现的HAL能够与同样支持该接口的任意总线驱动进行适配,从而使HAL具有很好的跨平台移植性。
如图4所示,在其中一个实施例中,FPGA硬件抽象层还包括总线发送仲裁模块150,报文发送封装模块130通过总线发送仲裁模块150与总线接口适配模块140连接;报文发送封装模块130将硬件抽象层报文以及报文数据对应的物理地址发送至总线发送仲裁模块150,总线发送仲裁模块150查询物理地址对应的总线驱动是否空闲,若空闲,则通过总线接口适配模块140将硬件抽象层报文发送至对应的总线驱动;若不空闲,则根据数据发送优先级队列等待处理,当到达处理时刻时,通过总线接口适配模块140将硬件抽象层报文发送至物理地址对应的总线驱动。
在本实施例中,增加总线发送仲裁模块150,整个FPGA硬件抽象层引入“仲裁”机制,当报文发送封装模块130需要发送硬件抽象层报文时,总线发送仲裁模块150接收该硬件抽象层报文,并且查询物理地址对应的总线驱动是否空闲,若空闲说明该对应的总线驱动可以正常传输数据,此时,总线发送仲裁模块150将硬件抽象层报文发送至总线接口适配模块140,由总线接口适配模块140转发至对应的总线驱动;若不空闲,则说明该对应的总线驱动当前处于繁忙状态,目前正在传输其他数据,此时需要根据预设数据发送优先级队列等待处理,当轮到当前硬件抽象层报文处理时,再将硬件抽象层报文发送至总线接口适配模块140,由总线接口适配模块140转发至对应的总线驱动。非必要的,根据数据发送优先级队列等待处理包括:当当前硬件抽象层报文在数据发送优先级队列中优先级最高时,打断对应的总线驱动中当前传输。数据发送优先队列是预先配置的队列,在队列中设置有各数据处理的优先级,一般优先级越高的数据越先得到处理,当当前硬件抽象层报文在数据发送优先级队列中优先级最高时,表明当前硬件抽象层报文最先需要被得到处理(传输),此时打断对应的总线驱动中当前传输,通过总线接口适配模块140将硬件抽象层报文发送至物理地址对应的总线驱动。
更具体来说,总线发送仲裁模块150其具有N个输入端口,M个输出端口,发送仲裁模块的作用是,根据输入端口给出的PD,选择一个合适的输出端口,输出给对应的总线驱动。同时,在有多个输入端口竞争同一个端口的情况下,根据端口优先级进行仲裁,缓存低优先级报文,优先发送高优先级报文;在有更高优先级报文到达时,打断当前输出,对高优先级进行优先发送。总线发送仲裁模块150的内部逻辑主要为多路选择器以及地址查询和匹配功能,因考虑实际应用中过多的仲裁引入的数据延迟过大,一般仲裁模块至多进行4路数据仲裁比较合适,以4个输入端口、1个输出端口的数据仲裁模块为例,其具体如图5所示。
另外,如图6所示,本申请还提供一种适用于报文数据接收场景的FPGA硬件抽象层,包括组件接口适配模块210、报文接收解析模块220、组件接收仲裁模块230以及总线接口适配模块240;组件接口适配模块210与上层的波形组件连接,组件接收仲裁模块230与组件接口适配模块210连接,报文接收解析模块220与总线接口适配模块240以及组件接收仲裁模块230连接,总线接口适配模块240与底层的总线驱动连接;当波形组件接收远端发送的报文数据时,通过总线接口适配模块240进入报文接收解析模块220,报文接收解析模块220从接收到的报文数据中解析出目的逻辑地址和数据,将解析出的目的逻辑地址和数据发送至组件接收仲裁模块230,组件接收仲裁模块230根据目的逻辑地址确定接收该报文数据的目的波形组件,若检测组件接口适配模块210中目的波形组件对应的接收端口空闲,则由组件接口适配模块210将解析出的数据发送至目的波形组件。
关于组件接口适配模块210在应用报文数据接收场景时,组件接口适配模块210中组件发送接口的时序与定义如下表3。
表3为组件发送接口的信号及时序定义
另外,组件发送接口的时序图可以参见图7,组件发送数据时通过拉起REQ信号向硬件抽象层发起发送请求,并同时给出该次发送的目的LD地址和数据长度,硬件抽象层收到发送请求后,若发送条件成立,则断言ACK进行发送确认,组件则将数据与写使能WR_EN对齐,将数据写入硬件抽象层中,发送完毕后,组件清除发送使能,硬件抽象层负责清除发送确认。
报文接收解析模块220接收总线接口适配模块240传输来的报文数据,并且对报文数据进行解析,解析为目的逻辑地址和数据两个部分,其中逻辑地址用于确定该报文数据的目的波形组件。需要指出的,在本实施例中报文接收解析模块220可以理解与上述报文发送封装模块130实现“互逆”功能,即上述报文发送封装模块130用于将
组件接收仲裁模块230检测组件接收适配模块中目的波形组件对应的接收端口是否空闲,若空闲,则表明对应的接收端口可以将解析出的数据传输至目的波形组件。非必要的,若不空闲,则表明对应的接收端口当前正在传输其他数据,组件接收仲裁模块230需要根据数据接收优先级队列等待处理,当等待到处理时刻时,通过组件接口适配模块210中接收端口传输解析出的数据至目的波形组件。进一步的,当当前解析出的数据在数据接收优先级队列中优先级最高时,打断目的波形组件对应的接收端口中当前传输。
上述FPGA硬件抽象层,设置有专门的组件接口适配模块210将FPGA硬件抽象层与上层波形组件分离,设置有总线接口适配模块240将FPGA硬件抽象层与底层的总线驱动分离,保证FPGA硬件抽象层代码具有平台无关特性,从而FPGA硬件抽象层能够稳定在不同平台中稳定可靠运行。
另外,本申请还提供适用于报文数据发送和报文数据接收的FPGA硬件抽象层,包括组件接口适配模块、预存波形组件发送数据的目的逻辑地址与物理地址映射关系的LD-PD配置模块、报文发送封装模块、总线发送仲裁模块、组件接收仲裁模块、报文接收解析模块以及总线接口适配模块;组件接口适配模块与上层的波形组件、报文发送封装模块以及组件接收仲裁模块连接,LD-PD配置模块与报文发送封装模块以及报文接收解析模块连接,报文发送封装模块与总线发送仲裁模块以及组件接收仲裁模块连接,总线发送仲裁模块以及报文接收解析模块与总线接口适配模块连接,总线接口适配模块与底层的总线驱动连接;
当波形组件有报文数据需要发送时,报文数据通过组件接口适配模块进入报文发送封装模块,报文发送封装模块根据报文数据携带的目的逻辑地址查询LD-PD配置模块中的目的逻辑地址与物理地址映射关系,判断报文数据达到的目的波形组件为本地或为远端,当为本地时,发送报文数据至组件接口适配模块,由组件接口适配模块发送报文数据至目的波形组件;当为远端时,报文发送封装模块将报文数据封装为硬件抽象层报文,将硬件抽象层报文以及报文数据对应的物理地址发送至总线发送仲裁模块,若物理地址对应的总线驱动空闲,则由总线接口适配模块将硬件抽象层报文发送至对应的总线驱动;
当波形组件接收远端发送的报文数据时,通过总线接口适配模块进入报文接收解析模块,报文接收解析模块从接收到的报文数据中解析出目的逻辑地址和数据,将解析出的目的逻辑地址和数据发送至组件接收仲裁模块,组件接收仲裁模块根据目的逻辑地址确定接收该报文数据的目的波形组件,若检测组件接口适配模块中目的波形组件对应的接收端口空闲,则由组件接口适配模块将解析出的数据发送至目的波形组件。
上述FPGA硬件抽象层,设置有专门的组件接口适配模块将FPGA硬件抽象层与上层波形组件分离,设置有总线接口适配模块将FPGA硬件抽象层与底层的总线驱动分离,保证FPGA硬件抽象层代码具有平台无关特性,从而FPGA硬件抽象层能够稳定在不同平台中稳定可靠运行。另外,在FPGA硬件抽象层中还引入总线发送仲裁模块,使得多个波形组件同时访问同一个总线接口时,能够对竞争进行有效协调仲裁,实现多个访问的有序进行而不会产生冲突。此外,还数据发送封装模块和组件接收仲裁模块,使得同一个FPGA上的本地不同组件之前的数据交互方式与本地组件与远端组件之间的数据交互方式完全相同,从而允许用户能够根据不同平台上的FPGA处理能力,选择将多个组件同时部署在同一个FPGA,或分开部署在不同FPGA上,实现波形组件的灵活部署。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种FPGA硬件抽象层,其特征在于,包括组件接口适配模块、预存波形组件发送数据的目的逻辑地址与物理地址映射关系的LD-PD配置模块、报文发送封装模块以及总线接口适配模块;
所述组件接口适配模块与上层的波形组件以及报文发送封装模块连接,所述LD-PD配置模块与所述报文发送封装模块连接,所述报文发送封装模块与所述总线接口适配模块连接,所述总线接口适配模块与底层的总线驱动连接;
当波形组件有报文数据需要发送时,报文数据通过所述组件接口适配模块进入所述报文发送封装模块,所述报文发送封装模块根据所述报文数据携带的目的逻辑地址查询所述LD-PD配置模块中的目的逻辑地址与物理地址映射关系,判断所述报文数据达到的目的波形组件为本地或为远端,当为本地时,发送所述报文数据至组件接口适配模块,由所述组件接口适配模块发送所述报文数据至目的波形组件;当为远端时,所述报文发送封装模块将所述报文数据封装为硬件抽象层报文,将所述硬件抽象层报文以及所述报文数据对应的物理地址发送至所述总线接口适配模块,由所述总线接口适配模块将所述硬件抽象层报文发送至所述物理地址对应的总线驱动。
2.根据权利要求1所述的FPGA硬件抽象层,其特征在于,还包括总线发送仲裁模块,所述报文发送封装模块通过所述总线发送仲裁模块与所述总线接口适配模块连接;
所述报文发送封装模块将所述硬件抽象层报文以及所述报文数据对应的物理地址发送至所述总线发送仲裁模块,所述总线发送仲裁模块查询所述物理地址对应的总线驱动是否空闲,若空闲,则通过总线接口适配模块将所述硬件抽象层报文发送至所述对应的总线驱动;若不空闲,则根据数据发送优先级队列等待处理,当到达处理时刻时,通过所述总线接口适配模块将所述硬件抽象层报文发送至所述物理地址对应的总线驱动。
3.根据权利要求2所述的FPGA硬件抽象层,其特征在于,所述根据数据发送优先级队列等待处理,包括:
当当前所述硬件抽象层报文在数据发送优先级队列中优先级最高时,打断所述对应的总线驱动中当前传输。
4.根据权利要求1所述的FPGA硬件抽象层,其特征在于,所述组件接口适配模块加载有波形组件接口规范、且定义有波形组件的统一接口时序,所述总线接口适配模块加载有总线驱动接口规范、且定义有总线驱动的统一接口时序。
5.一种FPGA硬件抽象层,其特征在于,包括组件接口适配模块、报文接收解析模块、组件接收仲裁模块以及总线接口适配模块;
所述组件接口适配模块与上层的波形组件连接,所述组件接收仲裁模块与所述组件接口适配模块连接,所述报文接收解析模块与所述总线接口适配模块以及所述组件接收仲裁模块连接,所述总线接口适配模块与底层的总线驱动连接;
当波形组件接收远端发送的报文数据时,通过所述总线接口适配模块进入报文接收解析模块,所述报文接收解析模块从接收到的报文数据中解析出目的逻辑地址和数据,将解析出的目的逻辑地址和数据发送至组件接收仲裁模块,所述组件接收仲裁模块根据所述目的逻辑地址确定接收该报文数据的目的波形组件,若检测所述组件接口适配模块中所述目的波形组件对应的接收端口空闲,则由所述组件接口适配模块将解析出的数据发送至所述目的波形组件。
6.根据权利要求5所述的FPGA硬件抽象层,其特征在于,所述组件接收仲裁模块还用于当检测所述组件接口适配模块中所述目的波形组件对应的接收端口不空闲时,根据数据接收优先级队列等待处理,当到达处理时刻时,通过所述组件接口适配模块将所述解析出的数据发送至所述目的波形组件。
7.根据权利要求6所述的FPGA硬件抽象层,其特征在于,所述根据数据接收优先级队列等待处理,包括:
当当前所述解析出的数据在数据接收优先级队列中优先级最高时,打断所述目的波形组件对应的接收端口中当前传输。
8.根据权利要求5所述的FPGA硬件抽象层,其特征在于,所述组件接口适配模块加载有波形组件接口规范、且定义有波形组件的统一接口时序,所述总线接口适配模块加载有总线驱动接口规范、且定义有总线驱动的统一接口时序。
9.一种FPGA硬件抽象层,其特征在于,包括组件接口适配模块、预存波形组件发送数据的目的逻辑地址与物理地址映射关系的LD-PD配置模块、报文发送封装模块、总线发送仲裁模块、组件接收仲裁模块、报文接收解析模块以及总线接口适配模块;
所述组件接口适配模块与上层的波形组件、报文发送封装模块以及组件接收仲裁模块连接,所述LD-PD配置模块与所述报文发送封装模块以及报文接收解析模块连接,所述报文发送封装模块与总线发送仲裁模块以及组件接收仲裁模块连接,所述总线发送仲裁模块以及所述报文接收解析模块与所述总线接口适配模块连接,所述总线接口适配模块与底层的总线驱动连接;
当波形组件有报文数据需要发送时,报文数据通过所述组件接口适配模块进入所述报文发送封装模块,所述报文发送封装模块根据所述报文数据携带的目的逻辑地址查询所述LD-PD配置模块中的目的逻辑地址与物理地址映射关系,判断所述报文数据达到的目的波形组件为本地或为远端,当为本地时,发送所述报文数据至所述组件接口适配模块,由所述组件接口适配模块发送所述报文数据至所述目的波形组件;当为远端时,所述报文发送封装模块将所述报文数据封装为硬件抽象层报文,将所述硬件抽象层报文以及所述报文数据对应的物理地址发送至所述总线发送仲裁模块,若所述物理地址对应的总线驱动空闲,则由总线接口适配模块将所述硬件抽象层报文发送至所述对应的总线驱动;
当波形组件接收远端发送的报文数据时,通过所述总线接口适配模块进入报文接收解析模块,所述报文接收解析模块从接收到的报文数据中解析出目的逻辑地址和数据,将解析出的目的逻辑地址和数据发送至组件接收仲裁模块,所述组件接收仲裁模块根据所述目的逻辑地址确定接收该报文数据的目的波形组件,若检测所述组件接口适配模块中所述目的波形组件对应的接收端口空闲,则由所述组件接口适配模块将解析出的数据发送至所述目的波形组件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810791103.2A CN108984324B (zh) | 2018-07-18 | 2018-07-18 | Fpga硬件抽象层 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810791103.2A CN108984324B (zh) | 2018-07-18 | 2018-07-18 | Fpga硬件抽象层 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108984324A true CN108984324A (zh) | 2018-12-11 |
CN108984324B CN108984324B (zh) | 2021-05-11 |
Family
ID=64549690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810791103.2A Active CN108984324B (zh) | 2018-07-18 | 2018-07-18 | Fpga硬件抽象层 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108984324B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110109848A (zh) * | 2019-04-29 | 2019-08-09 | 湖南理工学院 | Dsp硬件抽象层以及dsp处理器 |
CN110908811A (zh) * | 2019-11-01 | 2020-03-24 | 中国人民解放军国防科技大学 | 基于缓存动态分配的硬件抽象层消息转发方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7620743B2 (en) * | 2004-04-01 | 2009-11-17 | Lsi Corporation | System and method for implementing multiple instantiated configurable peripherals in a circuit design |
CN102591657A (zh) * | 2011-12-29 | 2012-07-18 | 东南大学 | 一种基于cpu及dsp协同机制的gui系统实现方法 |
CN103294635A (zh) * | 2013-04-03 | 2013-09-11 | 中国电子科技集团公司第七研究所 | 基于SCA的Modem组件处理核及集成电路 |
CN103617074A (zh) * | 2013-11-29 | 2014-03-05 | 中国航空无线电电子研究所 | 软件通信体系架构逻辑设备系统及监测、查询与控制方法 |
CN104133963A (zh) * | 2014-07-29 | 2014-11-05 | 中国航空无线电电子研究所 | 基于串行高速总线的fpga硬件抽象层及其实现方法 |
CN107248867A (zh) * | 2017-05-24 | 2017-10-13 | 中国航空无线电电子研究所 | 基于srio的dsp上mhal的实现方法 |
CN108255755A (zh) * | 2017-12-08 | 2018-07-06 | 天津津航计算技术研究所 | 基于fpga的pcie通用多功能通信接口模块 |
-
2018
- 2018-07-18 CN CN201810791103.2A patent/CN108984324B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7620743B2 (en) * | 2004-04-01 | 2009-11-17 | Lsi Corporation | System and method for implementing multiple instantiated configurable peripherals in a circuit design |
CN102591657A (zh) * | 2011-12-29 | 2012-07-18 | 东南大学 | 一种基于cpu及dsp协同机制的gui系统实现方法 |
CN103294635A (zh) * | 2013-04-03 | 2013-09-11 | 中国电子科技集团公司第七研究所 | 基于SCA的Modem组件处理核及集成电路 |
CN103617074A (zh) * | 2013-11-29 | 2014-03-05 | 中国航空无线电电子研究所 | 软件通信体系架构逻辑设备系统及监测、查询与控制方法 |
CN104133963A (zh) * | 2014-07-29 | 2014-11-05 | 中国航空无线电电子研究所 | 基于串行高速总线的fpga硬件抽象层及其实现方法 |
CN107248867A (zh) * | 2017-05-24 | 2017-10-13 | 中国航空无线电电子研究所 | 基于srio的dsp上mhal的实现方法 |
CN108255755A (zh) * | 2017-12-08 | 2018-07-06 | 天津津航计算技术研究所 | 基于fpga的pcie通用多功能通信接口模块 |
Non-Patent Citations (3)
Title |
---|
乌力更: "基于FPGA的软件无线电组件互联设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
倪一洋: "基于FPGA的多总线接口适配技术研究", 《中国优秀硕士学位论文全文数据库 工程科技II辑》 * |
方咏娴: "手持通信终端的硬件抽象层研究及其FPGA实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110109848A (zh) * | 2019-04-29 | 2019-08-09 | 湖南理工学院 | Dsp硬件抽象层以及dsp处理器 |
CN110908811A (zh) * | 2019-11-01 | 2020-03-24 | 中国人民解放军国防科技大学 | 基于缓存动态分配的硬件抽象层消息转发方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108984324B (zh) | 2021-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110213143B (zh) | 一种1553b总线ip核及监视系统 | |
CN112860612B (zh) | 互联裸芯与mpu的接口系统及其通信方法 | |
CN108055202B (zh) | 一种报文处理设备和方法 | |
CN110545152B (zh) | 一种以太网中具有实时传输功能的上位机及以太网系统 | |
US10467154B2 (en) | Multi-port multi-sideband-GPIO consolidation technique over a multi-drop serial bus | |
CN109408419B (zh) | Dsp硬件抽象层和dsp处理器 | |
EP1950932A1 (en) | System for transmitting data within a network between nodes of the network and flow control process for transmitting said data | |
KR20100066705A (ko) | 센서네트워크에서 다중 안테나 정합과 dma 기반 데이터 전달 방법 및 이를 위한 싱크노드 | |
US10572410B2 (en) | Function-specific communication on a multi-drop bus for coexistence management | |
CN109165178B (zh) | 一种基于RapidIO的弹上系统SoC芯片间高速通信方法 | |
WO2022251998A1 (zh) | 支持多协议栈的通信方法及系统 | |
CN109819065A (zh) | 基于fpga的数据传输及存储系统、方法以及数据系统 | |
CN110851388A (zh) | 针对risc-v处理器的调试系统及调试信号传输方法 | |
CN108984324A (zh) | Fpga硬件抽象层 | |
CN106713183B (zh) | 网络设备的接口板以及该网络设备和报文转发方法 | |
KR20170133236A (ko) | PCIe 장치들에서의 고속 입출력을 위한 스토리지 시스템, 방법 및 장치 | |
US20070016698A1 (en) | Memory channel response scheduling | |
CN114244915A (zh) | 一种支持多种协议的数据传输方法、装置及存储介质 | |
CN109600457B (zh) | 一种多至一映射的phy-mac接口控制装置及方法 | |
CN110109848B (zh) | Dsp硬件抽象层以及dsp处理器 | |
CN110971621A (zh) | 基于sdio接口的嵌入式多cpu互联电路、互联方法及驱动方法 | |
CN116450563A (zh) | 一种消息接收装置和处理器通信系统 | |
CN108521416B (zh) | 一种ecn板卡 | |
CN112702313B (zh) | 高速udp数据发送系统及方法 | |
RU175049U9 (ru) | УСТРОЙСТВО КОММУНИКАЦИОННЫХ ИНТЕРФЕЙСОВ SpaceWire |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |