香农展开(英语:Shannon's expansion),或称香农分解(Shannon decomposition)是对布尔函数的一种变换方式。它可以将任意布尔函数表达为其中任何一个变量乘以一个子函数,加上这个变量的反变量乘以另一个子函数。
![{\displaystyle f(X_{1},X_{2},\dots ,X_{n})=X_{1}\cdot f(1,X_{2},\dots ,X_{n})+X_{1}'\cdot f(0,X_{2},\dots ,X_{n})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1b0676bf7ec8cd8a4eaaef34881497f69fd86f94)
例如:
![{\displaystyle f(x,y,z)=yz+xyz'+x'y'z}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0a1ed7ddaaa14763599313fc7779eb2b829883bc)
可以抽取其中的变量
及其反变量
(
取反),而得到
![{\displaystyle f(x,y,z)=x\cdot f(1,y,z)+x'\cdot f(0,y,z)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/087cecb6c86b31d0549cf7f36c24148d55374ebe)
![{\displaystyle f(x,y,z)=x(yz+(1)yz'+(1)'y'z)+x'(yz+(0)yz'+(0)'y'z)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f4fc5a063d0ed77efc41f524634e9028312990c8)
![{\displaystyle f(x,y,z)=x(yz+(1)yz'+(0)y'z)+x'(yz+(0)yz'+(1)y'z)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a21227629d77f231d0cdaf99c98d0bed06c70e27)
![{\displaystyle f(x,y,z)=x(yz+yz')+x'(yz+y'z)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ed334adf6a95e0eb6d69446f4e2de720b2e544cb)
对逻辑函数使用香农展开,就可以使用抽取的变量作为一个选择信号,然后用数据选择器来实现该函数。
参考文献[编辑]
- Stephen Brown, Zvonko Vranesic. Fundamentals of Digital Logic with Verilog Design. McGraw-Hill Education. : 306-311. ISBN 0-07-283878-7.
外部链接[编辑]