首页 / 一种FPGA的寄存器资源的优化方法及装置

一种FPGA的寄存器资源的优化方法及装置有效专利 发明

技术领域

[0001] 本发明涉及电子技术领域,尤其涉及一种FPGA(Field-Programmable Gate Array,现场可编程门阵列)的寄存器资源的优化方法及装置。

相关背景技术

[0002] 在目前工业化领域中,旨在利用FPGA的IO配置灵活性和功能的多样性以及MCU的运算功能,FPGA+MCU架构的核心控制板,甚至是融合FPGA+MCU的SOPC(System-on-a-Programmable-Chip,可编程片上系统),在工控、智能设备、安防监控及车载电子等领域的应用越来越广,合理的应用FPGA资源,能够极大提高产品的性能,提高产品的市场竞争力。
[0003] 在FPGA+MCU的这种核心控制架构中,MCU一般是作为运算部分,涉及到一些特殊功能开发则会应用到FPGA;FPGA完成功能应用,同时通过高速总线与MCU交互功能应用数据;FPGA代码编译之后形成的是硬件网表,实际相当于形成的是硬件资源,所以在功能上必须包含所有的硬件配置。
[0004] 通常,对于每个模块,FPGA识别该模块的module号(用以标识模块的位置信息)和ID号(用以标识模块所支持的数据类型)的匹配对,每个module号通过对应的ID号匹配出相应的寄存器并固化,如图1所示,然后将每个module号匹配的寄存器的值通过总线与MCU进行数据交互。
[0005] 由于FPGA中的寄存器资源是有限的,在某些场合如果占用太多的寄存器资源,会导致寄存器资源不够用。因此,现有技术中每一个模块对应一个寄存器的方式,会导致以下问题:
[0006] 当所支持的模块类型增多时,会导致FPGA的寄存器的使用数量成倍地增加,极度的消耗了FPGA的寄存器资源,甚至造成FPGA资源满负荷使用,无法再添加其他功能选项,从而影响了产品的整体功能实现。
[0007] 若采用更换资源量更丰富的FPGA的方式以解决资源不足的问题,则会大大提高整体产品的成本,并且没有任何实质性的产品性能提升,最终会大大降低了产品的市场竞争力。

具体实施方式

