CN107809235B - 用于转换规范rm逻辑电路的方法 - Google Patents

用于转换规范rm逻辑电路的方法 Download PDF

Info

Publication number
CN107809235B
CN107809235B CN201710969513.7A CN201710969513A CN107809235B CN 107809235 B CN107809235 B CN 107809235B CN 201710969513 A CN201710969513 A CN 201710969513A CN 107809235 B CN107809235 B CN 107809235B
Authority
CN
China
Prior art keywords
product
term
value
item set
variable
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.)
Expired - Fee Related
Application number
CN201710969513.7A
Other languages
English (en)
Other versions
CN107809235A (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.)
Zhejiang Wanli University
Original Assignee
Zhejiang Wanli University
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 Zhejiang Wanli University filed Critical Zhejiang Wanli University
Priority to CN201710969513.7A priority Critical patent/CN107809235B/zh
Publication of CN107809235A publication Critical patent/CN107809235A/zh
Application granted granted Critical
Publication of CN107809235B publication Critical patent/CN107809235B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种用于转换规范RM逻辑电路的方法,首先对待转换电路类型是布尔逻辑电路和RM逻辑电路进行判定,然后针对不同类型的待转换电路类型,通过简单的相交运算,仅操作乘积项对函数表达式中含有的乘积项进行更新,得到中间非规范RM逻辑函数表达式所包含的乘积项,然后再对中间非规范RM逻辑函数表达式所包含的乘积项进行变量文字位替换操作,转换得到目标规范RM逻辑表达式;优点是不需要对乘积项进行最小项展开或者不相交乘积项处理,有效降低了计算复杂度及内存占用量,且计算时间对输入变量的数量不敏感而仅与乘积项数量以及相交性有关,能快速处理大规模变量的规范RM逻辑电路的转换,转换过程简单,转换速度快。

Description

