CN1768324A - 可编程序逻辑装置 - Google Patents

可编程序逻辑装置 Download PDF

Info

Publication number
CN1768324A
CN1768324A CN 200480008783 CN200480008783A CN1768324A CN 1768324 A CN1768324 A CN 1768324A CN 200480008783 CN200480008783 CN 200480008783 CN 200480008783 A CN200480008783 A CN 200480008783A CN 1768324 A CN1768324 A CN 1768324A
Authority
CN
China
Prior art keywords
logical function
input
memory
output
line
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.)
Granted
Application number
CN 200480008783
Other languages
English (en)
Other versions
CN100468314C (zh
Inventor
笹尾勤
井口幸洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kitakyushu Foundation for Advancement of Industry Science and Technology
Original Assignee
Kitakyushu Foundation for Advancement of Industry Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kitakyushu Foundation for Advancement of Industry Science and Technology filed Critical Kitakyushu Foundation for Advancement of Industry Science and Technology
Publication of CN1768324A publication Critical patent/CN1768324A/zh
Application granted granted Critical
Publication of CN100468314C publication Critical patent/CN100468314C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Logic Circuits (AREA)

Abstract

提供一种能够按照目标逻辑函数,改变逻辑函数存储器间的输入线数及路线数,并将存储容量控制到必要最小限地进行最优化设计的可编程序逻辑装置。将逻辑函数存储器(4)串联并按序排列,并存储LUT。从外部输入线输入到各逻辑函数存储器(4)的输入变量。在两个逻辑函数存储器(4)之间,根据连接存储器(6)存储的连接信息,连接电路(5)进行前级的逻辑函数存储器(4)的输出线或外部输入线与后级的逻辑函数存储器(4)的输入线的连接。如果按照目标逻辑函数改写连接信息,就能再构成连接电路,并可改变输入线数及路线数。对照逻辑函数将路线数和输入线数的比最优化,能将存储容量抑制到必要最小限。

Description

可编程序逻辑装置
技术领域
本发明涉及可编程序的逻辑装置(programmable logic device),特别是,涉及将目标逻辑函数分解为按顺序编号的多个分解函数,并对这些分解函数进行以分解表的形式表现的查阅表级联(look up tablecascade:以下称为“LUT级联”)的运算的可编程序逻辑装置。
背景技术
近年,逻辑电路的设计中广泛应用现场可编程门阵列(FieldProgrammable Gate Array:以下称为“FPGA”)(引用文献1)。FPGA是可根据存储器的改写来变更矩阵状排列的多个逻辑单元(Configurable Logic Block:以下称为“CLB”)的内容和逻辑单元间的布线的连接的可编程序逻辑装置。FPGA与按照程序以软件方式运算的微处理器(Micro Processing Unit:以下称为“MPU”)不同,是以硬件方式运算。因而,具有逻辑函数的运算执行速度快的特征。
另一方面,FPGA通过程序变更各CLB间的物理上的布线的走线。因此,需要已考虑尽可能减小布线延迟的配置布线设计,而这样的设计要花时间。并且,布线延迟时间因各CLB间的布线的走线方式而异。因此,在设计时难以预测逻辑电路的运算时间。
另外,由于可对二维排列的CLB间的布线进行自由连接切换以便再构成,芯片内的布线区域的比例会非常大。并且,由于在连接部上使用通路晶体管而布线部分的延迟非常大。
于是,作为掩盖上述FPGA的缺点的可编程序的逻辑电路,提出了LUT级联(LUT cascade)(参照引用文献2、3)。LUT级联指的是串联LUT,可将函数分解执行运算处理的逻辑函数(目标逻辑函数)后所得到的多个分解函数的LUT以串联的形式表现。FPGA以二维CLB的网络的方式直接实现逻辑电路,而LUT级联的不同点是用一维串联连接的LUT实现目标逻辑函数。
就是说,FPGA中使用的各CLB实现基本的逻辑门。其基本的设计思想在于用布线连接这些基本逻辑门来实现复杂的逻辑电路。因而,在芯片上设计FPGA时,必然需要构成自由布线连接二维配置的CLB之间的布线网络。因此,逻辑区域外还需要宽的布线区域,设计面积会增大。
然而,LUT级联的基本设计思想在于:一般将表现多输入多输出的复杂的逻辑函数的LUT串联(一维),实现复杂的逻辑电路。因此,各LUT的输出和输入一般用多个布线连接。由于不需要二维的布线网络,一般布线区域少,且芯片面积的大部分成为存放LUT的存储区域。
另外,因布线而造成的芯片面积或布线部分的延迟时间也比FPGA少。
以下,对于LUT级联的一种设计法进行简单说明。图52是表示LUT级联原理的图。另外,这里为了简单起见对无中间输出的LUT级联进行说明。
在LUT级联中进行逻辑函数的运算时,首先,将进行运算的逻辑函数(目标逻辑函数)f(X)函数分解成s个(s≥2)分解函数{fi(Xi);i=0,...,s-1}。这里,X=(x0,...,xn-1)表示输入变量。并且,输入变量的集表示为{X}。这里,{X}={X0}∪...∪{Xs-1},{Xi}∩{Xj}=φ(i≠j;i,j∈{0,...,s-1})。用Yi+1表示各分解函数fi的输出变量(一般为矢量)。以下,将X、Y的变量个数表示为|X|、|Y|,具体表示为|X|=n,|Xi|=ni,|Yi|=ui
任意的目标逻辑函数f均可函数分解出n0=k(k是分解函数f0的输入变量的数)、ni=k-ui(0<i<s-1)、ns-1=k-us-1-t(0≤t≤k-2)(参照引用文献2、3)。于是,将目标逻辑函数f分解为s-1个k输入的分解函数fj(j∈{0,...,s-2})和一个k-t输入的分解函数fs-1。然后,用分解表表示各分解函数fr(r∈{0,...,s-1}),将它作为LUT(查阅表)。这里,目标逻辑函数fr(Xr)的分解表(decomposition chart)是在2|Xr|列2|fr|行的表中,各行、各列具有二进制代码的标记,且其元素为fr的对应的真值表。
图52中,s个LUT(LUT0~LUTs-1)分别表示分解函数{fi;i=0,...,s-1}。各LUT(LUTr)能够利用k输入ur+1输出的存储器(以下称为“逻辑函数存储器”)来实现。通过如图52所示级联连接这样的逻辑函数存储器,实现LUT级联。
LUT级联中,目标逻辑函数f的输入输出变量的个数大时,需要将多个LUT级联连接。因此,与最优化的FPGA相比,有时运算速度变慢。但是,LUT级联中,各分解函数的运算利用逻辑函数存储器而高速进行。因此,在与MPU上运行的程序相比时能够达成运算速度的高速化。
这样,根据LUT的级数唯一地确定运算速度。因此,在逻辑电路的设计时容易正确预测目标逻辑函数的运算时间。并且,LUT级联中,可在彼此相邻的逻辑函数存储器之间布线。因此,在逻辑电路的设计时无需考虑布线延迟等的影响。因而,与FPGA相比LUT级联的逻辑电路设计格外容易。
但是,实际通过如图52所示的LUT级联进行目标逻辑函数的运算时,函数分解目标逻辑函数而得到的分解函数的LUT间的路线数(两个LUT间的线数(中间变量的数))或各LUT的输入变量的个数因目标逻辑函数的不同而异。因此,用逻辑电路实现各种目标逻辑函数时,需要输入变量的个数及路线数不同的各种LUT级联的逻辑电路,缺乏实用性。
因此,为了令可编程序逻辑装置可与多样的目标逻辑函数对应,各逻辑函数存储器的输入比特数上必须要有富余,考虑预先取得足够大的比特数。但是,逻辑函数存储器的存储容量每当逻辑函数存储器的输入增加一个时以2倍增大。因而,在输入的比特数上有富余时,未使用的存储区域增大且存储区域的浪费多。并且,随着存储容量的增大,存储器的设计面积也增大。因此难以进行电路的高集成化,且电路耗电也变大。
于是,本发明的目的在于提供一种这样的可编程序逻辑装置:可按照目标逻辑函数,灵活改变各逻辑函数存储器间的输入变量的输入线数和路线数,并可设计将逻辑函数存储器的输入数量、进而逻辑函数存储器的存储容量抑制到必要最小量。
(引用文献)
[1]美国再发行专利Re.34,363号说明书
[2]笹尾勤、松浦宗宽、井口幸洋,“多输出函数的级联实现和可再构成硬件的实现”,电子情报通信学会FTS研究会,FTS2001-8,pp.57-64,三重大学(2001-04)。
[3]T.Sasao,M.Matsuura,and Y.Iguchi,″A cascade realizationof multiple-output function for reconfigurable hardware,″InternationalWorkshop on Logic and Synthesis(IWLS01),Lake Tahoe,CA,June12-15,2001.pp.225-230.
发明的公开
本发明的可编程序逻辑装置的第一结构的特征在于包含以下结构:
(1)用以存储逻辑函数的LUT(查阅表)的、串联编号排列的逻辑函数存储器;
(2)输入对于所述各逻辑函数存储器的输入变量的多个外部输入线;
(3)存储连接信息的连接存储器,所述连接信息用以在两个所述逻辑函数存储器之间,选择从前级的所述逻辑函数存储器的输出线或者所述外部输入线中连接到后级的所述逻辑函数存储器的各输入线的线;以及
(4)在两个所述逻辑函数存储器之间,可根据所述连接存储器的输出,进行前级的所述逻辑函数存储器的输出线或所述外部输入线和后级的所述逻辑函数存储器的输入线的连接关系的再构成的连接电路。
为了用LUT级联表现目标逻辑函数而在各级的逻辑函数存储器中先存放各LUT表现的逻辑函数。另外,这里“存储器”是对应于各地址存储一个数据,并通过指定地址来读出与该地址对应的数据的装置。因而,“存储器”在物理上并不限于形成一个单体的存储元件,可由多个存储元件组合构成。各连接电路根据连接存储器输出的连接信息,构成前级的逻辑函数存储器的输出线或外部输入线之一与后级的逻辑函数存储器的各输入线的连接关系。从而,能够实现LUT级联。
对照进行运算处理的LUT级联而改写逻辑函数存储器内的逻辑函数及连接存储器内的连接信息。从而,能够自由变更用以连接到后级的逻辑函数存储器的输入线的前级的逻辑函数存储器的输出线数及外部输入线数。而且,可自由再构成实现LUT级联的逻辑电路。即,根据目标逻辑函数,可任意变更连接相邻的两个LUT之间的路线数和来自外部的输入变量的输入数量的比例。因此,能够扩大可由一个可编程序逻辑装置实现的目标逻辑函数的范围。结果,可减少各逻辑函数存储器的输入线数。因而,也可以达成电路的小型化。
另外,可将各逻辑函数的LUT的输出数和来自外部输入线的输入变量的个数的比例最优化。因此,能够消除逻辑函数存储器的输入线的分配和存储器的使用区域的浪费。
还有,本发明的可编程序逻辑装置与FPGA的根本的不同点在于逻辑函数存储器串联(一维)排列。
即,FPGA的场合,由于存在扇出(fan-out),CLB间的入输出线的连接关系并不一一对应。因而,需要增大连接电路的自由度以与所有连接关系对应。因此,连接电路成为大规模,芯片内布线区域所占比例非常大。
然而,本发明的可编程序逻辑装置中逻辑函数存储器串联排列。因而,连接电路可令一个逻辑函数存储器的输出线及外部输入线与一个逻辑函数存储器的输入线有选择地对应后进行连接。
即,设前级的逻辑函数存储器的输出线的集为Y1={y1},外部输入线的集为X={x},后级的逻辑函数存储器的输入线的集为Zr+1={zr+1}。这时,连接电路使集Y1∪X的元素中的|Zr+1|个与集Zr+1的各元素一一对应地进行连接,以成为Zr+1Y1∪X。即,连接电路基本上只要具有|Y1∪X|个线中选择|Zr+1|个线的功能(另外,根据需要,将选择的|Zr+1|个线的顺序变更的功能)即可。
因而,硬件上连接电路的结构与FPGA的连接电路相比极为简单。因此,也能使芯片内所占的布线区域极小。并且,仅在两个逻辑函数存储器之间连接,因而不需要配置布线设计。因而,在电路设计上不必考虑物理上的布线延迟的影响。
还有,芯片内的布线区域有限定。因此,以高时钟频率使用时,也可预先设计成不易受反射或串扰等的传输路的频率特性和寄生效应的影响。即,可作为高速电路使用。这与根据FPGA设计复杂的逻辑电路时难以实现可在高时钟频率上使用的电路的情况成对比。
本发明的可编程序逻辑装置的第二结构,其特征在于包括以下结构:
(1)用以存储逻辑函数的LUT的环状排列的逻辑函数存储器;
(2)输入对于所述各逻辑函数存储器的输入变量的多个外部输入线;
(3)存储连接信息的连接存储器,所述连接信息用以在两个所述逻辑函数存储器之间,选择从前级的所述逻辑函数存储器的输出线或者所述外部输入线中连接到后级的所述逻辑函数存储器的各输入线的线;以及
(4)在两个所述逻辑函数存储器之间,可根据所述连接存储器的输出,进行前级的所述逻辑函数存储器的输出线或所述外部输入线和后级的所述逻辑函数存储器的输入线的连接关系的再构成的连接电路。
这样,通过将逻辑函数存储器连接成环状,如后所述(参照实施例11[例3]),可用一个可编程序逻辑装置同时实现LUT环作为输入变量的一部分或全部共用的多个组合逻辑函数。
另外,如后所述,附加保持逻辑函数存储器的地址的锁存器,与时钟脉冲同步,并通过环状连接逻辑函数存储器,可模拟任意级数的LUT级联。从而,可进一步提高逻辑函数存储器的使用效率。
还有,本发明的可编程序逻辑装置与FPGA不同,逻辑函数存储器排列成一维的环状。因而,连接电路使一个逻辑函数存储器的输出线及外部输入线与一个逻辑函数存储器的输入线有选择地对应并加以连接即可。因而,与第一结构时同样,连接电路与FPGA的连接电路相比极为简单,并可缩小布线区域。另外,只为两个逻辑函数存储器之间的连接,因此不需要配置布线设计。因而,不必考虑逻辑设计中物理上的布线延迟的影响。
本发明的可编程序逻辑装置的第三结构,其特征在于:如所述第一或第二结构所述,设有用以将逻辑函数的运算结果向外部电路输出的外部输出线;
所述连接存储器存储用以在两个所述逻辑函数存储器之间选择前级的所述逻辑函数存储器的输出线中连接到所述外部输出线的输出线的连接信息;
所述连接电路在两个所述逻辑函数存储器之间,根据所述连接存储器的输出进行前级的所述逻辑函数存储器的输出线和所述外部输出线的连接。
根据该结构,可从串联连接的任意逻辑函数存储器中取出该输出。因而,在LUT级联的级数少的场合,可取出逻辑函数存储器串中途的输出作为输出变量来提早结束运算处理,从而达到运算速度的高速化。
另外,进行多输出逻辑函数的运算时,不将LUT级联的中途确定的运算结果输入后级的LUT,而能够在中途输出。从而,能够减少后级的LUT的输入数量。并且,能够通过在运算结果确定的时刻进行输出来提高运算处理速度。而且,通过减少后级的LUT的输入数量,可减小后级的LUT所需要的存储容量。
本发明的可编程序逻辑装置的第四结构,其特征在于:如所述第一至第三结构的任一结构所述,设有存储对逻辑函数存储器的存储区域进行指定的区域指定变量的区域指定存储部件;
所述连接电路在两个所述逻辑函数存储器之间,根据区域指定存储部件的输出,进行前级的所述逻辑函数存储器的输出线、外部输入线及区域指定存储部件的输出线与后级的所述逻辑函数存储器的输入线的连接,
以使前级的所述逻辑函数存储器的输出及来自外部输入线的输入变量输入到由区域指定变量确定的后级的所述逻辑函数存储器的存储区域,或者,
来自由区域指定变量确定的前级的所述逻辑函数存储器的存储区域的输出及来自外部输入线的输入变量输入到后级的所述逻辑函数存储器。
依据这种结构,在各逻辑函数存储器中存放LUT时,先将存储器划分为多个区域(页等)后存储多个LUT。区域指定存储部件中先存储指定各逻辑函数的LUT被存放的存储区域的区域指定变量的值。连接存储器中先存储令输出与各逻辑函数对应的区域指定变量的区域指定存储部件的输出线与后级的逻辑函数存储器的输入线连接的连接信息。
还有,在读出所期望的逻辑函数的LUT时,从区域指定存储部件读出与该逻辑函数对应的区域指定变量,且从连接存储器读出连接信息,切换连接电路的连接关系。与此同时,读出由各逻辑函数存储器的区域指定变量指定的存储区域的LUT。从而,可切换后进行多个目标逻辑函数的运算。
本发明的可编程序逻辑装置的第五结构,其特征在于:如所述第一至第四结构的任一结构所述,具备设于所述逻辑函数存储器的输入侧或输出侧,且根据从外部输入的数据选通脉冲信号获取对所述逻辑函数存储器的输入或所述逻辑函数存储器的输出并暂时保持的中间变量寄存器。
从而,用中间变量寄存器暂时保持各级的逻辑函数存储器的输出。因此,运算处理的流程在中间变量寄存器中暂时停止。即,与数据选通脉冲信号同步,用LUT逐级地对各逻辑函数存储器进行运算。因而,在使数据选通脉冲信号与外部电路的时钟等同步时,能够使各逻辑函数的LUT的运算与外部电路同步。
并且,按每个逻辑函数存储器逐级进行运算。因此,可用流水线处理执行多个数据(作业)的运算。
另外,逻辑函数存储器以环状连接时,能够增大与可运算的逻辑函数的输入数量相关的自由度。即,当目标逻辑函数的输入变量的个数多于各逻辑函数存储器的输入线数的总和时,通过使用时钟脉冲,利用一周以上的逻辑函数存储器的环构成LUT级联。因此,可根据需要改变相同逻辑函数存储器的使用区域并依次进行函数运算。因而,根据目标逻辑函数或存储器量的数,可灵活改变LUT级联的级数。因此,设计自由度变大。
还有,逻辑函数存储器以环状连接时,能够通过使用时钟脉冲来增多LUT级联的级数。因此,可减小各级的LUT。因而,各级的逻辑函数存储器可采用存储容量较小的存储器。因此,可较低地抑制各逻辑函数存储器的耗电。还有,随着运算的流程,只一部分的逻辑函数存储器进行数据读出的动作。只有该进行动作的存储器才主要耗电。因而,可与MPU和FPGA相比,在低耗电的状态下进行动作。另外,不作数据读出的动作的存储器,若设成低耗电状态,则可进一步减小耗电。
这里,可采用时钟脉冲作为数据选通脉冲信号。
本发明的可编程序逻辑装置的第六结构,其特征在于:如所述第一至第五结构中任一结构所述,设有与所述中间变量寄存器并联连接的旁路线;以及,
设于所述中间变量寄存器的输出侧,选择所述中间变量寄存器的输出线或所述旁路线中任一方,并输出所选择的线的信号的旁路选择电路。
通过该结构,用各旁路选择电路选择中间变量寄存器的输出线时,可进行使用数据选通脉冲信号的同步的运算处理。另外,用各旁路选择电路选择旁路线时,前级的逻辑函数存储器的输出不在中间变量寄存器停止而直接传送到后级的逻辑函数存储器。因而,可非同步地高速执行基于LUT级联的目标逻辑函数的运算。
本发明的可编程序逻辑装置的第七结构,其特征在于:如所述第五或第六结构所述,设有对所述数据选通脉冲信号进行计数,并确定执行运算的所述逻辑函数存储器的编号的逻辑函数存储器确定部件。
这样,通过设置逻辑函数存储器确定部件,可确定运算的执行过程中存在作业的逻辑函数存储器的位置。这里,“作业”指的是用LUT级联的各LUT对输入变量执行运算并生成数据的作业。
本发明的可编程序逻辑装置的第八结构,其特征在于:如所述第五至第七结构中任一结构所述,设有控制将执行运算处理的所述逻辑函数存储器设成通常动作状态,并将除此以外的所述逻辑函数存储器设成低耗电状态的电源控制部件。
依据这种结构,各级的逻辑函数存储器的运算处理在中间变量寄存器中暂时停止,并与数据选通脉冲信号同步地逐级执行。这时,电源控制部件将在运算处理未被使用的逻辑函数存储器设成低耗电状态(睡眠状态),并仅将运算处理中使用的逻辑函数存储器设成通常动作状态(激发状态)。从而,可减小可编程序逻辑装置的耗电。
本发明的可编程序逻辑装置的第九结构,其特征在于:如所述第一至第八结构中任一结构所述,所述各逻辑函数存储器的一部分的输入线不经所述连接电路而直接连接到所述外部输入线。
对于最初级的逻辑函数存储器,其所有输入端被输入输入变量。另一方面,最初级以外的各逻辑函数存储器中,其一部分输入端被输入前级的逻辑函数存储器的输出,其它输入端被输入输入变量。
然而,在众多实用的LUT级联中,最初级以外的各逻辑函数存储器上,最低限会输入一个输入变量。因此,以通用的目的制造可编程序逻辑装置时,会构成最初级以外的各逻辑函数存储器的输入端中至少一个输入端不经连接电路而直接被输入输入变量。从而,可减少连接电路的输入线数。另外,由于可减少连接电路及连接存储器的输出端的布线数,可进一步小型化电路。
本发明的可编程序逻辑装置的第十结构,其特征在于:如所述第一至第九结构中任一结构所述,所述各逻辑函数存储器的一部分输出线不经所述连接电路而直接连接到其后级的逻辑函数存储器的一部分输入线。
在最初级以外的各逻辑函数存储器中,一部分输入端上被输入来自前级的逻辑函数存储器的输出,其它输入端上被输入输入变量。
然而,在众多实用的LUT级联中,最初级以外的各逻辑函数存储器上最低被输入一个前级的逻辑函数存储器的输出。于是,以通用的目的制造可编程序逻辑装置时,构成为使最初级以外的各逻辑函数存储器的输入端的一部分不经连接电路直接输入前级的逻辑函数存储器的输出。从而,可减少连接电路的输入线数。并且,可减少连接电路及连接存储器的输出端的布线数,因此可进一步小型化电路。
本发明可编程序逻辑装置的第十一结构,其特征在于:如所述第一至第十结构中任一结构所述,所述连接电路包含多个选择电路;
所述各选择电路根据所述连接存储器的输出值,选择前级的所述逻辑函数存储器的输出线和所述外部输入线之一,或者选择前级的所述逻辑函数存储器的输出线和所述外部输入线和区域指定存储部件的输出线之一,连接到后级的所述逻辑函数存储器的输入线上。
本发明可编程序逻辑装置的第十二结构,其特征在于:如所述第一至第十一结构中任一结构所述,所述连接电路包含根据所述连接存储器的输出值使前级的所述逻辑函数存储器的输出线的连接顺序移位后连接到后级的所述逻辑函数存储器的输入线的移位电路。
本发明的可编程序逻辑装置的第十三结构,其特征在于:如所述第一至第十二结构中任一结构所述,所述连接电路包含多个多路转换器;
所述多路转换器根据所述连接存储器的输出值,选择前级的所述逻辑函数存储器的多个输出线及多个所述外部输入线之一后连接到后级的所述逻辑函数存储器的输入线上。
附图的简单说明
图1表示本发明实施例1的可编程序逻辑装置整体结构的框图。
图2是表示图1的输入变量选择电路的结构的电路图。
图3是表示图1的逻辑函数存储器的结构的框图。
图4是图1的连接电路的外围电路框图。
图5是表示图1的连接存储器的结构的框图。
图6是表示实施例1的可编程序逻辑装置的动作的流程图。
图7是图1的连接电路中使用纵横制接线器时的电路框图。
图8是图1的连接电路中使用多路转换器阵列时的电路框图。
图9是图1的连接电路中使用选择器阵列时的电路框图。
图10是表示8比特加法器的逻辑函数的图。
图11是表示函数分解成8个分解函数的8比特加法器的图。
图12是表示函数分解成8个分解函数的8比特加法器的图。
图13是表示函数分解成4个分解函数的8比特加法器的图。
图14是函数分解成4个分解函数的8比特加法器的各分解函数的真值。
图15是例1中逻辑函数存储器4-0的第0页中存储的真值。
图16是例1中逻辑函数存储器4-1~4-3的第0页中存储的真值。
图17表示本发明实施例2的可编程序逻辑装置整体结构的框图。
图18表示本发明实施例3的可编程序逻辑装置整体结构的框图。
图19表示本发明实施例4的可编程序逻辑装置整体结构的框图。
图20是表示图16的输出寄存器及输出解码器的结构的框图。
图21是表示图17的存储元件的结构的框图。
图22表示本发明实施例5的可编程序逻辑装置整体结构的框图。
图23是表示图19的第二输出选择电路的结构的框图。
图24表示本发明实施例6的可编程序逻辑装置整体结构的框图。
图25表示本发明实施例7的可编程序逻辑装置整体结构的框图。
图26是表示图25的运算控制部10的结构的框图。
图27是表示图26的输出控制器64的内部结构的框图。
图28是表示实施例7的可编程序逻辑装置的动作的流程图。
图29是表示实施例7的可编程序逻辑装置工作时的各信号的变化的定时图。
图30是表示进行2n比特的二进制数A、B的加法运算的逻辑函数f的图。
图31是将进行2n比特的二进制数A、B的加法运算的逻辑函数f函数分解成2n个分解函数{g0,g1,...,g2n-1}的图。
图32是将进行2n比特的二进制数A、B的加法运算的逻辑函数f函数分解成2n个分解函数{g0,g1,...,g2n-1}的图。
图33是将进行2n比特的二进制数A、B的加法运算的逻辑函数f函数分解成n个分解函数{f0,f1,...,fn-1}的图。
图34是分解函数fi的真值表。
图35是在逻辑函数存储器4-0的第1页中存储的真值表。
图36是在逻辑函数存储器4-0~4-3的第0页中存储的真值表。
图37表示本发明实施例8的可编程序逻辑装置整体结构的框图。
图38表示本发明实施例9的可编程序逻辑装置整体结构的框图。
图39表示本发明实施例10的可编程序逻辑装置整体结构的图。
图40是表示本发明实施例10的可编程序逻辑装置的运算部的结构的框图。
图41是表示图40的连接电路和存储地址寄存器的结构的图。
图42是表示本发明实施例10的可编程序逻辑装置的输出电路的结构的图。
图43表示实施例10的可编程序逻辑装置运算处理动作流程图。
图44表示实施例10的可编程序逻辑装置运算处理动作流程图。
图45表示实施例10的可编程序逻辑装置运算处理动作流程图。
图46是说明存储器包装的概念的图。
图47是表示本发明实施例11的可编程序逻辑装置的结构的图。
图48是表示一例以采用2个逻辑电路存储器的可编程序逻辑装置实现4级的LUT级联的图。
图49是用LUT级联表现逻辑函数f、g的图。
图50是用LUT级联表现逻辑函数f、g的图。
图51是表示将逻辑函数f、g合成的LUT环的图。
图52是表示LUT级联的原理的图。
本发明的最佳实施方式
(用词的定义)
首先,就以下说明中使用的符号和用词作定义。
(1)符号“{}”表示无序集(unordered set)。符号“()”表示有序集(ordered set)。变量的集{x1,x2,...,xn}中,考虑集的各元素顺序时,记为(x1,x2,...,xn)=X。而不考虑顺序时,记为{x1,x2,...,xn}={X}。X的变量个数表示为|X|。
(2)想要用可编程序逻辑装置实现LUT级联的逻辑函数称为“目标逻辑函数”,并记为f。将目标逻辑函数的输入变量的集记为X=(x1,x2,...,xn)(其中n为自然数)。
(3)用f(X)=fs-1(Xs-1,fs-2(Xs-2,fs-3(...f1(X1,f0(X0))...))),{Xi}{X},{X}={X0}∪{X1}∪...∪{Xs-1}等的合成逻辑函数表示目标逻辑函数f(X)。这时,将目标逻辑函数f(X)分解为顺序编号的多个函数的集(f0,f1,...,fs-1)的情况称为“函数分解(functiondecomposition)”。将目标逻辑函数f(X)函数分解后所得的各函数{fi;i∈{0,...,s-1}}称为“分解函数(decomposition function)”。
(4)“多输出逻辑函数”是指输出变量的个数为多个的逻辑函数。
以下,参照附图,就实施本发明的最佳的形态进行说明。
(实施例1)
图1表示本发明实施例1的可编程序逻辑装置整体结构的框图。
本发明实施例1的可编程序逻辑装置中设有:输入变量寄存器1、输入变量选择电路2-0~2-3、输入选择存储器3-0~3-3、逻辑函数存储器4-0~4-3、连接电路5-1~5-3、连接存储器6-1~6-3以及运算控制部10。
输入变量寄存器1存储用于目标逻辑函数f(X)的运算的n个输入变量X=(x1,...,xn)(其中,n为自然数)。还有,输入变量X从外部输入线输入到输入变量寄存器1。逻辑函数存储器4-0~4-3将目标逻辑函数f函数分解而获得的分解函数{fi;i∈{0,1,2,3}}的真值表存储为LUT。还有,本实施例中为了方便说明,设逻辑函数存储器4-i(i∈{0,1,2,3})的级数为4级,但一般可任意设定该级数。这些逻辑函数存储器4-0~4-3串联排列,分别经由连接电路5-1~5-3以串联编号排列。
输入变量选择电路2-0~2-3在输入变量寄存器1输出的n个输入变量X=(x1,...,xn)中分别选择存储在各级的逻辑函数存储器4-0~4-3中的分解函数{fi;i∈{0,1,2,3}}的真值表的输入变量Xi(i∈{0,1,2,3}),向逻辑函数存储器4-0或连接电路5-1~5-3输出。输入选择存储器3-0~3-3中将分别与输入变量选择电路2-0~2-3的输入变量的选择相关的信息(以下称为“输入选择信息”)存储为LUT。输入变量选择电路2-0~2-3基于从各输入选择存储器3-0~3-3输出的输入选择信号,进行输入变量选择的切换。
各连接电路5-i(i∈{0,1,2,3})选择从逻辑函数存储器4-(i-1)及输入变量选择电路2-i输入的中间变量Yi及输入变量Xi,同时适当编号后,连接到后级的逻辑函数存储器4-i及外部输出线7-i。各连接存储器6-i存储与各连接电路5-i的连接关系相关的信息(以下称为“连接信息”)。连接电路5-i基于连接存储器6-i输出的连接信息信号,再建立连接关系。
运算控制部10进行该可编程序逻辑装置整体运算处理的控制。
图2是表示图1的输入变量选择电路2-i(i∈{0,1,2,3}。以下,将汇集符号2-0~2-3的场合记为符号2。)的结构的电路图。另外,该电路图为了说明动作原理而简化描述。
本实施例的输入变量选择电路2-i(i∈{0,1,2,3})由如图2所示的移位电路构成。还有,图2中为了方便说明,示出17输入8输出的输入变量选择电路2-i的例子,但输入输出端的数并不受此限制。
输入变量选择电路2-i(i∈{0,1,2,3})的输入端子in(00)~in(16)连接到输入变量寄存器1的输出端子。因而,输入变量X=(x1,...,xn)从输入端子in(00)~in(16)输入。另外,输入变量选择电路2-0的输出端子out(00)~out(07)连接到逻辑函数存储器4-0的输入端。输入变量选择电路2-i(i∈{1,2,3})的输出端子out(00)~out(07)与连接电路5-i的部分输入侧端子连接。
输入变量选择电路2-i(i∈{0,1,2,3})从输入侧与8比特移位电路11-3、4比特移位电路11-2、2比特移位电路11-1及1比特移位电路11-0串联连接。从而,输入变量选择电路2-i(i∈{0,1,2,3})使输入端子in(00)~in(16)的内容在0~15比特的范围内移位,能够使连续的8比特从输出端子out(00)~out(07)输出。
各移位电路11-0~11-3与1比特的控制线shf0~shf3连接。控制线shfj(j∈{0,1,2,3})为0时,移位电路11-i不进行连接的移位,而控制线shfj(j∈{0,1,2,3})为1时,移位电路11-i进行连接的移位。另外,输入变量选择电路2-i(i∈{0,1,2,3})的各控制线shf0~shf3与输入选择存储器3-i的输出端连接。即,从输入选择存储器3-0读出的4比特的存储器的内容(即,输入选择信息)作为选择控制信号直接输出给控制线shf0~shf3,输入变量选择电路2-i(i∈{0,1,2,3})的输入变量的移位量被设定。
另外,因移位电路11-0~11-3内的各通路晶体管导致输入变量X的信号振幅衰减(图2中为了简化而省略)。因而,实际上为了补偿输入变量X的信号振幅而需要先按每个移位电路的数级插入放大器(缓冲器)。
另外,多输出逻辑函数分割为多个输出集来实现时,有时不能在输入变量选择电路2-i(i∈{0,1,2,3})中使用移位器。这时,连接电路可以使用与图7所示的纵横制接线器或图8所示的多路转换器阵列(后述)同样的部件。
图3是表示图1的逻辑函数存储器4-i(i∈{0,1,2,3},以下,将集合符号4-0~4-3的场合记为符号4)的结构的框图。
逻辑函数存储器4在内部具备由p页构成的存储区域FM0~FMp-1。这些存储区域中作为LUT(图中记为“LUT(j)”)存放了分解函数fi (j)(i∈{0,1,2,3},j∈{0,...,p-1})的真值表。以下,将存放了LUT(j)的存储区域记为FMj
另外,这里,上标“(j)”(j∈{0,...,p-1})表示第j个目标逻辑函数f(j)。本实施例的可编程序逻辑装置中,先将多个目标逻辑函数f(j)的分解函数{fi (j)}存储在各逻辑函数存储器4的第j页。然后,可按照使用目的切换页,并选择目标逻辑函数。
并且,逻辑函数存储器4-i(i∈{0,1,2,3})设有地址解码器16。地址解码器16基于从运算控制部10输入的页选择号pr,可进行存储区域FMr的存储器访问。另外,地址解码器16基于从连接电路2经由Nin比特的输入线17输入的变量(Xr,Yr)(r∈{0,1,2,3},其中,r=0时Yr=φ0),选择读出存储区域FMr内的存储内容的地址。该选择的地址的存储单元中存放了分解函数fr (j)的真值fr (j)(Xr,Yr)。存储区域FMr在由地址解码器16指定存储单元内的地址时,将存储在该存储单元内的数据作为中间变量Yr+1=(yr+1,1,...,yr+1,|Yr+1|)输出给输出线18。
图4是图1的连接电路5-i(i∈{1,2,3},以下,将集合符号5-1~5-3的场合记为符号5)的外围电路框图。另外,该电路图为了说明动作原理而简化记载。
本实施例的连接电路5由使来自输入线i0~i15的输入信号循环地只移位任意比特数后输出给输出线o1~o15的移位电路构成。还有,图4中为了方便说明,作为一例描述16比特输入16比特输出的连接电路,但对于输入输出的比特数并没有特别限定。
连接电路5采用从输入线i0~i15侧开始串联8比特移位电路20-3、4比特移位电路20-2、2比特移位电路20-1、1比特移位电路20-0的结构。各移位电路20-i(i∈{0,1,2,3})的导通/截止由与连接存储器6(集合符号6-1~6-3而记为符号6。以下相同)的输出端连接的控制线sj(j∈{0,1,2,3})控制。
在连接电路5-r(r∈{1,2,3})的输入线i0~i15中,i0~i7与前级的逻辑函数存储器4-(r-1)的输出侧连接,i8~i15与输入变量选择电路2-r的输出侧连接。另外,连接电路5-r的输出线o0~o15中,o0~o7与后级的逻辑函数存储器4-r的输入侧连接,o8~o15成为外部输出线7-r。
在没有各移位电路20-0~20-3的连接关系的移位时,输入线i0~i15分别连接到输出线o0~o15。从而,前级的逻辑函数存储器4-(r-1)的输出即中间变量Yr全部输入后级的逻辑函数存储器4-r。
另一方面,只移位电路20-3使连接关系移位8比特的场合,输入线i0~i7分别连接到输出线o8~o15,输入线i8~i15分别连接到输出线o0~o7。从而,前级的逻辑函数存储器4-(r-1)的输出即中间变量Yr全部输出到外部输出线7-r。并且,从输入变量选择电路2-r输出的输入变量Xr全部输入到后级的逻辑函数存储器4-r。
并且,通过各移位电路20-0~20-2使连接关系仅移位j比特(1≤j≤7)时,输入线i15-j+1~i15、i0~ij-1分别与输出线o8~o15连接,输入线ij~i7+j分别与输出线o0~o7连接。从而,输入到输入线i8~i7+j的j比特的输入变量Xr输入后级的逻辑函数存储器4-r,同时输入到输入线ij~i7的8-j比特的中间变量Yr输入后级的逻辑函数存储器4-r。因而,在k=nr+ur=8的条件下,可自由变更输入到后级的逻辑函数存储器4-r的输入变量Xr的变量的个数|Xr|=nr和输入到后级的逻辑函数存储器4-r的中间变量Yr的变量的个数|Yr|=ur
图5是表示图1的连接存储器6的结构的框图。连接存储器6-i(i∈{1,2,3})的内部设有p个存储区域CM0~CMp-1。各存储区域CM0~CMp-1中存储了表示连接电路5-i的各移位电路20-(Nc-1)~20-0(这里,Nc表示连接电路中的移位电路的级数,图4中Nc=4)的移位信息的连接信息(sNc-1 (j),...,s0 (j))(j∈{0,...,p-1})。另外,这里,上标“(j)”(j∈{0,...,p-1})表示与第j个目标逻辑函数f(j)对应的连接信息。
这些存储区域CM0~CMp-1的Nc比特的输出线s0~sNc-1成为连接电路5-i的各移位电路20-0~20-(Nc-1)的控制线。
并且,在各连接存储器6的内部设有地址解码器21。地址解码器21根据从运算控制部10输入的页选择号pr,选择第r个存储区域CMr。由地址解码器21选择的存储区域CMr将由Nc比特的连接信息(sNc-1 (r),...,s0 (r))构成的连接控制信号输出给连接电路5。
以下,就如上构成的本实施例的可编程序逻辑装置的动作进行说明。
图6是表示实施例1的可编程序逻辑装置的动作的流程图。
首先,将函数分解想要进行运算的目标逻辑函数f(X)的分解函数{f0,...,fs-1}(2≤s≤4)写入各逻辑函数存储器4-0~4-3的第r页。另外,这里,r表示页码。另外,各输入选择存储器3-0~3-3和各连接存储器6-1~6-3的第r页上写入了与上述各分解函数{f0,f1,...,fs-1)对应的输入选择信息和连接信息。还有,关于对各存储器的写入功能,图1中未作图示,但按照通常的存储器的写入方法进行。以下,设s=4而进行说明。
在以上的写入进行的状态下,首先,运算控制部10对各输入选择存储器3-0~3-3以及连接存储器6-1~6-3设定页选择号pr(S1)。
从而,各输入选择存储器3-0~3-3将写入第r页的输入选择信息输出给输入变量选择电路2-0~2-3的控制线shf0~shf3(S2)。并且,连接存储器6-1~6-3将写入第r页的连接信息(s3 (r),...,s0 (r))输出给连接电路5-1~5-3的各控制线上(S3)。
输入变量选择电路2-0~2-3根据输入到控制线shf0~shf3的输入选择信息,使输入端子in(00)~in(16)的一部分电连接到输出端子out(00)~out(07)。连接电路5-1~5-3根据从各控制线输入的连接信息(s3 (r),...,s0 (r)),使输入线i8~i15连接到输出线o0~07
接着,运算控制部10通过输入变量寄存器1进行输入变量X的输出(S4)。从而,输入变量X0、X1、X2、X3分别被输出到逻辑函数存储器4-0及连接电路5-1~5-3。
与此同时,首先逻辑函数存储器4-0将与输入变量X0对应的分解函数f0的真值f0(X0)作为中间变量Y1输出。该中间变量Y1经由连接电路5-1传送到逻辑函数存储器4-1的输入端。另外,根据情况,中间变量Y1的一部分传达到外部输出线7-1。
逻辑函数存储器4-1被输入来自逻辑函数存储器4-0的中间变量Y1和经由输入变量选择电路2-1及连接电路5-1从输入变量寄存器1传送来的输入变量X1。逻辑函数存储器4-1基于输入变量X1及中间变量Y1,将分解函数f1的真值f1(X1,Y1)作为中间变量Y2输出。该中间变量Y2经由连接电路5-2传送到逻辑函数存储器4-2的输入端。另外,根据情况,中间变量Y2的一部分传送到外部输出线7-2。
逻辑函数存储器4-2被输入来自逻辑函数存储器4-1的中间变量Y2和经由输入变量选择电路2-2及连接电路5-2从输入变量寄存器1传送来的输入变量X2。逻辑函数存储器4-2基于输入变量X2及中间变量Y2,将分解函数f2的真值f2(X2,Y2)作为中间变量Y3输出。该中间变量Y3经由连接电路5-3传送到逻辑函数存储器4-3的输入端。另外,根据情况,中间变量Y3的一部分传送到外部输出线7-3。
逻辑函数存储器4-3被输入来自逻辑函数存储器4-2的中间变量Y3和经由输入变量选择电路2-3及连接电路5-3从输入变量寄存器1传送来的输入变量X3。逻辑函数存储器4-3基于输入变量X3及中间变量Y3,将分解函数f3的真值f3(X3,Y3)作为输出变量f输出。该输出变量f传送到外部输出线7-4(S5)。以上的处理从前级到后级串联地传达并通过流水线处理来进行。从而,目标逻辑函数f的运算结果从各外部输出线7-1~7-4取出。
另外,本实施例中,作为连接电路5-1~5-3使用图4的移位电路,但作为连接电路5-1~5-3可采用图7所示的纵横制接线器(Cross BarSwitch)的连接电路5-i’(i∈{1,2,3})或图8所示的多路转换器阵列(Multiplexer Array)的连接电路5-i”。总之,对于前级的逻辑函数存储器的输出线的集Yi-1、外部输入线的集Xi、后级的逻辑函数存储器的输入线的集Zi,连接电路5-i具有从集Yi-1∪Xi的元素中选择|Zi|个元素,并与集Zi的元素一一对应的功能(或者,根据需要,按照外部指示置换所选择的|Zi|个元素的顺序并使集Zi的元素一一对应的功能)即可。
还有,与移位电路相比,上述纵横制接线器的连接电路5-i’具有切换控制线的数量多且电路大的缺点,但由于能够减少信号通过的通路晶体管的级数,可作到运算速度的高速化。
另外,连接电路5-1~5-3中,不需要置换变量顺序时,可以使用如图9所示的选择器阵列(Selector Array)的连接电路5-i。选择器阵列的连接电路5-i可由极简单的电路构成。因而,连接电路5-i不仅只需要小的设计面积,而且高速,且电路耗电也小。
另外,本实施例中,示出使各逻辑函数存储器4-0~4-3非同步动作的例子,但在本发明中,可使各逻辑函数存储器4-0~4-3在时钟上同步动作。
以下,为了更容易理解上述动作而用具体的例子说明本实施例的可编程序逻辑装置的具体动作。
[例1]加法电路
这里,作为简单的例子,说明用上述可编程序逻辑装置使加法器执行两个8比特的二进制数A=(a7,a6,a5,a4,a3,a2,a1,a0)、B=(b7,b6,b5,b4,b3,b2,b1,b0)的加法运算的例子。另外,作为从下位进位(carry)输入比特还考虑cin,并考虑进行如下运算的加法器。
(式1)
这里,进位输入比特cin指的是在进行8比特以上的大数的加法运算的场合,串联连接加法器而使用时,表示从下位的加法器的进位的比特。进位输出比特cout也同样,表示对上位的加法器输出的进位的比特。
设这种进行两个8比特的二进制数A、B的加法运算的逻辑函数为f=f(X)(X=(A,B)),逻辑函数f由图10表示。如图11所示,该函数可函数分解成8个分解函数{g0,g1,g2,g3,g4,g5,g6,g7}。这里,各分解函数由(式2)或(式3)的逻辑式表示。
(式2)
g 0 = [ c out ( 0 ) , S 0 ]
=[a0b0∨a0cin∨b0cin,a0b0cin]
(式3)
g i = [ c out ( i ) , S i ]
Figure A20048000878300283
(i=1,2,3,4,5,6,7)
即,各分解函数成为输出对两个输入变量ai、bi及表示进位的中间变量cout (i-1)这两个取模的和Si以及进位的中间变量cout (i)的逻辑函数。
这由如图1所示的4级的逻辑函数存储器4-0~4-3构成的可编程序逻辑装置实现。这种情况下,如图12所示,将分解函数{g0,g1,g2,g3,g4,g5,g6,g7}分为4个分解函数组{g0,g1}、{g2,g3}、{g4,g5}、{g6,g7}。然后,如图13所示,将各分解函数组合成为一个,用4个分解函数f0、f1、f2、f3表示。这里,各分解函数是用(式4)或(式5)那样的逻辑式表示的5输入3输出逻辑函数。
(式4)
f 0 = [ c out ( 0 ) , S 1 , S 0 ]
=[a1b1∨(a1∨b1)(a0b0∨a0cin∨b0cin),
a1b1(a0b0∨a0cin∨b0cin),a0b0cin]
(式5)
f i = [ c out ( i ) , S 2 i + 1 , S 2 i ]
Figure A20048000878300287
(i=1,2,3)
各分解函数fi的真值表如图14所示。将图15的真值表存储到逻辑函数存储器4-0的第0页。将图16的真值表(LUT)存储到逻辑函数存储器4-1~4-3的第0页。这里,S2i、S2i+1、cout (i)(i∈{1,2,3})各自将逻辑函数存储器的输出比特分配,以分别输入到连接电路5-(i+1)的各输入线i2、i3、i4
各输入选择存储器3-0~3-3的第0页上分别存储0比特移位、5比特移位、9比特移位、13比特移位的信息。即,作为各输入选择存储器3-0~3-3的输入选择信息(shf0,shf1,shf2,shf3),分别存储(0,0,0,0)、(0,1,0,1)、(1,0,0,1)、(1,1,0,1)。
各连接存储器6-1~6-3的第0页上作为连接信息存储移位信息(4比特)。即,作为连接信息存储(s3,s2,s1,s0)=(0,1,0,0)。
以下,说明如上编程的状态下,可编程序逻辑装置的运算处理。
首先,输入变量寄存器1上被输入变量A、B、cin。输入变量寄存器1存储这些变量。运算控制部10对于输入选择存储器3-0~3-3、逻辑函数存储器4-0~4-3以及连接存储器6-1~6-3设定第0页,作为页选择号pr
从而,各输入选择存储器3-0~3-3将写入第0页的输入选择信息(shf0,shf1,shf2,shf3)=(0,0,0,0)、(0,1,0,1)、(1,0,0,1)、(1,1,0,1)输出给输入变量选择电路2-0~2-3的控制线shf0~shf3。输入变量选择电路2-0~2-3根据输入控制线shf0~shf3的输入选择信息,将输入端子in(00)~in(16)的一部分电连接到输出端子out(00)~out(07)。
具体地说,输入选择存储器3-0中(shf0,shf1,shf2,shf3)=(0,0,0,0),因而将in(00)~in(07)连接到out(00)~out(07)。输入选择存储器3-1中(shf0,shf1,shf2,shf3)=(0,1,0,1),因此移位5比特,并将in(05)~in(12)连接到out(00)~out(07)。输入选择存储器3-2中(shf0,shf1,shf2,shf3)=(1,0,0,1),因此移位9比特,并将in(09)~in(16)连接到out(00)~out(07)。输入选择存储器3-3中(shf0,shf1,shf2,shf3)=(1,1,0,1),因而移位13比特,并将in(13)~in(16)连接到out(00)~out(03)。这时,输入变量不传达到out(04)~out(07)上。
另外,连接存储器6-1~6-3将各写入到第0页的连接信息(s3 (0),...,s0 (0))=(0,1,0,0)输出给连接电路5-1~5-3的各控制线。连接电路5-1~5-3根据从各控制线输入的连接信息(s3 (k),...,s0 (k)),将输入线i8~i15与输出线o0~o7连接。具体地说,各连接存储器6-1~6-3被移位4比特,并将i4~i11分别连接到o0~o7,将i12~i15、i0~i3分别连接到o8~o15
接着,运算控制部10用输入变量寄存器1进行输入变量X的输出。这时,输入变量选择电路2-1~2-3的输入端子上如(表1)所示分别被输入输入变量的值。
(表1)
    i(00)     i(01)     i(02)     i(03)     i(04)     i(05)     i(06)     i(007)     i(08)
    cin     a1     a0     b1     b0     a3     a2     b3     b2
    i(09)     i(10)     i(11)     i(12)     i(13)     i(14)     i(15)     i(16)
    a5     a4     b5     b4     a7     a6     b7     b6
输入变量选择电路2-0输出(out(00),out(01),out(02),out(03),out(04))=(cin,a1,a0,b1,b0),使之输入逻辑函数存储器4-0。这里,输出out(05)~out(07)未使用,所以省略。
逻辑函数存储器4-0将存储在第0页的LUT(LUT0)的地址(i0,i1,i2,i3,i4,i5,i6,i7)=(cin,a1,a0,b1,b0,-,-,-)中存储的真值f0(cin,a1,a0,b1,b0)的值(o0,o1,o2,o3,o4,o5,o6,o7)=(-,-,S0,S1,cout (0),-,-,-)输出给连接电路5-1。这里,“-”表示无关(可为0或1)。这时,连接电路5-1的各输入线(i0,i1,i2,i3,i4,i5,i6,i7)上输入(-,-,S0,S1,cout (0),-,-,-)。
另外,输入变量选择电路2-1输出(out(00),out(01),out(02),out(03))=(a3,a2,b3,b2),使之输入连接电路5-1的输入线(i8,i9,i10,i11)。
从连接电路5-1分别输出(表2)的值。
(表2)
  o0     o1     o2     o3     o4     o5     o6     o7
  cout (0)     -     -     -     a3     a2     b3     b2
  o8     o9     o10     o11     o12     o13     o14     o15
  -     -     -     -     -     -     S0     S1
连接电路5-1的输出线o8~o15作为外部输出线7-1被取出。因而,运算结果S0、S1输出给外部输出线7-1中的两根。
接着,逻辑函数存储器4-1将存储在第0页的LUT(LUT0)的地址(i0,i1,i2,i3,i4,i5,i6,i7)=(cout (0),-,-,-,a3,a2,b3,b2)中存储的真值f1(cout (0),a3,a2,b3,b2)的值(o0,o1,o2,o3,o4,o5,o6,o7)=(-,-,S2,S3,cout (1),-,-,-)输出给连接电路5-2。这时,连接电路5-2的各输入线(i0,i1,i2,i3,i4,i5,i6,i7)上输入(-,-,S2,S3,cout (1),-,-,-)。
另一方面,输入变量选择电路2-2输出(out(00),out(01),out(02),out(03))=(a5,a4,b5,b4),使之输入连接电路5-2的输入线(i8,i9,i10,i11)。
从连接电路5-2分别输出(表3)的值。
(表3)
  o0     o1     o2     o3     o4     o5     o6     o7
  cout (1)     -     -     -     a5     a4     b5     b4
  o8     o9     o10     o11     o12     o13     o14     o15
  -     -     -     -     -     -     S2     S3
连接电路5-2的输出线o8~o15作为外部输出线7-2被取出。因而,运算结果S2、S3输出给外部输出线7-2中的两根。
接着,逻辑函数存储器4-2将存储在第0页的LUT(LUT0)的地址(i0,i1,i2,i3,i4,i5,i6,i7)=(cout (1),-,-,-,a5,a4,b5,b4)中存储的真值f2(cout (1),a5,a4,b5,b4)的值(o0,o1,o2,o3,o4,o5,o6,o7)=(-,-,S4,S5,cout (2),-,-,-)输出给连接电路5-3。这时,连接电路5-3的各输入线(i0,i1,i2,i3,i4,i5,i6,i7)上输入(-,-,S4,S5,cout (2),-,-,-)。
另一方面,输入变量选择电路2-3输出(out(00),out(01),out(02),out(03))=(a7,a6,b7,b6),使之输入连接电路5-3的输入线(i8,i9,i10,i11)。
从连接电路5-3分别输出(表4)的值。
(表4)
  o0     o1     o2     o3     o4     o5     o6     o7
  cout (2)     -     -     -     a7     a6     b7     b6
  o8     o9     o10     o11     o12     o13     o14     o15
  -     -     -     -     -     -     S4     S5
连接电路5-3的输出线o8~o15作为外部输出线7-3被取出。因而,运算结果S4、S5输出给外部输出线7-3中的两根。
最后,逻辑函数存储器4-3将存储在第0页的LUT(LUT0)的地址(i0,i1,i2,i3,i4,i5,i6,i7)=(cout (2),-,-,-,a7,a6,b7,b6)中存储的真值f3(cout (2),a7,a6,b7,b6)的值(o0,o1,o2,o3,o4,o5,o6,o7)=(-,-,S6,S7,cout (3),-,-,-)输出给输出线7-4。从而,所有的运算结果输出到输出线7-1~7-4而结束运算。
[例1结束]
(实施例2)
图17表示本发明实施例2的可编程序逻辑装置整体结构的框图。
本实施例的特征在于:输入变量选择电路2-1~2-3的输出线的一部分不经连接电路5-1~5-3而与逻辑函数存储器4-1~4-3的输入端直接连接。实用的多个逻辑函数中,逻辑函数存储器4-1~4-3的输入端上往往至少输入一个输入变量。即,输入变量选择电路2-1~2-3的输出线的至少一根往往连接到逻辑函数存储器4-1~4-3的输入端。因而,以通用的用途使用的可编程序逻辑装置中,起初就将输入变量选择电路2-1~2-3的输出线的一部分不经连接电路5-1~5-3而直接连接到逻辑函数存储器4-1~4-3的输入端,这样就可减少连接电路5-1~5-3的输入线的根数。结果,可使连接电路5-1~5-3小型化。并且,用如图4所示的移位电路构成连接电路5-1~5-3时,可减少移位器的级数,并可达到运算速度的高速化及低耗电化。
(实施例3)
图18表示本发明实施例3的可编程序逻辑装置整体结构的框图。
本实施例的第一特征在于:设有选择输入到连接电路5-1~5-3的输入变量的输入变量选择电路2-1~2-3,此外设有选择不经连接电路5-1~5-3而进行直接输入逻辑函数存储器4-1~4-3的输入变量的选择的输入变量选择电路30-1~30-3以及存储该输入选择信息的输入选择存储器31-1~31-3。其第二特征在于:具有将从前级的逻辑函数存储器4-(i-1)(i∈{1,2,3})输入后级的逻辑函数存储器4-i的中间变量的一部分不经连接电路5-i而直接输入的结构。
通过这样的结构,能够减少连接电路5-1~5-3的输入线的根数。结果,可使连接电路5-1~5-3小型化。并且,用如图4所述的移位电路构成连接电路5-1~5-3时,可减少移位器的级数,并可达成运算速度的高速化。
(实施例4)
图19是表示本发明实施例4的可编程序逻辑装置的整体结构的框图;图20是表示图19的输出寄存器及输出解码器的结构的框图;图21是表示图20的存储元件的结构的框图。本实施例的特征在于设有:暂时将输出给外部输出线7-1~7-4的输出变量存储的输出变量寄存器51,以及将输出变量寄存器51用以读取输出变量的加载信号输出的输出选择解码器52。其它结构与图1相同,因此省略说明。还有,本实施例中各逻辑函数存储器4-0~4-3内部设有地址锁存器(未图示),通过时钟同步动作。
输出变量寄存器51具备32个存储元件M(i,j)(i∈{1,2,3,4},j∈{0,1,2,3,4,5,6,7})。各存储元件M(i,j)由保持数据的D触发器(以下称为“DFF”)53和2输入1输出的多路转换器(以下称为“MUX”)54构成。DFF53上被输入公共的时钟信号Clock。该时钟信号Clock为1时,DFF53将输入数据输入端D的值锁存。MUX54的输出端连接到DFF53的数据输入端D。并且,DFF53的输出端Q连接到MUX54的0侧的输入端D0。MUX54的1侧的输入端D1连接到外部输出线7-i的第j根线。MUX54由加载信号Load进行控制,当Load=0时选择0侧的输入端,而Load=1时选择1侧的输入端。
输出选择解码器52上从运算控制部10被输入2比特的输出选择信号t。然后,输出选择解码器52输出4个输出选择信号T1~T4。t=(0,0)时,输出(T1,T2,T3,T4)=(1,0,0,0)。t=(0,1)时,输出(T1,T2,T3,T4)=(0,1,0,0)。t=(1,0)时,输出(T1,T2,T3,T4)=(0,0,1,0)。t=(1,1)时,输出(T1,T2,T3,T4)=(0,0,0,1)。各输出选择信号Ti(i∈{1,2,3,4})作为加载信号Load输入各存储元件M(i,j)。
运算控制部10切换输出选择信号t,以在运算开始时,令t=(00),在逻辑函数存储器4-0输出运算结果后切换到t=(01),并在逻辑函数存储器4-1输出运算结果后切换到t=(10),在逻辑函数存储器4-2输出运算结果后切换到t=(11),然后将运算结果锁存在输出变量寄存器51中。于是,能够在运算结束的时刻读出输出变量寄存器51中存储的输出变量来得到运算结果。
(实施例5)
图22表示本发明实施例5的可编程序逻辑装置整体结构的框图。
本实施例的特征在于设有:第一输出选择电路25、第二输出选择电路26、输入选择存储器3-4以及输入变量选择电路2-4。还有,其它结构与图1相同,因此省略其说明。
第二输出选择电路26根据从输入变量选择电路2-4输入的输入变量的值,选择从最后级的逻辑函数存储器4-3输出的输出变量中的全部或一部分后加以输出。还有,输入变量选择电路2-4由图2所示的相同的移位电路构成。但本实施例中,最后级的逻辑函数存储器4-3的输出为8比特,因此输入变量选择电路2-4中使用的移位电路的输出设为3比特。一般,输入变量选择电路2-4的输出相对最后级的逻辑函数存储器4-3的输出端的数N,设为:
(式6)
Figure A20048000878300351
以下,将输入变量选择电路2-4的输出out(00)~out(02)(参照图2)用F0,F1,F2分别表示。
第一输出选择电路25由多路转换器构成,根据从运算控制部10输出的输出选择信号t,选择从各逻辑函数存储器4-0~4-2及第二输出选择电路26输出的输出变量中的任一个后加以输出。
这里,输出选择信号t指的是表示第一输出选择电路25选择的输出线束的指定编号(t∈{(00),(01),(10),(11)))的2比特的信号。第一输出选择电路25在t=(00)时选择连接电路5-1的输出线束(图4的o8~o15),t=(01)时选择连接电路5-2的输出线束,t=(10)时选择连接电路5-3的输出线束,t=(11)时选择第二输出选择电路26的输出线束。
图23是表示图22的第二输出选择电路26的结构的框图。还有,该电路图为了说明动作原理而简化记载。
如图23所示,第二输出选择电路26中,将2输入1输出的多路转换器(以下称为“MUX”)31~37以多级级联状连接,各级上的输出可通过MUX38~MUX44取出。还有,图23中,为了方便说明,示出输出线的比特数Nc为8比特的例子,但Nc并不受限于8比特。
图23中,第二输出选择电路26的输入线y0~y7与逻辑函数存储器4-3的输出端连接。输出变量Y的值从该输入线y0~y7输入。并且,从输出选择电路26的输出线f(0)~f(7)输出从输入线y0~y7中选择的输出变量Y的值(y0,...,y|Y|-1)。
输入线y0、y1,输入线y2、y3,输入线y4、y5,以及输入线y6、y7分别连接到MUX31、MUX32、MUX33及MUX34的输入侧。MUX31、32及MUX33、34的输出端分别连接到MUX35及MUX36的输入侧。MUX35,36的输出端连接到MUX37的输入端。
另一方面,(输入线y0,MUX31的输出端)、(输入线y2,MUX32的输出端)、(输入线y4,MUX33的输出端)及(输入线y6,MUX34的输出端)分别连接到MUX38、MUX39、MUX40及MUX41的输入侧。另外,(输入线y1,MUX35的输出端)、(输入线y3,MUX37的输出端)及(输入线y5,MUX36的输出端)分别连接到MUX42、MUX43及MUX44的输入侧。
MUX31~34通过公共的输入变量F0来切换控制。即,F0为“0”时,MUX31、32、33、34分别选择输入线y0、y2、y4、y6,F0为“1”时,MUX31、32、33、34分别选择输入线y1、y3、y5、y7
MUX35、36通过公共的输入变量F1来切换控制。即,F1为“0”时,MUX35、36分别选择MUX31、33,F1为“1”时,MUX35、36分别选择MUX32、34。
另外,MUX37通过输入变量F2来切换控制。即,F2为“0”时,MUX37选择MUX35,F2为“1”时,MUX37选择MUX36。
用MUX31~34,选择8根输入线y0~y7中的4根。用MUX31~36,选择8根输入线y0~y7中的2根。用MUX31~37,选择8根输入线y0~y7中的1根。这是指:在目标逻辑函数f(X)=(f1(X),f2(X),...,fm(X))的输出变量的个数m为4个以下时,可对逻辑函数存储器4-3输出的中间变量Y,再进行基于输入变量(F0,F1,F2)的逻辑运算。因而,能够减少用逻辑函数存储器4-0~4-3进行的运算中的输入变量的个数。
例如,将目标逻辑函数f(x0,x1,...,xn-2,xn-1)香农展开(如式7),
(式7)
xn-1f′(x0,x1,...,xn-2)∨ xn-1f′(x0,x1,...,xn-2)将函数f’(x0,x1,...,xn-2)函数分解为4个分解函数f0(X0)、f1(X1,Y1)、f2(X2,Y2)、f3(X3,Y3)(其中,X0∪X1∪X2∪X3={x0,x1,...,xn-2}),并使最后级的分解函数f3(X3,Y3)的输出数成为4以下时,可减少一个输入逻辑函数存储器4-0~4-3的输入变量的个数。因此,输入变量xn-1可作为输入变量F0输入第二输出变量选择电路26。
同样地,将目标逻辑函数f(x0,x1,...,xn-2,xn-1)香农展开(如式8)时,
(式8)
xn-1xn-2f″(x0,x1,...,xn-3)∨xn-1 xn-2f″(x0,x1,...,xn-3)
∨ xn-1xn-2f″(x0,x1,...,xn-3)∨ xn-1 xn-2f″(x0,x1 ,...,xn-3)可减少2个输入逻辑函数存储器4-0~4-3的输入变量的个数,而香农展开成如式9时,
(式9)
xn-1xn-2xn-3f(x0,x1,...,xn-4)∨xn-1xn-2 xn-3f(x0,x1,...,xn-4)
∨xn-1 xn-2xn-3f(x0,x1,...,xn-4)∨xn-1 xn-2 xn-3f(x0,x1,...,xn-4)
∨ xn-1xn-2xn-3f(x0,x1,...,xn-4)∨xn-1xn-2 xn-3f(x0,x1,...,xn-4)
∨ xn-1 xn-2xn-3f(x0,x1,...,xn-4)∨ xn-1 xn-2 xn-3f(x0,x1,...,xn-4)可减少3个输入逻辑函数存储器4-0~4-3的输入变量的个数。
还有,由MUX31~MUX37选择的8比特、4比特、2比特或1比特的输出必须通过公共的8个输出线输出给第一输出选择电路25。于是,图23中,用MUX38~44选择上述各根数的输出线时的输出通过公共的输出线f(0)~f(7)而输出。MUX38~44通过公共的选择切换变量Select来切换控制。另外,选择切换变量Select的设定值按照输出变量f(X)=(f1(X),f2(X),...,fm(X))的个数m预先存储在选择切换存储器45中。因而,通过运算控制部10的控制来设定为Select。
MUX38在Select为“0”时选择输入线y0,而当Select为“1”时选择MUX31的输出端,将选择的线的信号值输出给输出线f(0)。MUX39在Select为“0”时选择输入线y2,而当Select为“1”时选择MUX32的输出端,将选择的线的信号值输出给输出线f(2)。MUX40在Select为“0”时选择输入线y4,而当Select为“1”时选择MUX33的输出端,将选择的线的信号值输出给输出线f(4)。MUX41在Select为“0”时选择输入线y6,而当Select为“1”时选择MUX34的输出端,将选择的线的信号值输出给输出线f(6)
MUX42在Select为“0”时选择输入线y1,而当Select为“1”时选择MUX35的输出端,将选择的线的信号值输出给输出线f(1)。MUX43在Select为“0”时选择输入线y3,而当Select为“1”时选择MUX37的输出端,将选择的线的信号值输出给输出线f(3)。MUX44在Select为“0”时选择输入线y5,而当Select为“1”时选择MUX36的输出端,将选择的线的信号值输出给输出线f(5)。另外,输出线f(7)与输入线y7直接连接。
目标逻辑函数f的运算结果f(X)的比特数(输出的个数)为8个时,设Select为“0”。从而,输出线f(0)~f(7)上输出的是输入到输入线y0~y7的输出变量Y=(y0,...,y7)的值。输出的个数为4个时,设Select为“1”,输入变量F0上输入“0”或“1”。从而,输入线y0~y7中F0=0时(y0,y2,y4,y6)4个、F0=1时(y1,y3,y5,y7)4个输出给输出线f(0)、f(2)、f(4)、f(6)。输出的个数为2个时,设Select为“1”,并设定输入变量F0、F1为“0”或“1”。从而,(F0,F1)=(0,0)时,输出线f(1)、f(5)上输出的是输入到输入线y0~y7中的2个输入线的输出变量Y=(y0,y4)的值。(F0,F1)=(0,0)、(0,1)、(1,1)时输出端分别输出(y1,y5)、(y2,y6)、(y3,y7)的值。当输出的个数为1个时,设Select为“1”,并设定输入变量F0、F1、F2为“0”或“1”。从而,输出线f(3)上输出的是输入线y0~y7中的1个输入线上由F0、F1、F2指定的输入。
这样,通过设置第二输出选择电路26,输出变量f(X)的个数为最后级的逻辑函数存储器4-3的全部输出线的个数的1/2以下时,利用第二输出选择电路26可再进行选择操作。从而,逻辑函数存储器4-0~4-3中进行运算的分解函数的输入变量的总数基本上可增加1个以上。因而,可增加可编程序逻辑装置整体上所容许的输入变量的个数。
另外,图23中,输出选择电路26内的多路转换器采用2输入1输出的多路转换器,但是通常可采用w输入1输出(w≥2)的MUX。
(实施例6)
图24表示本发明实施例6的可编程序逻辑装置整体结构的框图。
本实施例的特征在于:将第二输出选择电路26连接到第一输出选择电路25的后级侧。另外,除第一输出选择电路25及第二输出选择电路26的连接顺序以外,具有与实施例5相同的结构,因此省略各部分的说明。
从连接电路5-1~5-3及逻辑函数存储器4-3输出的变量组的任一个在第一选择电路25中被选择。第一选择电路25中选择的变量组基于输入变量(F1,F2,F3)及选择切换变量Select的值,用第二选择电路26选择其全部或一部分,并作为输出变量输出。
这里,任意n变量逻辑函数f(x0,x1,...,xn-1)可如下形态表现。
(式10)
f(x0,x1,...,xn-3,xn-2,xn-1)
=xn-2xn-1f0(x0,x1,...,xn-3)∨xn-2 xn-1f1(x0,x1,...,xn-3)
∨ xn-2xn-1f2(x0,x1,...,xn-3)∨ xn-2 xn-1f3(x0,x1,...,xn-3)
因而,用逻辑函数存储器4-0~4-3实现上述部分函数f0~f3,且用第二输出选择电路26运算各部分函数f0~f3和xn-2、xn-1等的积,从而能够实现n变量的逻辑函数。
(实施例7)
图25是表示本发明实施例7的可编程序逻辑装置的整体结构的框图。
本发明实施例7的可编程序逻辑装置中设有:输入变量寄存器1、输入变量选择电路2-0~2-3、输入选择存储器3-0~3-3、逻辑函数存储器4-0~4-3、连接电路5-0~5-3、连接存储器6-0~6-3、区域指定存储器8-0~8-3以及运算控制部10。另外,本实施例中,设各电路以公共的时钟同步动作。
输入变量寄存器1中存储了用于目标逻辑函数f(X)的运算的n个输入变量X=(x1,...,xn)(其中,n为自然数)。还有,输入变量X从外部输入线输入到输入变量寄存器1。逻辑函数存储器4-0~4-3中作为LUT存储了函数分解目标逻辑函数而得到的分解函数(fi;i∈{0,1,2,3})的真值表。另外,本实施例中作为一例,将逻辑函数存储器4-i(i∈{0,1,2,3})的级数设为4级,但通常可任意设定该级数。这些逻辑函数存储器4-0~4-3编号后排列,经由各连接电路5-0~5-3以环状连接。
另外,本实施例中的逻辑函数存储器4-0~4-3采用与图3中说明的同样存储器。这时,地址解码器16基于从区域指定存储器8-i输入的页选择号p(pr),可进行存储区域FMk的存储器访问。
输入变量选择电路2-0~2-3从输入变量寄存器1输出的n个输入变量X=(x1,...,xn)中选择分别存储在各级的逻辑函数存储器4-0~4-3的分解函数{fi;i∈{0,1,2,3}}的真值表的输入变量Xi(i∈{0,1,2,3}),输出给连接电路5-0~5-3。输入选择存储器3-0~3-3中分别存储了与输入变量选择电路2-0~2-3的输入变量的选择相关的信息(以下称为“输入选择信息”)。输入变量选择电路2-0~2-3基于从各输入选择存储器3-0~3-3输出的输入选择信号,进行输入变量的选择切换。
还有,本实施例中,输入变量选择电路2-0~2-3采用图2所示的移位电路。图2的输入变量选择电路2-i(i∈{0,1,2,3})中,输入端子in(00)~in(16)与输入变量寄存器1的输出端子连接。因而,输入变量X=(x1,...,xn)从输入端子in(00)~in(16)输入。并且,输入变量选择电路2-i(i∈{0,1,2,3})的输出端子out(00)~out(07)与连接电路5-i的输入侧端子的一部分连接。
各连接电路5-i(i∈{0,1,2,3})将从逻辑函数存储器4-(i-1 mod4)和输入变量选择电路2-i输入的、中间变量Yi及输入变量Xi的顺序改变后连接到后级的逻辑函数存储器4-i及外部输出线7-i。各连接存储器6-i(i∈{0,1,2,3})存储有关各连接电路5-i的连接关系的信息(以下称为“连接信息”)。连接电路5-i基于从连接存储器6-i输出的连接信息信号,进行连接关系的切换。
还有,本实施例中,为了方便说明,连接电路5-0~5-3采用图4所示的循环移位电路。图4所示的连接电路5-j(j∈{1,2,3})中,输入线i0~i15中的i0~i7连接到前级的逻辑函数存储器4-(j-1)的输出侧,i8~i15连接到输入变量选择电路2-j的输出侧。另外,连接电路5-0的输入线i0~i15中的i0~i7连接到前级的逻辑函数存储器4-3的输出侧,i8~i15连接到输入变量选择电路2-0的输出侧。另一方面,连接电路5-j(j∈{0,1,2,3})的输出线o0~o15中的o0~o7连接到后级的逻辑函数存储器4-j的输入侧,o8~o15成为外部输出线7-j。
另外,本实施例中,各连接存储器6-i(i∈{0,1,2,3})采用与图5所示的相同的存储器。
各区域指定存储器8-i(i∈{0,1,2,3})对应于目标逻辑函数的运算级数,存储了存放逻辑函数存储器4-i中存储的所使用的LUT的页码(以下称为“区域指定变量”)。逻辑函数存储器4-i根据区域指定存储器8-i输出的区域指定变量来设定页。
运算控制部10进行可编程序逻辑装置全体的运算处理控制。
图26是表示图25的运算控制部10的结构的框图。
运算控制10中设有:运算步进寄存器61、步进计数器62、页计数器63及输出控制器64。
运算步进寄存器61中存放了目标逻辑函数函数分解后的分解函数的数量即运算步进数。步进计数器62对当前进行运算的分解函数的级数进行计数。该步进计数器62中设定了存放在运算步进寄存器61中的值,并由随着每进行1级的运算处理,将内部存放的值减1的降值计数器构成。步进计数器62在该计数值i为0时,输出结束信号END。另外,步进计数器62在从外部输入复位信号reset时,将计数值设定为运算步进寄存器61中存放的值。
页计数器63对输入选择存储器3、连接存储器6及区域指定存储器8输出的数据被存放的各存储器的页码进行计数,输出该计数值k作为计数信号pk。页计数器63是升计数器,在检出从输出控制器64输出的芯片启动信号CE3的下降沿时,将计数值k加1。另外,页计数器63在被输入复位信号reset时,或者从步进计数器62被输入结束信号END时,使计数值k复位到0。
输出控制器64通过对各逻辑函数存储器4-0~4-3输出芯片启动信号CE0~CE3及地址选通脉冲信号ADSP0~ADSP3,进行逻辑函数存储器4-0~A-3的输出控制。
还有,芯片启动信号CEi是激活第i级的逻辑函数存储器4-i的信号,当芯片启动信号CEi成为“1”(真值)(断言)时,逻辑函数存储器4-i能够接收来自外部的输入信号并进行数据的输出。地址选通脉冲信号ADSPi是用以对逻辑函数存储器4-i进行已输入的地址锁存控制的信号。逻辑函数存储器4-i在时钟边缘地址选通脉冲信号ADSPi成为“1”(真值)(断言)时,将输入到输入线i(00)~i(07)的数据设定到内部的地址寄存器中。另外,地址选通脉冲信号ADSPi从“1”迁移到“0”(伪值)时,将内部的地址寄存器中设定的地址值锁存。另外,在芯片启动信号CEi成为“0”(伪值)的状态下,即使ADSPi成为“1”,输入到输入线i(00)~i(07)的数据也不会被锁存。
图27是表示图26的输出控制器64的内部结构的框图。
输出控制器64包括:由4个触发器(以下称为“FF”)65~68构成的约翰逊计数器69,4个AND电路70~73,以及1个OR电路74。
FF65~68的时钟端子C上输入公共的时钟信号clock。另外,FF65、66、67、68的输出端Q0、Q1、Q2、NOT(Q3)分别连接到FF65、66、67、68的数据输入端D1、D2、D3、D0。另外,OR电路74输出复位信号reset及结束信号END的逻辑和的复位信号reset’。FF65~68的复位端子rst上输入复位信号reset’。
通过这样的结构,约翰逊计数器69的输出(Q0,Q1,Q2,Q3)的状态随着时钟信号clock的上升而循环地迁移,如:
(0,0,0,0)
→(1,0,0,0)
→(1,1,0,0)
→(1,1,1,0)
→(1,1,1,1)
→(0,1,1,1)
→(0,0,1,1)
→(0,0,0,1)
→(0,0,0,0)。
即,按每个时钟,右移1比特,将最上位的比特(Q3)反转后,作为最下位的比特(Q0),将这样的动作重复进行。
FF65、67的输出Q0、Q2分别作为芯片启动信号CE0、CE1输出。并且,FF65、67的输出NOT(Q0)、NOT(Q2)分别作为芯片启动信号CE2、CE3输出。这里,NOT(Qi)是输出Qi的反相输出。
另外,AND电路70输出FF65、66的输出Q0、NOT(Q1)的逻辑积作为地址选通脉冲信号ADSP0。AND电路71输出FF67、68的输出Q2、NOT(Q3)的逻辑积作为地址选通脉冲信号ADSP1。AND电路72输出FF65、66的输出NOT(Q0)、Q1的逻辑积作为地址选通脉冲信号ADSP2。AND电路73输出FF67、68的输出NOT(Q2)、Q3的逻辑积作为地址选通脉冲信号ADSP3
还有,逻辑函数存储器4-0~4-3在芯片启动信号CE0~CE3为“0”的状态下,成为低耗电模式。从而,运算中未使用的逻辑函数存储器4的耗电减少,能够使整个LUT级联电路的耗电更低。
以下,就如上构成的本实施例的可编程序逻辑装置的动作进行说明。
图28是表示实施例7的可编程序逻辑装置的动作的流程图;图29是表示实施例7的可编程序逻辑装置动作时的各信号的变化的定时图。
最初,先将要进行运算的目标逻辑函数f(X)函数分解后的分解函数{f0,...,fs-1}(1≤s)的真值表作为LUT写入各逻辑函数存储器4-0~4-3。这里,表示fi(i=0,1,...,s-1)的LUT先写入在4-(i mod 4)的存储器的int(i/4)页中。另外,同一逻辑函数存储器4中,要在不同页上写入同一LUT时,不在多个页上写入同一LUT,而只写入一个LUT(以下将它称为“写入缩减”)。这是为了节约存储容量。另外,输入选择存储器3-0~3-3和各连接存储器6-1~6-3上从第0页开始按顺序写入与上述各分解函数(f0,...,fs-1)对应的输入选择信息和连接信息。并且,区域指定存储器8-i(i∈{0,1,2,3})的j页上存放存储了与分解函数fi*4+j(其中,0<=i*4+j<=s-1)对应的LUT的逻辑函数存储器4-i的页数p。还有,关于对各存储器的写入功能,图25中未作图示,但按照通常的存储器的写入方法来进行。而且,运算控制部10的运算步进寄存器61上先写入分解函数的全部级数s。还有,在以下说明中设s>4。
在进行了上述的写入操作的状态下,首先,在时段T0中,运算控制部10根据从外部输入的复位信号reset,使步进计数器62、页计数器63的计数值i、p分别复位(S1)。这时,步进计数器62的计数值i初始化为运算步进寄存器61内存储的值s,页计数器63的计数值p初始化为0。并且,根据该复位信号reset,运算控制部10内的输出控制器64的FF65~68复位(S2)。
这时,由FF65~68构成的约翰逊计数器69,作为输出值输出(Q0,Q1,Q2,Q3)=(0,0,0,0)、(NOT(Q0),NOT(Q1),NOT(Q2),NOT(Q3))=(1,1,1,1)。因而,输出控制器64对各逻辑函数存储器4-0、4-1、4-2,4-3分别输出0、0、1、1,作为芯片启动信号CE0、CE1、CE2、CE3。并且,页计数器63对输入选择存储器3-0~3-3、连接存储器6-0~6-3及区域指定存储器8-0~8-3输出0作为计数信号pk(S3)。
从而,输入选择存储器3-i(i∈{0,1,2,3})将存储在第0页的输入选择信息输出给输入变量选择电路2-i的控制线shf0~shf3。输入变量选择电路2-i根据输入控制线shf0~shf3的输入选择信息,将输入端子in(00)~in(16)的一部分电连接到输出端子out(00)~out(07)。
另外,连接存储器6-i(i∈{0,1,2,3})将存放在第0页的连接信息(sNc-1 (0),...,s0 (0))输出给连接电路5-i。从而,连接电路5-i根据从各控制线输入的连接信息(s3 (0),...,s0 (0)),将输入线i8~i15连接到输出线o0~o7
而且,区域指定存储器8-i(i∈{0,1,2,3})将存放在第0页的区域指定变量p(0)输出给逻辑函数存储器4-i的地址解码器16。从而,逻辑函数存储器4-i成为可选择第p(0)页的状态。
还有,输入变量寄存器1开始对各输入变量选择电路2-0~2-3进行输入变量的输出(S4)。从而,输入变量X0、X1、X2、X3分别输出到连接电路5-0~5-3。输入到连接电路5-i(i∈{0,1,2,3})的输入变量X0、X1、X2、X3按设定的连接顺序输出到逻辑函数存储器4-i的输入侧。
接着,在时段T1中,在下一个时钟信号clock的上升沿,约翰逊计数器69的输出(Q0,Q1,Q2,Q3)变化为(1,0,0,0)。从而,CE0成为“1”,逻辑函数存储器4-0成为可访问的状态,同时CE2成为“0”。因而,从逻辑函数存储器4-0开始输出数据D0(S5)。
另外,与此几乎同时地,AND电路70的输出即ADSP0成为“1”。当ADSP0成为“1”时,逻辑函数存储器4-0基于从连接电路5-0输入的输入变量X0,制定其内部的地址寄存器(S6)。然后,逻辑函数存储器4-0向连接电路5-1开始输出第0页内与已制定的地址对应的LUT的值(中间变量Y4p+(s-i))。输出到连接电路5-1的中间变量Y4p+(s-i),根据已设定的连接关系,输入逻辑函数存储器4-1。另外,根据情况,中间变量Y4p+(s-i)的一部分传送到外部输出线7-1。在时段T1的最后,ADSP0从“1”降到“0”,逻辑函数存储器4-0内部的地址寄存器被锁存。
在时段T2中,ADSP0成为“1”之后到下一个时钟信号clock上升的时候,约翰逊计数器69的输出(Q0,Q1,Q2,Q3)变化为(1,1,0,0)。从而,ADSP0成为“0”(S7)。从而,逻辑函数存储器4-0的输出数据D0的值确定为中间变量Y4p+(s-i)。另一方面,这时由于Q0=1,CE0被锁定为“1”。
接着,在时段T3中,在下一个时钟信号clock的上升沿,步进计数器62使计数值i递减(S8)。另外,这时约翰逊计数器69的值成为(Q0,Q1,Q2,Q3)=(1,1,1,0)。
这里,当步进计数器62的计数值i不为0时(S9),若输出Q2的值迁移到1,则CE1成为“1”,同时CE3成为“0”。随之,从逻辑函数存储器4-1的输出线开始输出输出数据D1(S10)。
另外,与此几乎同时地,AND电路71的输出即ADSP1成为“1”(S11)。从而逻辑函数存储器4-1经由连接电路5-1,基于从前级的逻辑函数存储器4-0输入的中间变量和新输入变量来制定地址。随着该地址的制定,逻辑函数存储器4-1的输出数据D1变化,第pk页内与已制定的地址对应的LUT的值(中间变量Y4p+(s-i))开始输出给连接电路5-2。
而且,在时段T4中,在下一个时钟信号clock的上升沿,约翰逊计数器69的值成为(Q0,Q1,Q2,Q3)=(1,1,1,1)。从而,AND电路71的输出即ADSP1成为“0”,逻辑函数存储器4-1的输出数据D1确定为中间变量Y4p+(s-i)(S12)。输出给连接电路5-2的中间变量Y4p+(s-i),根据已设定的连接关系,输入逻辑函数存储器4-2。另外根据情况,中间变量Y4p+(s-i)的一部分传送到外部输出线7-2。
接着,在时段T5中,在下一个时钟信号clock的上升沿,步进计数器62使计数值i递减(S13)。另外,这时约翰逊计数器69的值成为(Q0,Q1,Q2,Q3)=(0,1,1,1)。
这里,步进计数器62的计数值i不为0时(S14),若输出端Q0的值迁移为0,则CE2成为“1”,同时CE0成为“0”。伴随这种情况,逻辑函数存储器4-0的输出停止,同时输出数据D2开始从逻辑函数存储器4-2的输出线输出(S15)。
另外,与此几乎同时,AND电路72的输出即ADSP2成为“1”(S16)。从而,逻辑函数存储器4-2经由连接电路5-2,基于从前级的逻辑函数存储器4-1输入的中间变量和新输入变量来制定地址。伴随该地址的制定,逻辑函数存储器4-2的输出数据D2变化,第pk页内与已制定的地址对应的LUT的值(中间变量Y4p+(s-i))开始输出给连接电路5-3。
然后,在时段T6中,在下一个时钟信号clock的上升沿,约翰逊计数器69的值成为(Q0,Q1,Q2,Q3)=(0,0,1,1)。从而,AND电路72的输出即ADSP2成为“0”,逻辑函数存储器4-2的输出数据D2确定为中间变量Y4p+(s-i)(S17)。输出到连接电路5-3的中间变量Y4p+(s-i),根据已设定的连接关系,输入到逻辑函数存储器4-3。另外根据情况,中间变量Y4p+(s-i)的一部分传送给外部输出线7-3。
接着,在时段T7中,在下一个时钟信号clock的上升沿,步进计数器62使计数值i递减(S18)。另外,这时约翰逊计数器69的值成为(Q0,Q1,Q2,Q3)=(0,0,0,1)。
这里,在步进计数器62的计数值i不为0时(S19),若输出端Q2的值迁移到0,则CE3成为“1”,同时CE1成为“0”。伴随这种情况,逻辑函数存储器4-1的输出停止,同时输出数据D3开始从逻辑函数存储器4-3的输出线输出(S20)。
另外,与此几乎同时,AND电路73的输出即ADSP3成为“1”(S21)。从而,逻辑函数存储器4-3经由连接电路5-3,基于从前级的逻辑函数存储器4-2输入的中间变量和新输入变量来制定地址。伴随该地址的制定,逻辑函数存储器4-3的输出数据D3变化,第pk页内与已制定的地址对应的LUT的值(中间变量Y4p+(s-i))开始输出给连接电路5-0。
然后,在时段T0中,在下一个时钟信号clock的上升沿,约翰逊计数器69的值成为(Q0,Q1,Q2,Q3)=(0,0,0,0)。从而,AND电路73的输出即ADSP3成为“0”,逻辑函数存储器4-3的输出数据D3确定为中间变量Y4p+(s-i)(S22)。输出到连接电路5-0的中间变量Y4p+(s-i),根据已设定的连接关系,输入逻辑函数存储器4-0。另外根据情况,中间变量Y4p+(s-i)的一部分传送给外部输出线7-0。
这时,页计数器63使计数值p增加(S23)。从而,计数信号pp的值仅加1,输入选择存储器3-0~3-3、连接存储器6-0~6-3及区域指定存储器8-0~8-3选择的页被切换。伴随这种情况,输入变量选择电路2-0~2-3和连接电路5-0~5-3的连接关系也被切换。还有,即便区域指定存储器8-0~8-3选择的页被切换,各逻辑函数存储器只要芯片启动信号CEi和地址选通脉冲信号ADSPi成为“1”而成为接收地址的状态,就不会切换页。
接着,在时隙T1中,在下一个时钟信号clock的上升沿,步进计数器62使计数值i递减(S24)。另外,这时约翰逊计数器69的输出端Q0的值成为1。
这里,在步进计数器62的计数值i不为0时(S25),再次回到步骤S5的动作。
在上述步骤S9、S14、S19、S25中,步进计数器62的计数值i为0时,步进计数器62输出结束信号END。从而,运算控制部10停止运算动作,并结束运算。
如上所述,运算处理是从前级到后级的方向以串联处理的方式进行。而且,最后级的逻辑函数存储器4-3的运算处理结束的时刻,若尚未结束所有分解函数的运算,则将从逻辑函数存储器4-3输出的中间变量再反馈给最前级的逻辑函数存储器,然后重复运算处理。目标逻辑函数f的运算结果从各外部输出线7-1~7-4取出。
以下,为了更容易理解上述动作,采用具体例说明可编程序逻辑装置的具体动作。
[例2]加法电路
这里,作为简单的例子,说明用上述可编程序逻辑装置使加法器对两个2n比特(n≥5)的二进制数A=(a2n-1,a2n-2,...,a1,a0)、B=(b2n-1,b2n-2,...,b1,b0)执行加法运算的例子。还有,作为从下位的进位输入比特考虑cin,且考虑进行如下运算的加法器。
(式11)
Figure A20048000878300481
这里,进位输入比特cin是指在进行2n比特以上的大数的加法运算的场合,串联加法器而使用时,表示从下位的加法器的进位的比特。进位输出比特cout也同样,表示对上位的加法器输出的进位的比特。
还有,本例中,输入变量选择电路2-0~2-3与图2同样,当log2(2n+1)(log2(2n+1)不为整数时,将log2(2n+1)进上去的数)级的移位器串联连接,以(2n+1)输入8输出的移位电路构成。
设这种进行两个2n比特的二进制数A、B的加法运算的逻辑函数为f=f(X)(X=(A,B)),逻辑函数f由图30表示。如图31所示,该函数可函数分解成2n个分解函数{g0,g1,...,g2n-1}。这里,各分解函数由(式12)或(式13)的逻辑式表示。
(式12)
g 0 = [ c out ( 0 ) , S 0 ]
=[a0b0∨a0cin∨b0cin,a0b0cin]
(式13)
g i = [ c out ( i ) , S i ]
Figure A20048000878300493
(i=1,2,...,2n-1)
即,各分解函数成为输出两个输入变量ai、bi及表示进位的中间变量cout (i-1)这两个取模后的和Si以及进位的中间变量cout (i)的逻辑函数。
这由如图25所示的4级的逻辑函数存储器4-0~4-3构成的可编程序逻辑装置实现。这种情况下,如图32所示,将分解函数{g0,g1,...,g2n-1}分为n个分解函数组{g0,g1}、{g2,g3}、...、{g2n-2,g2n-1}。然后,如图33所示,将各分解函数组合成为一个,用n个分解函数f0、f1、...、fn-1表示。这里,各分解函数是用(式14)或(式15)那样的逻辑式表示的3变量输入3变量输出逻辑函数。
(式14)
f 0 = [ c out ( 0 ) , S 1 , S 0 ]
=[a1b1∨(a1∨b1)(a0b0∨a0cin∨b0cin),
a1b1(a0b0∨a0cin∨b0cin),a0b0cin]
(式15)
f i = [ c out ( i ) , S 2 i + 1 , S 2 i ]
Figure A20048000878300502
Figure A20048000878300503
(i=1,2,...,n-1)
各分解函数fi的真值表如图34所示。将图35的真值表存储到逻辑函数存储器4-0的第1页,并将图36的真值表(LUT)存储到逻辑函数存储器4-0~4-3的第0页。这里,S2i、S2i+1、cout (i)(i∈{1,2,...,n-1})各自将逻辑函数存储器的输出比特分配,以分别输入到连接电路5-(i+1)的各输入线i2、i3、i4
各输入选择存储器3-0~3-3的第0页上分别存储0比特移位、5比特移位、9比特移位、13比特移位的信息,且第p页(1≤p≤[(n-1)/4])上分别存储16p+1比特移位、16p+5比特移位、16p+9比特移位、16p+13比特移位的信息。
连接存储器6-0的第0页上作为连接信息存储移位8比特的信息。连接存储器6-1~6-3的第0页上作为连接信息存储移位4比特的信息。并且,各连接存储器6-0~6-3的第k页(1≤p≤[(n-1)/4])上作为连接信息存储移位4比特的信息。但是,连接存储器6-α(α=n mod 4)的第[n/4]页的连接信息是用以输出最后级的分解函数的输出变量(5比特)的连接信息,因此该页上存储移位5比特的信息。还有,移位4比特、5比特、8比特时,作为连接信息在连接存储器的各页上分别存储(s3,s2,s1,s0)=(0,1,0,0)、(s3,s2,s1,s0)=(0,1,0,1)、(s3,s2,s1,s0)=(1,0,0,0)。例如,n=13的场合,连接存储器6的内容如下表5所示。
(表5)
  页   连接存储器6-0   连接存储器6-1   连接存储器6-2   连接存储器6-3
  0   (1,0,0,0)   (0,1,0,0)   (0,1,0,0)   (0,1,0,0)
  1   (0,1,0,0)   (0,1,0,0)   (0,1,0,0)   (0,1,0,0)
  2   (0,1,0,0)   (0,1,0,0)   (0,1,0,0)   (0,1,0,0)
  3   (0,1,0,0)   (0,1,0,1)
在区域指定存储器8-0的第0页中,作为区域指定变量先存储1。另外,在区域指定存储器8-1~8-3的第0页中,作为区域指定变量先存储0。还有,在区域指定存储器8-0~8-3的第k页(1≤p≤[(n-1)/4])中,作为区域指定变量先存储0。例如,n=13的场合,连接存储器6的内容如以下表6所示。
(表6)
  页   连接存储器6-0     连接存储器6-1   连接存储器6-2     连接存储器6-3
  0   1     0   0     0
  1   0     0   0     0
  2   0     0   0     0
  3   0
如上述那样编程的状态下,以下,说明可编程序逻辑装置的运算处理。还有,以下说明中,为了简明采用n=5。
首先,输入变量寄存器1中输入变量A、B、cin。并且,运算步进寄存器61中存储有n=5。而且,运算控制部10首先将步进计数器62的计数值i复位为n=5,并将页计数器63的计数值k复位到0。还有,约翰逊计数器69也复位到0。从而,运算控制部10的页计数器63,作为输入选择存储器3-0~3-3、连接存储器6-0~6-3以及区域指定存储器8-0~8-3的页选择号pr设定第0页。
另外,输入变量选择电路2-0~2-3根据输入各控制线的输入选择信息,将输入端子in(00)~in(x-1)中的8个端子电连接到输出端子out(00)~out(07)。
具体地说,输入选择存储器3-0将in(00)~in(07)连接到out(00)~out(07),输入选择存储器3-1移位5比特,并将in(05)~in(12)连接到out(00)~out(07),输入选择存储器3-2移位9比特,并将in(09)~in(16)连接到out(00)~out(07),输入选择存储器3-3移位13比特,并将in(13)~in(20)连接到out(00)~out(07)。
另外,连接存储器6-0~6-3分别将写入到第0页的连接信息(s3 (0),...,s0 (0)输出给连接电路5-0~5-3的各控制线上。连接电路5-0~5-3根据从各控制线输入的连接信息(s3 (0),...,s0(0)),将输入线i8~i15与输出线o0~o7连接。具体地说,连接电路5-0移位8比特,并将i8~i15分别连接到o0~o7,将i0~i7分别连接到o8~o15。另外,连接存储器6-1~6-3移位4比特,并将i4~i11分别连接到o0~o7,将i12~i15、i0~i3分别连接到o8~o15
另外,区域指定存储器8-0~8-3分别将写入到第0页的区域指定变量向逻辑函数存储器4-0~4-3的地址解码器16输出。从而,逻辑函数存储器4-0成为可访问1页的状态,逻辑函数存储器4-1~4-3成为可访问1页的状态。
接着,运算控制部10通过输入变量寄存器1进行输入变量X的输出。这时,如表7所示,输入变量选择电路2-1~2-3的输入端子上分别输入输入变量的值。
(表7)
  i(00)     i(01)     i(02)     i(03)     i(04)     i(05)     i(06)     i(007)     i(08)
  cin     a1     a0     b1     b0     a3     a2     b3     b2
  i(09)     i(10)     i(11)     i(12)     i(13)     i(14)     i(15)     i(16)     i(17)
  a5     a4     b5     b4     a7     a6     b7     b6     a9
  i(18)     i(19)     i(20)
  a10     b9     b10
输入变量选择电路2-0输出(out(00),out(01),out(02),out(03),out(04))=(cin,a1,a0,b1,b0),并将它输入连接电路5-0的输入线(i8,i9,i10,i11,i12)。另外,因不使用输出out(05)~out(07)而省略。连接电路5-0移位8比特,并将它们输出给输出线(o0,o1,o2,o3,o4)。这样,输入变量(cin,a1,a0,b1,b0)输入到逻辑函数存储器4-0。
接着,运算控制部10的输出控制器64设定CE0为“1”,然后进行逻辑函数存储器4-0的数据输出,同时将ADSP0设为“1”,对逻辑函数存储器4-0内部的地址寄存器制定地址(i0,i1,i2,i3,i4,i5,i6,i7)=(cin,a1,a0,b1,b0,-,-,-)。这里,“-”表示无关(可为0或1)。地址制定后,输出控制器64将ADSP0设为“0”。
地址制定后,逻辑函数存储器4-0的输出端子上出现在第1页存放的LUT(LUT1)的地址(cin,a1,a0,b1,b0,-,-,-)中存储的真值f0(cin,a1,a0,b1,b0)的值(-,-,S0,S1,cout (0),-,-,-),它会输出到连接电路5-1。即,连接电路5-1的各输入线(i0,i1,i2,i3,i4,i5,i6,i7)上输入(-,-,S0,S1,cout (0),-,-,-)。
另一方面,输入变量选择电路2-1输出(out(00),out(01),out(02),out(03))=(a3,a2,b3,b2),使之输入连接电路5-1的输入线(i8,i9,i10,i11)。
从连接电路5-1分别输出表8的值。
(表8)
    o0     o1     o2     o3     o4     o5     o6     o7
    cout (0)     -     -     -     a3     a2     b3     b2
    o8     o9     o10     o11     o12     o13     o14     o15
    -     -     -     -     -     -     S0     S1
连接电路5-1的输出线o8~o15作为外部输出线7-1被取出。因而,运算结果S0、S1输出给外部输出线7-1中的两个。
接着,运算控制部10的步进计数器62将计数值i更新为i-1=4。然后,运算控制部10的输出控制器64设定CE1为“1”,然后进行逻辑函数存储器4-1的数据输出,同时将ADSP1设为“1”,对逻辑函数存储器4-1内部的地址寄存器制定地址(i0,i1,i2,i3,i4,i5,i6,i7)=(cout (0),-,-,-,a3,a2,b3,b2)。地址制定后,输出控制器64将ADSP1设为“0”。而且,第0级的逻辑函数存储器4-0的输出值已被地址寄存器取得,因此输出控制器64将CE0设为“0”,停止逻辑函数存储器4-0的输出。
地址制定后,逻辑函数存储器4-1的输出端子上出现在第0页存放的LUT(LUT0)的地址(cout (0),-,-,-,a3,a2,b3,b2)中存储的真值f1(cout (0),a3,a2,b3,b2)的值(-,-,S2,S3,cout (1),-,-,-),它会输出到连接电路5-2。即,连接电路5-2的各输入线(i0,i1,i2,i3,i4,i5,i6,i7)上输入(-,-,S2,S3,cout (1),-,-,-)。
另一方面,输入变量选择电路2-2输出(out(00),out(01),out(02),out(03))=(a5,a4,b5,b4),使之输入连接电路5-2的输入线(i8,i9,i10,i11)。
从连接电路5-2分别输出表9的值。
(表9)
o0     o1     o2     o3     o4     o5     o6     o7
cout (1)     -     -     -     a5     a4     b5     b4
o8     o9     o10     o11     o12     o13     o14     o15
-     -     -     -     -     -     S2     S3
连接电路5-2的输出线o8~o15作为外部输出线7-2被取出。因而,运算结果S2、S3输出给外部输出线7-1中的两根。
以下同样地,在逻辑函数存储器4-2、逻辑函数存储器4-3中也进行运算。然后,逻辑函数存储器4-2的运算结果S4,S5输出给外部输出线7-3中的2根输出线。并且,逻辑函数存储器4-3的输出值(-,-,S6,S7,cout (3),-,-,-)反馈给连接电路5-0的输入线i0~i7
接着,运算控制部10的步进计数器62将计数值i更新为i-1=1。这里,由于逻辑函数存储器4-3中的运算处理结束,页计数器63使该计数值k仅加1,并将该计数值k输出给计数信号pk。
伴随这种情况,输入选择存储器3、连接存储器6及区域指定存储器8的访问页变更,因此来自这些存储器的输出也变更。具体地说,从输入选择存储器3-0输出的移位量的信息变更为17比特移位。并且,从连接存储器5-0输出的连接信息变更为(s3,s2,s1,s0)=(0,1,0,0),且从连接存储器5-1输出的连接信息变更为(s3,s2,s1,s0)=(0,1,0,1)。而且,区域指定存储器8-0输出的区域指定变量p(pp=1)的值变更为0,逻辑函数存储器4-0成为可访问0页的状态。
从而,逻辑函数存储器4-3的运算结果S6、S7输出给外部输出线7-0中的两根。
而且,与上述情况同样,逻辑函数存储器4-0中进行运算处理,逻辑函数存储器4-0的输出值(-,-,S8,S9,cout (4),-,-,-)输入到连接电路5-1的输入线i0~i7。连接电路5-1将它移位5比特,然后将(S8,S9,cout (4))输出给输出线(o13,o14,o15)。从而,逻辑函数存储器4-0的运算结果(S8,S9,cout (4))输出给外部输出线7-1中的3根输出线。以上,所有的运算结果输出给输出线7-0~7-3后运算结束。
[例2结束]
还有,上述[例2]中,假定输入各级的LUT的输入变量X0、X1,...,Xs-1彼此不具有公共元素(即,Xi∪Xi=φ(i≠j)),但本发明的可编程序逻辑装置也可在输入变量X0、X1,...,Xs-1中任意2个具有公共元素的场合使用。
(实施例8)
图37表示本发明实施例8的可编程序逻辑装置整体结构的框图。
本实施例的第一特征在于:除选择输入到连接电路5-0~5-3的输入变量的输入变量选择电路2-0~2-3以外,设有不经连接电路5-0~5-3,选择直接输入逻辑函数存储器4-0~4-3的输入变量的输入变量选择电路80-0~80-3以及存储该输入选择信息的输入选择存储器81-1~81-3。其第二特征在于:使从前级的逻辑函数存储器4-(i-1)(i∈{1,2,3})输入到后级的逻辑函数存储器4-i的中间变量的一部分,不经连接电路5-i而直接输入。
通过这样的结构,能够减少连接电路5-0~5-3的输入线的个数。结果,能够将连接电路5-0~5-3小型化。另外,在连接电路5-0~5-3由图4所示的移位电路构成时,能够减小移位器的级数,并可达成运算速度的高速化。
(实施例9)
图38表示本发明实施例9的可编程序逻辑装置整体结构的框图。
本实施例的特征在于:在反馈用的连接电路的输入侧,具备将最后级的逻辑函数存储器4-3的多个输出暂时存储,并向反馈用的连接电路5-0输出的中间变量寄存器82。
实施例7中,作为逻辑函数存储器4-0~4-3,采用与时钟同步动作的同步的存储器。但是,逻辑函数存储器4-0~4-3并不受限于同步的存储器,可采用非同步动作的存储器。
但是,由于最后级的逻辑函数存储器4-3的输出反馈给最前级的逻辑函数存储器4-0的输入端,因而逻辑函数存储器4-0~4-3采用非同步的存储器时,可发生因不同场合而引起振荡等未预料的动作。
因此,本实施例中,具备中间变量寄存器82,每结束一个运算循环的运算,就确定一次逻辑函数存储器4-0~4-3的输出值,并将逻辑函数存储器4-3输出的中间变量的值存储在中间变量寄存器82中。然后,转移到下一个运算循环,将中间变量寄存器82中存储的中间变量的值输入逻辑函数存储器4-0后进行运算处理。
从而,在逻辑函数存储器4-0~4-3上采用非同步的存储器时,也能防止发生振荡等。
(实施例10)
图39表示本发明实施例10的可编程序逻辑装置的整体结构。本实施例的可编程序逻辑装置由运算部85和s个(s≥2)的输出电路86-1~86-5构成。本实施例的可编程序逻辑装置中,最大s个的运算可用流水线处理来进行。因而,图39中采用设有s个输出电路86的结构。但是,输出电路86的数量可根据需要减少。
图40是表示本发明实施例10的可编程序逻辑装置的运算部85的结构的框图。图40中,输入变量寄存器1、输入变量选择电路2-0~2-(s-1)(s≥3)、输入选择存储器3-0~3-(s-1)、逻辑函数存储器4-0~4-(s-1)、连接电路5-0~5-(s-1)、连接存储器6-0~6-(s-1)、外部输出线7-1~7-s及运算控制部10与图1相同,采用相同标记。
本实施例的可编程序逻辑装置中,s个(s≥2)逻辑函数存储器4-i(i=0,...,s-1)串联连接。在第i-1级(i∈{1,...,s-1})的逻辑函数存储器4-(i-1)和第i级的逻辑函数存储器4-i之间,依次连接了连接电路5-i、存储地址寄存器(memory address register:以下称为“MAR”)90-i及随机访问选择器(direct access selector:以下称为“DAS”)91-i。并且,最前级的逻辑函数存储器4-0的输入侧连接有DAS91-0。
输入选择电路2-0的输出线全部与最前级的DAS91-0的输入线连接。输入选择电路2-i(i∈{1,...,s-1})的输出线的一部分与逻辑函数存储器4-i的输入线的一部分连接,其它部分与MAR90-i的输入线的一部分连接。
最前级的逻辑函数存储器4-0的输入线的全部与DAS91-0的输出线连接。另外,其以外的逻辑函数存储器4-i(i∈{1,...,s-1})的输入线全部与配置在它前级的DAS91-i的各输出线连接。
最后级的逻辑函数存储器4-(s-1)的输出线的全部与外部输出线7-s连接。另外,其以外的逻辑函数存储器4-i(i∈{0,...,s-2))的输出线的全部与连接电路5-(i+1)的输入线的一部分连接。
各逻辑函数存储器4-0~4-s具备电源控制端子PW。当电源控制端子PW上输入了1时,各逻辑函数存储器4-i(i∈{0,...,s-1})成为激发状态(wake-up mode)。PW上输入0时,各逻辑函数存储器4-i成为低耗电状态(low-power mode)。各逻辑函数存储器4-0~4-s的电源控制端子PW上分别从外部输入电源控制信号φ0~φs-1。通过该电源控制信号φ0~φs-1,进行对各逻辑函数存储器4-0~4-s的电源控制。使用所有的逻辑函数存储器通过流水线处理来执行多个作业时,该电源控制信号φ0~φs-1常时输入1。另一方面,其它场合,对照作业的流程,输入多相时钟的电源控制信号φ0~φs-1。从而,只将执行运算处理的逻辑函数存储器设为激发状态,其它的设为低耗电状态而达成减少耗电。
连接电路5-i(i∈{1,...,s-1})的输入线中,与输入选择电路2-0的输出线连接的输入线以外的输入线与逻辑函数存储器4-(i-1)的输出线连接。另外,连接电路5-i的输出线的一部分与MAR90-i连接,其它的输出线与外部输出线7-i连接。另外,对于连接电路5-i将在后面详述。
MAR90-i(i∈{1,...,s-1})暂时保持从多个输入线(数据输入线)输入的变量值。MAR90-i还具有中间变量寄存器的功能。MAR90-i的输入线的一部分与输入选择电路2-i的输出线的一部分连接,其它的输入线与连接电路5-i的输出线的一部分连接。MAR90-i的输出线全部与DAS91-i的输入线的一部分连接。
并且,MAR90-i包括外部时钟输入线、复位输入线及旁路控制输入线。外部时钟输入线上从外部被输入时钟信号(clock)。另外,复位输入线及旁路控制输入线上,从运算控制部10分别被输入复位信号(reset signal)、旁路控制信号(by-pass)。还有,该MAR90-i具有取得到逻辑函数存储器的输入并暂时保持的中间变量寄存器的功能。这种情况下,输入外部时钟输入线的时钟信号成为数据选通脉冲信号。对于MAR90-i将在后面详述。
DAS91-i(i∈{0,...,s-1})为了从外部对逻辑函数存储器4-i直接写入数据或进行逻辑函数存储器4-i的测试而设置。DAS91-i设有与逻辑函数存储器4-i的输入线(数据输入线)相同数量的2输入1输出的多路转换器(以下称为“MUX”)。各MUX的输出端子与逻辑函数存储器4-i的各输入线连接。各MUX的两个输入端子之一个端子(0侧输入端子)与外部地址输入线101-i连接。并且,另一端子(1侧输入端子)与MAR90-i的输出线(一部分直接与输入选择电路2-i的输出线)连接。各MUX的选择控制端子与选择控制线102连接。选择控制线102上从运算控制部10输入DAS选择控制信号(DAS select)。各MUX在DAS选择控制信号为0时选择0侧输入端子,而DAS选择控制信号为1时选择1侧输入端子。
外部地址输入线101-i上,当直接访问逻辑函数存储器4-i时,被输入想要访问的地址。设DAS选择控制信号为0,并对外部地址输入线101-i输入地址,从而能够直接访问逻辑函数存储器4-i。利用该功能,能够对逻辑函数存储器4-i写入数据,或进行对逻辑函数存储器4-i的测试。
另外,本实施例中,连接存储器6-i(i∈{1,...,s-1})存储表示连接信息的连接变量外,还存储区域指定变量。连接信息是在两个逻辑函数存储器4-(i-1)、4-i之间,用以选择与后级的逻辑函数存储器4-i的各输入线连接的前级的逻辑函数存储器4-(i-1)的输出线或外部输入线的信息。另外,区域指定变量是用以指定逻辑函数存储器4-(i-1)、4-i的存储区域的变量。因而,连接存储器6-i还具备区域指定存储部件的功能。对于这些情况将在后面详细说明。
图41表示图40的连接电路与存储地址寄存器(MAR)的结构。连接电路5-i包括存储器包装移位器(memory packing shifter:以下称为“MPS”)92及路线选择器(rail selector)93。
MPS92具备k个输入线(数据输入线)、与输入线同数量(k个)的输出线(数据输出线)以及移位控制线。MPS92的各输入线与前级的逻辑函数存储器4的各输出线连接。MPS92的移位控制线上输入从连接存储器6-i输出的区域指定变量R的一部分R1(以下称为“列选择变量”)。列选择变量R1是在取得从前级的逻辑函数存储器4-(i-1)内的存储单元读出的数据之一部分时,确定所取得的数据被存放的存储单元的列方向的区域的变量。MPS92将从逻辑函数存储器4-(i-1)的各输出线输入的变量Yi={yi}的顺序,仅移位由列选择变量R1指定的量,然后输出给输出线。从而,MPS92能够从前级的逻辑函数存储器4-(i-1)的输出变量选择必要的变量。
路线选择93具备多个2输入1输出的多路转换器(以下称为“MUX”)93a。各MUX93a具备一个输出端子、一个输入端子(数据输入端子)及一个选择控制输入端子。
各MUX93a的选择控制输入端子上输入从连接存储器6-i输出的各连接变量。各MUX93a根据输入选择控制输入端子的连接变量的值,选择0侧输入端子或1侧输入端子。
各MUX93a的输出端子与MAR90-i的输入线连接。各MUX93a的一个输入端子(0侧输入端子)与输入选择电路2-i的各输出线连接。还有,输入选择电路2-i的输出线的一部分不经MUX93a而直接连接到MAR90-i的输入线。
这些MUX93a分为页/输入变量选择组93b和前级输出变量/输入变量选择组93c两个集。
页/输入变量选择组93b的各MUX93a的1侧输入端子上输入从连接存储器6-i输出的区域指定变量R的剩余部分R2(以下称为“行指定变量”)。行指定变量R2是用以在访问后级的逻辑函数存储器4-i内的存储单元时,确定所访问的存储单元的行方向的区域的变量。页/输入变量选择组93b的各MUX93a选择行指定变量或输入变量之一,然后输出给MAR90-i的输入线。这样,通过设置页/输入变量选择组93b的各MUX93a,能够使行指定变量的比特数可变。
前级输出变量/输入变量选择组93c的各MUX93a的1侧输入端子与MPS92的各输出线连接。前级输出变量/输入变量选择组93c的各MUX93a选择前级的逻辑函数存储器4-(i-1)输出的输出变量中由MPS选择的变量,或输入变量的任一个,然后输出给MAR90-i的输入线。
MAR90-i具有排列多个由同步型D触发器(以下称为“DFF”)90a和旁路选择电路90b构成的组的结构。各DFF90a具备数据输入端子(D)、数据输出端子(Q)、时钟端子(LOAD)及复位端子(RST)。并且,各旁路选择电路90b由2输入1输出的多路转换器构成。
DFF90a的时钟端子(LOAD)上被输入来自外部的时钟信号(clock)。还有,该时钟信号成为数据选通脉冲信号。DFF90a的复位端子(RST)上被输入运算控制部10输出的复位信号(reset)。
DFF90a的数据输入端子(D)由旁路选择电路90b的1侧输入端子和旁路线90c来连接。并且,DFF90a的数据输出端子(Q)与旁路选择电路90b的0侧输入端子连接。各DFF90a的数据输入端子与前级的连接电路5-i的各输出线(路线选择器93的各输出线或输入变量选择电路2-i)连接。
旁路选择电路90b的选择控制输入端子上被输入运算控制部10输出的旁路控制信号。旁路选择电路90b根据该旁路控制信号,选择0侧输入端子或1侧输入端子。
DFF90a中的一部分的数据输出端子与后级的DAS91-i连接,剩余部分的数据输出端子与外部输出线7-i连接。这种情况下,与页/输入变量选择组93b的各MUX93a连接的DFF90a,或与输入变量选择电路2-i的输出线直接连接的DFF90a,连接到后级的DAS91-i。与前级输出变量/输入变量选择组93c的各MUX93a连接的DFF90a,其一部分与后级的DAS91-i连接,剩余部分与外部输出线7-i连接。
图42表示本发明实施例10的可编程序逻辑装置的输出电路86-i(i∈{1,...,s})的结构。输出电路86-i包括:输出选择电路94、输出移位器95、输出包装移位器96、输出选择存储器97、输出包装寄存器98以及输出寄存器99。
输出选择电路94基于从运算控制部10输出的步进变量(step)的值,选择输出到外部输出线7-1~7-s的输出变量Y1~Ys中任一个。然后,将选择的输出变量Yi输出给输出移位器95。输出移位器95上被输入来自输出选择电路94的输出变量Yi。输出移位器95使输出变量Yi移位,并输出给输出包装移位器96。
输出包装移位器96具备多根数据输入线和多根数据输出线。该数据输入线的一部分连接到输出移位器95的输出线,剩余的连接到后述的输出包装寄存器98的输出线。输出包装移位器96的输出线与输出包装寄存器的输入线连接。输出包装移位器96的输入线的数量是输出移位器95的输出线的数量与输出包装寄存器98的输出线的数量之和。另一方面,输出包装移位器96的输出线的数量与输出包装寄存器98的输出线的数量相同。
输出包装移位器96使输入线只移位预定的量,将它的一部分连接到输出线上。当移位量为0时,连接到输出包装寄存器98的输出线的输入线连接到输出包装移位器96的输出线上。
输出选择存储器97中存储与输出移位器95及输出包装移位器96的移位量相关的信息。输出选择存储器97根据从运算控制部10输入的页变量,将这些移位量信息输出给输出移位器95及输出包装移位器96。输出移位器95及输出包装移位器96根据该移位量信息移位。
输出包装寄存器98根据从外部输入的时钟,将输出包装移位器96的输出锁存。输出包装寄存器98的输出输出给输出寄存器99,同时反馈给输出包装移位器96的输入侧。由这种结构,可将对外部输出线70-i依次输出的输出变量无间隙地按序装入输出包装寄存器98中。
输出寄存器99在所有的运算结束的时刻从运算控制部10输入输出加载信号(O_load)时,取得输出包装寄存器98的输出并加以保持。
以下,就如上构成的本实施例的可编程序逻辑装置的的动作进行说明。
图43~图45是实施例10的可编程序逻辑装置的运算处理动作的流程图。这里,就逻辑函数存储器4的级数为5级(s=5)的例子进行说明。还有,这里φ0~φ5是5相时钟。另外,DAS选择控制信号设定为1。因而,DAS91-0~91-4选择来自前级的输入值,然后传送给后级的逻辑函数存储器4。
在初始状态下,所有逻辑函数存储器4-0~4-4处于低耗电状态。
首先,如图43(a)所示,输入变量X从外部输入线输入到输入变量寄存器1。输入变量寄存器1取得并保持输入变量X。输入变量X从输入变量寄存器1输出到各输入变量选择电路2-0~2-4。各输入选择电路2-i(i∈{0,1,2,3,4})根据输入选择存储器3-i的输出值,从输入变量X中选择输入到第i级的逻辑函数存储器4-i的输入变量Xi
输入选择存储器2-0将输入变量X0输出给逻辑函数存储器4-0的输入线。输入选择存储器2-i(i∈{1,2,3,4})使输入变量Xi输入连接电路5-i的输入线。
接着,如图43(b)所示,输入逻辑函数存储器4-0的电源控制端子PW的电源控制信号φ0成为1。从而,逻辑函数存储器4-0成为激发状态。然后,从逻辑函数存储器4-0的输出线输出第1级的LUT的运算结果。还有,图43~45中,加阴影的逻辑函数存储器表示激发状态的逻辑函数存储器。
连接电路5-1根据连接存储器6-1的输出,使逻辑函数存储器4-0的输出线及输入变量选择电路2-1的输出线连接到MAR90-1的输入线。因此,第1级的LUT的运算结果的一部分作为输出变量Y1输出给外部输出线7-1。另外,其它变量作为中间变量U1输出给MAR90-1的输入线。另外,输入变量X1也输出给MAR90-1的输入线。
接着,在时钟clk的上升沿,MAR90-1取得中间变量U1和输入变量X1并加以保持。因此,电源控制信号φ0成为0,且逻辑函数存储器4-0再次成为低耗电状态。与此同时,这次如图44(a)所示,电源控制信号φ1成为1,逻辑函数存储器4-1成为激发状态。因此,从逻辑函数存储器4-1的输出线输出第2级的LUT的运算结果。连接电路5-2根据连接存储器6-2的输出,使逻辑函数存储器4-1的输出线及输入变量选择电路2-2的输出线连接到MAR90-2的输入线。因此,第2级的LUT的运算结果的一部分作为输出变量Y2输出给外部输出线7-2。另外,其它变量作为中间变量U2输出给MAR90-2的输入线。并且,输入变量X2也输出给MAR90-2的输入线。
以下,同样地,按图44(b)、图45(a)、图45(b)的顺序进行运算,然后所有的运算结束。
这样,只让用于运算的逻辑函数存储器处于激发状态而执行运算,而让未使用的其它逻辑函数存储器处于低耗电状态,从而能够抑制整个电路的耗电。
还有,这里说明了只执行1个任务的动作,但本实施例的可编程序逻辑装置可用流水线处理执行多个任务。从而,可高效率地对多个任务进行运算处理。
另外,设所有的逻辑函数存储器4-0~4-(s-1)为激发状态,并将输入到MAR90-i(i∈{1,...,s-1})的旁路控制信号设为1,从而,能够不采用时钟而以非同步模式高速进行运算处理。
接着,就采用区域指定变量R和MPS92的逻辑函数存储器4-i(i∈{0,...,s-1})的存储器包装方法进行说明。
图46是存储器包装的概念的说明图。图46(a)、图46(b)表示逻辑函数存储器的存储映像。
实施例1表示的可编程序逻辑装置中,各逻辑函数存储器能够通过切换页来存储多个逻辑函数的LUT。将它示意表示时成为如图46(a)所示。图46中,作为页指定比特,分配逻辑函数存储器的行地址的上位2比特。这样,逻辑函数存储器被划分为4页。因此,在每页存放LUT时,最低能够存放4个LUT。另外,在1个LUT不使用行内所有的列地址的场合,可在1页内存放多个LUT。
例如,图46(a)中,在第2页存放逻辑函数f2、f6及f7的3个LUT。另外,在第3页存放f3及f8两个LUT。
但是,该方法中,逻辑函数存储器的内部中未使用的区域会分散,存储器使用效率低。于是,如图46(b)所示,在逻辑函数存储器内尽量无间隙地装入LUT时,会提高存储器使用效率。因而,能够增加可在一个逻辑函数存储器内存放的LUT的数量。这样,将逻辑函数存储器内尽可能无间隙地存放LUT的情况称为“存储器包装”。
为了实现如上述那样的存储器包装,需要使页指定比特的数可变。另外,需要可从任意位置读出逻辑函数存储器内的列地址。
图41所示的本实施例的连接电路5-i(i∈{1,...,s-1})可进行这样的存储器包装。首先,页指定通过连接存储器6-i输出的行指定变量R2来进行。另外,作为页指定比特,利用几比特由连接存储器6-i输出的连接变量中输入页/输入变量选择组93b的MUX93a的变量来指定。在图41的例中,作为页指定比特最大可使用3比特(还有,这并不限于3比特,可根据目的设计为任意比特)。不作为页指定比特使用时,可输入该比特的输入变量以作替代。
接着,用MPS92进行逻辑函数存储器内的列地址的读出位置的变更。例如,在前级的逻辑函数存储器4-(i-1)的指定行中,要在列方向每隔8比特读出时,用MPS92将逻辑函数存储器4-(i-1)的输出移位8比特。从而,能够从任意位置读出逻辑函数存储器内的列地址。还有,列地址的读出位置的指定通过连接存储器6-i输出的列选择变量R1来进行。
如上所述,使用本实施例的连接电路5-i(i∈{1,...,s-1})能够实现存储器包装。
最后,就图42所示的输出电路86-i的动作进行简单说明。首先,运算控制部10将输出输出变量Yi的逻辑函数存储器4-(i-1)的级数(i-1)作为步进变量(step)输出给输出电路86-i。输出选择94基于该步进变量(step)的值,选择输出变量Yi。被选择的输出变量Yi输出给输出移位器95的输入线。
另一方面,输出选择存储器97基于步进变量(step)的值,输出与输出移位器95及输出包装移位器96的移位量相关的信息。
通常,没有必要利用输出变量Yi的所有比特,只有其一部分的比特上输出有效的输出变量。因此,输出移位器95根据从输出选择存储器97输入的移位量信息,将输出变量Yi移位。从而,除输出变量Yi的未使用比特以外,可将变量从端的比特装入。输出移位器95的输出向输出包装移位器96的输入线输出。
输出包装移位器96还使输入线移位预定的量,将它的一部分连接到输出线上。例如,设从输出移位器95输出的输出变量Yi的有效比特数为r比特。这种情况下,输出包装移位器96将输入线仅移位r比特而连接到输出线。从而,从输出移位器95输出的r比特的输出变量刚好装入输出包装寄存器98的输入线的下位r比特的范围。输出包装寄存器98与时钟clk同步,并将输出包装移位器96的输出值保持。
接着,步进变量(step)成为i,当输出选择器94选择输出变量Yi+1时,同样地,对输出包装寄存器98的输入线的下位比特输出输出变量。这时,事先在输出包装寄存器98中保持的变量值反馈到输出包装移位器96的输入线上。因而,事先在输出包装寄存器98中保持的变量值也与新输出变量移位相同比特数后输入到输出包装寄存器98中。然后,输出包装寄存器98与时钟clk同步,并保持输出包装移位器96的输出值。
这样,输出变量依次无间隙地装入输出包装移位器96中。因此,在运算结束的时刻,运算控制部10将输出加载信号(O_load)设为1。从而,输出寄存器99取得输出包装移位器96的输出值并加以存储,然后输出给外部。
如此,使用本实施例的输出电路,能够将从各逻辑函数存储器分别输出的运算结果包装,并集中后输出。
(实施例11)
图47表示本发明实施例11的可编程序逻辑装置的结构。本实施例的可编程序逻辑装置的基本结构与实施例10的可编程序逻辑装置相同,但与实施例10的不同点在于本实施例中s个(s≥2)的逻辑函数存储器4-0~4-(s-1)环状连接。即,逻辑函数存储器4-(s-1)的后级上设有连接电路5-s、MAR90-s、DAS91-s,DAS91-s的输出线与逻辑函数存储器4-0的输入线连接。
这样,通过将逻辑函数存储器4-0~4-(s-1)环状连接,能够将用该可编程序逻辑装置能够执行的LUT级联的级数大于s级。因而,LUT级联的设计自由度增大。
例如,考虑s=2的场合。利用该两个逻辑电路存储器4-0、4-1实现4级的LUT级联。如图48所示,可将第1级的LUT存放在逻辑电路存储器4-0的0页(图48(a));将第2级的LUT存放在逻辑电路存储器4-1的0页(图48(b));将第3级的LUT存放在逻辑电路存储器4-0的1页(图48(c));将第4级的LUT存放在逻辑电路存储器4-1的1页(图48(d))。还有,虽然这里将页固定,但为了提高逻辑电路存储器的存储器使用效率,能够采用上述的存储器包装的方法。
另外,采用将该逻辑电路存储器环状连接的可编程序逻辑装置,如以下的[例3]所示,能够用一个可编程序逻辑装置同时执行2个以上的组合逻辑电路的运算。
[例3]
可考虑由式16、式17表示的两个逻辑函数f、g。
(式16)
f=((x1∨x2)x3∨x4)x5∨x6
(式17)
g=((x4x5∨x6)x1∨x2)x3
(式16)的逻辑函数f能够用如图49(a)所示的6级的LUT级联来表现。(式17)的逻辑函数g能够用如图49(b)所示的6级的LUT级联来表现。
于是,利用将6个逻辑电路存储器环状连接的可编程序逻辑装置实现该两个LUT级联。这种情况下,如图50所示,使逻辑函数f的LUT级联的各级的输入变量和逻辑函数g的LUT级联的各级的输入变量重复地互相错开配置。
然后,将该两个LUT级联合成到如图51所示的一个LUT环上。从而,用一个LUT环表现两个组合逻辑电路。因此,如果将该LUT环存放在各逻辑函数存储器中,能够用一个可编程序逻辑装置同时执行两个组合逻辑电路f、g的运算。
[例3结束]
工业上的利用可能性
如上所述,依据本发明,利用连接电路和连接存储器,根据各目标逻辑函数,能够再构成前级的逻辑函数存储器的输出线及输入变量的输入线与后级的逻辑函数存储器的输入线的连接关系。从而,增加可使用的逻辑函数的路线数及输入变量个数的组合自由度。因此,能够用一个LUT级联逻辑电路设计更多的目标逻辑函数的逻辑电路。另外是,由于能够将路线数及输入变量的数量组合最优化,能够极力减少逻辑函数存储器的输入线数。因此,也提高存储器的使用效率。结果,提高了LSI芯片的利用效率。因而,能够达成电路的小型化及高集成化。
另外,连接电路能够将前级的逻辑函数存储器的输出端连接到输出逻辑函数的运算结果的外部输出线。从而,取出LUT级联中途的逻辑函数存储器的输出作为输出变量,能够削减必要的存储器量,且能够达到运算速度的高速化。
另外,各逻辑函数存储器中,对多个目标逻辑函数分配逻辑函数的LUT的不同存储区域,且通过有选择地切换按区域指定存储部件的输出可访问的存储区域,能够执行多个目标逻辑函数的运算。
还有,能够用各输入变量选择电路个别地选择输入各连接电路及各逻辑函数存储器的输入变量。因而,能够同时进行多个逻辑函数存储器的运算,且可进行流水线处理。

Claims (13)

1.一种可编程序逻辑装置,其特征在于包含以下结构:
用以存储逻辑函数的查阅表的、串联编号排列的逻辑函数存储器;
输入对于所述各逻辑函数存储器的输入变量的多个外部输入线;
存储连接信息的连接存储器,所述连接信息用以在两个所述逻辑函数存储器之间,选择从前级的所述逻辑函数存储器的输出线或者所述外部输入线中连接到后级的所述逻辑函数存储器的各输入线的线;以及
在两个所述逻辑函数存储器之间,可根据所述连接存储器的输出,进行前级的所述逻辑函数存储器的输出线或所述外部输入线和后级的所述逻辑函数存储器的输入线的连接关系的再构成的连接电路。
2.一种可编程序逻辑装置,其特征在于包含以下结构:
用以存储逻辑函数的查阅表的环状排列的逻辑函数存储器;
输入对于所述各逻辑函数存储器的输入变量的多个外部输入线;
存储连接信息的连接存储器,所述连接信息用以在两个所述逻辑函数存储器之间,选择从前级的所述逻辑函数存储器的输出线或者所述外部输入线中连接到后级的所述逻辑函数存储器的各输入线的线;以及
在两个所述逻辑函数存储器之间,可根据所述连接存储器的输出,进行前级的所述逻辑函数存储器的输出线或所述外部输入线和后级的所述逻辑函数存储器的输入线的连接关系的再构成的连接电路。
3.如权利要求1或权利要求2所述的可编程序逻辑装置,其特征在于:
设有用以将逻辑函数的运算结果向外部电路输出的外部输出线;
所述连接存储器存储用以在两个所述逻辑函数存储器之间选择前级的所述逻辑函数存储器的输出线中连接到所述外部输出线的输出线的连接信息;
所述连接电路在两个所述逻辑函数存储器之间,根据所述连接存储器的输出进行前级的所述逻辑函数存储器的输出线和所述外部输出线的连接。
4.如权利要求1至权利要求3中任一项所述的可编程序逻辑装置,其特征在于:
设有存储对逻辑函数存储器的存储区域进行指定的区域指定变量的区域指定存储部件;
所述连接电路在两个所述逻辑函数存储器之间,根据区域指定存储部件的输出,进行前级的所述逻辑函数存储器的输出线、外部输入线及区域指定存储部件的输出线与后级的所述逻辑函数存储器的输入线的连接,
以使前级的所述逻辑函数存储器的输出及来自外部输入线的输入变量输入到由区域指定变量确定的后级的所述逻辑函数存储器的存储区域,或者,
来自由区域指定变量确定的前级的所述逻辑函数存储器的存储区域的输出及来自外部输入线的输入变量输入到后级的所述逻辑函数存储器。
5.如权利要求1至权利要求4中任一项所述的可编程序逻辑装置,其特征在于:具备设于所述逻辑函数存储器的输入侧或输出侧,且根据从外部输入的数据选通脉冲信号获取对所述逻辑函数存储器的输入或所述逻辑函数存储器的输出并暂时保持的中间变量寄存器。
6.如权利要求1至权利要求5中任一项所述的可编程序逻辑装置,其特征在于:
设有与所述中间变量寄存器并联的旁路线;以及,
设于所述中间变量寄存器的输出侧,选择所述中间变量寄存器的输出线或所述旁路线中任一方,并输出所选择的线的信号的旁路选择电路。
7.如权利要求5或权利要求6所述的可编程序逻辑装置,其特征在于:
设有对所述数据选通脉冲信号进行计数,并确定执行运算的所述逻辑函数存储器的编号的逻辑函数存储器确定部件。
8.如权利要求5至权利要求7中任一项所述的可编程序逻辑装置,其特征在于:设有控制将执行运算处理的所述逻辑函数存储器设成通常动作状态,并将除此以外的所述逻辑函数存储器设成低耗电状态的电源控制部件。
9.如权利要求1至权利要求8中任一项所述的可编程序逻辑装置,其特征在于:所述各逻辑函数存储器的一部分的输入线不经所述连接电路而直接连接到所述外部输入线。
10.如权利要求1至权利要求9中任一项所述的可编程序逻辑装置,其特征在于:所述各逻辑函数存储器的一部分输出线不经所述连接电路而直接连接到其后级的逻辑函数存储器的一部分输入线。
11.如权利要求1至权利要求10中任一项所述的可编程序逻辑装置,其特征在于:
所述连接电路包含多个选择电路;
所述各选择电路根据所述连接存储器的输出值,选择前级的所述逻辑函数存储器的输出线和所述外部输入线之一,或者选择前级的所述逻辑函数存储器的输出线和所述外部输入线和区域指定存储部件的输出线之一,连接到后级的所述逻辑函数存储器的输入线上。
12.如权利要求1至权利要求11中任一项所述的可编程序逻辑装置,其特征在于:所述连接电路包含根据所述连接存储器的输出值使前级的所述逻辑函数存储器的输出线的连接顺序移位后连接到后级的所述逻辑函数存储器的输入线的移位电路。
13.如权利要求1至权利要求12中任一项所述的可编程序逻辑装置,其特征在于:
所述连接电路包含多个多路转换器;
所述多路转换器根据所述连接存储器的输出值,选择前级的所述逻辑函数存储器的多个输出线及多个所述外部输入线之一后连接到后级的所述逻辑函数存储器的输入线上。
CNB2004800087832A 2003-03-31 2004-03-31 可编程序逻辑装置 Expired - Fee Related CN100468314C (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP093922/2003 2003-03-31
JP93922/2003 2003-03-31
JP2003093922 2003-03-31
JP105762/2003 2003-04-09

Publications (2)

Publication Number Publication Date
CN1768324A true CN1768324A (zh) 2006-05-03
CN100468314C CN100468314C (zh) 2009-03-11

Family

ID=36743348

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004800087832A Expired - Fee Related CN100468314C (zh) 2003-03-31 2004-03-31 可编程序逻辑装置

Country Status (1)

Country Link
CN (1) CN100468314C (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111352878A (zh) * 2018-12-21 2020-06-30 创发信息科技(苏州)有限公司 数字信号处理系统及方法
CN112068467A (zh) * 2020-08-24 2020-12-11 国微集团(深圳)有限公司 数据传输系统、数据存储系统
CN114461174A (zh) * 2022-04-13 2022-05-10 深圳云豹智能有限公司 查找表电路、芯片及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2655177A1 (fr) * 1989-11-24 1991-05-31 Sgs Thomson Microelectronics Circuit de redondance avec memorisation de position de plot de sortie.

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111352878A (zh) * 2018-12-21 2020-06-30 创发信息科技(苏州)有限公司 数字信号处理系统及方法
CN112068467A (zh) * 2020-08-24 2020-12-11 国微集团(深圳)有限公司 数据传输系统、数据存储系统
WO2022041362A1 (zh) * 2020-08-24 2022-03-03 国微集团(深圳)有限公司 数据传输系统、数据存储系统
CN114461174A (zh) * 2022-04-13 2022-05-10 深圳云豹智能有限公司 查找表电路、芯片及电子设备
CN114461174B (zh) * 2022-04-13 2022-06-07 深圳云豹智能有限公司 查找表电路、芯片及电子设备

Also Published As

Publication number Publication date
CN100468314C (zh) 2009-03-11

Similar Documents

Publication Publication Date Title
CN1860441A (zh) 用于可重新配置环境中的高效高性能数据操作元件
CN1186714C (zh) 高基除法器及方法
CN1163781C (zh) 有源矩阵型液晶显示器件的驱动电路
CN1307748A (zh) 多值逻辑电路体系结构:补充对称逻辑电路结构(sus-log)
CN86107558A (zh) 具有带式随机存取存储器和地址发生器装置的单指令多数据单元阵列处理机
CN1647139A (zh) 数据变换装置和数据变换方法
CN1612002A (zh) 输出电路、数字模拟电路和显示装置
CN1681046A (zh) 快闪存储器
CN101040306A (zh) 伪随机数生成装置
CN101040440A (zh) 电平移位器电路、驱动电路及显示装置
CN1263042C (zh) 读取电路、参考电路和半导体存储装置
CN1160704C (zh) 音程变换装置
CN1269052C (zh) 支持缩小代码长度的常量还原型处理器
CN1786968A (zh) Fpga逻辑单元的功能模型和通用性逻辑单元装箱算法
CN1661661A (zh) 显示装置
CN1905075A (zh) 半导体存储器件
CN1310131C (zh) 随机数产生器及产生方法及具有随机位产生器的微处理器
CN1388514A (zh) 显示装置、数字模拟变换电路和数字模拟变换方法
CN1202483C (zh) 半导体存储装置和信息处理单元
CN1505819A (zh) 相联存储器及其检索方法、网络设备及网络系统
CN1748199A (zh) 逻辑运算电路、逻辑运算装置和逻辑运算方法
CN1768324A (zh) 可编程序逻辑装置
CN1099118C (zh) 半导体存储器及其测试电路、存储器系统、和数据传送系统
CN1405703A (zh) 转换器、转换方法、加密/解密系统、程序和记录媒体
CN1737750A (zh) 一种新型的8位risc微控制器构架

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
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: Kitakyushu, Fukuoka, Japan

Patentee after: Public good Kitakyushu Foundation For The

Address before: Kitakyushu, Fukuoka, Japan

Patentee before: Kitakyushu Foundation for the Advancement of Industry, Science and Technology

C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090311

Termination date: 20140331