CN1973259A - 可编程逻辑电路控制装置、可编程逻辑电路控制方法以及程序 - Google Patents
可编程逻辑电路控制装置、可编程逻辑电路控制方法以及程序 Download PDFInfo
- Publication number
- CN1973259A CN1973259A CNA2004800421344A CN200480042134A CN1973259A CN 1973259 A CN1973259 A CN 1973259A CN A2004800421344 A CNA2004800421344 A CN A2004800421344A CN 200480042134 A CN200480042134 A CN 200480042134A CN 1973259 A CN1973259 A CN 1973259A
- Authority
- CN
- China
- Prior art keywords
- module
- data
- memory location
- programmable logic
- address
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 102
- 230000008569 process Effects 0.000 claims abstract description 73
- 238000003860 storage Methods 0.000 claims description 40
- 230000006870 function Effects 0.000 claims description 19
- 230000008859 change Effects 0.000 claims description 14
- 239000011159 matrix material Substances 0.000 description 13
- 238000010586 diagram Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000005755 formation reaction Methods 0.000 description 2
- 101100191136 Arabidopsis thaliana PCMP-A2 gene Proteins 0.000 description 1
- 101100048260 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) UBX2 gene Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30054—Unconditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13083—Jumps
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13109—Pld programmable logic device software for plc
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Logic Circuits (AREA)
- Executing Machine-Instructions (AREA)
- Stored Programmes (AREA)
- Programmable Controllers (AREA)
Abstract
公开了一种可编程逻辑电路控制装置和方法以及程序,其便于平滑地执行复杂程序中的多个过程。模块地址存储部分(3)存储用于表明电路控制部分(4)将要读取的模块的地址的数据或者分支过程的条件以及每个页的跳转距离。电路控制部分(4)读取在模块地址存储部分(3)中的最顶部页上存储的数据。根据该数据,电路控制部分(4)执行模块的读取、可编程逻辑电路(1)的重新配置以及下一页的数据的读取,或者跳转。每当读取新页时,电路控制部分(4)根据该页上所存储的数据执行过程,由此顺序地重新配置可编程逻辑电路(1)。
Description
发明领域
本发明涉及可编程逻辑电路控制装置、可编程逻辑电路控制方法以及程序。
背景技术
在使用ASIC(专用集成电路)的领域中,需要在开发ASIC期间对于技术规范方面的变化灵活地适应,并且需要缩短产品的开发阶段。为了满足需求,广泛使用诸如现场可编程门阵列(FPGA)(例如,美国XILINX的XC系列)和可编程逻辑器件(PLD)之类的可编程逻辑电路。可编程逻辑电路能够根据所加载的电路信息来自由地改变内部逻辑电路的逻辑配置。
近年来,ASIC所需的逻辑配置正在变得复杂,并且ASIC的规模也变得越来越大。所以,存在这样一种情况,即通过使用可编程逻辑电路来构造ASIC的结构,因此,在某种情况下使用几个可编程逻辑电路至几十个可编程逻辑电路。
注意如下事实:并非大规模逻辑电路的所有部分都是始终在工作的,设计较小的ASIC的若干方案被提出。所述方案以相同可的编程逻辑电路在不同的时间实现不同功能的方式来重新配置可编程逻辑电路(例如,参见日本未审专利申请KOKAI公开No.2001-202236、2003-198362和2003-029969)。所述方案能够通过重新配置可编程逻辑电路来使得ASIC的规模变得更小。
然而,复杂的ASIC不是仅仅相继地执行过程。通常期待ASIC执行复杂程序中的过程,所述程序包括条件分支、从分支步骤和循环中返回。用于重新配置可编程逻辑电路的上述方案在平滑地执行这类复杂程序中的多个过程时面临困难并且经历一个长的开销。
发明内容
因此,本发明的一个目的是提供可编程逻辑电路控制装置、可编程逻辑电路控制方法以及程序,其便于平滑地执行复杂程序中的多个过程。
为了实现所述目的,根据本发明第一方面的可编程逻辑电路控制装置包括:
控制器(4),其向外部可编程逻辑电路(1)提供控制信号,该可编程逻辑电路(1)具有根据所提供的控制信号来改变逻辑配置的功能;
模块存储存储器(2),其存储多个模块,每一个模块都包括用于定义可编程逻辑电路(1)的逻辑配置的数据;和
模块使用顺序指定存储器(3),其具有多个经过排序的存储位置,所述存储位置中的每一个都存储用于指定模块存储存储器(2)的存储位置的地址的数据,或者存储用于指定该模块使用顺序指定存储器(3)的另一存储位置的地址的数据,在模块存储存储器(2)中存储有将要执行的模块,
其中,所述控制器(4)获取在模块使用顺序指定存储器(3)中的存储位置上存储的数据,
确定所获得的数据是指定用于存储所述模块的存储位置的地址和另一存储位置的地址中的哪一个,
当已经确定所获得的数据指定所述模块的地址时,从模块存储存储器(2)中获取由所述地址指示的存储位置中存储的模块,产生用于控制可编程逻辑电路(1)来采用由所述模块定义的逻辑配置的控制信号,并将所产生的控制信号提供到可编程逻辑电路(1),以及
当已经确定所获得的数据指定另一存储位置时,从模块使用顺序指定存储器(3)中获取在所述另一存储位置上存储的数据。
所述可编程逻辑电路控制装置容易地且平滑地执行改变可编程逻辑电路的逻辑配置的过程,即使是所述过程涉及包含分支过程的复杂程序时也是如此。
当在模块使用顺序指定存储器(3)中的存储位置上存储的数据指定模块使用顺序指定存储器(3)中的另一存储位置时,所述数据可以包括条件定义数据,所述条件定义数据指定开始获取在所述另一存储位置上存储的数据的过程的条件。
当已经确定所获得的数据指定另一存储位置时,所述控制器(4)可以确定是否满足所获得的数据中包含的条件定义数据所指定的条件,
当已经确定所述条件满足时,可以获取在模块使用顺序指定存储器(3)的所述另一存储位置上存储的数据,以及
当已经确定为所述条件不满足时,可以中止对在所述另一存储位置上存储的数据的获取。
具有所述结构的逻辑电路控制装置容易地且平滑地执行改变可编程逻辑电路的逻辑配置的过程,即使是所述过程涉及包含分支过程的复杂程序时也是如此。
所述条件定义数据所指定的条件可以与可编程逻辑电路(1)的预定节点上产生的信号所给出的数值有关。
在这种情况下,当已经确定在模块使用顺序指定存储器(3)中的存储位置上存储的数据指定另一存储位置时,控制器(4)可以从可编程逻辑电路(1)的所述节点中获取所述信号。根据所获得的信号给出的数值,控制器(4)可以确定是否满足从模块使用顺序指定存储器(3)中获取的所述数据中包含的所述条件定义数据所指定的条件。
在所述模块使用顺序指定存储器(3)中的存储位置上存储的数据包括识别数据,所述识别数据用于识别所述已存数据是指定用于存储模块的存储位置的地址和另一存储位置的地址中的哪一个。
在这种情况下,基于从模块使用顺序指定存储器(3)中获取的所述数据中包含的所述识别数据,所述控制器(4)可以确定是指定存储所述模块的存储位置的地址和另一存储位置的地址中的哪一个。
根据本发明第二方面的可编程逻辑电路控制装置,其从用于存储多个模块的模块存储存储器(2)获取包括用于定义外部可编程逻辑电路(1)的逻辑配置的数据的模块,该可编程逻辑电路(1)具有根据所提供的控制信号来改变逻辑配置的功能,所述装置产生用于控制所述可编程逻辑电路(1)来采用由所获得的模块定义的逻辑配置的控制信号,并将所产生的控制信号提供到所述可编程逻辑电路(1),并且所述装置包括:
用于获取在外部模块使用顺序指定存储器(3)中的存储位置上存储的数据的装置,所述模块使用顺序指定存储器(3)具有多个经过排序的存储位置,每一个存储位置存储用于指定模块存储存储器(2)中的存储位置的地址的数据,或者存储用于指定该模块使用顺序指定存储器(3)的另一存储位置的地址的数据,在模块存储存储器(2)中存储有将要执行的模块;
用于确定所获得的数据是指定用于存储所述模块的存储位置的地址和另一存储位置的地址中的哪一个的装置;
用于当确定所获得的数据指定所述模块的地址时,从模块存储存储器(2)中获取由所述地址指示的存储位置中所存储的模块,并且改变可编程逻辑电路(1)的逻辑配置以使可编程逻辑电路(1)采用由所述模块定义的逻辑配置的装置;以及
用于当确定所获得的数据指定另一存储位置时,从模块使用顺序指定存储器(3)中获取在所述另一存储位置上存储的数据的装置。
该逻辑电路控制装置同样容易地且平滑地执行改变可编程逻辑电路的逻辑配置的过程,即使是所述过程涉及包含分支过程的复杂程序时也是如此。
根据本发明第三方面的可编程逻辑电路控制方法,其向外部可编程逻辑电路(1)提供控制信号,该可编程逻辑电路(1)具有根据所提供的控制信号来改变逻辑配置的功能,并且所述方法包括以下步骤:
存储多个模块,每一个模块包括用于定义可编程逻辑电路(1)的逻辑配置的数据;
在多个经过排序的存储位置中的每一个上存储用于指定存储模块的存储位置的地址的数据或者另一存储位置的地址的数据;
获取所述存储位置中的每一个上所存储的数据;
确定所获得的数据是指定用于存储所述模块的存储位置的地址和另一存储位置的地址中的哪一个;
当确定所获得的数据指定用于存储模块的存储位置的地址时,获取在由所述地址指示的存储位置中存储的模块,产生用于控制所述可编程逻辑电路(1)来采用由所述模块定义的逻辑配置的控制信号,并将所述控制信号提供到所述可编程逻辑电路(1);以及
当确定所获得的数据指定另一存储位置的地址时,获取在所述另一存储位置上存储的数据。
所述逻辑电路控制方法容易地且平滑地执行改变可编程逻辑电路的逻辑配置的过程,即使是所述过程涉及包含分支过程的复杂程序时也是如此。
根据本发明第四方面的可编程逻辑电路控制方法,其从用于存储多个模块的模块存储存储器(2)获取包括用于定义外部可编程逻辑电路(1)的逻辑配置的数据的模块,所述可编程逻辑电路(1)具有根据所提供控制信号来改变逻辑配置的功能,所述方法产生用于控制所述可编程逻辑电路(1)来采用由所获得的模块定义的逻辑配置的控制信号,并将所述控制信号提供到所述可编程逻辑电路(1),并且所述方法包括以下步骤:
获取在外部模块使用顺序指定存储器(3)中的存储位置上存储的数据,模块使用顺序指定存储器(3)具有多个已经排序的存储位置,所述存储位置中的每一个都存储用于指定模块存储存储器(2)的存储位置的地址的数据,或者存储用于指定该模块使用顺序指定存储器(3)的另一存储位置的地址的数据,在模块存储存储器(2)中存储有将要执行的模块;
确定所获得的数据是指定用于存储所述模块的存储位置的地址和另一存储位置的地址中的哪一个;
当确定所获得的数据指定存储有模块的存储位置的地址时,从模块存储存储器(2)中获取在由所述地址指示的存储位置中存储的模块,并且改变可编程逻辑电路(1)的逻辑配置以使可编程逻辑电路(1)采用由所述模块定义的逻辑配置;以及
当确定所获得的数据指定另一存储位置时,从模块使用顺序指定存储器(3)中获取在所述另一存储位置上存储的数据。
该逻辑电路控制方法同样容易地且平滑地执行改变可编程逻辑电路的逻辑配置的过程,即使是所述过程涉及包含分支过程的复杂程序时也是如此。
根据本发明第五方面的程序,其使得计算机充当:
控制器(4),其向外部可编程逻辑电路(1)提供控制信号,该可编程逻辑电路(1)具有根据所提供的控制信号来改变逻辑配置的功能;
模块存储存储器(2),其存储多个模块,每一个模块包括用于定义可编程逻辑电路(1)的逻辑配置的数据;和
模块使用顺序指定存储器(3),其具有多个经过排序的存储位置,所述存储位置中的每一个都存储用于指定模块存储存储器(2)的存储位置的地址的数据,或者存储用于指定该模块使用顺序指定存储器(3)的另一存储位置的地址的数据,在模块存储存储器(2)中存储有将要执行的模块,
其中控制器(4)获取在模块使用顺序指定存储器(3)中的存储位置上存储的数据,
确定所获得的数据是指定用于存储所述模块的存储位置的地址和所述另一存储位置的地址中的哪一个,
当已经确定所获得的数据指定模块的地址时,从模块存储存储器(2)中获取在由所述地址指示的存储位置中存储的模块,产生用于控制可编程逻辑电路(1)来采用由所述模块定义的逻辑配置的控制信号,并将所产生的控制信号提供到可编程逻辑电路(1),以及
当已经确定所获得的数据指定另一存储位置时,从模块使用顺序指定存储器(3)中获取在所述另一存储位置上存储的数据。
执行所述程序的计算机容易地且平滑地执行改变可编程逻辑电路的逻辑配置的过程,即使是所述过程涉及包含分支过程的复杂程序时也是如此。
根据本发明第六方面的程序,其使得计算机充当可编程逻辑电路控制装置,所述可编程逻辑电路控制装置从用于存储多个模块的模块存储存储器(2)获取包括用于定义外部可编程逻辑电路(1)的逻辑配置的数据的模块,所述可编程逻辑电路(1)具有根据所提供的控制信号来改变逻辑配置的功能,所述可编程逻辑电路控制装置产生用于控制可编程逻辑电路(1)来采用由所获得的模块定义的逻辑配置的控制信号,并将所产生的控制信号提供到可编程逻辑电路(1),并且所述程序进一步使得所述计算机执行下列功能:
获取在外部模块使用顺序指定存储器(3)中的存储位置上存储的数据,所述外部模块使用顺序指定存储器(3)具有多个经过排序的存储位置,所述存储位置中的每一个都存储用于指定模块存储存储器(2)的存储位置的地址的数据,或者存储该模块使用顺序指定存储器(3)的另一存储位置的数据,在模块存储存储器(2)中存储有将要执行的模块;
确定所获得的数据是指定用于存储所述模块的存储位置的地址和另一存储位置的地址中的哪一个;
当确定所获得的数据指定模块的地址时,从模块存储存储器(2)中获取在由所述地址指示的存储位置中存储的模块,并且改变可编程逻辑电路(1)的逻辑配置以使可编程逻辑电路(1)采用由所述模块定义的逻辑配置;以及
当确定所获得的数据指定另一存储位置时,从模块使用顺序指定存储器(3)中获取在所述另一存储位置上存储的数据。
一种执行所述程序的计算机,同样容易地且平滑地执行改变可编程逻辑电路的逻辑配置的过程,即使是所述过程涉及包含分支过程的复杂程序时也是如此。
从上面可显而易见,本发明实现了一种便于平滑地执行复杂程序中的多个过程的可编程逻辑电路控制装置和方法,以及程序。
附图简述
当阅读下列详细说明和附图时,本发明的这些目的及其它目的和优点将变得更明显,在附图中:
图1是图示出根据本发明一个实施例的可编程逻辑电路控制装置的结构的图;
图2是示出可编程逻辑电路的配置的示例性图;
图3是示出输入逻辑电路BIBC的配置的图;
图4是示出逻辑电路BFBC的配置的图;
图5是逻辑电路BQBC的配置的图;
图6是输出逻辑电路BOBC的配置的图;
图7A是示出矩阵开关的结构的图,而图7B是示出构成该矩阵开关的开关的结构的图;
图8是示出在模块地址存储部件中存储的数据的数据结构的示例性图;和
图9是图示出电路控制部分所执行的过程流向的流程图。
具体实施方式
下面将参照附图描述适合于可编程逻辑电路控制装置的本发明的优选实施例。
图1示出了可编程逻辑电路控制装置的结构。所述可编程逻辑电路控制装置包括:可编程逻辑电路1、模块存储部分2、模块地址存储部分3和电路控制部分4。可编程逻辑电路1、模块存储部分2和模块地址存储部分3与电路控制部分4连接。
可编程逻辑电路1包括:可配置逻辑块(CLB),其用于构造例如美国XILINX制造的现场可编程门阵列(FPGA)、矩阵开关、布线材料等等。可编程逻辑电路1在电路控制部分4的控制下,改变(重新配置)其逻辑结构(即,要输入到可编程逻辑电路1的信号与要从其中输出的信号之间的相关性)。例如,如图2中所举例说明的,所述可编程逻辑电路1包括:输入逻辑电路BIBC、逻辑电路BFBC、逻辑电路BQBC、输出逻辑电路BOBC、矩阵开关BLSW、布线LVL0至LVL4以及布线LHL0至LHL2。
布线LVL0至LVL4以及布线LHL0至LHL2中的每一条都包括63条信号线。输入逻辑电路BIBC、逻辑电路BFBC、逻辑电路BQBC和输出逻辑电路BOBC通过总线连接到布线LVL0至LVL4。所述布线LVL0至LVL4以及布线LHL0至LHL2通过矩阵开关BLSW彼此连接或者彼此断开。矩阵开关BLSW实现了可变的互连。
输入逻辑电路BIBC、逻辑电路BFBC、逻辑电路BQBC和输出逻辑电路BOBC中的每一个都是由例如TTL(晶体管-晶体管逻辑)电路或CMOS(互补金属氧化物半导体)逻辑电路等构成。
每一个输入逻辑电路BIBC在依照电路控制部分4的控制的模式下,将输入到可编程逻辑电路1的信号提供到布线LVL0。如图3所示,每一个输入逻辑电路BIBC都包括,例如输出选择电路OSEL1。
输出选择电路OSEL1通过63位的总线IoA(1)至IoA(63)连接到布线LVL0。输出选择电路OSEL1将输入到可编程逻辑电路1的4位信号提供到构成布线LVL0的信号线。根据从电路控制部分4等提供的24位控制信号ConfigI的值,输出选择电路OSEL1决定将把所述信号提供到布线LVL0中的哪一条信号线。输出选择电路OSEL1继而将所述信号发送到所决定的信号线。输出选择电路OSEL1能够决定不将所述信号发送到布线LVL0的任何信号线。
每一个逻辑电路BFBC都在电路控制部分4的控制下对从布线LVL0或LVL1提供的信号执行逻辑运算。逻辑电路BFBC将所获得的信号发送到布线LVL1或LVL2。如图4所示,每一个逻辑电路BFBC都包括,例如输入选择电路ISEL1、基本功能单元FBC和输出选择电路OSEL2。
输入选择电路ISEL1通过63位的总线IiA(1)至IiA(63)连接到布线LVL0或LVL1。输入选择电路ISEL1在从该输入选择电路ISEL1所连接的布线LVL0或LVL1提供的信号之中获取6位的信号。输入选择电路ISEL1将所获得的信号发送到基本功能单元FBC。根据从电路控制部分4等提供的36位控制信号ConfigFi的值,输入选择电路ISEL1决定将从布线LVL0或LVL1的63条信号线中的哪六条信号线获取所述信号。输入选择电路ISEL1从所决定的信号线中获取所述信号。输入选择电路ISEL1继而将所获得的信号发送到基本功能单元FBC。选择电路ISEL1能够决定不从布线LVL0或LVL1的任何信号线获取信号。在这种情况下,输入选择电路ISEL1向基本功能单元FBC发送表示逻辑值″0″的信号。
如图4所示,基本功能单元FBC包括,例如选择电路SEL和锁存电路L。
根据从输入选择电路ISEL1提供的6位信号的值,基本功能单元FBC选择总共二位,一位来自于从电路控制部分4等提供的130位控制信号ConfigFf的第一至第64位,一位来自于控制信号ConfigFf的第65至第128位。基本功能单元FBC向输出选择电路OSEL2发送所述2位的信号(信号XY)。根据控制信号ConfigFf的第129和第130位的值,基本功能单元FBC决定是否锁存信号XY。基本功能单元FBC继而将指示决定结果的信号EN发送到锁存电路L。
根据信号EN,锁存电路判定出是否决定锁存信号XY。当决定锁存信号XY时,则锁存电路L保持信号XY的值。继而,锁存电路L将具有所保持的值的2位信号作为信号QY发送到输出选择电路OSEL2。当决定不锁存信号XY时,反之,锁存电路L将具有当前所保持的值(即,信号XY的旧值)的2位信号作为信号QY发送到输出选择电路OSEL2。在锁存信号XY时,可编程逻辑电路1的单独部分与时钟信号同步地执行锁存。可编程逻辑电路1可以从外部获取时钟信号。或者,可编程逻辑电路1可以具有用于产生时钟信号的电路。
输出选择电路OSEL2通过63位的总线IoB(1)至IoB(63)连接到布线LVL1或LVL2。输出选择电路OSEL2将从基本功能单元FBC提供的信号XY和信号QY,总共四位,提供到构成布线LVL1或LVL2的信号线。输出选择电路OSEL2根据从电路控制部分4等提供的24位控制信号ConfigFo的值,决定将所述4位信号提供到布线LVL1或LVL2中的哪一条信号线。输出选择电路OSEL2继而将所述4位信号发送到所决定的信号线。输出选择电路OSEL2能够决定不向布线LVL1或LVL2的任何信号线发送所述信号。
每一个逻辑电路BQBC都在依照电路控制部分4的控制的模式下保持从布线LVL2或LVL3提供的信号。逻辑电路BQBC在重新配置成下一个逻辑配置之后,经布线LVL0或LVL1将所述信号给予可编程逻辑电路1中的逻辑电路BFBC。如图5所示,每一个逻辑电路BQBC都包括,例如输入选择电路ISEL2、功能单元QBC和输出选择电路OSEL3。
输入选择电路ISEL2通过63位的总线IiB(1)至IiB(63)连接到布线LVL2或LVL3。输入选择电路ISEL2在从该输入选择电路ISEL2所连接的布线LVL2或LVL3提供的信号之中获取4位信号。输入选择电路ISEL2将所获得的信号发送到功能单元QBC。根据从电路控制部分4等提供的24位控制信号ConfigQi的值,输入选择电路ISEL2决定将从布线LVL2或LVL3的63条信号线中的哪四条信号线获取所述信号。输入选择电路ISEL2从所决定的信号线中获取总共四位的信号,并将所获得的信号发送到功能单元QBC。输入选择电路ISEL2能够决定不从布线LVL2或LVL3的任何信号线获取信号。在这种情况下,输入选择电路ISEL2向功能单元QBC发送表示逻辑值″0″的信号。
功能单元QBC包括锁存电路等。功能单元QBC保持从输入选择电路ISEL2提供的4位信号的值。功能单元QBC将具有所保持的数值的信号作为信号QY2发送到输出选择电路OSEL3。
输出选择电路OSEL3通过63位的总线IoC(1)至IoC(63)连接到布线LVL3或LVL4。输出选择电路OSEL3将从功能单元QBC提供的4位信号QY2提供到构成布线LVL3或LVL4的信号线。输出选择电路OSEL3根据从电路控制部分4等提供的24位控制信号ConfigQo的值,决定将把信号QY2提供到布线LVL3或LVL4中的哪一条信号线。输出选择电路OSEL3继而将所述信号发送到所决定的信号线。所述输出选择电路OSEL3能够决定不向布线LVL3或LVL4的任何信号线发送所述信号。
每一个输出逻辑电路BOBC在依照电路控制部分4的控制的模式下,输出从布线LVL4提供的信号。如图6所示,每一个输出逻辑电路BOBC都包括,例如输入选择电路ISEL3和功能单元OBC。
输入选择电路ISEL3通过63位的总线IiC(1)至IiC(63)连接到布线LVL4。输入选择电路ISEL3在从该输入选择电路ISEL3所连接的布线LVL4提供的信号之中获取4位信号。输入选择电路ISEL3将所获得的信号发送到功能单元OBC。根据从电路控制部分4等提供的24位控制信号ConfigO的值,输入选择电路ISEL3决定将从布线LVL4的63条信号线中的哪四条信号线获取所述信号。输入选择电路ISEL3从所决定的信号线中获取总共四位的信号,并将所获得的信号发送到功能单元OBC。输入选择电路ISEL3能够决定不从布线LVL4的任何信号线获取信号。在这种情况下,输入选择电路ISEL3向功能单元OBC发送表示逻辑值″0″的信号。
功能单元OBC包括锁存电路等。功能单元OBC保持从输入选择电路ISEL3提供的4位信号的值,或者传递该信号。根据控制信号ConfigO中的第25至第28位来决定是保持还是传递所述信号。功能单元OBC发出具有所保持的值的信号或者已经作为可编程逻辑电路1的输出信号(信号Y)被传递的信号。
矩阵开关BLSW具有使布线LVL0至LVL4以及布线LHL0至LHL2彼此或相互电连接或断开的能力。矩阵开关BLSW根据从电路控制部分4等提供的控制信号的值(在下文中,将把所述控制信号称为控制信号ConfigL),使布线LVL0至LVL4相互电连接或断开,使布线LHL0至LHL2相互电连接或断开,使布线LVL0至LVL4电连接到布线LHL0至LHL2或者与其断开。
如图7A所示,例如,使布线LVLm(m是0到4的整数)连接到导线LHLn(n是0到2的整数)或者与其断开的矩阵开关BLSW,包括使布线LVLm-j(j是1到63的整数)连接到布线LHLn-k(k是1到63的整数)或与其断开的3969个开关Q。如图7B所示,每一个开关Q都包括开关元件,比如例如场效应晶体管(FET)。在图7中示出的例子中,FET Q1使构成布线LVLm-j的两条信号线LVLm-jA和LVLm-jB彼此连接或彼此断开。FET Q2使构成布线LHLn-k的两条信号线LHLn-kA和LHLn-kB彼此连接或者彼此断开。FET Q3使信号线LVLm-jA和信号线LHLn-kA彼此连接或者彼此断开。FET Q4使信号线LVLm-jA和信号线LHLn-kB彼此连接或者彼此断开。FETQ5使信号线LVLm-jB和信号线LHLn-kA彼此连接或者彼此断开。FET Q6使信号线LVLm-jB和信号线LHLn-kB彼此连接或者彼此断开。当开关Q具有如图7B所示的结构时,应将控制信号ConfigL施加于例如构成开关Q的每一个FET的栅极上。
布线LVL0至LVL4都连接到输入逻辑电路BIBC、逻辑电路BFBC、逻辑电路BQBC和输出逻辑电路BOBC。布线LHL0至LHL2连接到矩阵开关BLSW。布线LHL0至LHL2没有直接连接到输入逻辑电路BIBC、逻辑电路BFBC和逻辑电路BQBC(尽管布线LHL0至LHL2可以通过矩阵开关BLSW连接到那些电路)。
由于矩阵开关BLSW具有上述能力,因而可编程逻辑电路1中的布线根据从电路控制部分4等提供到矩阵开关BLSW的控制信号ConfigL而进行变化。输入逻辑电路BIBC、逻辑电路BFBC和逻辑电路BQBC在电路控制部分4等的控制下,通过布线LVL0至LVL4以及布线LHL0至LHL2彼此连接。其结果是,可编程逻辑电路1总体上变为具有执行预定过程的能力的逻辑电路,所述预定过程是由稍后将论述的模块的内容来确定的。
模块存储部分2和模块地址存储部分3中的每一个都包括存储器,比如RAM(随机存取存储器)。模块存储部分2和模块地址存储部分3中的每一个都响应于电路控制部分4所进行的存取,读出存储在其中的数据(待论述)。模块存储部分2和模块地址存储部分3将所读出的数据发送到电路控制部分4。
模块存储部分2存储定义如图1中举例说明的可编程逻辑电路1的逻辑配置的数据(在下文中称作″模块″)。单个模块指示可编程逻辑电路1每次能够表达出的全部或一部分逻辑配置。模块可以指示如图2所示的输入逻辑电路BIBC、逻辑电路BFBC、逻辑电路BQBC和输出逻辑电路BOBC的所有逻辑配置。或者,按照例如日本未审专利申请KOKAI公开No.2003-198362或日本未审专利申请KOKAI公开No.2003-029969中所公开的装置,模块可以用于对一部分逻辑电路BFBC或者一部分逻辑电路BQBC进行重新配置,而无需改变其它逻辑电路的逻辑配置。
为指示模块存储部分2中存储区的存储位置中的每一个分配10位地址。模块存储部分2通过指定模块的地址,即在其上存储该模块的顶部存储位置的地址(或者模块中的给定部分,比如末尾)来指定模块。
如图8所示,模块地址存储部分3的每16位存储区构成一个页。给该页分配页地址(页位置)。对模块地址存储部分3的各个独立页按照从较高页到较低页进行排序。对构成每一页的16位同样从较高有效位到较低有效位进行排序。
其数据结构在图8中举例说明了的模块地址存储部分3中的每一页存储在模块存储部分2中存储的每一个模块的地址,或者如果执行分支的话则存储表示跳转距离(偏移量值)的值,以及存储六位控制位。在图7中所示的例子中,模块的地址或偏移量值占据每一页的低十位。所述控制位占据高六位。
所述控制位包括指示例如是否允许电路控制部分4执行分支过程的二个位(在下文中,称作″分支控制位″)以及如果执行分支过程则表示分支条件的四位(在下文中,称作″分支条件定义控制位″)。
当分支控制位采用预定值(例如,二进制数值″10″)并且满足由与分支控制位相同的页中所包含的分支条件定义控制位指定的条件时,分支控制位命令电路控制部分4以所述页的页地址为起点,按页中所存的偏移量进行跳转。也就是说,在那种情况下,电路控制部分4读取具有相当于起始页的页地址与那一页上所存储的偏移量值(即,在待跳转的页上所存储的数据)的和的页地址的页上所存储的数据。
另一方面,当所述分支控制位采用除预定值以外的值(例如,二进制数值″00″或″01″)时,所述分支控制位命令电路控制部分4从模块存储部分2读取由与分支控制位相同的页中所包含的地址指定的模块。所述分支控制位同样命令电路控制部分4按照所读取的模块所指示的那样重新配置可编程逻辑电路1。此外,所述分支控制位指示电路控制部分4将存储在对于该页来说为下一页上的数据(具体地说,其页地址为页的页地址加“1”的页地址的页)。
当所述分支条件定义控制位例如采用二进制数值″0000″时,所述分支条件定义控制位指示″具有数值″0″的信号Cond(0)″作为用于执行跳转的条件(条件跳转)。
当所述分支条件定义控制位例如采用二进制数值″0001″时,所述分支条件定义控制位指示″具有数值″0″的信号Cond(1)″作为用于执行条件跳转的条件。
当所述分支条件定义控制位例如采用二进制数值″0010″时,所述分支条件定义控制位指示″具有数值″0″的信号Cond(2)″作为用于执行条件跳转的条件。
当所述分支条件定义控制位例如采用二进制数值″0011″时,所述分支条件定义控制位指示″具有数值″0″的信号Cond(3)″作为用于执行条件跳转的条件。
当所述分支条件定义控制位例如采用二进制数值″0100″时,所述分支条件定义控制位指示″具有数值″0″的信号Cond(4)″作为用于执行条件跳转的条件。
当所述分支条件定义控制位例如采用二进制数值″1000″时,所述分支条件定义控制位指示″具有数值″1″的信号Cond(0)″作为用于执行条件跳转的条件。
当所述分支条件定义控制位例如采用二进制数值″1001″时,所述分支条件定义控制位指示″具有数值″1″的信号Cond(1)″作为用于执行条件跳转的条件。
当所述分支条件定义控制位例如采用二进制数值″1010″时,所述分支条件定义控制位指示″具有数值″1″的信号Cond(2)″作为用于执行条件跳转的条件。
当所述分支条件定义控制位例如采用二进制数值″1011″时,所述分支条件定义控制位指示″具有数值″1″的信号Cond(3)″作为用于执行条件跳转的条件。
当所述分支条件定义控制位例如采用二进制数值″1100″时,所述分支条件定义控制位指示″具有数值″1″的信号Cond(4)″作为用于执行条件跳转的条件。
当所述分支条件定义控制位例如采用二进制数值″0111″或″1111″时,所述分支条件定义控制位指示如下条件,即″只要与所述分支条件定义控制位相同的页上所包含的分支控制位具有上述预定值就进行跳转(无条件地进行跳转)″。
所述信号Cond(0)至Cond(4)是从逻辑电路BFBC、逻辑电路BQBC或者输出逻辑电路BOBC提供给电路控制部分4的总共五位的信号,其中逻辑电路BFBC执行监视条件是否满足的过程,逻辑电路BQBC执行保持另一过程结果的过程,输出逻辑电路BOBC执行输出监视结果的过程。在从逻辑电路BFBC提供信号Cond(0)至Cond(4)的情况下,预先在模块中描述逻辑电路BQBC或输出逻辑电路BOBC。在满足如下条件的基础上将要监视潜在的目标:除了用于执行条件跳转的条件之外,例如还包括用于调用另一过程的条件和用于从已被调用的另一过程返回到初始过程的条件。
电路控制部分4是由包含诸如CPU(中央处理单元)之类的处理器和诸如ROM(只读存储器)之类的非易失性存储器的控制器构成的,在所述非易失性存储器中存储了待由处理器执行的程序。或者,构成电路控制部分4的控制器可以由专用的电子电路组成。
电路控制部分4执行,例如如图9所示的处理。当电路控制部分4包括处理器、非易失性存储器等等时,随着处理器加载例如存储在非易失性存储器中的程序并运行所述程序时,执行图9中所示的过程。
具体地说,当电路控制部分4开始操作时,电路控制部分4首先读取在模块地址存储部分3中的具有最顶部页地址的页上所存储的数据(即,控制位以及模块的地址或偏移量值)(图9中的步骤S1)。
接下来,电路控制部分4判断在稍后将要论述的步骤S5、步骤S7或步骤S9中,从模块地址存储器部分3的读出最新数据的页是否是最后一页,即该页是否是给出最低部页地址的页(步骤S2)。当确定该页是最后一页时,电路控制部分4终止所述过程。
当判定该页不是最后一页时,电路控制部分4判断从模块地址存储器部分3读取的最新数据中所包含的控制位指示哪一个过程:(a)读取模块或(b)分支(条件跳转或无条件跳转)(步骤S3)。
当判定控制位指示过程(a)时,电路控制部分4从模块存储部分2中读取由从模块地址存储部分3读取的最新数据中所包含的地址指定的模块。继而,电路控制部分4按采用由所述模块所表示的逻辑配置的方式重新配置可编程逻辑电路1(步骤S4)。在步骤S4,具体地说,电路控制部分4产生例如上述控制信号ConfigI、ConfigFi、ConfigFf、ConfigFo、ConfigQi、ConfigQo、ConfigO和ConfigL,并且向可编程逻辑电路1发送所述控制信号以便重新配置可编程逻辑电路1。
当步骤S4的过程结束时,电路控制部分4从模块地址存储部分3读取已经从中读取最新数据的页的下一页上所存储的数据(步骤S5)。继而,电路控制部分4将该过程返回至步骤S2。
另一方面,当在步骤S3判定控制位指示过程(b)时,电路控制部分4判断所述控制位中所包含的分支条件定义控制位指示哪一个过程:(c)无条件跳转或(d)条件跳转(步骤S6)。在步骤S6,具体地说,电路控制部分4判断分支条件定义控制位的数值是否是″0111″或者″1111″。当分支条件定义控制位数值采用两者中任何一个数值时,电路控制部分4判定命令无条件跳转。当分支条件定义控制位的数值采用除所述二个数值以外的值时,所述电路控制部分4判定命令条件跳转。
当在步骤S6判定命令无条件跳转时,电路控制部分4按与所述控制位相同的页中所包含的偏移量跳转(即,读取将要跳转的页上所存储的数据)(步骤S7)。继而,所述电路控制部分4将所述过程返回至步骤S2。
另一方面,当在步骤S6判定命令条件跳转时,所述电路控制部分4获取例如从可编程逻辑电路1提供的信号Cond(0)至Cond(4)(步骤S8)。继而,电路控制部分4根据由所获得的信号Cond(0)至Cond(4)所指示的值,来判断分支条件定义控制位所表示的分支条件是否满足(步骤S9)。当确定不满足所述分支条件时,电路控制部分4从模块地址存储部分3读取已经从中读取最新数据的页的下一页上所存储的数据(步骤S10)。继而,电路控制部分4将所述过程返回至步骤S2。另一方面,当确定满足所述分支条件时,电路控制部分4将所述过程返回至步骤S7。
可编程逻辑电路1根据从外界将信号提供给输入逻辑电路BIBC时自身的逻辑配置结构,通过使用该信号或在逻辑电路BQBC中所保持的旧运算结果,来执行算术运算。继而,可编程逻辑电路1将指示所述运算结果的信号保持在逻辑电路BQB中,或者从输出逻辑电路BOBC输出所述信号。
通过所述操作,所述可编程逻辑电路控制装置能够按预定顺序逐个地执行可编程逻辑电路1的逻辑配置。另外,所述可编程逻辑电路控制装置平滑地执行复杂程序中的逻辑配置,所述复杂程序包含条件跳转和无条件跳转。
所述可编程逻辑电路控制装置的结构不限于上面描述的结构。
例如,单个存储装置可以执行模块存储部分2和模块地址存储部分3的功能。
模块地址存储部分3中所存储的数据不是必须要采用上述数据结构。例如,构成一个页的位的数量是任意的。模块的地址的位数量、页地址的位数量、偏移量的位数量、分支控制位或分支条件定义控制位的位数量以及模块地址存储部分3中的每一页中的位置的位数量也都是任意的。
电路控制部分4进行跳转的条件不限于上述讨论到那些。例如,执行跳转的条件不是必须要与信号Cond(0)至Cond(4)的值相关联。所述条件可以与电路控制部分4可获得的任意信息相关联。
信号Cond可以表示作为对当在一个时刻或多个时刻产生单个节点或在可编程逻辑电路1的多个节点中的每一个上产生的信号的数值执行诸如逻辑运算之类的预定过程结果而获得的值。在这种情况下,所述可编程逻辑电路1应该具有执行逻辑运算等的逻辑电路。
电路控制部分4不仅可以执行上述模式下的跳转(即,相对跳转),而且可以执行绝对跳转。在这种情况下,例如,模块地址存储部分3中所存储的分支控制位应该表示三种指令,例如相对跳转、绝对跳转以及无跳转。当分支控制位命令绝对跳转时,电路控制部分4应该解释为将要跳转的页的地址存储在包括分支控制位而不是偏移量的页上。在这种情况下,把将要跳转的页的页地址存储在包括分支控制位而不是偏移量值的页上。
所述可编程逻辑电路控制装置还可以包括具有存储区的存储器,所述存储区充当后进先出(LIFO)堆栈。继而,所述可编程逻辑电路控制装置可以使用该堆栈来管理该堆栈中的模块地址存储部分3中的页的页地址,并且实现调用和返回功能。所述调用和返回功能可以通过例如下列方案来完成。
将控制位设计成能够包括指示调用过程的数据或者指示返回过程的数据。分支过程中将要跳转的页存储反复使用的模块的地址。将要跳转的页的控制位包括用于指示返回的数据。在调用将要跳转的页时,电路控制部分4存储当前所执行的页的下一页的页地址。接着,电路控制部分4加载将要跳转的页上所存储的数据并且重新配置可编程逻辑电路1。接下来,电路控制部分4读出堆栈中所存储的页地址(在跳转之前已经执行的页的下一页的地址),并且跳转至该页地址所指示的页。
该方案能够实现调用和返回功能。
为了处理将由可编程逻辑电路1执行的过程未与其它器件等同步被处理的情况或者所述过程所需的时间不恒定的情况,模块可以采用以下方式定义可编程逻辑电路1的逻辑配置:使得逻辑电路BFBC监视可编程逻辑电路1的处理的结束,逻辑电路BQBC保持所监视的结果,并且输出逻辑电路BOBC向电路控制部分4提供指示所述过程结束的数据。
当模块采用使得可编程逻辑电路1执行预先已知的过程以便按预定数目的时钟终止的方式定义逻辑配置时,所述模块可以采用以下方式定义逻辑配置:允许可编程逻辑电路1进一步充当用于对所述时钟信号的时钟数量进行计数的计数器和逻辑电路,所述逻辑电路判断所述计数器所计时钟数是否已经达到预定数目并且当确定时钟数已经达到预定数目时向电路控制部分4提供指示所述过程结束的数据。
电路控制部分4、模块地址存储部分3和/或模块存储部分2可以由可编程逻辑电路1构成。在这种情况下,所述可编程逻辑电路控制设备还包括非易失性存储器件(例如,ROM等),所述非易失性存储器件存储定义用于允许可编程逻辑电路1充当例如电路控制部分4、模块地址存储部分3和/或模块存储部分2的逻辑配置的模块。可编程逻辑电路1应该具有控制电路等,所述控制电路紧接可编程逻辑电路控制设备的激活之后每次读取在非易失性存储器器件中存储的一个模块并且按照所述模块的定义改变可编程逻辑电路1的逻辑配置。
尽管在上面已经描述了本发明的一个实施例,但是根据本发明的可编程逻辑电路控制装置能够通过利用普通的计算机系统而非专用系统来实现。例如,当从介质(CD-ROM、MO等等)中加载用于执行模块存储部分2的操作的程序、模块地址存储部分3和电路控制部分4的程序并且其中所述程序存储并安装在连接至所述可编程逻辑电路控制设备的计算机上时,所述计算机充当执行上述过程的可编程逻辑电路控制装置。
为计算机提供所述程序的方法没有限制。例如,可以将程序上载到通信电路的BBS(电子布告栏系统)并经由通信电路分布到计算机。或者,可以以调制波的形式发射每一个程序,所述调制波是由表示所述程序的信号所调制的载波,并且用于接收所述调制波的单元对所述调制波进行解调以恢复所述程序。接着,所述计算机激活该程序并且在OS(操作系统)控制下以与执行其它应用程序同样的方式来执行所述程序。这使得所述计算机充当执行上述过程的可编程逻辑电路控制装置。
当OS负责过程的一部分或者OS构成本发明的单一结构元素的一部分时,记录介质可以存储除该部分之外的程序。在这种情况下,应该把计算机执行的用于执行单独功能或者步骤的程序存储在根据本发明的记录介质中。
在不脱离本发明的宽泛精神和范围的情况下,可以对本发明作出各种实施例和变化。上述实施例是用来举例说明本发明的,而不是限制本发明的范围的。本发明的范围是由附带的权利要求而非实施例示出的。在本发明的权利要求的等效含义内和在权利要求内作出的各种修改都应该视为落入本发明的范围。
本申请是基于2003年12月26日提交的日本专利申请No.2003-433210的,并且包括说明书、权利要求书、附图和摘要。在此将上述日本专利申请的公开全部引入以供参考。
Claims (9)
1、一种可编程逻辑电路控制装置,包括:
控制器(4),其向外部可编程逻辑电路(1)提供控制信号,所述可编程逻辑电路(1)具有根据所提供的控制信号来改变逻辑配置的功能;
模块存储存储器(2),其存储多个模块,每一个模块都包括用于定义所述可编程逻辑电路(1)的逻辑配置的数据;以及
模块使用顺序指定存储器(3),其具有多个已经排序的存储位置,所述存储位置中的每一个都存储用于指定所述模块存储存储器(2)的存储位置的地址的数据,或者存储用于指定该模块使用顺序指定存储器(3)中的另一存储位置的地址的数据,在所述模块存储存储器(2)中存储有将要执行的模块,
其中所述控制器(4)获取在所述模块使用顺序指定存储器(3)中的存储位置上存储的数据,
确定所述获得的数据是指定用于存储所述模块的存储位置的地址和所述另一存储位置的地址中的哪一个,
当已经确定所述获得的数据指定所述模块的地址时,从所述模块存储存储器(2)中获取在由所述地址指示的存储位置中存储的所述模块,产生用于控制所述可编程逻辑电路(1)来采用由所述模块定义的逻辑配置的控制信号,并且将所产生的控制信号提供到所述可编程逻辑电路(1),以及
当已经确定所述获得的数据指定另一存储位置时,从所述模块使用顺序指定存储器(3)中获取在所述另一存储位置上存储的数据。
2、根据权利要求1所述的可编程逻辑电路控制装置,其中,当在所述模块使用顺序指定存储器(3)中的存储位置上存储的数据指定所述模块使用顺序指定存储器(3)中的另一存储位置时,所述数据包括用于指定开始获取在所述另一存储位置上存储的数据的过程的条件的条件定义数据,并且
当已经确定所述获得的数据指定另一存储位置时,所述控制器(4)确定是否满足由所述获得的数据中包含的所述条件定义数据指定的条件,
当已经确定满足所述条件时,获取在所述模块使用顺序指定存储器(3)的所述另一存储位置上存储的数据,以及
当已经确定不满足所述条件时,中止对在所述另一存储位置上的数据的获取。
3、根据权利要求2所述的可编程逻辑电路控制装置,其中,由所述条件定义数据指定的所述条件与在所述可编程逻辑电路(1)的预定节点上产生的信号给出的值有关,并且
当已经确定在所述模块使用顺序指定存储器(3)中的存储位置上存储的数据指定另一存储位置时,所述控制器(4)从所述可编程逻辑电路(1)的所述节点中获取所述信号,并且根据所述获得的信号给出的所述值来确定是否满足由从所述模块使用顺序指定存储器(3)中获取的所述数据中包含的所述条件定义数据所指定的条件。
4、根据权利要求1所述的可编程逻辑电路控制装置,其中,在所述模块使用顺序指定存储器(3)中的存储位置上存储的数据包括识别数据,所述识别数据用于识别所述已存数据是指定用于存储模块的所述存储位置的地址和另一存储位置的地址中的哪一个,
所述控制器(4)根据从所述模块使用顺序指定存储器(3)中获取的所述数据中包含的所述识别数据来确定是指定用于存储所述模块的所述存储位置的地址和另一存储位置的地址中的哪一个。
5、一种可编程逻辑电路控制装置,其从用于存储多个模块的模块存储存储器(2)获取包括用于定义外部可编程逻辑电路(1)的逻辑配置的数据的模块,所述可编程逻辑电路(1)具有根据所提供的控制信号来改变逻辑配置的功能,所述装置产生用于控制所述可编程逻辑电路(1)来采用由所述获得的模块定义的逻辑配置的控制信号,并将所产生的控制信号提供到所述可编程逻辑电路(1),并且所述装置包括:
用于获得在外部模块使用顺序指定存储器(3)中的存储位置上存储的数据的装置,所述模块使用顺序指定存储器(3)具有多个已经排序的存储位置,每一个存储位置都存储用于指定所述模块存储存储器(2)的存储位置的地址的数据,或者存储用于指定该模块使用顺序指定存储器(3)的另一存储位置的地址的数据,在所述模块存储存储器(2)存储有待执行的模块;
用于确定所述获得的数据是指定用于存储所述模块的存储位置的地址和所述另一存储位置的地址中的哪一个的装置;
用于当确定所述获得的数据指定所述模块的地址时,从所述模块存储存储器(2)中获取在由所述地址指示的存储位置中存储的所述模块,并改变所述可编程逻辑电路(1)的所述逻辑配置以使所述可编程逻辑电路(1)采用由所述模块定义的逻辑配置的装置;以及
用于当确定所述获得的数据指示另一存储位置时,从所述模块使用顺序指定存储器(3)中获取在所述另一存储位置上存储的数据的装置。
6、一种可编程逻辑电路控制方法,其向外部可编程逻辑电路(1)提供控制信号,所述可编程逻辑电路(1)具有根据所述提供的控制信号来改变逻辑配置的功能,并且所述方法包括以下步骤:
存储多个模块,每一个模块包括用于定义所述可编程逻辑电路(1)的逻辑配置的数据;
在多个经过排序的存储位置中的每一个上存储用于指定用于存储模块的存储位置的地址的数据或者存储用于指定另一存储位置的地址的数据;
获取在所述存储位置中的每一个上存储的数据;
确定所述获得的数据是指定用于存储所述模块的存储位置的地址和所述另一存储位置的地址中的哪一个;
当确定所述获得的数据指定用于存储模块的存储位置的地址时,获取在由所述地址指示的存储位置中存储的所述模块,产生用于控制所述可编程逻辑电路(1)来采用由所述模块定义的逻辑配置的控制信号并将所述控制信号提供到所述可编程逻辑电路(1);以及
当确定所述获得的数据指定另一存储位置的地址时,获取在所述另一存储位置上存储的数据。
7、一种可编程逻辑电路控制方法,其从用于存储多个模块的模块存储存储器(2)获取包括用于定义外部可编程逻辑电路(1)的逻辑配置的数据的模块,所述可编程逻辑电路(1)具有根据所提供的控制信号来改变逻辑配置的功能,所述方法产生用于控制所述可编程逻辑电路(1)来采用由所获得的模块定义的逻辑配置的控制信号并将所述控制信号提供到所述可编程逻辑电路(1),并且所述方法包括以下步骤:
获取在外部模块使用顺序指定存储器(3)中的存储位置上存储的数据,所述模块使用顺序指定存储器(3)具有多个经过排序的存储位置,所述存储位置中的每一个都存储用于指定所述模块存储存储器(2)的存储位置的地址的数据或者存储用于指定该模块使用顺序指定存储器(3)的另一存储位置的地址的数据,在所述模块存储存储器(2)中存储有将要执行的模块;
确定所述获得的数据是指定用于存储所述模块的存储位置的地址和另一存储位置的地址中的哪一个;
当确定所述获得的数据指定用于存储模块的存储位置的地址时,从所述模块存储存储器(2)中获取在由所述地址指示的存储位置中存储的所述模块,并且改变所述可编程逻辑电路(1)的所述逻辑配置以使所述可编程逻辑电路(1)采用由所述模块定义的逻辑配置;以及
当确定所述获得的数据指定另一存储位置时,从所述模块使用顺序指定存储器(3)中获取在所述另一存储位置上存储的数据。
8、一种用于让计算机用作下列装置的程序:
控制器(4),其向外部可编程逻辑电路(1)提供控制信号,所述可编程逻辑电路(1)具有根据所述提供的控制信号来改变逻辑配置的功能;
模块存储存储器(2),其存储多个模块,每一个模块包括用于定义所述可编程逻辑电路(1)的逻辑配置的数据;以及
模块使用顺序指定存储器(3),其具有多个经过排序的存储位置,所述存储位置中的每一个都存储用于指定所述模块存储存储器(2)的存储位置的地址的数据或者存储用于指定该模块使用顺序指定存储器(3)的另一存储位置的地址的数据,在模块存储存储器(2)中存储有将要执行的模块,
其中所述控制器(4)获取在所述模块使用顺序指定存储器(3)中的存储位置上存储的数据,
确定所述获得的数据是指定用于存储所述模块的所述存储位置的地址和所述另一存储位置的地址中的哪一个,
当已经确定所述获得的数据指定模块的地址时,从所述模块存储存储器(2)中获取在由所述地址指示的存储位置中存储的所述模块,产生用于控制所述可编程逻辑电路(1)来采用由所述模块定义的逻辑配置的控制信号并将所产生的控制信号提供到所述可编程逻辑电路(1),以及
当已经确定所述获得的数据指定另一存储位置时,从所述模块使用顺序指定存储器(3)中获取在所述另一存储位置上存储的数据。
9、一种用于让计算机用作可编程逻辑电路控制装置的程序,所述可编程逻辑电路控制装置从用于存储多个模块的模块存储存储器(2)获取包括用于定义外部可编程逻辑电路(1)的逻辑配置的数据的模块,所述可编程逻辑电路(1)具有根据所提供的控制信号来改变逻辑配置的功能,所述装置产生用于控制所述可编程逻辑电路(1)来采用由所述获得的模块定义的逻辑配置的控制信号并将所产生的控制信号提供到所述可编程逻辑电路(1),并且所述程序进一步让所述计算机执行下列功能:
获取在外部模块使用顺序指定存储器(3)中的存储位置上存储的数据,所述模块使用顺序指定存储器(3)具有多个经过排序的存储位置,所述存储位置中的每一个都存储用于指定所述模块存储存储器(2)的存储位置的地址的数据或者存储用于指定该模块使用顺序指定存储器(3)的另一存储位置的数据,在所述模块存储存储器(2)中存储有将要执行的模块;
确定所述获得的数据是指定用于存储所述模块的所述存储位置的地址和所述另一存储位置的地址中的哪一个;
当确定所述获得的数据指定模块的地址时,从所述模块存储存储器(2)中获取在由所述地址指示的存储位置中存储的所述模块,并且改变所述可编程逻辑电路(1)的所述逻辑配置以使所述可编程逻辑电路(1)采用由所述模块定义的逻辑配置;以及
当确定所述获得的数据表示另一存储位置时,从所述模块使用顺序指定存储器(3)中获取在所述另一存储位置上存储的数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP433210/2003 | 2003-12-26 | ||
JP2003433210A JP3838367B2 (ja) | 2003-12-26 | 2003-12-26 | プログラマブル論理回路制御装置、プログラマブル論理回路制御方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1973259A true CN1973259A (zh) | 2007-05-30 |
Family
ID=34736508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2004800421344A Pending CN1973259A (zh) | 2003-12-26 | 2004-12-27 | 可编程逻辑电路控制装置、可编程逻辑电路控制方法以及程序 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP1697829A4 (zh) |
JP (1) | JP3838367B2 (zh) |
KR (1) | KR20070007270A (zh) |
CN (1) | CN1973259A (zh) |
TW (1) | TWI290282B (zh) |
WO (1) | WO2005064456A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101313470B (zh) * | 2005-11-25 | 2010-09-22 | 松下电器产业株式会社 | 逻辑块控制系统及逻辑块控制方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4997821B2 (ja) * | 2006-05-10 | 2012-08-08 | 富士ゼロックス株式会社 | データ処理装置及びそのプログラム |
CN100444133C (zh) * | 2006-06-13 | 2008-12-17 | 深圳市研祥智能科技股份有限公司 | 计算机访问扩充内存的方法 |
CN100456232C (zh) * | 2007-03-19 | 2009-01-28 | 中国人民解放军国防科学技术大学 | 针对流处理的存储访问与调度装置 |
JP5277615B2 (ja) * | 2007-11-22 | 2013-08-28 | 富士ゼロックス株式会社 | データ処理装置及びデータ処理プログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6023564A (en) * | 1996-07-19 | 2000-02-08 | Xilinx, Inc. | Data processing system using a flash reconfigurable logic device as a dynamic execution unit for a sequence of instructions |
JP3611714B2 (ja) * | 1998-04-08 | 2005-01-19 | 株式会社ルネサステクノロジ | プロセッサ |
JP3587095B2 (ja) * | 1999-08-25 | 2004-11-10 | 富士ゼロックス株式会社 | 情報処理装置 |
-
2003
- 2003-12-26 JP JP2003433210A patent/JP3838367B2/ja not_active Expired - Fee Related
-
2004
- 2004-12-27 TW TW093141053A patent/TWI290282B/zh active
- 2004-12-27 WO PCT/JP2004/019819 patent/WO2005064456A1/en active Application Filing
- 2004-12-27 CN CNA2004800421344A patent/CN1973259A/zh active Pending
- 2004-12-27 KR KR1020067014707A patent/KR20070007270A/ko not_active Application Discontinuation
- 2004-12-27 EP EP04808169A patent/EP1697829A4/en not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101313470B (zh) * | 2005-11-25 | 2010-09-22 | 松下电器产业株式会社 | 逻辑块控制系统及逻辑块控制方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2005190343A (ja) | 2005-07-14 |
TWI290282B (en) | 2007-11-21 |
JP3838367B2 (ja) | 2006-10-25 |
EP1697829A1 (en) | 2006-09-06 |
EP1697829A4 (en) | 2007-05-02 |
WO2005064456A1 (en) | 2005-07-14 |
KR20070007270A (ko) | 2007-01-15 |
TW200601029A (en) | 2006-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6434735B1 (en) | Method for programming an FPGA and implementing an FPGA interconnect | |
US5640106A (en) | Method and structure for loading data into several IC devices | |
US6191608B1 (en) | Techniques for programming programmable logic array devices | |
EP0490511B1 (en) | Nonvolatile serially programmable devices | |
US6349346B1 (en) | Control fabric unit including associated configuration memory and PSOP state machine adapted to provide configuration address to reconfigurable functional unit | |
CA2415281C (en) | Architecture and method for partially reconfiguring an fpga | |
KR980010789A (ko) | 구성 메모리 집적 회로 | |
CN103559081B (zh) | 移动终端工作模式的推荐方法、装置和移动终端 | |
CN101813749A (zh) | 仿真系统中使用的具有集成调试功能的可重构集成电路 | |
US20060004991A1 (en) | Semiconductor device | |
WO2001095099A1 (fr) | Systeme et procede de gestion de circuits de traitement d'informations a fonction variable | |
US4326266A (en) | Monitoring system for a modular digital data processor | |
CN115130413A (zh) | 现场可编程门阵列的拓扑结构设计方法和电子设备 | |
CN1973259A (zh) | 可编程逻辑电路控制装置、可编程逻辑电路控制方法以及程序 | |
US5974476A (en) | On-chip input/output device having programmable I/O unit being configured based upon internal configuration circuit | |
US20070296457A1 (en) | Programmable Logic Circuit Control Apparatus, Programmable Logic Circuit Control Method and Program | |
US6732349B1 (en) | Method and apparatus for improving PIP coverage in programmable logic devices | |
CN107122274A (zh) | 基于fpga重构技术的cpu测试系统及方法 | |
US6938232B2 (en) | Floorplanning apparatus deciding floor plan using logic seeds associated with hierarchical blocks | |
JPH1117524A (ja) | プログラマブル論理回路システムおよびプログラマブル論理回路装置の再構成方法 | |
US20040267489A1 (en) | Data compaction and pin assignment | |
EP0254479A2 (en) | Integrated circuit programmable sequencing element apparatus and associated method | |
JP2004200311A (ja) | 論理検証装置 | |
JP2007094603A (ja) | プログラマブルデバイス制御装置およびプログラマブルデバイス制御方法 | |
CN100412801C (zh) | 备有可重构电路的处理装置、集成电路装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |