一种时序逻辑数字电路的设计方法

文档序号:6341816阅读:191来源:国知局
专利名称:一种时序逻辑数字电路的设计方法
技术领域
本发明涉及一种时序逻辑数字电路的设计方法,尤其涉及数字电路中有限状态机的设计,属于数字电路设计技术领域。
背景技术
时序逻辑数字电路的设计中涉及有限状态机的转换,有限状态机一般由以下几种元素组成,即一个时钟信号、一个复位信号、条件的集合、动作的集合、状态的集合有限状态机包含数量有限的状态,这些状态构成该有限状态机的状态集合。在任何一个时钟周期内,有限状态机处于这些状态中的一个、以及转移的集合有限状态机包含数量有限的转移。每个转移都可以用初态,终态,条件和动作来描述。每个初态和条件的组合对应着唯一的终态和动作的组合。换言之,根据有限状态机所处的初态和所输入到有限状态机的条件,都可以找到唯一的动作和终态。
已有技术中有限状态机为串行状态机,其工作原理是在每个时钟周期该状态机都处于某初态,在此时钟周期内输入一个条件,该串行状态机产生一个动作,并将在下一个时钟周期转移到终态。这个过程,也可以简称为处于初态的状态机在接受一个条件,并在该条件的作用下转移到终态,并完成动作。在下一个时钟周期,串行状态机接受下一个输入条件,产生一个动作,然后转移到下一个终态,…,如此循环往复。
只要确定了有限状态机的状态集合和转移规律,有限状态机也就确定了。因此可以用如表1所示的任意两种状态之间转移的索引表(简称状态转移表)和表2所示的状态、动作与条件之间的索引表(简称动作表)来描述任何有限状态机。
表1

表2


上述状态转移表中的每一行对应一个初态,每一列对应一个终态,表的每个元素对应由初态转移到终态的条件集合。动作表的每一行代表一个初态,每一列代表一种动作,表中的每个元素对应着能使状态机在上述初态下产生上述动作的条件集合。例如,表1和表2所示的状态机共有3种状态,记为S1,S2,S3;共有5种条件,记为M1,M2,M3,M4,M5;共有3种动作,记为P1,P2,P3。在表1所示的状态转移表中位于S1所在行,S2所在列的表元素为“M2;M5”,表示当串行状态机的初态为S1,并且输入条件为M2或M5时,其终态为S2,或者说,在M2或者M5的作用下,该有限状态机将由S1转移到S2;而位于S2所在行,S1所在列的表元素为“/”,表示状态机不存在由S2到S1的转移。在表2所示的动作表中,位于S1所在行,P2所在列的表元素为“M2;M5”,表示当状态机处于S1时,如果输入条件M2或者M5,将产生输出P2;而S2所在行,P2所在列的表元素为“/”,表示当状态机处于状态S2时,在任何条件下也不会产生动作P2。
现代数字电路系统为了提高数据速率,往往采用并行技术。

