发明内容
本发明要解决的问题是如何减少用于控制指示灯开启或关闭的pin脚,并降低系统能耗。
为解决上述问题,本发明实施例提供了一种指示灯控制方法,应用于数字电路系统中,所述数字电路系统包括FPGA和CPLD,所述CPLD用于根据所述FPGA的通知信息控制与所述FPGA各端口对应的指示灯的开启或关闭,其特征在于,所述FPGA中设置有用于控制指示灯开启或关闭的状态机,并基于所述状态机生成发送给所述CPLD的通知信息,所述方法包括:
当所述状态机处于空闲状态、且所述FPGA中任意端口有流量通过时,所述FPGA生成一组与所有端口对应的第一周期操作码;
所述FPGA向所述CPLD发送所述第一周期操作码,以使所述CPLD根据所述第一周期操作码开启与有流量通过的端口对应的指示灯,并保持与没有流量通过的端口对应的指示灯的关闭状态。
优选的,所述FPGA中设置有自身各端口的端口标识和流量通过标识的对应关系,所述第一周期操作码包括第一周期开启操作码和第一周期关闭操作码;
所述当状态机处于空闲状态、且所述FPGA中任意端口有流量通过时,所述FPGA生成一组与所有端口对应的第一周期操作码,具体包括:
所述FPGA将所述状态机的状态设置为开启状态;
所述FPGA将与有流量通过的端口对应的流量通过标识设置为有效,将与没有流量通过的端口对应的流量通过标识设置为无效;
所述FPGA生成与有效的流量通过标识对应的端口对应的所述第一周期开启操作码,生成与无效的流量通过标识对应的端口对应的所述第一周期关闭操作码。
优选的,所述FPGA中还设置有定时器以及第一周期时间,在所述FPGA将所述状态机的状态设置为开启状态后,还包括:
所述FPGA启动所述定时器,当所述定时器到达所述第一周期时间时,所述FPGA将所述状态机的状态设置为关闭状态,并生成一组与所有端口对应的第二周期操作码;
所述FPGA向所述CPLD发送所述第二周期操作码,以使所述CPLD根据所述第二周期操作码关闭所有端口对应的指示灯。
优选的,所述FPGA上还设置有第二周期时间,所述当定时器到达第一周期时间时,所述FPGA将所述状态机的状态设置为关闭状态,之后还包括:
所述FPGA重置所述定时器;
当所述定时器到达所述第二周期时间时,所述FPGA将所述状态机的状态设置为空闲状态。
优选的,所述FPGA和所述CPLD上配置有相同频率的时钟,所述FPGA向所述CPLD发送所述第一周期操作码或所述第二周期操作码,具体包括:
所述FPGA根据与所述CPLD约定的时钟周期发送所述第一周期操作码,以使所述CPLD根据所述约定的时钟周期,确定与所述第一周期操作码对应的指示灯。
本发明实施例还提供了一种现场可编程门阵列FPGA,应用于数字电路系统中,所述数字电路系统包括所述FPGA和复杂可编程逻辑器件CPLD,所述CPLD用于根据所述FPGA的通知信息控制与所述FPGA各端口对应的指示灯的开启或关闭,所述FPGA中设置有用于控制指示灯开启或关闭的状态机,并基于所述状态机生成发送给所述CPLD的通知信息,所述FPGA包括:
生成模块,用于当所述状态机处于空闲状态、且所述FPGA中任意端口有流量通过时,生成一组与所有端口对应的第一周期操作码;
发送模块,用于向所述CPLD发送所述生成模块生成的所述第一周期操作码,以使所述CPLD根据所述第一周期操作码开启与有流量通过的端口对应的指示灯,并保持与没有流量通过的端口对应的指示灯的关闭状态。
优选的,所述FPGA中设置有自身各端口的端口标识和流量通过标识的对应关系,所述第一周期操作码包括第一周期开启操作码和第一周期关闭操作码;所述FPGA还包括:
控制模块,用于当所述FPGA中任意端口有流量通过时,将所述状态机的状态设置为开启状态;
标识模块,用于在所述控制模块将所述状态机的状态设置为开启状态后,将与有流量通过的端口对应的流量通过标识设置为有效,将与没有流量通过的端口对应的流量通过标识设置为无效;
所述生成模块,具体用于生成与所述标识模块标识的有效的流量通过标识对应的端口对应的所述第一周期开启操作码,生成与所述标识模块标识的无效的流量通过标识对应的端口对应的所述第一周期关闭操作码。
优选的,所述FPGA中还设置有定时器以及第一周期时间,所述FPGA还包括:
计时模块,用于在所述状态机的状态设置为开启状态后,启动所述定时器;
所述控制模块,用于当所述计时模块确定所述定时器到达所述第一周期时间时,将所述状态机的状态设置为关闭状态;
所述生成模块,还用于在所述控制模块将所述状态机的状态设置为关闭状态后,生成一组与所有端口对应的第二周期操作码;
所述发送模块,还用于向所述CPLD发送所述生成模块生成的所述第二周期操作码,以使所述CPLD根据所述第二周期操作码关闭所有端口对应的指示灯。
优选的,所述FPGA上还设置有第二周期时间,所述FPGA还包括:
所述计时模块,还用于当所述定时器到达第一周期时间时,重置所述定时器;
所述控制模块,还用于当所述计时模块确定所述定时器到达所述第二周期时间时,将所述状态机的状态设置为空闲状态。
优选的,所述FPGA和所述CPLD上配置有相同频率的时钟,所述发送模块,具体用于根据与所述CPLD约定的时钟周期发送所述第一周期操作码,以使所述CPLD根据所述约定的时钟周期,确定与所述第一周期操作码或所述第二周期操作码对应的指示灯。
通过采用本发明,可以使FPGA和CPLD之间仅需要一根pin脚,即可以实现由FPGA通过CPLD控制指示灯开启或关闭,从而节约了pin脚资源,降低了系统成本,同时,由于只有在有流量通过端口时,状态机和CPLD才开始工作,端口没有流量通过时,状态机和CPLD都可以处于休眠状态,因此降低了能耗。
具体实施方式
下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图3所示,为本发明实施例提供的一种数字电路系统的系统架构示意图,该数字电路系统包括FPGA(Field-ProgrammableGateArray,现场可编程门阵列)和CPLD(ComplexProgrammableLogicDevice,复杂可编程逻辑器件),CPLD用于根据FPGA的通知信息控制与FPGA各端口对应的指示灯的开启或关闭,FPGA中设置有用于控制指示灯点开启或关闭的状态机,并基于该状态机生成发送给CPLD的通知信息。
其中,该状态机的状态包括空闲状态,开启状态和关闭状态。在状态机处于空闲状态时,如果FPGA中任意端口有流量通过时,则FPGA需要将状态机设置为开启状态;在状态机处于开启状态时,当定时器到达第一周期时间时,则FPGA需要将状态机设置为关闭状态;在状态机处于关闭状态时,当定时器到达第二周期时间时,则FPGA需要将状态机设置为空闲状态。进一步的,对于状态机在不同状态下FPGA的相关处理,将在后续过程中阐述。
如图4所示,为本发明实施例提供的一种指示灯控制方法的流程图,包括以下步骤:
步骤401,当状态机处于空闲状态、且FPGA中任意端口有流量通过时,FPGA生成一组与所有端口对应的第一周期操作码。
优选的,当状态机处于空闲状态时,如果FPGA中任意端口有流量通过,则FPGA需要将状态机的状态设置为开启状态,并将与有流量通过的端口对应的流量通过标识设置为有效,将与没有流量通过的端口对应的流量通过标识设置为无效,并生成与有效的流量通过标识对应的端口对应的所述第一周期开启操作码,生成与无效的流量通过标识对应的端口对应的所述第一周期关闭操作码。
步骤402,FPGA向CPLD发送该第一周期操作码。
优选的,FPGA和CPLD上配置有相同频率的时钟,FPGA可以根据与CPLD约定的时钟周期发送第一周期操作码,以使CPLD根据约定的时钟周期,确定与第一周期操作码对应的指示灯。
步骤403,CPLD接收FPGA发送的第一周期操作码,并根据第一周期操作码开启与有流量通过的端口对应的指示灯,并保持与没有流量通过的端口对应的指示灯的关闭状态。
通过采用本发明,可以使FPGA和CPLD之间仅需要一根pin脚,即可以实现由FPGA通过CPLD控制指示灯开启或关闭,从而节约了pin脚资源,降低了系统成本,同时,由于只有在有流量通过端口时,状态机和CPLD才开始工作,端口没有流量通过时,状态机和CPLD都可以处于休眠状态,因此降低了能耗。
下面,结合实施例进一步阐述本发明,如图5所示,本发明实施例提供的一种指示灯控制方法的流程图,包括以下步骤:
步骤501,当状态机处于空闲状态、且FPGA中任意端口有流量通过时,FPGA将与有流量通过的端口对应的流量通过标识设置为有效,并将与没有流量通过的端口对应的流量通过标识设置为无效。
步骤502,FPGA查询流量通过标识,当有任意流量通过标识为有效时,FPGA将状态机的状态设置为开启状态,并启动定时器。
步骤503,FPGA遍历所有端口对应的流量通过标识,并将有效的流量通过标识对应的开启操作标识设置为有效,将无效的流量通过标识对应的开启操作标识设置为无效。
步骤504,FPGA向CPLD发送一组与有效的开启操作标识对应的端口对应的第一周期操作码。
步骤505,CPLD接收FPGA发送的第一周期操作码,并开启相应的指示灯。
步骤506,当定时器到达第一周期时间时,FPGA重置定时器,将状态机的状态设置为关闭状态,并向CPLD发送一组与所有端口对应的第二周期操作码,以使CPLD根据第二周期操作码关闭所有端口对应的指示灯。
优选的,FPGA可以根据与CPLD约定的时钟周期发送第二周期操作码,以使CPLD根据约定的时钟周期,确定与第二周期操作码对应的指示灯。
优选的,FPGA在向CPLD发送第二周期操作码后,还可将流量通过标识和开启操作标识全部设置为无效。
步骤507,CPLD接收FPGA发送的第二周期操作码,并关闭相应的指示灯。
步骤508,当定时器到达第二周期时间时,FPGA将状态机的状态设置为空闲态,并返回执行步骤501。
通过采用本发明,可以使FPGA和CPLD之间仅需要一根pin脚,即可以实现由FPGA通过CPLD控制指示灯开启或关闭,从而节约了pin脚资源,降低了系统成本,同时,由于只有在有流量通过端口时,状态机和CPLD才开始工作,端口没有流量通过时,状态机和CPLD都可以处于休眠状态,因此降低了能耗。
下面,结合具体的实施方式,对本发明实施例进行详细阐述,在本实施例中,FPGA为高端FPGA,CPLD为低端CPLD,FPGA和CPLD通过一根pin脚连接,FPGA上设置有端口1、端口2和端口3,CPLD控制分别与端口1、端口2和端口3对应的指示灯1、指示灯2和指示灯3,1为有效标识、0为无效标识,第一周期时间和第二周期时间均为50ms,状态机当前的状态为空闲状态,如表1所示,为本发明实施例提供的对应关系表。
表1
端口标识 |
流量通过标识 |
开启操作标识 |
端口1 |
1 |
0 |
端口2 |
0 |
0 |
端口3 |
1 |
0 |
在本实施例中还提供了一种操作码的定义方式,其中,00表示关闭指示灯或保持指示灯的关闭状态,01表示开启指示灯,10表示其他信息,例如错包时开启警告灯,11表示开始根据相应操作码执行开启或关闭操作,1表示高电平,0表示低电平,FPGA在一个周期内未向CPLD发送信号时,CPLD在该周期接收到的操作码即为0。
如图6所示,为本发明实施例提供的一种指示灯控制方法的流程图,包括以下步骤:
步骤601,FPGA查询到端口1和端口3对应的流量通过标识为1,将状态机的状态设置为开启状态;
步骤602,FPGA遍历对应关系表,并将端口1和端口3对应的开启操作标识设置为1,将端口2对应的开启操作标识设置为0。如表2所示,为更新后的对应关系表。
表2
端口标识 |
流量通过标识 |
开启操作标识 |
端口1 |
1 |
1 |
端口2 |
0 |
0 |
端口3 |
1 |
1 |
步骤603,FPGA根据与CPLD相同频率的时钟,向CPLD发送操作码“11010001”,并启动定时器。
具体的,FPGA和CPLD上设置有相同频率的时钟,FPGA每两个时钟周期发送一个操作码,如“00”或“01”,CPLD在接收到操作码时,可以根据相应的时钟周期,识别操作码并开启或关闭相应的指示灯。
步骤604,CPLD接收操作码“11010001”,并根据操作码开启指示灯1和指示灯3。
具体的,对于操作码“11010001”,CPLD在第1、2个时钟周期获得的操作码11,即默认需要开始根据相应操作码执行开启或关闭操作,第3、4个时钟周期获得的操作码01对应于指示灯1,第5、6个时钟周期获得的操作码00对应于指示灯2,第7、8个时钟周期获得的操作码01对应于指示灯3。
步骤605,当定时器到达50ms时,FPGA重置定时器,并向CPLD发送操作码“11000000”,将各端口对应的流量通过标识和开启操作标识设置为0,并将状态机的状态设置为关闭状态。
步骤606,CPLD接收操作码“11000000”,并根据操作码关闭指示灯1、指示灯2和指示灯3。
步骤607,当定时器到达50ms时,FPGA将状态机的状态设置为空闲状态,并返回执行步骤601。
基于与上述方法实施例相同或相似的技术构思,本发明实施例还提供了一种现场可编程门阵列FPGA,如图7所示,为本发明实施例提供的一种FPGA的结构示意图,应用于数字电路系统中,所述数字电路系统包括所述FPGA和复杂可编程逻辑器件CPLD,所述CPLD用于根据所述FPGA的通知信息控制与所述FPGA各端口对应的指示灯的开启或关闭,其特征在于,所述FPGA中设置有用于控制指示灯开启或关闭的状态机,并基于所述状态机生成发送给所述CPLD的通知信息,所述FPGA包括:
生成模块701,用于当所述状态机处于空闲状态、且所述FPGA中任意端口有流量通过时,生成一组与所有端口对应的第一周期操作码;
发送模块702,用于向所述CPLD发送所述生成模块701生成的所述第一周期操作码,以使所述CPLD根据所述第一周期操作码开启与有流量通过的端口对应的指示灯,并保持与没有流量通过的端口对应的指示灯的关闭状态。
优选的,所述FPGA中设置有自身各端口的端口标识和流量通过标识的对应关系,所述第一周期操作码包括第一周期开启操作码和第一周期关闭操作码;所述FPGA还包括:
控制模块,用于当所述FPGA中任意端口有流量通过时,将所述状态机的状态设置为开启状态;
标识模块,用于在所述控制模块将所述状态机的状态设置为开启状态后,将与有流量通过的端口对应的流量通过标识设置为有效,将与没有流量通过的端口对应的流量通过标识设置为无效;
所述生成模块,具体用于生成与所述标识模块标识的有效的流量通过标识对应的端口对应的所述第一周期开启操作码,生成与所述标识模块标识的无效的流量通过标识对应的端口对应的所述第一周期关闭操作码。
优选的,所述FPGA中还设置有定时器以及第一周期时间,所述FPGA还包括:
计时模块,用于在所述状态机的状态设置为开启状态后,启动所述定时器;
所述控制模块,用于当所述计时模块确定所述定时器到达所述第一周期时间时,将所述状态机的状态设置为关闭状态;
所述生成模块,还用于在所述控制模块将所述状态机的状态设置为关闭状态后,生成一组与所有端口对应的第二周期操作码;
所述发送模块,还用于向所述CPLD发送所述生成模块生成的所述第二周期操作码,以使所述CPLD根据所述第二周期操作码关闭所有端口对应的指示灯。
优选的,所述FPGA上还设置有第二周期时间,所述FPGA还包括:
所述计时模块,还用于当所述定时器到达第一周期时间时,重置所述定时器;
所述控制模块,还用于当所述计时模块确定所述定时器到达所述第二周期时间时,将所述状态机的状态设置为空闲状态。
优选的,所述FPGA和所述CPLD上配置有相同频率的时钟,所述发送模块,具体用于根据与所述CPLD约定的时钟周期发送所述第一周期操作码,以使所述CPLD根据所述约定的时钟周期,确定与所述第一周期操作码对应的指示灯。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。