[0032] 为了使本技术领域的人员更好地理解本申请实施例方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请实施例一部分的实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请实施例保护的范围。
[0033] 本申请实施例中,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0034] 请参阅图2,本发明实施例提供了一种FPGA的寄存器的资源优化方法,包括以下步骤:
[0035] 步骤101、智能检测功能开启后,向各个模块分别发送检测帧,获得检测结果。
[0036] 模块,具体可包括:4通道AD模拟输入模块,32通道NPN数字IO输入模块,64通道NPN数字IO输出模块,32通道NPN数字IO输出模块,64通道NPN数字IO输出模块等等。
[0037] 智能检测功能,用以获取当前模块的模块号、ID号以及模块长度。
[0038] 其中,模块号用于标识当前模块于FPGA板卡上的插入位置。
[0039] 所有模块根据贴近FPGA板卡的位置不一样,依次编号0,1,2,3…n(即模块号),模块位置识别具体实现如下例所示:如有板卡FPGA,模块A、模块B、模块C以及模块D依次排列;板卡FPGA有4个strap引脚与模块A主板相连,同时4个管脚全部输入为低电平,则模块A主板得到的位置编号为0000,模块A主板同时有4个strap引脚与下一级相连,会基于自身的编号加1,传给下一级,则下一级模块B主板得到位置编号0001,依次类推,模块C得到位置编号
0010,模块D得到位置编号0011。如此,则所有的四个模块都得到了插入位置的编号。
[0040] ID号用于标识当前模块的数据类型。
[0041] ID号在本发明中用于识别模块的数据类型,在整个系统中还用于识别模块,如下例所示:ID=0x0001,则会识别32位读数据,代表32通道NPN数字IO输入模块;ID=0x0010,则会识别64位读数据,代表64通道NPN数字IO输入模块。
[0042] 模块长度用于标识当前模块的数据长度。
[0043] 本步骤中,智能检测功能的开启,通常在以下两种情况下触发:一种是系统开机时,另一种是有新的模块插入时。
[0044] 步骤102、根据检测结果,为每种数据类型匹配一寄存器,并设置该寄存器对应的读写使能位;每种数据类型匹配的寄存器的存储空间,不小于支持当前数据类型的任意一个模块的数据长度。
[0045] 在现有技术中,每个模块号(即每个位置)都会对应一个寄存器矩阵,该寄存器矩阵包括多个寄存器,这些寄存器与多种数据类型呈一一映射关系,即每个模块(即模块号和ID号的匹配对)对应一个寄存器。
[0046] 与现有技术不同,本实施例将处于不同位置且支持同一种数据类型的多个模块,匹配同一寄存器,并且该寄存器的存储空间大小按照这些模块中具有最长数据长度的模块来配置,即可实现同一个寄存器适用多个模块的效果。因此,与现有技术采用的每个模块应用一个寄存器的方式相比,本实施例可极大地节省寄存器资源的占用率。
[0047] 步骤103、针对每个模块,在与上位机的数据交互过程中,利用与当前模块的数据类型相匹配的寄存器,来实现当前模块的数据操作。
[0048] 具体的,在数据交互过程中,每个模块的单次数据操作过程包括:先装载当前模块的数据长度,再对与当前模块所支持的数据类型相匹配的寄存器进行多次读/写操作,每完成一次读/写操作时将当前模块的数据长度减1,直至当前模块的数据长度为0,即完成当前模块的数据操作。在此数据操作过程中,可通过控制读写使能位,来控制寄存器的读写方向。
[0049] 当经过一个轮询后,继续操作同一模块时,重新执行上述的单次数据操作过程,即:先重新装载当前模块的数据长度,再继续执行后续的多次读/写操作。
[0050] 具体的,轮询指的是针对不同位置的同一数据类型的全部模块依次进行询问。例如:在只有插入四个32通道NPN数字IO输入模块的情况下,会按位置依次发送4个ID轮询帧,并依次得到4个模块的应答。
[0051] 需要说明的是,在工业环境下,通常不会在同一个位置频繁切换模块的类型,在上电的时候侦测完模块的类型,一般不会改变。
[0052] 举例如下:
[0053] 在一个工业应用下,模块搭配如下:
[0054] 位置1模块:32通道NPN数字IO输入模块;
[0055] 位置2模块:64通道NPN数字IO输出模块;
[0056] 位置3模块:32通道NPN数字IO输出模块;
[0057] 位置4模块:64通道NPN数字IO输出模块。
[0058] 在另一个应用场合则为4个全部都是:32通道NPN数字IO输入模块。
[0059] 在工业控制柜里面,非特殊情况不会更换模块,也就是说第一次检测后基本各个位置的模块固定了,这种应用只是为了适应不同工业需求来搭配不同的模块。
[0060] 综上,本发明实施例按照数据类型来配置寄存器,使得每个寄存器同时适用于支持同一数据类型的多个模块,与传统的为每个模块分别配置一对应的寄存器的方式相比较,明显极大地节省了寄存器的使用数量,提高了寄存器的利用率。
[0061] 同时,随着后续的产品升级,若继续增加模块支持的数据类型,仅需要为该新增的数据类型配置一个相应的寄存器即可,因此增加占用的寄存器资源较少。在剩余资源有限的前提下,应用本发明实施例,可简单地通过更改FPGA代码就可以实现,无需成倍地增加寄存器资源,即不需更换具有更多寄存器资源的FPGA,大大降低了成本。
[0062] 本发明另一实施例提供了一种FPGA的寄存器的资源优化装置,包括:多个模块、多个寄存器、检测单元、寄存器匹配单元和数据操作单元。
[0063] 检测单元,用于获得各个模块的ID号以及模块长度,ID号用于标识当前模块的数据类型;
[0064] 寄存器匹配单元,用于为每种数据类型匹配一寄存器;每种数据类型匹配的寄存器的存储空间,不小于支持当前数据类型的任意一个模块的数据长度;
[0065] 数据操作单元,用于针对每个模块,在数据交互过程中,应用与当前模块的数据类型相匹配的寄存器,实现对当前模块的数据操作。
[0066] 比常规的FPGA产品相比较,本发明实施例的FPGA的寄存器资源的应用更加合理,大大节省了资源占用率,提高利用率,提升了产品的市场竞争力。
[0067] 本领域普通技术人员可以理解,上述优化方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
[0068] 为此,本申请实施例还提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的优化中的步骤。
[0069] 其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
[0070] 以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页 第1页 第2页 第3页