用于转换规范RM逻辑电路的方法
技术领域
本发明涉及一种转换RM逻辑电路的方法,尤其是涉及一种转换规范RM逻辑电路的方法。
背景技术
二值数字逻辑电路既可表示为与-或(AND-OR)形式的布尔逻辑,也可以表示为与-异或(AND-EXOR)形式的Reed-Muller(RM)逻辑。研究发现,算术电路、通信电路和奇偶校验电路等采用RM逻辑实现的电路相比采用传统布尔逻辑实现的电路具有面积、功耗、速度和可测性等方面的显著优势;此外,新兴的可逆逻辑和量子电路上的综合优化问题可以方便地映射到RM逻辑域上进行预处理。因此,RM逻辑在当前低功耗集成电路设计和未来量子可逆电路设计领域得到了广泛的应用
不管是布尔逻辑函数还是RM逻辑函数,乘积项中的每个变量都存在三种形式:原变量“x”形式、反变量
Figure GDA0002781516360000011
形式和常量“1”形式(不出现)。例如,逻辑函数中含有的某4个变量的乘积项
Figure GDA0002781516360000012
其中变量x4以原变量出现,变量x2和x1以反变量出现,而变量x3则不出现在该乘积项中。目前,对于规范RM逻辑电路(即RM逻辑函数表达式)具有如下定义,某个变量在所有乘积项中以原变量或常量出现,称该变量被正极性化,极性为“0”;某个变量在所有乘积项中以反变量或常量出现,称该变量被负极性化,极性为“1”;某个变量在所有乘积项中以原变量或反变量出现,称该变量被双极性化,极性为“2”。常见的规范RM逻辑电路有:正极性RM(PPRM),函数表达式中所有变量都被正极性化;固定极性RM(FPRM),函数表达式中所有变量要么被正极性化要么被负极性化;混合极性RM(MPRM),函数表达式中所有变量任意选择三种极性化方式。一个含n个输入变量的RM逻辑函数表达式有唯一的PPRM、2n种FPRM(2n个极性)和3n种MPRM(3n个极性),它们的集合满足:
Figure GDA0002781516360000013
RM极性决定了RM逻辑电路的复杂程度。例如,某含4个变量的逻辑函数f(x4,x3,x2,x1)的规范RM逻辑函数表达式为
Figure GDA0002781516360000014
其中
Figure GDA0002781516360000015
表示EXOR操作,对应的极性向量为P=(0,1,2,1),即极性-16;如果采用极性向量P=(2,0,2,1),即极性-60,那么,该RM逻辑函数表达式表示成
Figure GDA0002781516360000021
当输入变量数为20时,RM逻辑函数的极性数量达到几十亿之多。
目前很多研究人员通过将布尔逻辑电路转换为规范RM逻辑电路,以及将一规范RM逻辑电路转换为另一规范RM逻辑电路来实现电路优化,而主要侧重于研究固定极性RM逻辑电路间的转换且没有涉及任意RM逻辑电路(包含非规范RM逻辑电路)到规范RM逻辑电路的转换。国内、外学者提出了一些规范RM逻辑电路的转换方法,如列表技术、并行列表技术、基于不相交乘积项的列表技术、二进制决定图法(Binary decision diagram,BDD)、系数表映射法和系数矩阵法等方法。对于基于不相交乘积项的列表技术,其额外的不相交乘积项的计算开销增大了转换难度;对于除基于不相交乘积项的列表技术外的其余方法,它们的计算复杂度和内存占用量都不可避免地与逻辑函数的输入变量规模呈指数关系。由此,现有的这些转换方法都比较复杂,且都难以真正满足大规模变量的规范RM逻辑电路的快速转换需求。
发明内容
本发明所要解决的技术问题是提供一种转换过程简单,转换速度快的用于转换规范Reed-Muller逻辑电路的方法。
本发明解决上述技术问题所采用的技术方案为:一种用于转换规范RM逻辑电路的方法,包括以下步骤:
①根据待转换电路,判定该待转换电路的类型是布尔逻辑电路和RM逻辑电路,布尔逻辑电路对应的逻辑函数表达式为
Figure GDA0002781516360000022
RM逻辑电路对应的逻辑函数表达式为
Figure GDA0002781516360000023
其中函数表达式中,xn,xn-1,…,xk,…,x1为函数f的n个输入变量,k为整数且1≤k≤n,Σ为或逻辑运算符号,
Figure GDA0002781516360000024
为异或逻辑运算符号,ci为f的第i个乘积项,i为整数且1≤i≤3n
Figure GDA0002781516360000025
Figure GDA0002781516360000026
为变量文字,表示第k个输入变量xk在乘积项ci中的出现形式,
Figure GDA0002781516360000031
Figure GDA0002781516360000032
时,第k个输入变量xk在乘积项ci中以原变量出现,当
Figure GDA0002781516360000033
时,第k个输入变量xk在乘积项ci中以反变量出现,当
Figure GDA0002781516360000034
时,第k个输入变量xk在乘积项ci中不出现,bi为乘积项系数,bi∈{0,1},当bi=0时,乘积项ci在f中不存在,当bi=1时,乘积项ci在f中存在;
②采用待转换电路对应的函数表达式中所有存在的乘积项组成第一个乘积项集合,将该第一个乘积项集合记为C,第一个乘积项集合C中包含的乘积项的数量记为m,m为整数且1≤m≤3n,定义第二个乘积项集合,将该第二个乘积项集合记为S,第二个乘积项集合S在初始状态为空集合;
③如果待转换电路类型被判定为布尔逻辑电路,则按照以下步骤对第二个乘积项集合S进行第一轮更新:
A.从第一个乘积项集合C中任选一个未被选取过的乘积项,将该乘积项记为cj,其中1≤j≤m;
B.判定当前的第二个乘积项集合S是否为空集合:如果是,则将第一个乘积项集合C中选取的乘积项cj复制到第二个乘积项集合S中,如果否,定义第三个乘积项集合,将该第三个乘积项集合记为S′,第三个乘积项集合S′的初始状态为空集合,并将第一个乘积项集合C中选取的乘积项cj与第二个乘积项集合S中已经存在的所有乘积项依次进行相交运算,具体过程为:
B-1.统计当前第二个乘积项集合S中的乘积项数量,并记为T,将当前第二个乘积项集合S中的第t个乘积项记为st,t=1,2,…,T,定义一个新乘积项π,令该新乘积项
Figure GDA0002781516360000035
B-2.依次将乘积项cj的第h位变量文字与乘积项st的第h位变量文字进行相交运算,其中h=1,2,…,n,具体过程为:
B-2-1.将乘积项cj的第h位变量文字记为
Figure GDA0002781516360000036
将乘积项st的第h位变量文字记为
Figure GDA0002781516360000041
Figure GDA0002781516360000042
Figure GDA0002781516360000043
的关系进行判定:
如果
Figure GDA0002781516360000044
时,那么令
Figure GDA0002781516360000045
如果
Figure GDA0002781516360000046
Figure GDA0002781516360000047
或者
Figure GDA0002781516360000048
Figure GDA0002781516360000049
那么令
Figure GDA00027815163600000410
如果
Figure GDA00027815163600000411
Figure GDA00027815163600000412
或者
Figure GDA00027815163600000413
Figure GDA00027815163600000414
那么令
Figure GDA00027815163600000415
如果是其他情况,那么令
Figure GDA00027815163600000416
B-2-2.判定
Figure GDA00027815163600000417
是否为
Figure GDA00027815163600000418
如果是,那么不再进行cj与st后续对应位的变量文字的相交运算,如果否,继续进行cj与st后续对应位的变量文字的相交运算;
B-2-3.判定cj中的第1位变量文字~第n位变量文字与乘积项st的第1位变量文字~第n位变量文字是否都进行了相交运算,如果是,则π是有效乘积项,将π保存到第三个乘积项集合S′中,如果否,则π是无效乘积项,删除乘积项π;
B-3.乘积项cj与第二个乘积项集合S中第一个乘积项s1~第T个乘积项sT都进行了相交运算后,第三个乘积项集合S′更新完成,此时将第三个乘积项集合S′中所有的乘积项与第一个乘积项集合C中选取的乘积项cj保存到第二个乘积项集合S中;
B-4.清空第三个乘积项集合S′中所有的乘积项,第三个乘积项集合S′被更新为空集合;
B-5.查找当前第二个乘积项集合S中存在至少两个的乘积项,如果该乘积项的数量为偶数,则将其全部删除,如果该乘积项的数量为奇数,则保留一个,将其他的删除;
B-6.判定第一个乘积项集合C中所有的乘积项是否都与当前第二个乘积项集合S中的所有乘积项进行了相交运算,如果是,则第二个乘积项集合S的第一轮更新完毕,如果否,则按照步骤B-1~B-5的方法从第一个乘积项集合C中任选的一个未被选取过的乘积项与当前第二个乘积项集合S中已经存在的所有乘积项依次进行相交运算,直至第二个乘积项集合S的第一轮更新完毕;
如果待转换电路类型被判定为RM逻辑电路,则将第一个乘积项集合C中所有的乘积项复制到第二个乘积项集合S中,得到更新后的第二个乘积项集合S;
④定义一个初始极性向量,将该初始极性向量记为P,令P=pnpn-1…pk…p1,其中pk∈{0,1,2};如果待转换电路类型被判定为布尔逻辑电路或者非规范RM逻辑电路,那么初始极性向量P的第r位pr=2,r=1,2,…,n;如果待转换电路类型被判定为规范RM逻辑电路,则直接将该待转换的规范RM逻辑电路的极性值赋予该初始极性向量P;
定义一个用于保存目标极性值的目标极性向量,将该目标极性向量记为P′,令P′=p′np′n-1…p′k…p′1,其中p′k∈{0,1,2};将设定好的需要转换得到的目标规范RM逻辑电路的极性值赋予该目标极性向量P′;
⑤对第一轮更新后得到的第二个乘积项集合S进行第二轮更新,具体过程为:
a.统计当前第二个乘积项集合S中乘积项的数量,并将其数量记为L;
b从第二个乘积项集合S中任选一个乘积项,将该乘积项记为sl,将乘积项sl中的第u位变量文字记为
Figure GDA0002781516360000051
其中,u=1,2,…,n,l为整数且1≤l≤L;
c.判定初始极性向量P的第u位极性pu与目标极性向量P′的第u位极性p′u是否相等,如果相等,则乘积项sl中的第u位变量文字
Figure GDA0002781516360000052
保持不变,如果不相等,则按照以下规则对乘积项sl中的第u位变量文字
Figure GDA0002781516360000053
进行更新:
当pu=2,p′u=0时,如果
Figure GDA0002781516360000054
则采用‘–’更新
Figure GDA0002781516360000055
的值,如果
Figure GDA0002781516360000056
则采用‘0’更新
Figure GDA0002781516360000057
的值,如果
Figure GDA0002781516360000058
Figure GDA0002781516360000059
的值保持不变;
当pu=2,p′u=1时,如果
Figure GDA00027815163600000510
则采用‘1’更新
Figure GDA00027815163600000511
的值,如果
Figure GDA00027815163600000512
则采用‘–’更新
Figure GDA00027815163600000513
的值,如果
Figure GDA00027815163600000514
则采用‘0’更新
Figure GDA00027815163600000515
的值;
当pu=0,p′u=2时,如果
Figure GDA00027815163600000516
则采用‘–’更新
Figure GDA00027815163600000517
的值,如果
Figure GDA00027815163600000518
则采用‘0’更新
Figure GDA00027815163600000519
的值,如果
Figure GDA00027815163600000520
Figure GDA00027815163600000521
的值保持不变;
当pu=0,p′u=1时,如果
Figure GDA00027815163600000522
则采用‘–’更新
Figure GDA00027815163600000523
的值,如果
Figure GDA00027815163600000524
则采用‘1’更新
Figure GDA0002781516360000061
的值,如果
Figure GDA0002781516360000062
Figure GDA0002781516360000063
的值保持不变;
当pu=1,p′u=2时,如果
Figure GDA0002781516360000064
则采用‘–’更新
Figure GDA0002781516360000065
的值,如果
Figure GDA0002781516360000066
则采用‘0’更新
Figure GDA0002781516360000067
的值,如果
Figure GDA0002781516360000068
则采用‘1’更新
Figure GDA0002781516360000069
的值;
当pu=1,p′u=0时,如果
Figure GDA00027815163600000610
则采用‘–’更新
Figure GDA00027815163600000611
的值,如果
Figure GDA00027815163600000612
则采用‘1’更新
Figure GDA00027815163600000613
的值,如果
Figure GDA00027815163600000614
Figure GDA00027815163600000615
的值保持不变;
d.按照步骤c的规则完成乘积项sl中n位变量文字的更新,即完成乘积项sl的更新;
e.按照步骤c和d的方法依次完成第二个乘积项集合S中剩余乘积项的更新,直至第二个乘积项集合S中所有的乘积项更新完成,得到第二轮更新后的第二个乘积项集合S;
⑥找出当前第二个乘积项集合S中所有的包含至少一个取值为“-”的变量文字的乘积项,将这些乘积项依次按照以下规则进行替换处理:统计待替换的乘积项中含有的取值为“-”的变量文字的数量,将其数量记为G,每个取值为“-”的变量文字均存在“0”和“1”两种替换值,即每个取值为“-”的变量文字存在两种替换情况,那么存在G个取值为“-”的变量文字的待替换的乘积项存在2G种替换情况,即存在G个取值为“-”的变量文字的待替换的乘积项被替换为2G个新的乘积项;
⑦按照步骤⑥的规则完成当前第二个乘积项集合S中所有的包含至少一个取值为“-”的变量文字的乘积项的替换,得到替换后的第二个乘积项集合S;
⑧查找当前第二个乘积项集合S中存在至少两个的乘积项,如果该乘积项的数量为偶数,则将其全部删除,如果该乘积项的数量为奇数,则保留一个,将其他的删除,将此时得到的第二个乘积项集合S作为目标规范RM逻辑电路对应的乘积项集合,根据该乘积项集合即可得到转换后的目标规范RM逻辑电路。
与现有技术相比,本发明的优点在于与现有技术相比,本发明的优点在于通过对待转换电路类型是布尔逻辑电路和RM逻辑电路进行判定,然后针对不同类型的待转换电路类型,通过简单的相交运算,仅操作乘积项对函数表达式中含有的乘积项进行更新,得到中间非规范RM逻辑函数表达式所包含的乘积项,然后再对中间非规范RM逻辑函数表达式所包含的乘积项进行变量文字位替换操作,转换得到目标规范RM逻辑表达式,本发明的方法避免了以往规范RM逻辑表达式式转化过程中需要对乘积项进行最小项展开或者需要对乘积项进行不相交乘积项处理等方式,有效降低了计算复杂度及内存占用量,且计算时间对输入变量的数量不敏感而仅与乘积项数量以及相交性有关,能快速处理大规模变量的规范RM逻辑电路的转换,转换过程简单,转换速度快,能处理布尔逻辑电路、非规范RM逻辑电路和规范RM逻辑电路到规范RM逻辑电路的转换。
具体实施方式
以下结合实施例对本发明作进一步详细描述。
实施例:一种用于转换规范RM逻辑电路的方法,包括以下步骤:
①根据待转换电路,判定该待转换电路的类型是布尔逻辑电路和RM逻辑电路,布尔逻辑电路对应的逻辑函数表达式为
Figure GDA0002781516360000071
RM逻辑电路对应的逻辑函数表达式为
Figure GDA0002781516360000072
其中函数表达式中,xn,xn-1,…,xk,…,x1为函数f的n个输入变量,k为整数且1≤k≤n,Σ为或逻辑运算符号,
Figure GDA0002781516360000073
为异或逻辑运算符号,ci为f的第i个乘积项,i为整数且1≤i≤3n
Figure GDA0002781516360000074
Figure GDA0002781516360000075
为变量文字,表示第k个输入变量xk在乘积项ci中的出现形式,
Figure GDA0002781516360000076
Figure GDA0002781516360000077
时,第k个输入变量xk在乘积项ci中以原变量出现,当
Figure GDA0002781516360000078
时,第k个输入变量xk在乘积项ci中以反变量出现,当
Figure GDA0002781516360000079
时,第k个输入变量xk在乘积项ci中不出现,bi为乘积项系数,bi∈{0,1},当bi=0时,乘积项ci在f中不存在,当bi=1时,乘积项ci在f中存在;
②采用待转换电路对应的函数表达式中所有存在的乘积项组成第一个乘积项集合,将该第一个乘积项集合记为C,第一个乘积项集合C中包含的乘积项的数量记为m,m为整数且1≤m≤3n,定义第二个乘积项集合,将该第二个乘积项集合记为S,第二个乘积项集合S在初始状态为空集合;
③如果待转换电路类型被判定为布尔逻辑电路,则按照以下步骤对第二个乘积项集合S进行第一轮更新:
A.从第一个乘积项集合C中任选一个未被选取过的乘积项,将该乘积项记为cj,其中1≤j≤m;
B.判定当前的第二个乘积项集合S是否为空集合:如果是,则将第一个乘积项集合C中选取的乘积项cj复制到第二个乘积项集合S中,如果否,定义第三个乘积项集合,将该第三个乘积项集合记为S′,第三个乘积项集合S′的初始状态为空集合,并将第一个乘积项集合C中选取的乘积项cj与第二个乘积项集合S中已经存在的所有乘积项依次进行相交运算,具体过程为:
B-1.统计当前第二个乘积项集合S中的乘积项数量,并记为T,将当前第二个乘积项集合S中的第t个乘积项记为st,t=1,2,…,T,定义一个新乘积项π,令该新乘积项
Figure GDA0002781516360000081
B-2.依次将乘积项cj的第h位变量文字与乘积项st的第h位变量文字进行相交运算,其中h=1,2,…,n,具体过程为:
B-2-1.将乘积项cj的第h位变量文字记为
Figure GDA0002781516360000082
将乘积项st的第h位变量文字记为
Figure GDA0002781516360000083
Figure GDA0002781516360000084
Figure GDA0002781516360000085
的关系进行判定:
如果
Figure GDA0002781516360000086
时,那么令
Figure GDA0002781516360000087
如果
Figure GDA0002781516360000088
Figure GDA0002781516360000089
或者
Figure GDA00027815163600000810
Figure GDA00027815163600000811
那么令
Figure GDA00027815163600000812
如果
Figure GDA00027815163600000813
Figure GDA00027815163600000814
或者
Figure GDA00027815163600000815
Figure GDA00027815163600000816
那么令
Figure GDA00027815163600000820
如果是其他情况,那么令
Figure GDA00027815163600000817
B-2-2.判定
Figure GDA00027815163600000818
是否为
Figure GDA00027815163600000819
如果是,那么不再进行cj与st后续对应位的变量文字的相交运算,如果否,继续进行cj与st后续对应位的变量文字的相交运算;
B-2-3.判定cj中的第1位变量文字~第n位变量文字与乘积项st的第1位变量文字~第n位变量文字是否都进行了相交运算,如果是,则π是有效乘积项,将π保存到第三个乘积项集合S′中,如果否,则π是无效乘积项,删除乘积项π;
B-3.乘积项cj与第二个乘积项集合S中第一个乘积项s1~第T个乘积项sT都进行了相交运算后,第三个乘积项集合S′更新完成,此时将第三个乘积项集合S′中所有的乘积项与第一个乘积项集合C中选取的乘积项cj保存到第二个乘积项集合S中;
B-4.清空第三个乘积项集合S′中所有的乘积项,第三个乘积项集合S′被更新为空集合;
B-5.查找当前第二个乘积项集合S中存在至少两个的乘积项,如果该乘积项的数量为偶数,则将其全部删除,如果该乘积项的数量为奇数,则保留一个,将其他的删除;
B-6.判定第一个乘积项集合C中所有的乘积项是否都与当前第二个乘积项集合S中的所有乘积项进行了相交运算,如果是,则第二个乘积项集合S的第一轮更新完毕,如果否,则按照步骤B-1~B-5的方法从第一个乘积项集合C中任选的一个未被选取过的乘积项与当前第二个乘积项集合S中已经存在的所有乘积项依次进行相交运算,直至第二个乘积项集合S的第一轮更新完毕;
如果待转换电路类型被判定为RM逻辑电路,则将第一个乘积项集合C中所有的乘积项复制到第二个乘积项集合S中,得到更新后的第二个乘积项集合S;
④定义一个初始极性向量,将该初始极性向量记为P,令P=pnpn-1…pk…p1,其中pk∈{0,1,2};如果待转换电路类型被判定为布尔逻辑电路或者非规范RM逻辑电路,那么初始极性向量P的第r位pr=2,r=1,2,…,n;如果待转换电路类型被判定为规范RM逻辑电路,则直接将该待转换的规范RM逻辑电路的极性值赋予该初始极性向量P;
定义一个用于保存目标极性值的目标极性向量,将该目标极性向量记为P′,令P′=p′np′n-1…p′k…p′1,其中p′k∈{0,1,2};将设定好的需要转换得到的目标规范RM逻辑电路的极性值赋予该目标极性向量P′;
⑤对第一轮更新后得到的第二个乘积项集合S进行第二轮更新,具体过程为:
a.统计当前第二个乘积项集合S中乘积项的数量,并将其数量记为L;
b从第二个乘积项集合S中任选一个乘积项,将该乘积项记为sl,将乘积项sl中的第u位变量文字记为
Figure GDA0002781516360000101
其中,u=1,2,…,n,l为整数且1≤l≤L;
c.判定初始极性向量P的第u位极性pu与目标极性向量P′的第u位极性p′u是否相等,如果相等,则乘积项sl中的第u位变量文字
Figure GDA0002781516360000102
保持不变,如果不相等,则按照以下规则对乘积项sl中的第u位变量文字
Figure GDA0002781516360000103
进行更新:
当pu=2,p′u=0时,如果
Figure GDA0002781516360000104
则采用‘–’更新
Figure GDA0002781516360000105
的值,如果
Figure GDA0002781516360000106
则采用‘0’更新
Figure GDA0002781516360000107
的值,如果
Figure GDA0002781516360000108
Figure GDA0002781516360000109
的值保持不变;
当pu=2,p′u=1时,如果
Figure GDA00027815163600001010
则采用‘1’更新
Figure GDA00027815163600001011
的值,如果
Figure GDA00027815163600001012
则采用‘–’更新
Figure GDA00027815163600001013
的值,如果
Figure GDA00027815163600001014
则采用‘0’更新
Figure GDA00027815163600001015
的值;
当pu=0,p′u=2时,如果
Figure GDA00027815163600001016
则采用‘–’更新
Figure GDA00027815163600001017
的值,如果
Figure GDA00027815163600001018
则采用‘0’更新
Figure GDA00027815163600001019
的值,如果
Figure GDA00027815163600001020
Figure GDA00027815163600001021
的值保持不变;
当pu=0,p′u=1时,如果
Figure GDA00027815163600001022
则采用‘–’更新
Figure GDA00027815163600001023
的值,如果
Figure GDA00027815163600001024
则采用‘1’更新
Figure GDA00027815163600001025
的值,如果
Figure GDA00027815163600001026
Figure GDA00027815163600001027
的值保持不变;
当pu=1,p′u=2时,如果
Figure GDA00027815163600001028
则采用‘–’更新
Figure GDA00027815163600001029
的值,如果
Figure GDA00027815163600001030
则采用‘0’更新
Figure GDA00027815163600001031
的值,如果
Figure GDA00027815163600001032
则采用‘1’更新
Figure GDA00027815163600001033
的值;
当pu=1,p′u=0时,如果
Figure GDA00027815163600001034
则采用‘–’更新
Figure GDA00027815163600001035
的值,如果
Figure GDA00027815163600001036
则采用‘1’更新
Figure GDA00027815163600001037
的值,如果
Figure GDA00027815163600001038
Figure GDA00027815163600001039
的值保持不变;
d.按照步骤c的规则完成乘积项sl中n位变量文字的更新,即完成乘积项sl的更新;
e.按照步骤c和d的方法依次完成第二个乘积项集合S中剩余乘积项的更新,直至第二个乘积项集合S中所有的乘积项更新完成,得到第二轮更新后的第二个乘积项集合S;
⑥找出当前第二个乘积项集合S中所有的包含至少一个取值为“-”的变量文字的乘积项,将这些乘积项依次按照以下规则进行替换处理:统计待替换的乘积项中含有的取值为“-”的变量文字的数量,将其数量记为G,每个取值为“-”的变量文字均存在“0”和“1”两种替换值,即每个取值为“-”的变量文字存在两种替换情况,那么存在G个取值为“-”的变量文字的待替换的乘积项存在2G种替换情况,即存在G个取值为“-”的变量文字的待替换的乘积项被替换为2G个新的乘积项;
⑦按照步骤⑥的规则完成当前第二个乘积项集合S中所有的包含至少一个取值为“-”的变量文字的乘积项的替换,得到替换后的第二个乘积项集合S;
⑧查找当前第二个乘积项集合S中存在至少两个的乘积项,如果该乘积项的数量为偶数,则将其全部删除,如果该乘积项的数量为奇数,则保留一个,将其他的删除,将此时得到的第二个乘积项集合S作为目标规范RM逻辑电路对应的乘积项集合,根据该乘积项集合即可得到转换后的目标规范RM逻辑电路。
采用MCNC基准电路作为测试电路,采用C语言实现本发明的方法,在硬件环境为
Figure GDA0002781516360000111
Pentium Dual E2200 2.20GHz CPU、3GB RAM的PC机,软件环境为Windows XPProfessional操作系统下,用Visual Studio2008对本发明的方法和现有的转换方法分别进行测试,其实验对比数据如表1所示。
表1
Figure GDA0002781516360000112
Figure GDA0002781516360000121
从表1中可以看出,对于大部分测试电路,本发明的方法处理时间是毫秒级,甚至可以快速转换含199个输入变量的逻辑函数,远快于现有最好技术。