发明内容
本发明的目的是提出一种时序逻辑数字电路的设计方法,将已有数字电路系统中串行状态机转化为并行状态机,以使其适应数字电路系统中的并行技术。
本发明提出的时序逻辑数字电路的设计方法,包括以下步骤(1)设时序逻辑数字电路中共有s种状态,向时序逻辑数字电路输入的条件共有m种,时序逻辑数字电路的动作有p种;(2)建立用以描述上述s种状态中的任意两种状态之间转移的索引表;(3)建立状态、动作与条件之间的索引表。
上述方法中建立状态转移索引表的方法包括以下步骤(1)设时序逻辑数字电路的并行度为L,构造L个矩阵;构造L个矩阵的方法是依次构造第一个矩阵中的各个元素,构造方法为设时序逻辑数字电路在条件T下由状态a转移到状态b,其中T为1~m个条件中的任意一种或多种,则第一个矩阵的第a行,第b列的元素为T,第二个直至第L个矩阵为将第一矩阵中表达元素的符号依次修改,使互相不重复。
(2)对上述L个矩阵进行乘法运算,得到一个乘积矩阵;(3)对上述乘积矩阵中的每个元素依次进行判断,若元素值为0,则状态转移表中的相应位置元素记为“/”,若为多项式,则多项式中的各项为状态转移表中的相应位置元素。
上述方法中,建立状态、动作与条件之间的索引表的方法,包括如下步骤(1)设时序逻辑数字电路的并行度为L,构造L个矩阵;构造L个矩阵的方法是设第一个矩阵为T1,依次构造它的各个元素,其中构造第a行,第b列元素的方法为(T1)a,b=∑SaMa,bPa,b,其中Sa是初始状态,Ma,b是由状态Sa转移到状态Sb的输入条件,Pa,b是状态Sa转移到状态Sb所产生的动作;设第二个矩阵为T2,则它的各个元素为(T2)a,b=∑Ma,bNa,b;第三个直至第L个矩阵为将第2矩阵中表达元素的符号依次修改,使互相不重复。
(2)对上述L个矩阵进行乘法运算,得到一个乘积矩阵;(3)将上述乘积矩阵中的所有元素相加,得到一个多项式,该多项式中含有初态分量、条件序列分量和动作序列分量;(4)将上述多项式中含有相同动作序列分量的项进行合并,再将相同初态分量的项进行合并,得到一个含有动作索引和初态索引的多项式,该多项式中含有条件与动作和状态之间的对应关系。
本发明的提出的时序逻辑数字电路的设计方法,其优点是将已有数字电路系统中的串行状态机转化为并行状态机,使其适应数字电路系统中的并行技术,利用本发明方法可以高效,准确地设计时序逻辑数字电路。
具体实施例方式
本发明提出的时序逻辑数字电路的设计方法,首先设时序逻辑数字电路中共有s种状态,向时序逻辑数字电路输入的条件共有m种,时序逻辑数字电路的动作有p种;建立用以描述上述s种状态中的任意两种状态之间转移的索引表,简称为状态转移表;建立状态、动作与条件之间的索引表,简称为动作表。
上述方法中建立状态转移索引表的方法为设时序逻辑数字电路的并行度为L,构造L个矩阵;构造L个矩阵的方法是依次构造第一个矩阵中的各个元素,构造方法为设时序逻辑数字电路在条件T下由状态a转移到状态b,其中T为1~m个条件中的任意一种或多种,则第一个矩阵的第a行,第b列的元素为T,第二个直至第L个矩阵为将第一矩阵中表达元素的符号依次修改,使互相不重复。对L个矩阵进行乘法运算,得到一个乘积矩阵;对上述乘积矩阵中的每个元素依次进行判断,若元素值为0,则状态转移表中的相应位置元素记为“/”,若为多项式,则多项式中的各项为状态转移表中的相应位置元素。
上述方法中,建立状态、动作与条件之间的索引表的方法为设时序逻辑数字电路的并行度为L,构造L个矩阵;构造L个矩阵的方法是设第一个矩阵为T1,依次构造它的各个元素,其中构造第a行,第b列元素的方法为(T1)a,b=∑SaMa,bPa,b,其中Sa是初始状态,Ma,b是由状态Sa转移到状态Sb的输入条件,Pa,b是状态Sa转移到状态Sb所产生的动作;设第二个矩阵为T2,则它的各个元素为(T2)a,b=∑Ma,bPa,b;第三个直至第L个矩阵为将第二个矩阵中表达元素的符号依次修改,使互相不重复。对L个矩阵进行乘法运算,得到一个乘积矩阵;将乘积矩阵中的所有元素相加,得到一个多项式,该多项式中含有初态分量、条件序列分量和动作序列分量;将多项式中含有相同动作序列分量的项进行合并,再将相同初态分量的项进行合并,得到一个含有动作索引和初态索引的多项式,该多项式中含有条件与动作和状态之间的对应关系。
并行系统中往往需要使用并行状态机。串行状态机每个时钟周期接受一个输入条件信号,进行一次状态转移,并产生一个动作。并行状态机每个时钟周期并行地接受一个长度为L的输入条件序列,进行一次状态转移,并产生一个长度为L的并行动作序列。给定L,每个串行状态机都有其唯一对应的L-并行状态机(L为并行状态机的并行度),使得二者的功能是等效的。所谓功能等效是指,第一,串行状态机与其所对应的L-并行状态机的状态集合是相等的;第二,对于任意给定的长度为L的条件序列,当将此条件序列串行地输入到处于任意初态的串行状态机后,该串行状态机将进行L次状态转移,最后到达终态,并产生一个长度为L的动作序列;当将此条件序列并行输入到与上述串行状态机功能等效的,并处于相同初态的L-并行状态机后,此L-并行状态机将转移到和串行状态机相同的终态,并产生和串行状态机相同的长度为L的并行动作序列。
表3

表4

