最近学 Verilog 在看卡诺图,发现 SOP 和 POS 这两种方法还挺有意思的。
SOP 和 POS
-
SOP (Sum of Products):就是找所有输出为 1 的地方,把这些条件用 AND 连起来,再用 OR 把所有项连起来。
-
POS (Product of Sums):找所有输出为 0 的地方,然后想办法避开这些情况。
其实就是离散数学里学到的最小项之和与最大项之积,在这里用上了感觉还挺通的。
3 变量 K-map
a 0 1bc00 0 101 1 111 1 110 1 1
SOP 分析
看哪些地方是 1:
- a=1 的时候,不管 bc 是什么,都是 1
- a=0 的时候,只要 b=1 或者 c=1 就是 1
所以:
POS 分析
只有一个地方是 0:a=0, b=0, c=0
要避开这种情况,就是说 a、b、c 至少要有一个是 1。
所以:
什么时候用哪种方法?
SOP 和 POS 就是看问题的两个角度:
- SOP:什么时候为真?
- POS:怎么避免为假?
数字逻辑还是挺有意思的。