Claims (1)

1.一种用于转换规范RM逻辑电路的方法,其特征在于包括以下步骤:
①根据待转换电路,判定该待转换电路的类型是布尔逻辑电路和RM逻辑电路,布尔逻辑电路对应的逻辑函数表达式为
Figure FDA0002781516350000011
RM逻辑电路对应的逻辑函数表达式为
Figure FDA0002781516350000012
其中函数表达式中,xn,xn-1,…,xk,…,x1为函数f的n个输入变量,k为整数且1≤k≤n,ci为f的第i个乘积项,i为整数且1≤i≤3n,Σ为或逻辑运算符号,
Figure FDA0002781516350000013
为异或逻辑运算符号,
Figure FDA0002781516350000014
Figure FDA0002781516350000015
为变量文字,表示第k个输入变量xk在乘积项ci中的出现形式,
Figure FDA0002781516350000016
Figure FDA0002781516350000017
时,第k个输入变量xk在乘积项ci中以原变量出现,当
Figure FDA0002781516350000018
时,第k个输入变量xk在乘积项ci中以反变量出现,当
Figure FDA0002781516350000019
时,第k个输入变量xk在乘积项ci中不出现,bi为乘积项系数,bi∈{0,1},当bi=0时,乘积项ci在f中不存在,当bi=1时,乘积项ci在f中存在;
②采用待转换电路对应的函数表达式中所有存在的乘积项组成第一个乘积项集合,将该第一个乘积项集合记为C,第一个乘积项集合C中包含的乘积项的数量记为m,m为整数且1≤m≤3n,定义第二个乘积项集合,将该第二个乘积项集合记为S,第二个乘积项集合S在初始状态为空集合;
③如果待转换电路类型被判定为布尔逻辑电路,则按照以下步骤对第二个乘积项集合S进行第一轮更新:
A.从第一个乘积项集合C中任选一个未被选取过的乘积项,将该乘积项记为cj,其中1≤j≤m;
B.判定当前的第二个乘积项集合S是否为空集合:如果是,则将第一个乘积项集合C中选取的乘积项cj复制到第二个乘积项集合S中,如果否,定义第三个乘积项集合,将该第三个乘积项集合记为S′,第三个乘积项集合S′的初始状态为空集合,并将第一个乘积项集合C中选取的乘积项cj与第二个乘积项集合S中已经存在的所有乘积项依次进行相交运算,具体过程为:
B-1.统计当前第二个乘积项集合S中的乘积项数量,并记为T,将当前第二个乘积项集合S中的第t个乘积项记为st,t=1,2,…,T,定义一个新乘积项π,令该新乘积项
Figure FDA0002781516350000021
B-2.依次将乘积项cj的第h位变量文字与乘积项st的第h位变量文字进行相交运算,其中h=1,2,…,n,具体过程为:
B-2-1.将乘积项cj的第h位变量文字记为
Figure FDA0002781516350000022
将乘积项st的第h位变量文字记为
Figure FDA0002781516350000023
Figure FDA0002781516350000024
Figure FDA0002781516350000025
的关系进行判定:
如果
Figure FDA0002781516350000026
时,那么令
Figure FDA0002781516350000027
如果
Figure FDA0002781516350000028
Figure FDA0002781516350000029
或者
Figure FDA00027815163500000210
Figure FDA00027815163500000211
那么令
Figure FDA00027815163500000212
如果
Figure FDA00027815163500000213
Figure FDA00027815163500000214
或者
Figure FDA00027815163500000215
Figure FDA00027815163500000216
那么令
Figure FDA00027815163500000217
如果是其他情况,那么令
Figure FDA00027815163500000218
B-2-2.判定
Figure FDA00027815163500000219
是否为
Figure FDA00027815163500000220
如果是,那么不再进行cj与st后续对应位的变量文字的相交运算,如果否,继续进行cj与st后续对应位的变量文字的相交运算;
B-2-3.判定cj中的第1位变量文字~第n位变量文字与乘积项st的第1位变量文字~第n位变量文字是否都进行了相交运算,如果是,则π是有效乘积项,将π保存到第三个乘积项集合S′中,如果否,则π是无效乘积项,删除乘积项π;
B-3.乘积项cj与第二个乘积项集合S中第一个乘积项s1~第T个乘积项sT都进行了相交运算后,第三个乘积项集合S′更新完成,此时将第三个乘积项集合S′中所有的乘积项与第一个乘积项集合C中选取的乘积项cj保存到第二个乘积项集合S中;
B-4.清空第三个乘积项集合S′中所有的乘积项,第三个乘积项集合S′被更新为空集合;
B-5.查找当前第二个乘积项集合S中存在至少两个的乘积项,如果该乘积项的数量为偶数,则将其全部删除,如果该乘积项的数量为奇数,则保留一个,将其他的删除;
B-6.判定第一个乘积项集合C中所有的乘积项是否都与当前第二个乘积项集合S中的所有乘积项进行了相交运算,如果是,则第二个乘积项集合S的第一轮更新完毕,如果否,则按照步骤B-1~B-5的方法从第一个乘积项集合C中任选的一个未被选取过的乘积项与当前第二个乘积项集合S中已经存在的所有乘积项依次进行相交运算,直至第二个乘积项集合S的第一轮更新完毕;
如果待转换电路类型被判定为RM逻辑电路,则将第一个乘积项集合C中所有的乘积项复制到第二个乘积项集合S中,得到更新后的第二个乘积项集合S;
④定义一个初始极性向量,将该初始极性向量记为P,令P=pnpn-1…pk…p1,其中pk∈{0,1,2};如果待转换电路类型被判定为布尔逻辑电路或者非规范RM逻辑电路,那么初始极性向量P的第r位pr=2,r=1,2,…,n;如果待转换电路类型被判定为规范RM逻辑电路,则直接将该待转换的规范RM逻辑电路的极性值赋予该初始极性向量P;
定义一个用于保存目标极性值的目标极性向量,将该目标极性向量记为P′,令P′=p′np′n-1…p′k…p′1,其中p′k∈{0,1,2};将设定好的需要转换得到的目标规范RM逻辑电路的极性值赋予该目标极性向量P′;
⑤对第一轮更新后得到的第二个乘积项集合S进行第二轮更新,具体过程为:
a.统计当前第二个乘积项集合S中乘积项的数量,并将其数量记为L;
b从第二个乘积项集合S中任选一个乘积项,将该乘积项记为sl,将乘积项sl中的第u位变量文字记为
Figure FDA0002781516350000031
其中,u=1,2,…,n,l为整数且1≤l≤L;
c.判定初始极性向量P的第u位极性pu与目标极性向量P′的第u位极性p′u是否相等,如果相等,则乘积项sl中的第u位变量文字
Figure FDA0002781516350000032
保持不变,如果不相等,则按照以下规则对乘积项sl中的第u位变量文字
Figure FDA0002781516350000041
进行更新:
当pu=2,p′u=0时,如果
Figure FDA0002781516350000042
则采用‘–’更新
Figure FDA0002781516350000043
的值,如果
Figure FDA0002781516350000044
则采用‘0’更新
Figure FDA0002781516350000045
的值,如果
Figure FDA0002781516350000046
Figure FDA0002781516350000047
的值保持不变;
当pu=2,p′u=1时,如果
Figure FDA0002781516350000048
则采用‘1’更新
Figure FDA0002781516350000049
的值,如果
Figure FDA00027815163500000410
则采用‘–’更新
Figure FDA00027815163500000411
的值,如果
Figure FDA00027815163500000412
则采用‘0’更新
Figure FDA00027815163500000413
的值;
当pu=0,p′u=2时,如果
Figure FDA00027815163500000414
则采用‘–’更新
Figure FDA00027815163500000415
的值,如果
Figure FDA00027815163500000416
则采用‘0’更新
Figure FDA00027815163500000417
的值,如果
Figure FDA00027815163500000418
Figure FDA00027815163500000419
的值保持不变;
当pu=0,p′u=1时,如果
Figure FDA00027815163500000420
则采用‘–’更新
Figure FDA00027815163500000421
的值,如果
Figure FDA00027815163500000422
则采用‘1’更新
Figure FDA00027815163500000423
的值,如果
Figure FDA00027815163500000424
Figure FDA00027815163500000425
的值保持不变;
当pu=1,p′u=2时,如果
Figure FDA00027815163500000426
则采用‘–’更新
Figure FDA00027815163500000427
的值,如果
Figure FDA00027815163500000428
则采用‘0’更新
Figure FDA00027815163500000429
的值,如果
Figure FDA00027815163500000430
则采用‘1’更新
Figure FDA00027815163500000431
的值;
当pu=1,p′u=0时,如果
Figure FDA00027815163500000432
则采用‘–’更新
Figure FDA00027815163500000433
的值,如果
Figure FDA00027815163500000434
则采用‘1’更新
Figure FDA00027815163500000435
的值,如果
Figure FDA00027815163500000436
Figure FDA00027815163500000437
的值保持不变;
d.按照步骤c的规则完成乘积项sl中n位变量文字的更新,即完成乘积项sl的更新;
e.按照步骤c和d的方法依次完成第二个乘积项集合S中剩余乘积项的更新,直至第二个乘积项集合S中所有的乘积项更新完成,得到第二轮更新后的第二个乘积项集合S;
⑥找出当前第二个乘积项集合S中所有的包含至少一个取值为“-”的变量文字的乘积项,将这些乘积项依次按照以下规则进行替换处理:统计待替换的乘积项中含有的取值为“-”的变量文字的数量,将其数量记为G,每个取值为“-”的变量文字均存在“0”和“1”两种替换值,即每个取值为“-”的变量文字存在两种替换情况,那么存在G个取值为“-”的变量文字的待替换的乘积项存在2G种替换情况,即存在G个取值为“-”的变量文字的待替换的乘积项被替换为2G个新的乘积项;
⑦按照步骤⑥的规则完成当前第二个乘积项集合S中所有的包含至少一个取值为“-”的变量文字的乘积项的替换,得到替换后的第二个乘积项集合S;
⑧查找当前第二个乘积项集合S中存在至少两个的乘积项,如果该乘积项的数量为偶数,则将其全部删除,如果该乘积项的数量为奇数,则保留一个,将其他的删除,将此时得到的第二个乘积项集合S作为目标规范RM逻辑电路对应的乘积项集合,根据该乘积项集合即可得到转换后的目标规范RM逻辑电路。
CN201710969513.7A 2017-10-18 2017-10-18 用于转换规范rm逻辑电路的方法 Expired - Fee Related CN107809235B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710969513.7A CN107809235B (zh) 2017-10-18 2017-10-18 用于转换规范rm逻辑电路的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710969513.7A CN107809235B (zh) 2017-10-18 2017-10-18 用于转换规范rm逻辑电路的方法

