CN101639692B - 多可编程逻辑器件的控制方法、设备和系统 - Google Patents
多可编程逻辑器件的控制方法、设备和系统 Download PDFInfo
- Publication number
- CN101639692B CN101639692B CN2009101728689A CN200910172868A CN101639692B CN 101639692 B CN101639692 B CN 101639692B CN 2009101728689 A CN2009101728689 A CN 2009101728689A CN 200910172868 A CN200910172868 A CN 200910172868A CN 101639692 B CN101639692 B CN 101639692B
- Authority
- CN
- China
- Prior art keywords
- address
- programmable logic
- pld
- logic device
- read operation
- 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.)
- Active
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Programmable Controllers (AREA)
Abstract
本发明公开了一种多可编程逻辑器件的控制方法、设备和系统,所述控制器通过一条片选信号线与所有可编程逻辑器件进行连接,并通过一个统一的地址空间对所述多个可编程逻辑器件进行控制,各所述可编程逻辑器件分别对应所述统一的地址空间中的不同的地址位,通过应用本发明,可以针对多个可编程逻辑器件,采用虚拟化统一编址访问控制方法,一次读写访问周期访问多个可编程逻辑器件。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种多可编程逻辑器件的控制方法、设备和系统。
背景技术
在现在电子产品设计中,电子产品功能和设计越来越复杂,可编程逻辑器件被广泛应用。目前在数据通信等产品的单板设计中,可编程逻辑器件被用来控制各类外围芯片和设备,可编程逻辑器件帮助CPU控制外围芯片和设备,以及收集外围芯片、电路中断和其它状态等信息,CPU可以轻而易举的通过对可编程逻辑器件内部控制/状态寄存器的读写操作,完成对外设的控制和状态访问。
但是,目前随着单板应用的不断扩展,单板规模越来越大,对逻辑资源的需求也越来越多,受芯片管脚数目的限制,逻辑资源的扩充不可能通过增加单片的容量来完成,势必要增加逻辑芯片的数量,这样就对逻辑资源的编址提出了要求,而最利于软件处理的方式则是统一编址。
单个可编程逻辑器件的CPU接口设计电路示意图如图1所示。其中,CPU和可编程逻辑器件之间通过信号线连接,其中的信号线一般包括以下几种:
数据线,即图示的DATA,数据线宽一般为:8、16...bit;
地址线,即图示的ADDR,地址线的数量根据可编程逻辑器件内寄存器的容量来确定;
片选信号,即图示的/CS;
输出使能信号,即图示的/OE;
写信号,即图示的/WE;
地址锁存信号,即图示的/AS;
在具体的应用场景中,信号线的种类还可以进一步包括其他类型,在此不再一一叙述。
需要指出的是,上述的“/”标识表示本信号低电平有效,否则高电平有效。
基于上述电路结构。CPU对可编程逻辑器件操作时,首先,片选信号/CS处于低电平,即有效状态。
然后,CPU对可编程逻辑器件进行读操作时,输出使能信号/OE会有效;CPU对可编程逻辑器件进行写操作时,写信号/WE信号会有效,不仅如此,其它信号也依不同CPU芯片定义时序进行相应的变化。
但是,随着电路集成度要求也越来越高,很多情况下,受限于单板面积和密度的影响,一块单板仍然完成不了目标设计或者不能够灵活实现功能设计,那么,需要把目标设计分成几个或者很多的子卡或者模块来实现。
在很多单板电路应用中,由多个子卡或者模块共同完成同一类功能,每一个子卡或者模块都可以使用一个可编程逻辑器件来控制模块上的外设,带有可编程逻辑器件的多个子卡共同完成各项相同或不同任务。
目前,针对多个可编程芯片器件的情况,一般采用传统的多可编程逻辑器件连接方式,有三种实现方案:
方案一:如图2所示,一方面,多个可编程逻辑器件分别通过数据线、地址线和其它一些控制线(比如,读或写信号线、片选信号等)与控制器相连接。另一方面,为了实现控制器对每个可编程逻辑器件内部寄存器的访问,需要控制器预先为它们分别分配地址空间,因此,这些可编程逻辑器件可以分别得到一个控制器提供的外围设备片选信号,即如图2所示的,分别通过CS1、CS2......CSn等多条片选信号与各可编程逻辑器件进行连接。
方案二:用控制器给可编程逻辑器件的一个片选信号,在可编程逻辑器件里面和控制器总线高位地址线译码得到其它逻辑芯片的片选信号线,再送给各个可编程逻辑器件,以对多个可编程逻辑器件进行控制。例如,通过高位地址线A1和A2一起确定L1、L2、L3、L4四个可编程逻辑器件的片选信号,即,当[A1 A2]=0,则输出L1(第1个可编程逻辑器件)的片选信号,访问L1 芯片;当[A1 A2]=1,则输出L2(第2个可编程逻辑器件)的片选信号,访问L2芯片;依此类推。该方案仅使用了一个片选信号,而多个可编程逻辑器件使用同一个片选地址空间的不同区域。
方案三:将多个可编程逻辑器件中的一个设置为主可编程逻辑器件,其余设置为副可编程逻辑器件,预先为每个可编程逻辑器件分配地址空间值,控制器通过访问主可编程逻辑器件来实现对所有副可编程逻辑器件的访问,所有副编程逻辑器件都有属于自己的一部分地址空间,该地址空间的产生方式具体为使用多个片选空间,或使用一个片选地址空间的不同区域。
在实现本发明的过程中,申请人发现现有技术至少存在以下问题:
传统的多可编程芯片连接方式均有各自的缺点:
方案一需要多个片选信号,片选信号资源非常有限,该方案很难适用高复杂度单板。方案二和方案三解决了多片选的问题,但依旧针对每一个可编程逻辑器件设置的独立的地址空间值,软件访问某一地址时,仅访问其中某一个实体可编程逻辑器件。在具有多个同功能的子卡的单板上,软件需要对某一个功能进行控制时,需轮询多个子卡上可编程逻辑器件芯片,需要轮询访问多个地址值,给软件处理增加复杂度。例如,根据模块化设计,一块交换机通信处理单板有四个子卡,每个子卡上均设置一个可编程逻辑器件用来控制子卡上的电路和芯片;其中有一项功能是利用可编程逻辑器件检查总计16个端口(每个子卡4个端口)的光模块是否在位,具体的对多个逻辑器件采用不同地址进行访问的场景下的地址分布示意图如图3所示,地址An1的bit0~3表示子卡n的四个端口的光模块在位状态。如果需要轮询16个端口,则需要依此访问A11、A21、A31、A41;对于CPU处理性能来说,需要4个访问周期。随着可编程逻辑个数增加,软件复杂度随之增加,处理周期也随之增加。传统的连接方式对系统进行硬件扩充设计时必然要划分新的地址空间,在软件架构基本确定的情况下,是非常不方便的。
发明内容
本发明提供一种多可编程逻辑器件的控制方法、设备和系统,针对多个可编程逻辑器件,采用虚拟化统一编址访问控制方法,一次读写访问周期访问多个可编程逻辑器件。
为达到上述目的,本发明一方面提供了一种多可编程逻辑器件的控制方法,应用于包括一个控制器和多个可编程逻辑器件的系统中,其中所述控制器通过一条片选信号线与多个所述可编程逻辑器件进行连接,所述方法包括:
所述控制器将一个统一地址段分别与多个所述可编程逻辑器件中的地址段相对应,其中各所述地址段包括多个地址块,所述统一地址段中的部分或全部统一地址块分别与多个所述可编程逻辑器件的地址段中的地址块相对应,形成多个逻辑地址块组;
所述控制器对逻辑地址块组进行配置,具体包括,
所述控制器在所述逻辑地址块组中选择一个可编程逻辑器件的地址块,不为该地址块配置针对读操作的预设输出值;
所述控制器为所述逻辑地址块组中其他可编程逻辑器件的地址块配置针对读操作的预设输出值;
当所述控制器对所述统一地址块进行读操作时,数据相应地被从与所述统一地址块对应的各可编程逻辑器件的地址块读出;
当所述控制器对所述统一地址块进行写操作时,数据相应地被写入至与统一地址块对应的各可编程逻辑器件的地址块。
优选的,在所述包括一个控制器和多个可编程逻辑器件的系统中,
所述多个可编程逻辑器件所对应的数据线的带宽相同;
所述多个可编程逻辑器件所对应的地址线的数量相同。
优选的,所述控制器通过一条片选信号线与所有可编程逻辑器件进行连接,所述控制器将一个统一地址段分别与多个所述可编程逻辑器件中的地址段相对应,具体为:
所述控制器通过一条片选信号线以一对多方式分别连接所有可编程逻辑器件;
所述控制器通过一条或多条地址线以一对多方式分别连接所有可编程逻辑器件,所有所述可编程逻辑器件通过分层重叠的方式共同分享所述一条或多条地址线所对应的地址空间;
所有所述可编程逻辑器件通过所述一条或多条地址线所对应的地址空间统一接受所述控制器的控制操作。
优选的,当所述控制器对所述统一地址块进行读操作时,数据相应地被从与所述统一地址块对应的各可编程逻辑器件的地址块读出,具体包括:
所述控制器从与所述统一地址块对应的所述读操作的目的可编程逻辑器件的地址块读出目的数据;
所述控制器从与所述统一地址块对应的所述读操作的非目的可编程逻辑器件的地址块读出所述预设输出值。
优选的,当所述控制器对所述统一地址块进行写操作时,数据相应地被写入至与统一地址块对应的各可编程逻辑器件的地址块,具体包括:
所述控制器从与所述统一地址块对应的所述写操作的目的可编程逻辑器件的地址块写入目的数据。
优选的,所述控制器,具体为:
中央处理器CPU;或,
具有控制接口和传递控制功能的芯片。
另一方面,本发明还提供了一种可编程逻辑器件,应用于包括一个控制器和多个可编程逻辑器件的系统中,所述控制器通过一条片选信号线与所有可编程逻辑器件进行连接,所述控制器将一个统一地址段分别与多个所述可编程逻辑器件中的地址段相对应,其中各所述地址段包括多个地址块,所述统一地址段中的部分或全部统一地址块分别与多个所述可编程逻辑器件的地址段中的地址块相对应,形成多个逻辑地址块组,包括:
通信模块,用于通过所述可编程逻辑器件的地址段中相对应的地址块接收所述控制器的片选信号、读操作指令和/或写操作指令,或向所述控制器发送读操作响应,并接收所述控制器为所述可编程逻辑器件所对应的地址段中的多个地址块所配置的针对读操作的预设输出值;
识别模块,与所述通信模块相连接,用于识别所述通信模块所接收的片 选信号是否处于有效状态,还用于识别所述通信模块接收读操作指令和/或写操作指令的地址块是否被配置了针对读操作的预设输出值;
操作模块,与所述通信模块和所述识别模块相连接,当所述识别模块识别所述通信模块接收读操作指令的地址块没有被配置针对读操作的预设输出值时,进行所述读操作指令相对应的操作,并为所述通信模块生成所述读操作的操作响应,当所述识别模块识别所述通信模块接收读操作指令的地址块被配置了针对读操作的预设输出值时,根据所述预设输出值为所述通信模块生成读操作响应,还用于当所述识别模块识别所述通信模块接收写操作指令的地址块没有被配置针对读操作的预设输出值时,根据所述写操作指令进行写操作。
优选的,所述通信模块所接收的片选信号,具体为:
所述控制器通过所述片选信号线向所述多个可编程逻辑器件统一发送的片选信号。
另一方面,本发明还提供了一种控制器,应用于包括一个控制器和多个可编程逻辑器件的系统中,所述控制器通过一条片选信号线与所有可编程逻辑器件进行连接,所述控制器将一个统一地址段分别与多个所述可编程逻辑器件中的地址段相对应,其中各所述地址段包括多个地址块,所述统一地址段中的部分或全部统一地址块分别与多个所述可编程逻辑器件的地址段中的地址块相对应,形成多个逻辑地址块组,包括:
设置模块,用于分别在所述统一地址段所对应的各逻辑地址块组中选择一个可编程逻辑器件的地址块,不为该地址块配置针对读操作的预设输出值,并为所述逻辑地址块组中其他可编程逻辑器件的地址块配置针对读操作的预设输出值;
通信模块,用于对所述统一地址段中的各统一地址块进行读操作和/或写操作,并相应地被从与所述统一地址块对应的各可编程逻辑器件的地址块读出和/或写入数据。
另一方面,本发明还提供了一种多可编程逻辑器件的控制电路,包括一个前述的控制器和多个前述的可编程逻辑器件,包括:
所述控制器通过一条片选信号线与所有可编程逻辑器件进行连接,所述控制器将一个统一地址段分别与多个所述可编程逻辑器件中的地址段相对应,其中各所述地址段包括多个地址块,所述统一地址段中的部分或全部统一地址块分别与多个所述可编程逻辑器件的地址段中的地址块相对应,形成多个逻辑地址块组。
优选的,如果各所述可编程逻辑器件接收到的片选信号处于有效状态,且识别接收读操作指令和/或写操作指令的地址块没有被配置针对读操作的预设输出值时,进行所述操作指令相对应的读操作和/或写操作,并在读操作完成时生成所述读操作的操作响应,发送给所述控制器;
如果各所述可编程逻辑器件接收到的片选信号处于有效状态,且识别接收到读操作指令的地址块被配置了预设输出值时,根据配置的所述针对读操作的预设输出值生成读操作响应,发送给所述控制器。
优选的,所述控制器,具体为:
CPU;或,
具有控制接口和传递控制功能的芯片。
与现有技术相比,本发明具有以下优点:
通过应用本发明的技术方案,将多可编程逻辑器件系统在软件地址空间上虚拟成一个可编程逻辑器件,通过一个片选信号进行统一控制,使具体操作不再需要依次轮询访问多个可编程逻辑器件的物理地址,只用一个处理周期访问虚拟的逻辑地址即可,降低软件处理复杂度,减少访问周期,提升系统处理性能。
附图说明
图1为现有技术中的单个可编程逻辑器件的CPU接口设计电路示意图;
图2为现有技术中的多个可编程逻辑器件的CPU接口设计电路示意图;
图3为现有技术中的对多个逻辑器件采用不同地址进行访问的场景下的地址分布示意图;
图4为本发明所提供的一种多可编程逻辑器件的控制方法的流程示意图;
图5为本发明所提供的一种多可编程逻辑器件的控制方法所对应的多个可编程逻辑器件的CPU接口设计电路示意图;
图6为本发明所提供的一种对多个逻辑器件采用同一个地址进行访问的场景下的地址分布示意图;
图7为本发明提供的一种多可编程逻辑器件的控制电路的结构示意图;
图8为本发明所提供的一种可编程逻辑器件的结构示意图;
图9为本发明所提供的一种控制器的结构示意图。
具体实施方式
如背景技术所述,传统的连接方式对可编程逻辑器件进行独立控制,分配独立的地址空间,控制器在进行相应的操作时,需要依次查找相应的地址空间,并且,系统进行硬件扩充设计时必然要划分新的地址空间,在软件架构基本确定的情况下,是非常不方便的。
本发明的技术方案采用软件统一的编址,逻辑分散处理的方式对多个可编程逻辑器件进行控制,解决了现有技术所存在的不足。
本发明提出了一种多可编程逻辑器件的控制方法,应用于包括一个控制器和多个可编程逻辑器件的系统中,控制器通过一条片选信号线与所有可编程逻辑器件进行连接,控制器将一个统一地址段分别与多个可编程逻辑器件中的地址段相对应,其中,各地址段包括多个地址块,统一地址段中的部分或全部统一地址块分别与多个可编程逻辑器件的地址段中的地址块相对应,形成多个逻辑地址块组。
在具体的应用场景中,控制器具体为:
CPU;或,
具有控制接口和传递控制功能的芯片。
其中,多个可编程逻辑器件所对应的数据线的带宽相同;
多个可编程逻辑器件所对应的地址线的数量相同。
基于上述结构设计,控制器通过一条片选信号线以一对多方式分别连接所有可编程逻辑器件;
控制器通过一条或多条地址线以一对多方式分别连接所有可编程逻辑器件,所有可编程逻辑器件通过分层重叠的方式共同分享一条或多条地址线所对应的地址空间;
所有可编程逻辑器件通过一条或多条地址线所对应的地址空间统一接受控制器的控制操作。
其中,上述的各逻辑地址块组中的各地址块还包括以下的配置流程,具体说明如下:
控制器分别在各逻辑地址块组中选择一个可编程逻辑器件的地址块,不为该地址块配置针对读操作的预设输出值;
控制器分别为各逻辑地址块组中的其他可编程逻辑器件的地址块配置针对读操作的预设输出值。
通过这样的设置,使每个逻辑地址块组中与统一地址块相对应的各地址块中只有一个地址块是有效状态,可以进行读写操作,而该逻辑地址块组中的其他地址块则为无效状态,不会进行有效的读写操作,尤其是在接收到读操作指令时,会按照设置的针对读操作的预设输出值对该读操作进行反馈。
基于以上的设置,各可编程逻辑芯片都会在统一地址段中拥有一个与自身的有效地址块相对应的统一地址块,控制器可以通过统一地址段中的各统一地址块,分别对各可编程逻辑芯片进行读写操作。
如图4所示,为本发明所提供的一种多可编程逻辑器件的控制方法的流程示意图,具体包括以下步骤:
步骤S401、控制器通过片选信号线向多个可编程逻辑器件统一发送片选信号。
步骤S402、可编程逻辑器件识别自身所接收的片选信号是否处于有效状态。
当控制器所发送的片选信号处于有效状态,且控制器向统一地址段发送操作指令时,执行步骤S403;
当控制器所发送的片选信号处于无效状态,且控制器向统一地址段发送操作指令时,各可编程逻辑器件不对操作指令做出任何响应。
其中的操作指令,具体为:
对一个可编程逻辑器件进行操作的一个操作指令;或,
对多个可编程逻辑器件进行同类操作的一个操作指令。
步骤S403、可编程逻辑器件识别自身接收到操作指令的地址块是否被设置了针对读操作的预设输出值。
即判断自身是否为所接收到的操作指令的目标可编程逻辑器件,根据前述的设置,只有操作指令的目标可编程逻辑器件不会被设置针对读操作的预设输出值。
当可编程逻辑器件识别自身接收到操作指令的地址块没有被设置了针对读操作的预设输出值时,执行步骤S404;
当可编程逻辑器件识别自身接收到操作指令的地址块被设置了针对读操作的预设输出值时,执行步骤S405。
步骤S404、可编程逻辑器件根据接收到的操作指令进行相应的操作。
当控制器所发送的片选信号处于有效状态,且控制器向统一地址段发送操作指令为读操作时,可编程逻辑芯片中与统一地址段对应且没有预设输出值的地址段针对该读操作做出响应,将本地址段中的实际数据读出,并向控制器发送;
当控制器所发送的片选信号处于有效状态,且控制器向统一地址段发送操作指令为写操作时,可编程逻辑芯片中与统一地址段对应且没有预设输出值的地址段针对该写操作作出响应,将通过统一地址段所接到的数据写入至可编程逻辑芯片中的对应地址段中。
步骤S405、可编程逻辑器件根据接收到的操作指令以及预设输出值进行相应的操作。
当控制器所发送的片选信号处于有效状态,且控制器向统一地址段发送操作指令为读操作时,可编程逻辑芯片中与统一地址段对应且设置有预设输出值的地址段针对该读操作做出响应,将本地址段所设置的预设输出值读出, 并向控制器发送。
其中,预设输出值的设定可通过多种方式实现,只需保证各预设了输出值的可编程逻辑芯片的输出不会影响未预设输出值的可编程逻辑芯片的实际读出值的准确性即可,例如将该地址段设置为高阻态或将该地址段的输出值预设为全0等。
当控制器所发送的片选信号处于有效状态,且控制器向统一地址段发送操作指令为写操作时,在未做其他特别设定的情况下,可编程逻辑芯片中与统一地址段对应且有预设输出值的地址段针对该写操作作出响应,将通过统一地址段所接到的数据写入至可编程逻辑芯片中的对应地址段中。
需要指出的是,在实际操作过程中,上述的将通过统一地址段所接到的数据写入至可编程逻辑芯片中的对应地址段中的处理具体可以是在地址块中执行写入,但不写入可编程逻辑芯片中,即只进行无效的写操作。这与该地址块与可编程逻辑芯片的引脚之间的连接关系直接相关,有预设输出值的地址块和与其相对应的可编程逻辑芯片的引脚之间不相连接,所以,即使该地址快接收到写操作指令,也不会进行有效的写入操作,反之,没有预设输出值的地址块与可编程逻辑芯片的引脚之间相连接,所以,当该地址快接收到写操作指令时,进行有效的写入操作,即将相应的数据写入可编程逻辑芯片中。
与现有技术相比,本发明具有以下优点:
通过应用本发明的技术方案,将多可编程逻辑器件系统在软件地址空间上虚拟成一个可编程逻辑器件,通过一个片选信号进行统一控制,使具体操作不再需要依次轮询访问多个可编程逻辑器件的物理地址,只用一个处理周期访问虚拟的逻辑地址即可,降低软件处理复杂度,减少访问周期,提升系统处理性能。
在实际的应用场景中,本发明将N个可编程逻辑芯片与控制器的对应引脚均使用1:N连接,如图5所示。
其中,对N个可编程逻辑芯片有一些统一要求:
1、各可编程逻辑芯片数据位宽必须一致,如统一设置为8bit、16bit等;
2、各地址线保持一致,本发明所需的地址总线可以根据虚拟后需要访问的可编程逻辑器件的寄存器总数来确定需要的数量,控制器与N个可编程逻辑芯片连接,控制器出接口使用M根地址线,每个可编程逻辑芯片都需要将这M根地址线连接上,构建一致的地址空间;本发明虽然有N个可编程逻辑芯片,但虚拟成一个,将N个可编程逻辑芯片的2M大小地址空间进行N层重叠,虚拟成一片2M大小的地址空间。
3、各可编程逻辑芯片接收同一个控制器访问控制,进行分布处理与应答。控制器进行虚拟逻辑地址访问时,片选信号同时发往N个可编程逻辑芯片,每个可编程逻辑芯片均接收访问。
4、输出使能信号/OE、写信号/WE、地址锁存信号/AS均按照图4所示的流程1:N连接N个可编程逻辑芯片。读操作时,N个可编程逻辑芯片输出使能信号/OE均有效;写操作时,N个可编程逻辑芯片/WE信号会有效。
以上是对多个可编程逻辑芯片访问控制电路设计部分,要实现本发明的目的还需要针对每一个功能寄存器进行对应逻辑编程设计。
下面结合现有技术的方案二中的器件轮询示例,对本发明的具体实施方案进行说明。
在有四片可编程逻辑芯片共同完成某些功能的单板中,根据现有技术,需要依此轮询地址A/B/C/D四个地址来查询16个端口是否有光模块插入的功能。而本发明针对此功能只需要一次访问,具体说明如下:
以使用位宽为16bit的地址0xff00008进行上述操作为例,如图6所示,为本发明对多个逻辑器件采用同一个地址进行访问的场景下的地址分布示意图,其中:
在地址0xff00008的0~15bit上,为与控制器相对应的统一地址空间(即前述的统一地址段),该统一地址段分别与各芯片的地址段相对应,其中,如图6所示的,各芯片所对应的地址段的0~3bit所组成的地址块与统一地址段中的0~3bit相对应,构成了一个逻辑地址块组,同理,各芯片所对应的地址段的4~7bit,8~11bit,12~15bit所组成的地址块分别与统一地址段中的4~7bit, 8~11bit,12~15bit相对应,分别构成了三个逻辑地址块组。
根据本发明所提出的技术方案,控制器在各逻辑地址块组中设置预设输出值的过程具体如下:
对于各芯片所对应的地址段和统一地址空间的0~3bit所组成的逻辑地址块组,选择芯片A为有效地址,即在芯片A所对应的地址段上,以0~3bit表示芯片A实际有效控制的四个端口,与统一地址空间的0~3bit相对应,不进行输出值的设置,而对于其他的芯片所对应的地址段,将各地址段的0~3bit中设置预设输出值,即将这些地址段中的0~3bit设置为无效地址。
相类似的,对于各芯片所对应的地址段和统一地址空间的4~7bit、8~11bit和12~15bit所组成的逻辑地址块组,分别选择芯片B、芯片C和芯片D为有效地址,分别用芯片B、芯片C和芯片D所对应的地址段上的4~7bit、8~11bit和12~15bit表示芯片B、芯片C和芯片D实际有效控制的四个端口,不进行输出值的设置,而将其他的芯片所对应的地址段的4~7bit、8~11bit和12~15bit中设置预设输出值,设置为无效地址。
通过这样的设置,在各地址段的0~3bit所组成的逻辑地址块组中,只有芯片A是有效的,而其他芯片则被设置了输出值,即处于无效状态,使得控制器可以通过统一地址空间中的0~3bit对芯片A进行操作,同样的,可以通过4~7bit、8~11bit和12~15bit分别对芯片B、芯片C和芯片D进行操作。
在具体的应用场景中,如果以高阻态作为预设输出值的示例,那么,四个可编程芯片均只针对自己有效控制的4个bit进行实际的逻辑编程处理,其它12bit均设置为高阻态。当需要查看16个端口光模块是否存在的访问时,软件访问0xff00008地址,四个可编程逻辑均进行响应,每一个bit的最终值虽然由四个可编程逻辑的输出共同决定,但其中的三个可编程逻辑输出高阻态,相当于无效值,只有其中的一个可编程逻辑芯片输出真实的有效值,则最终结果即为该有效值。
例如,统一地址空间中的0bit虽然与各芯片所对应的地址段中的0bit都存在对应关系,控制器对于0bit的操作也都会发送给各芯片所对应的地址段中的0bit,但是,芯片B、芯片C和芯片D所对应的地址段中的0bit都已被 预设了针对读操作的预设输出值,当接到控制器通过0bit发送的读操作时,芯片B、芯片C和芯片D所对应的地址段中的0bit直接将预设输出值返回给控制器,例如高阻态或全0数据等无效数据,只有芯片A所对应的地址段中的0bit没有被预设输出值,所以,芯片A所对应的地址段中的0bit会将真实的数据读取出来,并通过统一地址空间中的0bit返回给控制器,因此,根据控制器通过0bit发出的读操作,各芯片所返回的输出数据的值由芯片A所对应的地址段的0bit的数据值决定,其它bit值类似。
另外,在具体的应用场景中,个体可编程逻辑芯片也可以独占一个地址空间的所有bit位,而其它可编程逻辑芯片不处理。通过这样的设置,控制器通过所有bit位所进行的操作,均只由独占所有bit位的逻辑芯片进行处理,而其他可编程逻辑芯片将不作任何处理。
从以上举例可以清晰的看到,本发明控制器在访问虚拟的多可编程逻辑芯片的内部寄存器时,访问过程同控制器对单片可编程逻辑芯片的读/写操作的过程基本相同。如果控制器对地址Ax进行写操作,所有可编程逻辑芯片均从数据线的获取数据写入对应地址。如果控制器对地址Ax进行读操作,所有可编程器件均将对应数据发送给控制器。
需要指出的是,本发明所描述的多可编程芯片数据线的排布方式可以为顺序排列,也可以为其它需要的排列方式。
在本发明所提出的技术方案中,控制器包括:
CPU或者具有控制接口和传递控制功能的芯片。
可编程逻辑芯片包括:
CPLD、EPLD和FPGA等具有可编程的逻辑芯片。
与现有技术相比,本发明具有以下有益效果:
本发明方案应用与多个可编程器件芯片系统时,极大的简化了硬件电路设计,给软件人员屏蔽具体的硬件构架,使用同一个虚拟地址就能访问多个可编程器件,软件人员在处理某一项由多个可编程器件同时完成的事务时,由多次轮询不同的地址,变成仅使用一次地址访问完成,给软件使用带来极 大的方便,也为程序设计带来简化,并为系统应用带来N倍的性能提升,这点性能对于实时性要求很高的系统尤其难能可贵。
另一方面,为了实现上述的方法,本发明还提供了一种多可编程逻辑器件的控制电路。
如图7所示,为本发明提供的一种多可编程逻辑器件的控制电路的结构示意图,包括一个控制器71和多个可编程逻辑器件72,其中:
控制器71通过一条片选信号线与所有可编程逻辑器件72进行连接,并将一个统一地址段分别与多个可编程逻辑器件72中的地址段相对应,其中,各地址段包括分别多个地址块,统一地址段中的部分或全部统一地址分别与多个可编程逻辑器件72的地址段中的地址块相对应,形成多个逻辑地址块组。
在具体的应用场景中,如果各可编程逻辑器件72接收到的片选信号处于有效状态,且识别接收读操作指令和/或写操作指令的地址块没有被配置针对读操作的预设输出值时,进行操作指令相对应的读操作和/或写操作,并在读操作完成时生成读操作的操作响应,发送给控制器71;
如果各可编程逻辑器件72接收到的片选信号处于有效状态,且识别所接收到的操作指令的地址块被配置了预设输出值时,根据配置的针对读操作的预设输出值生成读操作响应,发送给控制器71。
其中,在具体的应用场景中,控制器包括以下几种情况:
CPU或者具有控制接口和传递控制功能的芯片。
可编程逻辑芯片包括以下几种情况:
CPLD、EPLD和FPGA等具有可编程的逻辑芯片。
需要指出的是,本发明所描述的多可编程芯片数据线的排布方式可以为顺序排列,也可以为其它需要的排列方式,这样的变化并不影响本发明的保护范围。
相对应的,为了实现上述的技术方案,本发明还提供了一种可编程逻辑器件。
如图8所示,为本发明所提供的一种可编程逻辑器件的结构示意图,具 体包括:
通信模块721,用于通过地址段中相对应的地址块接收控制器71的片选信号、读操作指令和/或写操作指令,或向控制器71发送读操作响应,并接收控制器71为可编程逻辑器件72所对应的地址段中的多个地址块所配置的针对读操作的预设输出值;
识别模块722,与通信模块721相连接,用于识别通信模块721所接收的片选信号是否处于有效状态,还用于识别通信模块721接收读操作指令和/或写操作指令的地址块是否被配置了针对读操作的预设输出值;
操作模块723,与通信模块721和识别模块722相连接,当识别模块722识别通信模块721接收读操作指令的地址块没有被配置针对读操作的预设输出值时,进行读操作指令相对应的操作,并为通信模块721生成读操作的操作响应,当识别模块722识别通信模块721接收读操作指令的地址块被配置了针对读操作的预设输出值时,根据预设输出值为通信模块721生成读操作响应。即在没有预设输出值时,读取真实数据,并发送给通信模块721,而在设置有预设输出值时,直接根据预设输出值进行反馈,而不读取任何真实数据,即进行无效反馈。
另一方面,操作模块723还用于当识别模块722识别通信模块721接收写操作指令的地址块没有被配置针对读操作的预设输出值时,根据写操作指令进行写操作。
需要指出的是,在实际操作过程中,如果识别模块722识别通信模块721接收写操作指令的地址块设置有预设输出值,操作模块723在接收到写操作指令时,同样可以进行写入操作,但这种写入操作仅是在地址块中执行写入,而不写入可编程逻辑芯片中,即只进行无效的写操作。
这与该地址块与可编程逻辑芯片的引脚之间的连接关系直接相关,有预设输出值的地址块和与其相对应的可编程逻辑芯片的引脚之间不相连接,所以,即使该地址快接收到写操作指令,也不会进行有效的写入操作,反之,没有预设输出值的地址块与可编程逻辑芯片的引脚之间相连接,所以,当该地址快接收到写操作指令时,进行有效的写入操作,即将相应的数据写入可 编程逻辑芯片中。
其中,通信模块721所接收的片选信号,具体为:
控制器71通过片选信号线向多个可编程逻辑器件72统一发送的片选信号。
另一方面,为了实现上述的技术方案,本发明还提供了一种控制器,。
如图9所示,为本发明所提供的一种控制器的结构示意图,具体包括:
设置模块711,用于分别在统一地址段所对应的各逻辑地址块组中选择一个可编程逻辑器件72的地址块,不为该地址块配置针对读操作的预设输出值,并为逻辑地址块组中其他可编程逻辑器件72的地址块配置针对读操作的预设输出值;
通信模块712,用于对统一地址段中的各统一地址块进行读操作和/或写操作,并相应地被从与统一地址块对应的各可编程逻辑器件的地址块读出和/或写入数据。
与现有技术相比,本发明具有以下优点:
通过应用本发明的技术方案,将多可编程逻辑器件系统在软件地址空间上虚拟成一个可编程逻辑器件,通过一个片选信号进行统一控制,使具体操作不再需要依次轮询访问多个可编程逻辑器件的物理地址,只用一个处理周期访问虚拟的逻辑地址即可,降低软件处理复杂度,减少访问周期,提升系统处理性能。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施场景所述的方法。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (12)
1.一种多可编程逻辑器件的控制方法,其特征在于,应用于包括一个控制器和多个可编程逻辑器件的系统中,其中所述控制器通过一条片选信号线与多个所述可编程逻辑器件进行连接,所述方法包括:
所述控制器将一个统一地址段分别与多个所述可编程逻辑器件中的地址段相对应,其中各所述地址段包括多个地址块,所述统一地址段中的部分或全部统一地址块分别与多个所述可编程逻辑器件的地址段中的地址块相对应,形成多个逻辑地址块组;
所述控制器对逻辑地址块组进行配置,具体包括,
所述控制器在所述逻辑地址块组中选择一个可编程逻辑器件的地址块,不为该地址块配置针对读操作的预设输出值;
所述控制器为所述逻辑地址块组中其他可编程逻辑器件的地址块配置针对读操作的预设输出值;
当所述控制器对所述统一地址块进行读操作时,数据相应地被从与所述统一地址块对应的各可编程逻辑器件的地址块读出;
当所述控制器对所述统一地址块进行写操作时,数据相应地被写入至与统一地址块对应的各可编程逻辑器件的地址块。
2.如权利要求1所述的方法,其特征在于,在所述包括一个控制器和多个可编程逻辑器件的系统中,
所述多个可编程逻辑器件所对应的数据线的带宽相同;
所述多个可编程逻辑器件所对应的地址线的数量相同。
3.如权利要求2所述的方法,其特征在于,所述控制器通过一条片选信号线与所有可编程逻辑器件进行连接,所述控制器将一个统一地址段分别与多个所述可编程逻辑器件中的地址段相对应,具体为:
所述控制器通过一条片选信号线以一对多方式分别连接所有可编程逻辑器件;
所述控制器通过一条或多条地址线以一对多方式分别连接所有可编程逻辑器件,所有所述可编程逻辑器件通过分层重叠的方式共同分享所述一条或多条地址线所对应的地址空间;
所有所述可编程逻辑器件通过所述一条或多条地址线所对应的地址空间统一接受所述控制器的控制操作。
4.如权利要求1所述的方法,其特征在于,当所述控制器对所述统一地址块进行读操作时,数据相应地被从与所述统一地址块对应的各可编程逻辑器件的地址块读出,具体包括:
所述控制器从与所述统一地址块对应的所述读操作的目的可编程逻辑器件的地址块读出目的数据;
所述控制器从与所述统一地址块对应的所述读操作的非目的可编程逻辑器件的地址块读出所述预设输出值。
5.如权利要求1所述的方法,其特征在于,当所述控制器对所述统一地址块进行写操作时,数据相应地被写入至与统一地址块对应的各可编程逻辑器件的地址块,具体包括:
所述控制器从与所述统一地址块对应的所述写操作的目的可编程逻辑器件的地址块写入目的数据。
6.如权利要求1至5中任意一项所述的方法,其特征在于,所述控制器,具体为:
中央处理器CPU;或,
具有控制接口和传递控制功能的芯片。
7.一种可编程逻辑器件,其特征在于,应用于包括一个控制器和多个可编程逻辑器件的系统中,所述控制器通过一条片选信号线与所有可编程逻辑器件进行连接,所述控制器将一个统一地址段分别与多个所述可编程逻辑器件中的地址段相对应,其中各所述地址段包括多个地址块,所述统一地址段中的部分或全部统一地址块分别与多个所述可编程逻辑器件的地址段中的地址块相对应,形成多个逻辑地址块组,包括:
通信模块,用于通过所述可编程逻辑器件的地址段中相对应的地址块接收所述控制器的片选信号、读操作指令和/或写操作指令,或向所述控制器发送读操作响应,并接收所述控制器为所述可编程逻辑器件所对应的地址段中 的多个地址块所配置的针对读操作的预设输出值;
识别模块,与所述通信模块相连接,用于识别所述通信模块所接收的片选信号是否处于有效状态,还用于识别所述通信模块接收读操作指令和/或写操作指令的地址块是否被配置了针对读操作的预设输出值;
操作模块,与所述通信模块和所述识别模块相连接,当所述识别模块识别所述通信模块接收读操作指令的地址块没有被配置针对读操作的预设输出值时,进行所述读操作指令相对应的操作,并为所述通信模块生成所述读操作的操作响应,当所述识别模块识别所述通信模块接收读操作指令的地址块被配置了针对读操作的预设输出值时,根据所述预设输出值为所述通信模块生成读操作响应,还用于当所述识别模块识别所述通信模块接收写操作指令的地址块没有被配置针对读操作的预设输出值时,根据所述写操作指令进行写操作。
8.如权利要求7所述的可编程逻辑器件,其特征在于,所述通信模块所接收的片选信号,具体为:
所述控制器通过所述片选信号线向所述多个可编程逻辑器件统一发送的片选信号。
9.一种控制器,其特征在于,应用于包括一个控制器和多个可编程逻辑器件的系统中,所述控制器通过一条片选信号线与所有可编程逻辑器件进行连接,所述控制器将一个统一地址段分别与多个所述可编程逻辑器件中的地址段相对应,其中各所述地址段包括多个地址块,所述统一地址段中的部分或全部统一地址块分别与多个所述可编程逻辑器件的地址段中的地址块相对应,形成多个逻辑地址块组,包括:
设置模块,用于分别在所述统一地址段所对应的各逻辑地址块组中选择一个可编程逻辑器件的地址块,不为该地址块配置针对读操作的预设输出值,并为所述逻辑地址块组中其他可编程逻辑器件的地址块配置针对读操作的预设输出值;
通信模块,用于对所述统一地址段中的各统一地址块进行读操作和/或写 操作,并相应地被从与所述统一地址块对应的各可编程逻辑器件的地址块读出和/或写入数据。
10.一种多可编程逻辑器件的控制电路,其特征在于,包括一个如权利要求9所述的控制器和多个如权利要求7或8所述的可编程逻辑器件,包括:
所述控制器通过一条片选信号线与所有可编程逻辑器件进行连接,所述控制器将一个统一地址段分别与多个所述可编程逻辑器件中的地址段相对应,其中各所述地址段包括多个地址块,所述统一地址段中的部分或全部统一地址块分别与多个所述可编程逻辑器件的地址段中的地址块相对应,形成多个逻辑地址块组。
11.如权利要求10所述的多可编程逻辑器件的控制电路,其特征在于,
如果各所述可编程逻辑器件接收到的片选信号处于有效状态,且识别接收读操作指令和/或写操作指令的地址块没有被配置针对读操作的预设输出值时,进行所述操作指令相对应的读操作和/或写操作,并在读操作完成时生成所述读操作的操作响应,发送给所述控制器;
如果各所述可编程逻辑器件接收到的片选信号处于有效状态,且识别接收到读操作指令的地址块被配置了预设输出值时,根据配置的所述针对读操作的预设输出值生成读操作响应,发送给所述控制器。
12.如权利要求10或11所述的多可编程逻辑器件的控制电路,其特征在于,所述控制器,具体为:
CPU;或,
具有控制接口和传递控制功能的芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101728689A CN101639692B (zh) | 2009-08-31 | 2009-08-31 | 多可编程逻辑器件的控制方法、设备和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101728689A CN101639692B (zh) | 2009-08-31 | 2009-08-31 | 多可编程逻辑器件的控制方法、设备和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101639692A CN101639692A (zh) | 2010-02-03 |
CN101639692B true CN101639692B (zh) | 2011-11-16 |
Family
ID=41614715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101728689A Active CN101639692B (zh) | 2009-08-31 | 2009-08-31 | 多可编程逻辑器件的控制方法、设备和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101639692B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106681220A (zh) * | 2017-01-13 | 2017-05-17 | 上海蔚来汽车有限公司 | 基于中央处理器和可编程逻辑器件的换电动作控制系统 |
CN109446122A (zh) * | 2018-09-30 | 2019-03-08 | 新华三技术有限公司 | 可编程器件的访问方法及通信设备 |
CN111552227A (zh) * | 2020-05-20 | 2020-08-18 | 苏州精濑光电有限公司 | 一种基于可编程逻辑控制器的通信系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1300984A (zh) * | 2001-02-15 | 2001-06-27 | 北京哈德威四方保护与控制设备有限公司 | 微处理器和can控制器的接口方法 |
EP1267269A2 (en) * | 2001-06-11 | 2002-12-18 | Texas Instruments Incorporated | Apparatus and method for distribution of signals from a high level data link controller to multiple digital signal processor cores |
CN101133400A (zh) * | 2005-07-29 | 2008-02-27 | 松下电器产业株式会社 | 存储器控制器,非易失性存储器,非易失性存储器系统,和非易失性存储器地址管理方法 |
CN101202690A (zh) * | 2006-12-11 | 2008-06-18 | 上海华虹Nec电子有限公司 | 多ip模块的系统结构及多ip模块读数据的方法 |
-
2009
- 2009-08-31 CN CN2009101728689A patent/CN101639692B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1300984A (zh) * | 2001-02-15 | 2001-06-27 | 北京哈德威四方保护与控制设备有限公司 | 微处理器和can控制器的接口方法 |
EP1267269A2 (en) * | 2001-06-11 | 2002-12-18 | Texas Instruments Incorporated | Apparatus and method for distribution of signals from a high level data link controller to multiple digital signal processor cores |
CN101133400A (zh) * | 2005-07-29 | 2008-02-27 | 松下电器产业株式会社 | 存储器控制器,非易失性存储器,非易失性存储器系统,和非易失性存储器地址管理方法 |
CN101202690A (zh) * | 2006-12-11 | 2008-06-18 | 上海华虹Nec电子有限公司 | 多ip模块的系统结构及多ip模块读数据的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101639692A (zh) | 2010-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6522167B1 (en) | User configurable on-chip memory system | |
US4985830A (en) | Interprocessor bus switching system for simultaneous communication in plural bus parallel processing system | |
EP0504866A2 (en) | Programmable controller processor with a removable function card | |
JP7074831B2 (ja) | ネットワークオンチップによるデータ処理方法及び装置 | |
US5261077A (en) | Configurable data path arrangement for resolving data type incompatibility | |
KR20220127798A (ko) | 적응형 인터페이스 고 가용성 스토리지 장치 | |
CN106776458B (zh) | 基于fpga和hpi的dsp间的通信装置及通信方法 | |
US20180032267A1 (en) | Extensible storage system controller | |
CN116547644A (zh) | 检测可编程原子事务中的无限循环 | |
CN101639692B (zh) | 多可编程逻辑器件的控制方法、设备和系统 | |
KR20200138411A (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
KR20200138413A (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
CN108241468B (zh) | Io命令处理方法与固态存储设备 | |
CN104572519A (zh) | 一种用于多处理器的多端口访存控制器及其控制方法 | |
US20030126404A1 (en) | Data processing system, array-type processor, data processor, and information storage medium | |
US9317024B2 (en) | Automation system | |
KR20200138414A (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
CN104750547A (zh) | 虚拟机的输入输出io请求处理方法及装置 | |
EP3832470A1 (en) | High bandwidth memory system with dynamically programmable distribution scheme | |
CN101604294B (zh) | 存储器控制装置和信息处理设备 | |
CN105718395A (zh) | 一种基于fpga的多路串口通信系统及方法 | |
KR20200139256A (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
EP1716502B1 (en) | Digital signal processing integrated circuit with io connections | |
CN219456851U (zh) | 网络设备 | |
US9244867B1 (en) | Memory controller interface with adjustable port widths |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CP03 | Change of name, title or address |