基本逻辑运算
与,数学符号*
A B A*B
1 1 1
1 0 0
0 1 0
0 0 0
或,数学符号+
A B A+B
1 1 1
1 0 1
0 1 1
0 0 0
非,数学符号^
A ^A
1 0
0 1
复杂逻辑运算
异或
A B A xor B
1 1 0
1 0 1
0 1 1
0 0 0
复位优先
A B RS=^B*(RS+A)
1 1 0
1 0 1
0 1 0
0 0 上一次结果
置位优先
A B SR=(^A*SR)+B
1 1 1
1 0 0
0 1 1
0 0 上一次结果
IF语句优化
a. 如果A为真,B值为真 IF A{ B=1; }
A B B=A+B
1 1 1
1 0 1
0 1 1
0 0 0
b. 如果A为真,B值为假 IF A{ B=0; }
A B B=^A*B
1 1 0
1 0 0
0 1 1
0 0 0
c. 如果A为真,B值有效 IF A{ B=0; }
A B B=A*B
1 1 1
1 0 0
0 1 0
0 0 0
逻辑运算化简
非与 ^(a*b)=^a+^b,反之a*b=^(^a+^b)
非或 ^(a+b)=^a*^b,反之a+b=^(^a*^b)
边沿检测
上升沿: 仅检测到IN上升沿,A将一直保持为1。
A=IN*^ARE;
ARE=IN;
下降沿:仅检测到IN下降沿,B将一直保持为1。
B=BRE*(^IN);
BRE=IN;
启保停:START开始,STOP停止
OUT=(START+OUT)*STOP;