Publications (2)

Publication Number Publication Date
CN107809235A CN107809235A (zh) 2018-03-16
CN107809235B true CN107809235B (zh) 2021-03-26

Family

ID=61585006

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710969513.7A Expired - Fee Related CN107809235B (zh) 2017-10-18 2017-10-18 用于转换规范rm逻辑电路的方法

Country Status (1)

Country Link
CN (1) CN107809235B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920837B (zh) * 2018-07-04 2023-04-07 卜登立 利用共享zmodd提取esop乘积项间公因子的可逆电路综合方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4249246A (en) * 1978-02-27 1981-02-03 Nippon Electric Co., Ltd. Programmable logic array for generating EOR sums of input signals
US6810007B1 (en) * 1999-03-26 2004-10-26 Samsung Electronics Co., Ltd. OFDM transmission/receiving system and block encoding method therefor
US7114055B1 (en) * 2003-09-29 2006-09-26 Xilinx, Inc. Reduced instruction set computer architecture with duplication of bit values from an immediate field of an instruction multiple times in a data word
CN102982205A (zh) * 2012-11-21 2013-03-20 宁波大学 一种用于数字电路设计的固定极性转换方法
CN104270145A (zh) * 2014-09-10 2015-01-07 宁波大学 一种多pdn型电流模rm逻辑电路
CN104539298A (zh) * 2014-12-23 2015-04-22 宁波大学 一种Reed-Muller逻辑电路极性快速转换方法
CN105447241A (zh) * 2015-11-16 2016-03-30 浙江万里学院 一种逻辑函数的esop最小化方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212669B1 (en) * 1997-11-05 2001-04-03 Fujitsu Limited Method for verifying and representing hardware by decomposition and partitioning

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4249246A (en) * 1978-02-27 1981-02-03 Nippon Electric Co., Ltd. Programmable logic array for generating EOR sums of input signals
US6810007B1 (en) * 1999-03-26 2004-10-26 Samsung Electronics Co., Ltd. OFDM transmission/receiving system and block encoding method therefor
US7114055B1 (en) * 2003-09-29 2006-09-26 Xilinx, Inc. Reduced instruction set computer architecture with duplication of bit values from an immediate field of an instruction multiple times in a data word
CN102982205A (zh) * 2012-11-21 2013-03-20 宁波大学 一种用于数字电路设计的固定极性转换方法
CN104270145A (zh) * 2014-09-10 2015-01-07 宁波大学 一种多pdn型电流模rm逻辑电路
CN104539298A (zh) * 2014-12-23 2015-04-22 宁波大学 一种Reed-Muller逻辑电路极性快速转换方法
CN105447241A (zh) * 2015-11-16 2016-03-30 浙江万里学院 一种逻辑函数的esop最小化方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Quantum cost realization of new reversible functions using ESOP based synthesis;Jayashree H.V;《2014 international conference on contemporary computing and informatics》;20141129;第1330-1335页 *
基于分层超立方体的精确ESOP最小化;张巧文等;《计算机辅助设计与图形学学报》;20160115(第1期);第172-179页 *
基于新型极性转换技术的 XNOR/OR 电路面积优化;张会红等;《电子与信息学报》;20120731;第34卷(第7期);第I135-34页 *
大电路固定极性Reed-Muller逻辑快速转换方法;王玉花等;《计算机辅助设计与图形学学报》;20141130;第26卷(第11期);第2091-2097页 *

