可编程逻辑器件的逻辑控制方法及装置与流程

文档序号:11918359阅读:237来源:国知局
可编程逻辑器件的逻辑控制方法及装置与流程

本发明属于可编程逻辑技术领域,尤其涉及一种可编程逻辑器件的逻辑控制方法及装置。



背景技术:

可编程逻辑器件具有性能强、速度快、高度可定制、输入输出接口丰富等优势,适用于高数数据采集、多任务并行处理、特殊应用等场合。因此,可编程逻辑器件发展迅速,集成度大幅提高,成本也逐步降低,越来越多的被用于各种电子电路设计中。

发明人在实现本发明的过程中,发现现有技术中的可编程逻辑器件至少存在以下问题:在将可编程逻辑器件应用在各种电子电路设计时,需要根据不同的电子电路设计需求对可编程逻辑器件的控制逻辑进行较大幅度改动,导致可编程逻辑器件的通用性较差且资源占用率较高。



技术实现要素:

有鉴于此,本发明实施例提供了一种可编程逻辑器件的逻辑控制方法及装置,以解决现有技术中可编程逻辑器件的通用性较差且资源占用率较高的问题。

本发明实施例的第一方面,提供了一种可编程逻辑器件的逻辑控制方法,包括:

接收中断信号,所述中断信号包括中断请求、目标数据的源地址和目标数据的目标地址,并检测所述中断请求的优先级;

在所述中断请求的优先级为当前最高时,根据所述中断信号生成数据传输请求;

根据所述数据传输请求,从所述目标数据的源地址读取所述目标数据,并将读取的目标数据写入所述目标数据的目标地址。

本发明实施例的第二方面,提供了一种可编程逻辑器件的逻辑控制装置,包括:

中断管理模块,用于接收中断信号,所述中断信号包括中断请求、目标数据的源地址和目标数据的目标地址,并检测所述中断请求的优先级;

数据传输管理模块,用于在所述中断请求的优先级为当前最高时,根据所述中断信号生成数据传输请求;

数据读写模块,用于根据所述数据传输请求,从所述目标数据的源地址读取所述目标数据,并将读取的目标数据写入所述目标数据的目标地址。

本发明实施例相对于现有技术所具有的有益效果:接收中断信号,所述中断信号包括中断请求、目标数据的源地址、目标数据的目标地址和目标数据的数目,并检测中断请求的优先级;在中断请求的优先级为当前最高时,生成数据传输请求;根据数据传输请求从源地址读取目标数据,并将读取的目标数据写入目标地址,能够将多个模块的数据操作请求统一管理生成中断请求,按照中断请求的优先级以进行数据传输,而且根据数据传输请求从源地址读取目标数据,并将读取的目标数据写入目标地址,与任务需求不直接相关,因此任务需求发生变化时,相应的代码无需改动或仅需进行微小的改动,能够提高可编程逻辑器件的通用性,降低资源占用率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例一提供的可编程逻辑器件的逻辑控制方法的流程图;

图2是本发明实施例一提供的所述根据所述数据传输请求读取所述目标数据步骤的流程图;

图3是本发明实施例一提供的所述将读取的目标数据写入所述目标数据的目标地址步骤的流程图;

图4是本发明实施例一提供的中断管理逻辑的状态转移图;

图5是本发明实施例一提供的数据传输管理逻辑的状态转移图;

图6是本发明实施例一提供的APB总线控制器的状态转移图;

图7是本发明实施例二提供的可编程逻辑器件的逻辑控制的结构框图;

图8是本发明实施例二提供的数据读写模块的结构框图;

图9是本发明实施例二提供的数据读写模块的又一结构框图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

实施例一:

图1示出了本发明实施例一提供的可编程逻辑器件的逻辑控制方法的实现流程,详述如下:

步骤S101,接收中断信号,所述中断信号包括中断请求、目标数据的源地址和目标数据的目标地址,并检测所述中断请求的优先级。

本步骤中,所述检测所述中断请求的优先级具体可以为:获取所述中断请求的优先级标识;其中,每种中断请求对应一个优先级标识。例如,根据中断请求的不同,中断请求的优先级标识可以分为高优先级、中优先级、低优先级等几种。也可以通过数字来表征中断请求的优先级标识,例如数字1对应高优先级,数字2对应中优先级,数字3对应低优先级,但不限于此。

因此,在接收到中断信号以后,获取中断信号中的中断请求,然后根据该中断请求的优先级标识来得出该终端请求的优先级别。另外,中断请求的有效标识对应第一标志位,无效标识对应第二标志位。其中,第一标志位可以为1,第二标志位可以为0。即,在检测到中断请求的标识为第一标志位时,则说明接收到有效的中断请求,并准备响应该中断请求;否则,不用响应该中断请求。

步骤S102,在所述中断请求的优先级为当前最高时,根据所述中断信号生成数据传输请求。

本步骤中,在检测到中断请求的优先级为当前最高时,开始响应该中断请求,并生成数据传输请求。其中,所述数据传输请求可以包括数据读取传输请求和数据写入传输请求。所述数据读取传输请求包括所述目标数据的源地址和数据读取传输次数;所述数据写入传输请求包括所述目标数据的目标地址和数据写入传输次数。

具体的,响应数据读取传输请求可以为将预设长度的目标数据从源位置读取出,并存储到预设存储器中。响应所述数据写入传输请求可以为将存储在预设存储器中的目标数据写至目标位置。其中,预设长度可以对应为中断信号中的目标数据的数目,也即目标数据的长度。其中,目标数据的源地址可以对应目标数据的第一个地址的数据,目标数据的数目对应目标数据的长度,由此可以得出传输的目标数据;目标数据的目标位置可以对应将目标数据写入的第一个地址,再根据目标数据的数目可以得出目标数据的写入地址。

步骤S103,根据所述数据传输请求,从所述目标数据的源地址读取所述目标数据,并将读取的目标数据写入所述目标数据的目标地址。

参见图3,一个实施例中,所述从所述目标数据的源地址读取所述目标数据可以包括:

步骤S201,获取所述目标数据的源地址和所述数据读取传输次数,初始化第一次总线读操作地址和数据读取传输次数。

其中,本实施例中,所述中断信号还包括目标数据的数目。第一次总线读操作地址为所述目标数据的源地址,所述数据读取传输次数的初始值等于所述目标数据的数目。即,从所述目标数据的源地址开始读取预设长度的目标数据,预设长度为所述目标数据的数目。

步骤S202,读取所述第N次总线读操作地址对应的数据,并将读到的数据存至预设存储器,且所述数据读取传输次数自减1;直至所述数据读取传输次数等于1。

本步骤中,所述第N+1次总线读操作地址为在第N次总线读操作地址的基础上加一;N为大于等于1的整数。读取第一次总线读操作地址对应的数据后,可以将读到的数据存至FIFO(First Input First Output,先进先出队列)存储空间中,以使得在将读取的目标数据写入目标地址时,能够方便准确地按照读取的顺序将读取的目标数据写入目标地址。

例如,第2次总线读操作地址为在第1次总线读操作地址的基础上加一,即第2次总线读操作地址为在目标数据的源地址的基础上加一。第3次总线读操作地址为在第2次总线读操作地址的基础上加一,以此类推直至所述数据读取传输次数等于1。

具体的,读取第2次总线读操作地址对应的数据,将读取到的数据存至所述预设存储器,数据读取传输次数自减1变为M-2;第3次总线读操作地址对应的数据,将读取到的数据存至所述预设存储器,数据读取传输次数自减1变为M-3;……;直至第M-1次总线读操作地址对应的数据,将读取到的数据存至所述预设存储器,数据读取传输次数自减1变为1。M为目标数据的数目。

参见图3,一个实施例中,所述将读取的目标数据写入所述目标数据的目标地址可以包括:

