发明内容
本发明实施例提供一种现场可编程门阵列及其指令解码方法,可以降低现场可编程门阵列的应用难度,提高FPGA的适用性并降低FPGA的生产成本。
本发明解决上述技术问题所采用的技术方案如下:
根据本发明的一个方面提供的一种现场可编程门阵列,包括控制电路,还包括若干个接口转换器、仲裁器及包处理器,其中:
该接口转换器的输入端用于接收包含指令的数据,该接口转换器的输出端连接该仲裁器的输入端;
该仲裁器的输出端连接该包处理器的输入端;
该包处理器的输出端连接该控制电路的输入端。
在其中的一个实施例中,该接口转换器还用于将该数据转换为指令数据包,该接口转换器的输出端用于将该指令数据包发送给该仲裁器;
该仲裁器用于将接收到的该指令数据包按照与该指令数据包对应的优先级,将该指令数据包依次发送给该包处理器;
该包处理器用于解析该指令数据包中的指令,并将解析的该指令发送给控制电路。
在其中的一个实施例中,该指令数据包的格式与该包处理器能够处理的数据包的格式相同。
在其中的一个实施例中,该接口转换器的个数与接收包含该指令的数据的接口个数相同,每个接收该数据的接口中均设有一个该接口转换器。
根据本发明的另一个方面提供的一种现场可编程门阵列的指令解码方法,该方法包括:
接收包含指令的数据;
将该包含指令的数据转换成相同预设格式的指令数据包;
选用与该预设格式对应的解码规则解析该指令数据包中包含的指令;
执行解析的该指令。
在其中的一个实施例中,该现场可编程门阵列的指令解码方法还包括:
获取该指令数据包中的优先级;
该选用与该预设格式对应的解码规则解析该指令数据包中包含的指令的步骤进一步为:
选用与该预设格式对应的解码规则,并按照获取的该优先级依次解析对应的指令数据包中包含的指令。
在其中的一个实施例中,通过现场可编程门阵列的接口接收包含指令的数据;
通过该现场可编程门阵列的接口转换器将该包含指令的数据转换成相同预设格式的指令数据包;
选用与该预设格式对应的解码规则,并通过该现场可编程门阵列的包处理器解析该指令数据包中包含的指令;
通过该现场可编程门阵列的控制电路执行解析的该指令。
在其中的一个实施例中,该现场可编程门阵列的指令解码方法还包括:
通过该现场可编程门阵列的仲裁器获取该指令数据包中的优先级。
在其中的一个实施例中,该现场可编程门阵列的指令解码方法还包括:
通过该现场可编程门阵列的仲裁器将该指令数据包按照该优先级的先后顺序依次发送给该包处理器。
在其中的一个实施例中,该现场可编程门阵列的指令解码方法还包括:
通过该仲裁器判断该指令数据包是否为有效的指令数据包;
若判断结果为是,则将该指令数据包按照该优先级的先后顺序依次发送给该包处理器,否则,按照预设的规则对该指令数据包进行处理。
本发明通过选用若干个接口转换器接收不同格式的指令数据,并将不同格式的指令数据通过各个接口转换器统一转换为FPGA中的包处理器能够识别的指令数据包,使得FPGA中的包处理器可以解析指令数据中的指令,使得用户端的接口不再需要对不同格式的指令做接口适配,而是直接将数据发给FPGA,由FPGA去进行格式转换及解析的处理,降低现场可编程门阵列的应用难度,提高FPGA的适用性。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图2为根据本发明的一个实施例的现场可编程门阵列的结构示意图,下面结合图2来详细描述根据本发明的一个实施例的现场可编程门阵列FPGA,如图2所示,该现场可编程门阵列,包括控制电路,还包括若干个接口转换器、仲裁器及包处理器,其中:
该接口转换器的输入端用于接收包含指令的数据,该接口转换器的输出端连接该仲裁器的输入端;
该仲裁器的输出端连接该包处理器的输入端;
该包处理器的输出端连接该控制电路的输入端。
在其中的一个实施例中,该接口转换器还用于将该数据转换为指令数据包,该接口转换器的输出端用于将该指令数据包发送给该仲裁器;
该仲裁器用于将接收到的该指令数据包按照与该指令数据包对应的优先级,将该指令数据包依次发送给该包处理器;
该包处理器用于解析该指令数据包中的指令,并将解析的该指令发送给控制电路。
根据本实施例的一个示例,上述的接口转换器可以以集成电路的形式来实现。
在其中的一个实施例中,该指令数据包的格式与该包处理器能够处理的数据包的格式相同。
在其中的一个实施例中,该接口转换器的个数与接收包含该指令的数据的接口个数相同,每个接收该数据的接口中均设有一个该接口转换器。
根据本实施例的一个示例提供的FPGA指令解码方法,包括n个接口,n个接口转换器,一个仲裁器,一个包处理器,一个控制电路。
如图2所示,n个接口功能由用户方设备提供,用户方设备的n个接口与该FPGA上的n个用于接收包含指令的数据的接口相对应,并设置n个接口转换器,每个本端接收数据的接口上均设有一接口转换器,一个仲裁器,一个包处理器,一个控制电路在FPGA内部。其中,上述的接口转换器可以是集成电路。
如图2所示,n个接口分别与FPGA中对应的n个接口转换器连接。n个接口转换器与仲裁器连接。仲裁器与包处理器连接。包处理器与控制电路连接。
根据本实施例提供的FPGA的工作原理如下:
PGA上电后,数据通过各个接口发送给FPGA;
FPGA对应每个接口都有一个接口转换器,将每个接口的数据转换成后续包处理器识别的数据包格式;
FPGA通过特定的仲裁机制,将优先级最高的转换后的数据包发送给FPGA的包处理器;
包处理器对数据进行解包操作,产生相应的命令,将命令发送给FPGA的控制电路;
控制电路对FPGA进行指令指定的操作。
本实施例提供的现场可编程门阵列FPGA,在现有接口指令直接解码的解码方法的基础上,对应每个接口分别增加一个接口转换器,在仲裁器和控制电路之间增加一个包处理器。用户不需要根据FPGA的指令集分别对每个接口定义一套指令格式,FPGA对应每个接口都不需要有一个解码器。
用户可通过各种接口将包含有指令数据直接发送给FPGA,不需要根据FPGA的指令集分别对每个接口定义一套指令格式,FPGA应用的复杂度显著降低。
FPGA中对应每个接口分别增加一个接口转换器,与传统技术相比,对应的每个接口都不需要有一个解码器。在仲裁器和控制电路之间增加一个包处理器。由于一个解码器的复杂度远高于一个接口转换器,一个解码器的复杂度与一个包处理器相当。本发明提供的FPGA指令解码方法与传统的接口指令直接解码的解码方法相比,FPGA成本有一定降低。且随着FPGA功能越复杂、接口越多,成本降低越明显。
图3为根据本发明的一个实施例的现场可编程门阵列的指令解码方法的流程图,下面结合图3来详细描述根据本发明的一个实施例的现场可编程门阵列的指令解码方法,如图3所示,该方法包括以下步骤S101至S104。
S301、接收包含指令的数据。
根据本实施例的一个示例,可以通过FPGA的数据接收接口接收该包含指令的数据,其中,该包含指令的数据的来源可以是用户通过鼠标键盘等输入方式输入的操作命令,该操作命令经计算机识别并通过用户方设备的接口输入到该现场可编程门阵列FPGA的数据接收接口。
S302、将该包含指令的数据转换成相同预设格式的指令数据包。
在其中的一个实施例中,该指令数据包的格式与该包处理器能够处理的数据包的格式相同。该步骤将包含指令的数据转换成相同预设格式的指令数据包,使得包处理器在解析该指令数据包时可以按照统一的解码规则进行解码。
S303、选用与该预设格式对应的解码规则解析该指令数据包中包含的指令。
S304、执行解析的该指令。
在其中的一个实施例中,进一步地:
通过现场可编程门阵列的接口接收包含指令的数据;
通过该现场可编程门阵列的接口转换器将该包含指令的数据转换成相同预设格式的指令数据包;
选用与该预设格式对应的解码规则,并通过该现场可编程门阵列的包处理器解析该指令数据包中包含的指令;
通过该现场可编程门阵列的控制电路执行解析的该指令。
在其中的一个实施例中,该现场可编程门阵列的指令解码方法的方法还包括:
通过该现场可编程门阵列的仲裁器获取该指令数据包中的优先级。
在其中的一个实施例中,该现场可编程门阵列的指令解码方法的方法还包括:
通过该现场可编程门阵列的仲裁器将该指令数据包按照该优先级的先后顺序依次发送给该包处理器。
根据本实施例的一个示例,该仲裁器可以将接收的指令数据包的时间顺序作为上述的优先级顺序,按照先接收先发送的规则将接收到的指令数据包依次发送给包处理器。
根据本实施例的另一示例,该仲裁器还可以将各个指令数据包被执行的逻辑顺序作为上述的优先级,该逻辑顺序可以是接口转换器在进行数据转换时根据该数据的逻辑关系指定的优先级,仲裁器在取到指令数据包时,判断哪个指令数据包的优先级为最高,按照优先级由高到低的顺序将各个指令数据包依次发送给包处理器进行解析。
在其中的一个实施例中,该现场可编程门阵列的指令解码方法的方法还包括:
通过该仲裁器判断该指令数据包是否为有效的指令数据包;
若判断结果为是,则将该指令数据包按照该优先级的先后顺序依次发送给该包处理器,否则,按照预设的规则对该指令数据包进行处理。
根据本实施例的一个示例,判断指令数据包是否为有效可以根据该指令数据包的格式来判断,也可以根据该指令数据包的组成来判断,当该指令数据包的格式或者说是该指令数据包的各个组成部分均满足要求时,判断该指令数据包为有效的指令数据包,否则,判断该指令数据包为无效的指令数据包。
根据本实施例的另一示例,上述的按照预设的规则对该指令数据包进行处理可以是将无效的指令数据包进行丢弃处理,或进行报错提醒。
本实施例通过选用若干个接口转换器接收不同格式的指令数据,并将不同格式的指令数据通过各个接口转换器统一转换为FPGA中的包处理器能够识别的指令数据包,使得FPGA中的包处理器可以解析指令数据中的指令,使得用户端的接口不再需要对不同格式的指令做接口适配,而是直接将数据发给FPGA,由FPGA去进行格式转换及解析的处理,降低现场可编程门阵列的应用难度,提高FPGA的适用性。
图4为根据本发明的另一实施例的现场可编程门阵列的指令解码方法的流程图,下面结合图4来详细描述根据本发明的一个实施例的现场可编程门阵列的指令解码方法,如图4所示,该方法包括以下步骤S401至S405。
S401、接收包含指令的数据。
S402、将该包含指令的数据转换成相同预设格式的指令数据包。
在其中的一个实施例中,该指令数据包的格式与该包处理器能够处理的数据包的格式相同。该步骤将包含指令的数据转换成相同预设格式的指令数据包,使得包处理器在解析该指令数据包时可以按照统一的解码规则进行解码。
S403、获取该指令数据包中的优先级。
根据本实施例的一个示例,可以通过该现场可编程门阵列FPGA的仲裁器获取该指令数据包中的优先级,并根据该优先级将该指令数据包中依次发送给包处理器进行处理。
S404、选用与该预设格式对应的解码规则,并按照获取的该优先级依次解析对应的指令数据包中包含的指令。
根据本实施例的一个示例,可以通过该现场可编程门阵列FPGA的包处理器选用与该预设格式对应的解码规则,并按照获取的该优先级依次解析对应的指令数据包中包含的指令。
其中,由于在接收指令数据包时即是按照各个指令数据包的优先级顺序进行接收的,所以包处理器在进行解析时,可以将接收的各个指令数据包的时间先后顺序,按照谁先接收谁先解析的规则依次对接收到的指令数据包进行解析。
S405、执行解析的该指令。
根据本实施例的一个示例,可以通过该现场可编程门阵列FPGA的控制电路执行解析的该指令。
根据本实施例的一个示例,上述步骤S301~S405的标号并不用于限定本实施例中各个步骤的先后顺序,各个步骤的编号只是为了使得描述各个步骤时可以通用引用该步骤的标号进行便捷的指代,例如上述步骤S402可以在S403的步骤之前,也可以在步骤S403的步骤之后,只要各个步骤执行的顺序不影响本实施例的逻辑关系即表示在本申请请求保护的范围之内。
根据本实施例的一个示例,上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述程序可存储于一计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。该存储介质包括但不限于磁碟、优盘、光盘、只读存储记忆体(Read-OnlyMemory,ROM)等。
本实施例提供的现场可编程门阵列FPGA,在现有接口指令直接解码的解码方法的基础上,对应每个接口分别增加一个接口转换器,在仲裁器和控制电路之间增加一个包处理器。用户不需要根据FPGA的指令集分别对每个接口定义一套指令格式,FPGA对应每个接口都不需要有一个解码器。
用户可通过各种接口将包含有指令数据直接发送给FPGA,不需要根据FPGA的指令集分别对每个接口定义一套指令格式,FPGA应用的复杂度显著降低。
FPGA中对应每个接口分别增加一个接口转换器,与传统技术相比,对应的每个接口都不需要有一个解码器。在仲裁器和控制电路之间增加一个包处理器。由于一个解码器的复杂度远高于一个接口转换器,一个解码器的复杂度与一个包处理器相当。本发明提供的FPGA指令解码方法与传统的接口指令直接解码的解码方法相比,FPGA成本有一定降低。且随着FPGA功能越复杂、接口越多,成本降低越明显。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。