Also Published As

Publication number Publication date
CN107809235A (zh) 2018-03-16

Similar Documents

Publication Publication Date Title
US20190087713A1 (en) Compression of sparse deep convolutional network weights
JP7293498B2 (ja) サンプル一致度評価による能動学習
US8958265B2 (en) Nearest neighbor serial content addressable memory
US20180247182A1 (en) Information Processing Apparatus, Image Recognition Apparatus, and Parameter Setting Method for Convolutional Neural Network
Imani et al. Efficient query processing in crossbar memory
US20200104287A1 (en) System and method for representing query elements in an artificial neural network
CN112667528A (zh) 一种数据预取的方法及相关设备
WO2020215694A1 (zh) 一种基于深度学习的中文分词方法、装置、存储介质及计算机设备
WO2023124342A1 (zh) 一种针对图像分类的神经网络结构低成本自动搜索方法
Alabassy et al. A high-accuracy implementation for softmax layer in deep neural networks
CN111753995A (zh) 一种基于梯度提升树的局部可解释方法
CN107809235B (zh) 用于转换规范rm逻辑电路的方法
CN104809233A (zh) 一种基于信息增益率的属性加权方法及文本分类方法
US20150339222A1 (en) Content addressable memory and semiconductor device
CN114707655A (zh) 一种量子线路转换方法、系统、存储介质和电子设备
EP3896585A1 (en) System local field matrix updates
Yin et al. MINT: Multiplier-less INTeger Quantization for Energy Efficient Spiking Neural Networks
Jarollahi et al. Algorithm and architecture of fully-parallel associative memories based on sparse clustered networks
US20220398067A1 (en) Multiply-accumlate device
US20240345883A1 (en) Machine learning accelerator paired with general purpose reconfigurable computing core
CN112559843B (zh) 确定集合的方法、装置、电子设备、介质和程序产品
US12026202B2 (en) Memory optimization for storing objects in nested hash maps used in electronic design automation systems
CN113255257B (zh) 基于工艺库的s盒电路的优化方法及系统
Furuta et al. An Efficient Implementation of FPGA-based Object Detection Using Multi-scale Attention
Lee et al. A comparative study of recursive partitioning algorithm and analog concept learning system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20210326