步骤S301,获取所述目标数据的目标地址和所述数据写入传输次数,初始化第一次总线写操作地址和数据写入传输次数。

其中,第一次总线写操作地址为所述目标数据的目标地址,所述数据写入传输次数的初始值为所述目标数据的数目。即,从预设存储器中将预设长度的目标数据写至所述目标地址。

步骤S302,按照先进先出原则,从所述预设存储器中读取所述目标数据,并将读取到的数据写至第N次总线写操作地址,且所述数据写入传输次数自减1;直至所述数据写入传输次数等于1。

本步骤中,可以按照先进先出原则,从预设存储器中读取最先存入的数据后,将读取到的数据写至所述第一次总线写操作地址,最终写入地址的开头地址。

其中,所述第N+1次总线写操作地址为在第N次总线写操作地址的基础上加一,N为大于等于1的整数。按照先进先出原则,依次将存储至预设存储器中的目标数据逐一写至目标地址。具体的,目标地址作为开头地址,每写入一次目标数据,总线写操作地址自加1,所述数据写入传输次数自减1,然后将下一数据写入新的总线写操作地址。直至所述数据写入传输次数等于1。

本实施例中,可以通过总线控制逻辑响应所述数据传输请求,从所述目标数据的源地址读取所述目标数据,并将读取的目标数据写入所述目标数据的目标地址。以下以APB总线为例进行说明。具体的,在未接受到所述数据传输请求时,进入APB协议建议的“IDLE”状态,APB总线的地址信号(PADDR)、读写控制信号(PWRITE)、写数据信号(PWDATA)和读数据信号(PRDATA)对应为数据传输请求中的源地址、目标地址和目标数据的数目,选择信号(PSEL)和使能信号(PENABLE)都为0,APB总线操作完成标志为0。在接受到所述数据传输请求时,跳入APB协议建议的“SETUP”状态,逻辑模块的PSEL=1,PENABLE=0;接着跳入APB协议建议的“ACCESS”状态,此时PENABLE=1,当准备信号(PREADY)有效时,一次APB总线操作完成;此时如果仍有数据传输操作请求,状态跳回“SETUP”,完成下一次APB总线操作。

以下结合图4至图6,对本发明实施例进行详细说明。

具体的,本发明实施例可以包括中断管理逻辑、数据传输管理逻辑、APB总线控制逻辑和APB接口的逻辑模块,每个APB接口逻辑模块中的控制和状态寄存器都挂靠在APB总线上。在工作中,通过APB总线读写这些寄存器,从而控制各逻辑模块的功能。当模块间需要进行数据传输时(如数据接收模块接收到计算机发送的命令后需要配置给另一个模块,或一个模块采集到数据后需要发送给数据发送模块,然后上传给计算机),发起数据传输请求的模块先产生一组中断信号,包括中断请求、数据传输源地址、数据传输目的地址、数据传输数目。中断管理逻辑接收到中断请求后,检测当前是否有正在处理的中断请求或未处理的优先级高于当前中断请求优先级的中断请求;若有,等待正在处理的中断请求或优先级高于当前中断请求优先级的中断请求完成;否则,中断管理逻辑根据当前中断请求通知数据管理逻辑进行数据传输。数据传输结束后,向发起数据传输请求的模块发送中断请求完成信号。数据管理逻辑先从目标数据的源地址开头的地址空间挨个读取规定数目的数据,存入内部的FIFO;等读取完成后,依次从FIFO取出数据,挨个写入目标数据的目标地址开头的地址空间,并在完成后通知中断管理逻辑。APB总线控制器根据数据管理逻辑的读写请求,触发APB完成总线读写时序。