因为状态机是由其状态转移表和动作表唯一决定的,因此L-并行状态机的设计问题归结为求其状态转移表和动作表的问题。如表3和表4所示,与串行状态机的状态转移表不同,L-并行状态机的状态转移表的每一个元素都是由条件序列构成的;类似地,L-并行状态机的动作表的每一个元素也是由条件序列构成的。比如在表3所示的2-并行状态机的状态转移表中,位于S1所在行,S3所在列的元素是“M2,M3;M5,M3”,这表示当该并行状态机处于初态S1时,在条件序列“M2,M3”或者“M5,M3”的作用下,都会转移到S3。在表4所示的动作表中,位于S1所在行,动作序列“P1,P2”所在列的元素是“M1,M2;M1,M5”,这表示当该2-并行状态机处于状态S1时,只有当条件序列是“M1,M2”或者“M1,M5”时,动作序列是“P1,P2”。
设计L-并行状态机法可以采用穷举法,即列举串行状态机在所有初态和长度为L的条件序列组合下的终态和产生的动作序列,根据功能等效的原则,求出L-并行状态机的状态转移表和动作表。但是这种设计方法效率很低,而且容易出错。
设原始状态机共有s种状态,分别记为S1,S2,…,Ss;m种输入条件,分别记为M1,M2,…,Mm;p种动作,分别记为P1,P2,…,Pp。
为求得L-并行状态机的状态转移表,具体步骤如下。
第1步,构造L个矩阵,其中每个矩阵都有类似的结构,其具体构造如下首先构造第1个矩阵,该矩阵为s×s矩阵。依次构造此矩阵的各个元素。构造第a行,第b列的元素的方法是如果串行状态机存在一些由状态a到状态b的转移,则将此元素写为这些转移的条件之和;如果不存在这样的条件,就将此元素写为0。在构造第2个,第3个,…,第L个矩阵的时候,只需要把构造第1个矩阵时候所使用的英文字母换成另一个英文字母,以保证能将所有L个矩阵区分开。
例如,为了求与表1和表2所描述的串行状态机相应的2-并行状态机的状态转移表,构造第1个矩阵如下M1M2+M500M6M3M40M7]]>从表1可以看出,条件M2和M5都能使串行状态机由状态S1转移到S2,因此上述中矩阵1的第1行,第2列的元素为“M2+M5”。
为保证能将第2个矩阵和第1个矩阵区分开,把第1个矩阵中的M换成N就构成了第2个矩阵N1N2+N500N6N3N40N7]]>第2步,用上述L个矩阵进行乘法运算,得到一个乘积矩阵。乘积矩阵的每一个元素都是一个多项式,其中每一项都是由构造上述矩阵时所使用的不同英文字母的不同次幂构成的。
例如,用上述第1个矩阵和第2个矩阵相乘得到的乘积矩阵为M1N1M1N2+M1N5+M2N6+M5N6M2N3+M5N3M3N4M6N6M6N3+M3N7M4N1+M7N4M4N2+M4N5M7N7]]>乘积矩阵的第2行,第3列上的元素是“M6N3+M3N7”,这表示仅有“M6,M3”和“M3,M7”这样两个条件序列可以使2-并行状态机由S2转移到S3。因此从乘积矩阵就可以求出L-并行状态机的状态转移表。
第3步,由乘积矩阵构造状态转移表。构造的方法是,对上述乘积矩阵中的每个元素依次进行判断,并根据各元素所在的行,列值和矩阵元素中的各项确定状态转移表中的元素,即状态转移表中每个元素是由与之具有相同行列值的乘积矩阵元素决定的。具体的决定方法是,如果上述乘积矩阵元素为0,则状态转移表元素为“/”;如果上述乘积矩阵元素为第1步中所使用的英文字母的构成的多项式,则多项式的每一项都构成状态转移表相应位置元素中的一个条件序列。
例如,在表3中给出了由上述乘积矩阵构造的2-并行状态机的状态转移表。因为上述乘积矩阵中第2行,第3列元素为“M6N3+M3N7”,因此表3中S2所在行,S3所在列的元素为“M6,M3;M3,M7”。
为求得L-并行状态机的动作表,具体步骤如下第1步,构造L个矩阵,其中第2个到第L个矩阵有类似的结构,而第1个矩阵与它们略有差别。具体构造方法如下首先构造第1个矩阵,该矩阵为s×s矩阵。依次构造此矩阵的各个元素。构造第a行,第b列元素的方法是如果串行状态机中不存在任何由状态a到状态b的转移,则该元素为0;否则,该元素是以下3项的乘积之和第1项是初态标记,由任意选择的英文字母和指数组成,其中指数和该元素所在的行号相同;第2项是条件标记,由任意选择(但需要和第1项所使用的英文字母区分开)的英文字母和指数组成,其中指数表示使串行状态机由状态a转移到状态b的条件的序号;第3项是动作标记,由任意选择(但需要和第1,2项所使用的英文字母区分开)的英文字母和指数组成,其中指数表示在上述条件下,串行状态机由状态a转移到状态b时所产生的动作的序号。
然后构造第2个矩阵,该矩阵也为s×s矩阵。依次构造该矩阵的各个元素。构造第a行,第b列元素的方法是如果原始状态机中不存在由状态a到状态b的转移,则该元素为0;否则,该元素是以下两项的乘积之和第1项是条件标记,由任意选择的英文字母(但需要能和构造第1个矩阵时所使用的3个英文字母区分开)和指数组成,其中指数表示使原始状态机由状态a转移到状态b的条件的序号;第2项是动作标记,由任意选择(但需要能和已经选择的4个英文字母区分开)的英文字母和指数组成,其中指数表示在上述条件下,原始状态机由状态a转移到状态b时所产生的动作的序号。
第3,第4,…,第L个矩阵的构造方法和第2个矩阵相同。
例如,为了求与表1和表2所描述的串行状态机相应的2-并行状态机的动作表,构造第1个矩阵如下S1M1P1S1M2P2+S1M5P200S2M6P3S2M3P1S3M4P20S3M7P4]]>从表1可以看出,能使串行状态机由S1转移到S2的动作有两个M2和M5。从表2中可以看出,当串行状态机处于S1时,如果输入M2,会产生动作P2;如果输入M5,也会产生动作P2。因此第1个矩阵处于第1行,第2列的元素是“S1M2P2+S1M5P2”,对于S1M2P2这一项来说,其中S1是初态标记,M2是条件标记,P2是动作标记构造第2个矩阵如下N1Q1N2Q2+N5Q200N6Q3N3Q1N4Q20N7Q4]]>
为了和已经选择的3个英文字母区分开,在构造第2个矩阵的时候选用了英文字母N和Q。
第2步,将上述L个矩阵相乘。
则乘积矩阵的每一个元素是由以下3种分量构成的,即(1)初态分量,是上述第1步中第1个矩阵的初态标记;(2)条件序列分量,是上述第1步中各个矩阵的条件标记的乘积;(3)动作序列分量,是上述第1步中各个矩阵的动作标记的乘积。
其含义为串行状态机从初态分量所指出的状态出发,经过条件序列分量所描述的条件序列,会产生动作序列分量所描述的动作序列。
例如,上述第1个矩阵和第2个矩阵的乘积矩阵为S1M5N6P2Q3+S1M2N6P2Q3S1M1N1P1Q1S1M2N3P2Q1+S1M5N3P2Q1S1M1N2P1Q2+S1M1N5P1Q2S2M3N4P1Q2S2M6N6P3Q3S2M3N7P1Q4+S2M5N1P3Q1S3M7N4P4Q2+S3M4N1P2Q1S3M4N2P2Q2+S3M4N5P2Q2S3M7N7P4Q4]]>乘积矩阵的第1行,第3列上的元素是“S1M2N3P2Q1+S1M5N3P2Q1”。就“S1M2N3P2Q1”这一项来说,S1是初态分量,M2N3是条件序列分量,P2Q1是动作序列分量,该项含义是,串行状态机由S1出发,如果接受“M2,M3”这个条件序列,将产生“P2,P1”这个动作序列。
第3步,将上述第2步得到的乘积矩阵的所有元素相加,得到一个多项式。该多项式的每一项都含有初态分量、条件序列分量和动作序列分量。
第4步,合并第3步中得到的多项式中所有含有相同动作序列分量的项,此动作序列分量称为合并后的项的动作索引。则合并后的项中的初态分量和条件序列分量就代表了所有能产生上述动作序列索引的初态和条件序列的组合。进一步合并含有相同的初态分量的项,此初态分量称为合并后的项的初态索引。这样,对合并后的多项式的每一项,就找到了其初态索引,条件序列分量和动作索引。
经过两次合并后,如下构造L-并行状态机的动作表第一次合并后得到的项数即动作表中的动作索引数。每个动作索引对应动作表的一列。经过第二次合并后,与初态索引和动作索引对应的条件序列分量就构成动作表中和与相应的初态索引和动作索引对应的元素。
例如,对上述乘积矩阵应用上述第3步和第4步中的第一次合并,得到P3Q1S2M6N3+P3Q3S2M6N6+P4Q2S3M7N4+P4Q4M7N7S3+P1Q1S1M1N1+P1Q4S2M3N7+P1Q2(S1M1N2+S1M1N5+S2M3N4)+P2Q3(S1M2N6+S1M5N6)+P2Q2(S3M4N2+S3M4N5)+P2Q1(S1M2N3+S1M5N3+S3M4N1)所得的多项式中含有10项,每项的动作信息分别为“P3Q1”,“P3Q3”,“P4Q2”,“P4Q4”,“P1Q1”,“P1Q4”,“P1Q2”,“P2Q3”,“P2Q2”以及“P2Q1”。
经过第二次合并后,得到P3Q1S2M6N3+P3Q3S2M6N6+P4Q2S3M7N4+P4Q4M7N7S3+P1Q1S1M1N1+P1Q4S2M3N7+P1Q2[S1(M1N2+M1N5)+S2M3N4]+P2Q3[S1(M2N6+M5N6)]+P2Q2[S3(M4N2+M4N5)]+P2Q1[S1(M2N3+M5N3)+S3(M4N1)]与动作索引“P1Q2”和初态索引S1相应的一项为“P1Q2S1(M1N2+M1N5)”,这表示在和表1和表2所描述的串行状态机功能等效的2-并行状态机中,从S1出发时,在两种条件序列下输出动作序列“P1,P2”,即条件序列“M1,M2”和条件序列“M1,M5”。这两个序列就构成了2-并行状态机中与初态S1和动作序列“P1,P2”相应的元素。最后得到的动作表如表4所示。
权利要求
1.一种时序逻辑数字电路的设计方法,其特征在于该方法包括以下步骤(1)设时序逻辑数字电路中共有s种状态,向时序逻辑数字电路输入的条件共有m种,时序逻辑数字电路的动作共有p种;(2)建立用以描述上述s种状态中的任意两种状态之间转移的索引表;(3)建立状态、动作与条件之间的索引表。
2.如权利要求1所述的方法,其特征在于第(2)步建立状态转移索引表的方法包括以下步骤(1)设时序逻辑数字电路的并行度为L,构造L个矩阵;(2)对上述L个矩阵进行乘法运算,得到一个乘积矩阵;(3)对上述乘积矩阵中的每个元素依次进行判断,若元素值为0,则状态转移表中的相应位置元素记为“/”,若为多项式,则多项式中的各项为状态转移表中的相应位置元素。
3.如权利要求2所述的方法,其特征在于第(1)步中构造L个矩阵的方法是依次构造第一个矩阵中的各个元素,构造方法为设时序逻辑数字电路在条件T下由状态a转移到状态b,其中T为1~m个条件中的任意一种或多种,则第一个矩阵的第a行,第b列的元素为T,第二个直至第L个矩阵为将第一矩阵中表达元素的符号依次修改,使互相不重复。
4.如权利要求1所述的方法,其特征在于第(3)步建立状态、动作与条件之间的索引表的方法,包括如下步骤(1)设时序逻辑数字电路的并行度为L,构造L个矩阵;(2)对上述L个矩阵进行乘法运算,得到一个乘积矩阵;(3)将上述乘积矩阵中的所有元素相加,得到一个多项式,该多项式中含有初态分量、条件序列分量和动作序列分量;(4)将上述多项式中含有相同动作序列分量的项进行合并,再将相同初态分量的项进行合并,得到一个含有动作索引和初态索引的多项式,该多项式中含有条件与动作和状态之间的对应关系。
5.如权利要求4所述的方法,其特征在于第(1)步中构造L个矩阵的方法是设第一个矩阵为T1,依次构造它的各个元素,其中构造第a行,第b列元素的方法为(T1)a,b=∑SaMa,bPa,b,其中Sa是初始状态,Ma,b是由状态Sa转移到状态Sb的输入条件,Pa,b是状态Sa转移到状态Sb所产生的动作;设第二个矩阵为T2,则它的各个元素为(T2)a,b=∑Ma,bPa,b;第三个直至第L个矩阵为将第2矩阵中表达元素的符号依次修改,使互相不重复。
全文摘要
本发涉及一种时序逻辑数字电路的设计方法,属于数字电路设计技术领域。本方法首先设时序逻辑数字电路中共有s种状态,向时序逻辑数字电路输入的条件共有m种,时序逻辑数字电路的动作有p种;建立用以描述上述s种状态中的任意两种状态之间转移的索引表;建立状态、动作与条件之间的索引表。本发明方法的优点是将已有数字电路系统中的串行状态机转化为并行状态机,使其适应数字电路系统中的并行技术,利用本发明方法可以高效,准确地设计时序逻辑数字电路。
文档编号G06F7/00GK1553577SQ20031012172
公开日2004年12月8日 申请日期2003年12月19日 优先权日2003年12月19日
发明者曾烈光, 金德鹏, 刘昭 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1