发明名称 一种Reed-Muller逻辑电路极性快速转换方法
摘要 本发明公开了一种Reed-Muller逻辑电路极性快速转换方法,通过删除不同乘积项对应的逻辑覆盖中公共部分的方法实现RM逻辑的固定极性转换,提出的方法避免了以往RM逻辑极性转化过程中采用乘积项展开、搜索和删除等步骤,整个搜索过程不需要对乘积项进行多次展开和重复乘积项搜索和删除操作,整个过程只需要1次的乘积项展开且不需要重复性检查,从而使得提出的方法在RM逻辑极性转换时转换速度更快,能处理的电路规模更大,本发明的方法在极性搜索方面具有更高的效率。
申请公布号 CN104539298A 申请公布日期 2015.04.22
申请号 CN201410810723.8 申请日期 2014.12.23
申请人 宁波大学 发明人 王伦耀;夏银水;储著飞
分类号 H03M13/13(2006.01)I 主分类号 H03M13/13(2006.01)I
代理机构 宁波奥圣专利代理事务所(普通合伙) 33226 代理人 程晓明
主权项 一种RM逻辑电路极性转化的方法,其特征在于定义被转换的电路对应的逻辑函数为f;电路的输入变量数定义为m,输出变量数定义为n;定义构成f的乘积项的集合为C;p<sub>i</sub>,p<sub>j</sub>为属于集合C的任意一对乘积项;定义对于集合C中任一乘积项中的任一变量,用“0”表示该变量以反变量形式出现,“1”表示该变量以原量形式出现,“2”表示该变量不出现;定义符号[p<sub>i</sub>]<sub>k</sub>表示乘积项p<sub>i</sub>的第k位的取值,且0≤k≤m‑1;将f的各位变量极性用H表示;H中的“0”表示该位变量在f中以原变量形式出现;H中的“1”表示该位变量在f中以反变量形式出现;将H中第k位的取值用[H]<sub>k</sub>表示;乘积项p<sub>i</sub>与极性H之间的第k位“位极性”运算用Υ<sub>k</sub>(p<sub>i</sub>,H)表示,并规定当[p<sub>i</sub>]<sub>k</sub>=[H]<sub>k</sub>时,有Υ<sub>k</sub>(p<sub>i</sub>,H)=4,否则Υ<sub>k</sub>(p<sub>i</sub>,H)=[p<sub>i</sub>]<sub>k</sub>;用Λ<sub>k</sub>([p<sub>i</sub>]<sub>k</sub>,[p<sub>j</sub>]<sub>k</sub>,[H]<sub>k</sub>)表示乘积项p<sub>i</sub>,p<sub>j</sub>关于H的第k位相交运算,并规定Λ<sub>k</sub>(2,4,1)=2,Λ<sub>k</sub>(2,4,0)=2,Λ<sub>k</sub>(2,2,1)=2,Λ<sub>k</sub>(2,2,0)=2,Λ<sub>k</sub>(4,2,1)=0,Λ<sub>k</sub>(4,2,0)=1,Λ<sub>k</sub>(4,0,1)=2,Λ<sub>k</sub>(4,1,0)=2,Λ<sub>k</sub>(1,4,0)=1,Λ<sub>k</sub>(0,4,1)=0,Λ<sub>k</sub>(1,1,0)=1,Λ<sub>k</sub>(0,0,1)=0;其他[p<sub>i</sub>]<sub>k</sub>,[p<sub>j</sub>]<sub>k</sub>和[H]<sub>k</sub>的取值组合下,乘积项p<sub>i</sub>,p<sub>j</sub>关于H不相交,并用<img file="FDA0000641185940000011.GIF" wi="528" he="83" />表示;用Γ<sub>k</sub>(Υ<sub>k</sub>(p<sub>i</sub>,H),Υ<sub>k</sub>(p<sub>j</sub>,H),[H]<sub>k</sub>)表示乘积项p<sub>i</sub>,p<sub>j</sub>关于H的第k位互斥运算,其中Υ<sub>k</sub>(p<sub>i</sub>,H),Υ<sub>k</sub>(p<sub>j</sub>,H)的取值为0,1,2或4,[H]<sub>k</sub>的取值为0或1;并规定Γ<sub>k</sub>(4,0,1)=2,Γ<sub>k</sub>(4,2,1)=0,Γ<sub>k</sub>(4,1,0)=2,Γ<sub>k</sub>(4,2,0)=1,Γ<sub>k</sub>(4,4,1)=4,Γ<sub>k</sub>(4,4,0)=4,其他Υ<sub>k</sub>(p<sub>i</sub>,H),Υ<sub>k</sub>(p<sub>j</sub>,H)和[H]<sub>k</sub>取值组合下,Γ<sub>k</sub>(Υ<sub>k</sub>(p<sub>i</sub>,H),Υ<sub>k</sub>(p<sub>j</sub>,H),[H]<sub>k</sub>)运算结果定义为空;具体步骤为:步骤⑴.定义一个空的集合,用C<sub>p</sub>表示,执行步骤⑵;步骤⑵.利用不相交乘积项转换方法将集合C中的乘积项转换成不相交乘积项,执行步骤⑶;步骤⑶.在集合C中任取一个乘积项p′<sub>i</sub>,对p′<sub>i</sub>逐位进行“位极性”运算,将p′<sub>i</sub>的第k位取值[p′<sub>i</sub>]<sub>k</sub>用Υ<sub>k</sub>(p′<sub>i</sub>,H)替代,完成p′<sub>i</sub>中的每一位变量的“位极性”运算后,将结果存于C<sub>p</sub>中,并在集合C中删除p′<sub>i</sub>;步骤⑷.检查集合C中的每一个乘积项是否都与H进行“位极性”运算,如果是,删除集合C,并执行步骤⑸,否则,执行步骤⑶;步骤⑸.在集合C<sub>p</sub>中任取一对乘积项,记为p″<sub>i</sub>和p″<sub>j</sub>,判断p″<sub>j</sub>和p″<sub>j</sub>中是否存在某一位变量使得<img file="FDA0000641185940000021.GIF" wi="558" he="78" />0≤k≤(m‑1);如果不存在,执行步骤⑹,否则执行步骤⑻;步骤⑹.依次检查p″<sub>i</sub>中各位取值,如p″<sub>i</sub>中第k位取值为4,k≤m‑1,则生成一个新的乘积项,用p<sub>k</sub>表示;其中p<sub>k</sub>的前(k‑1)位取值等于p″<sub>i</sub>和p″<sub>j</sub>关于H的相交结果,即[p<sub>k</sub>]<sub>u</sub>=Λ<sub>u</sub>([p″<sub>i</sub>]<sub>u</sub>,[p″<sub>j</sub>]<sub>u</sub>,[H]<sub>u</sub>),0≤u≤k‑1,p<sub>k</sub>的第k位取值等于Γ<sub>k</sub>(Υ<sub>k</sub>(p″<sub>i</sub>,H),Υ<sub>k</sub>(p″<sub>j</sub>,H),[H]<sub>k</sub>),p<sub>k</sub>的第(k+1)位到(m‑1)位的值等于p″<sub>i</sub>的第(k+1)位到(m‑1)位的值;若p<sub>k</sub>≠p″<sub>i</sub>,则将p<sub>k</sub>存储到集合C<sub>p</sub>中,否则不存储;步骤⑺.判断是否对p″<sub>i</sub>全部m个位的取值情况进行了检查,如果是,则执行步骤⑻,否则执行步骤⑹;步骤⑻.依次检查p″<sub>j</sub>中各位取值,如p″<sub>j</sub>中第s位取值为4,s≤m‑1,则生成一个新的乘积项,用p<sub>s</sub>表示;其中p<sub>s</sub>的前s‑1位取值等于p″<sub>j</sub>和p″<sub>i</sub>关于H的相交结果,即[p<sub>s</sub>]<sub>t</sub>=Λ<sub>t</sub>([p″<sub>j</sub>]<sub>t</sub>,[p″<sub>i</sub>]<sub>t</sub>,[H]<sub>t</sub>),0≤t≤s‑1,p<sub>s</sub>的第s位取值等于Γ<sub>s</sub>(Υ<sub>s</sub>(p″<sub>j</sub>,H),Υ<sub>s</sub>(p″<sub>i</sub>,H),[H]<sub>s</sub>),p<sub>s</sub>的第(s+1)位到(m‑1)位的值等于p″<sub>j</sub>的第(s+1)位到(m‑1)位的值;若p<sub>s</sub>≠p″<sub>j</sub>,则p<sub>s</sub>存储到C<sub>p</sub>中,否则不存储;步骤⑼.判断是否对p″<sub>j</sub>全部m个位的取值情况进行了检查,如果是,则删除p″<sub>i</sub>和p″<sub>j</sub>并执行步骤⑽,否则执行步骤⑻;步骤⑽.判断是否对C<sub>p</sub>中所有任意二个乘积项都进行了关于H的相交检查,如果是,执行步骤⑾,否则执行步骤⑸;步骤⑾.极性为H的RM逻辑表达式中乘积项的个数定义为<img file="FDA0000641185940000022.GIF" wi="194" he="141" />其中w表示C<sub>p</sub>中乘积项个数,v表示一个乘积项中“4”的个数,(2<sup>v</sup>)<sub>r</sub>表示C<sub>p</sub>中第r个乘积项展开为对应的RM逻辑表达式中乘积项个数为2<sup>v</sup>;将C<sub>p</sub>中每个乘积项中取值为“4”的位分别用“0”和“1”代替,然后以二进制方式展开,并将展开位中取值与极性表达式H中对应位相同的位用“‑”替换,同时将“2”对应的位也用“‑”替换,得到极性为H的RM逻辑表达式。
地址 315211 浙江省宁波市江北区风华路818号