具体的,中断管理逻辑可以是一个简单的有限状态机,状态转移如图4所示:当复位后或处理完一个中断请求后,进入“空闲”态,此时所有通道都没有未完成的中断请求,也没有数据传输请求;如果任意中断请求有效,对应的中断标志变为1。如果有多个中断请求的标志位为1,则获取各个中断请求的优先级,并优先处理优先级较高的(例如中断号越小,代表优先级越高)中断请求。例如,当前最高优先级未处理的中断请求是2号,那么状态从“空闲”跳转到“中断请求2”。跳入时,如果中断请求2没有再次发出中断请求,则中断请求2的标志位变为零。在该状态下,中断管理逻辑发起数据传输请求,目标数据的源地址、目标数据的目标地址和目标数据的数目为中断请求2的参数。当数据传输完成时,中断请求2处的中断请求即已处理完毕,状态跳回“空闲”,并输出一个中断请求完成信号。此外,在当前中断请求处理期间,如果检测到其他中断请求的中断标志位为1,等状态跳回“空闲”后,处理中断标志位为1的最高优先级的中断请求。

数据传输管理逻辑可以是一个简单的有限状态机,其状态转移如附图5所示。本实施例中,以通过APB(Advanced Peripheral Bus,外围总线)总线实现数据传输为例,对数据传输管理逻辑进行说明,但并不以此为限。在其他实施例中,还可以通过AXI(Advanced eXtensible Interface)总线实现数据传输。

当复位或处理完一次数据传输任务后,进入“空闲状态”,此时APB总线无读写请求,APB总线读写控制默认为读,读操作地址默认为目标数据的源地址,写数据为FIFO的输出,写操作地址默认为目标数据的目标地址,读数据连接在FIFO的输入端口,数据读取传输计数器初始值为目标数据的数目,数据传输完成标志为0。当中断管理逻辑发出数据传输请求时,状态跳入“读数据”,跳入时发出一次APB总线读请求,APB总线完成一次读操作后,APB总线读取的数据进入FIFO,下一次APB总线读操作地址加1,数据读取传输计数器减1,并且状态重新跳回本状态,重复下一次APB读操作,直到读完规定的目标数据(即,数据读取传输计数器等于1)。

之后,APB总线写操作地址改为目标数据的目标地址,数据写入传输计数器的初始值为目标数据的数目,并跳入“写数据”状态。跳入时发出一次APB总线写请求,APB总线将FIFO的输出数据写入到APB总线写操作地址,当一次APB写操作完成后,APB总线写操作地址加1,数据读取传输计数器减1,并且状态重新跳回“写数据”状态,重复下一次APB写操作,直到写完规定的目标数据(即,数据写入传输计数器等于1)。数据传输完成后,状态跳回“空闲”,并输出数据传输完成信号。

另外,APB总线控制器逻辑也是一个简单的有限状态机,其状态转移符合APB协议的建议,如附图6所示。当复位或完成一次APB操作后,进入APB协议建议的“IDLE”状态,此时APB总线的地址信号(PADDR)、读写控制信号(PWRITE)、写数据信号(PWDATA)、读数据信号(PRDATA)与数据管理逻辑的控制信号一致,选择信号(PSEL)和使能信号(PENABLE)都为0,APB总线操作完成标志为0。当数据管理逻辑发出APB总线操作请求后,状态跳入APB协议建议的“SETUP”状态,此时相应逻辑模块的PSEL=1,PENABLE=0,其他不变。之后无条件跳入APB协议建议的“ACCESS”状态,此时PENABLE=1,当准备信号(PREADY)有效时,一次APB总线操作完成,此时如果仍有操作请求,状态跳回“SETUP”,否则状态跳回“IDLE”。

另外,通过仿真软件ModelSim对本发明实施例进行了功能仿真验证,并在Altera公司的MAX 10系列FPGA上通过实际验证,仿真验证和实际验证都证明本发明实施例切实可行,性能良好。

上述可编程逻辑器件的逻辑控制方法,接收中断信号,并检测中断请求的优先级;在中断请求的优先级为当前最高时,生成数据传输请求;根据数据传输请求从源地址读取目标数据,并将读取的目标数据写入目标地址,从而能够将多个模块的数据操作请求统一管理生成中断请求,按照中断请求的优先级以进行数据传输,而且根据数据传输请求从源地址读取目标数据,并将读取的目标数据写入目标地址,与任务需求不直接相关,因此任务需求发生变化时,相应的代码无需改动或仅需进行微小的改动,能够提高可编程逻辑器件的通用性,降低资源占用率;另外,通过APB控制器和APB总线连接各个APB接口的逻辑模块,非常有利于添加或删除功能模块。本发明实施例具有结构简单、资源占用率低、速度快、易扩展、通用性强等优点,适用于所有的可编程逻辑器件,而且当任务需求发生变化时,代码改动量很小。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

对应于上文实施例所述的可编程逻辑器件的逻辑控制方法,图7示出了本发明实施例提供的可编程逻辑器件的逻辑控制装置的结构框图。为了便于说明,仅示出了与本实施例相关的部分。

参照图7,该装置包括中断管理模块701、传输请求生成模块702和数据读写模块703。其中:

中断管理模块701,用于接收中断信号,所述中断信号包括中断请求、目标数据的源地址和目标数据的目标地址,并检测所述中断请求的优先级。

数据传输管理模块702,用于在所述中断请求的优先级为当前最高时,根据所述中断信号生成数据传输请求。

数据读写模块703,用于根据所述数据传输请求读取所述目标数据,并将读取的目标数据写入所述目标数据的目标地址。

可选的,所述中断管理模块702具体可以用于:获取所述中断请求的优先级标识;其中,每种中断请求对应一个优先级标识。

优选的,所述数据传输请求包括数据读取传输请求和数据写入传输请求;

其中,所述数据读取传输请求包括所述目标数据的源地址和数据读取传输次数;所述数据写入传输请求包括所述目标数据的目标地址和数据写入传输次数。

参见图8,作为一种可实施方式,所述中断信号还包括目标数据的数目;所述数据读写模块703可以包括第一初始化单元801和读取单元802。其中,

第一初始化单元801,用于获取所述目标数据的源地址和所述数据读取传输次数,初始化第一次总线读操作地址和数据读取传输次数;其中,第一次总线读操作地址为所述目标数据的源地址,所述数据读取传输次数的初始值等于所述目标数据的数目。

读取单元802,用用于读取所述第N次总线读操作地址对应的数据,并将读到的数据存至预设存储器,且所述数据读取传输次数自减1;直至所述数据读取传输次数等于1。

其中,所述第N+1次总线读操作地址为在第N次总线读操作地址的基础上加一;N为大于等于1的整数。

参见图9,作为另一种可实施方式,所述中断信号还包括目标数据的数目;所述数据读写模块703可以包括第二初始化单元901和写入单元902。其中:

第二初始化单元901,用于获取所述目标数据的目标地址和所述数据写入传输次数,初始化第一次总线写操作地址和数据写入传输次数;其中,第一次总线写操作地址为所述目标数据的目标地址,所述数据写入传输次数的初始值为所述目标数据的数目。

写入单元902,用于按照先进先出原则,从所述预设存储器中读取所述目标数据,并将读取到的数据写至第N次总线写操作地址,且所述数据写入传输次数自减1;直至所述数据写入传输次数等于1。

其中,所述第N+1次总线写操作地址为在第N次总线写操作地址的基础上加一,N为大于等于1的整数。

上述可编程逻辑器件的逻辑控制装置,接收中断信号,并检测中断请求的优先级;在中断请求的优先级为当前最高时,生成数据传输请求;根据数据传输请求从源地址读取目标数据,并将读取的目标数据写入目标地址,从而能够将多个模块的数据操作请求统一管理生成中断请求,按照中断请求的优先级以进行数据传输,而且根据数据传输请求从源地址读取目标数据,并将读取的目标数据写入目标地址,与任务需求不直接相关,因此任务需求发生变化时,相应的代码无需改动或仅需进行微小的改动,能够提高可编程逻辑器件的通用性,降低资源占用率。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1