数字逻辑,是处理数字信号的逻辑,数字电路运作的原理;实质上是指基于二进制数学或布尔代数的逻辑。
由来与具体含义
人们常说“进入了数字时代”,这里的“数字”,并非日常生活中常用的代表数量的数字,而是由“数字电路”中的“数字”的含义引申而来的。从数字(集成)电路的出现到计算机到网络到今天的移动互联网,数字电路是所有现代信息技术的基础。从这个角度,“数字时代”就是“信息社会”的意思。
那么数字电路的基础又是什么呢?就是数字逻辑。所有数字系统都是基于数字逻辑来设计的,而数字逻辑设计的数学基础是布尔代数,数字电路的设计所有行为都必须符合布尔代数的原理。布尔代数是19世纪英国数学家乔治.布尔(George Boole)创立的,它是一种描述客观事物逻辑关系的数学方法,是从哲学领域的逻辑学发展而来的。因此数字电路中的逻辑表达式也叫布尔表达式。数字电路最基础的设计方法“真值表法”,就是在推算各种布尔表达式的值。我们观察一下生活中的逻辑,会发现有很多对立的二元值,比如真假、对错、开关、有无,而布尔研究发现,任何复杂的逻辑,都可以用“与”、“或”、“非”三种最基本的逻辑组合变化而来。在计算机或者嵌入式系统里面,if-then-else更是所有编程语言都要用到的语句。因此我们可以将逻辑运算归结为三个操作、两个结果。三个操作就是“与或非”,两个结果在数字逻辑里面就是0和1。这正好跟数字电路的高、低两个电平相对应;也与晶体管的开、关相对应。这就是为什么集成电路在数字领域得到蓬勃发展的原因。在数字系统中,任何数字和文本、声音、图形图像等复杂信息都可以用二进制的数字化代码来表示的。比如0001100代表字母A,1010101代表字母Z;MP3是用二进制记录声音的一种格式(标准);H.264是用二进制记录视频的一种格式(标准);等等。
晶体管适合制造大规模集成电路,CMOS晶体管擅长二值处理,数字逻辑为二值,这几个因素综合在一起的结果就是数字集成电路普遍采用二进制。而除了逻辑运算之外,二进制同样需要做数值的运算,这跟十进制的运算没有本质的差别,只是表达方式不同,比如3+4=7,二进制运算可表示为011+100=111,借助于各种代码表示和编码方式,二进制同样可以方便地完成各种数值运算,比如通过二进制的补码,可以把减法转化为电路实现较为简单的加法来实现,这也是数字系统中多采用补码的原因。从加法器的电路,可以看出,加法这个数值运算,最终还是体现为逻辑运算,为各个逻辑电路的组合。可见,尽管构成逻辑代数系统的元件极为简单,却能描述数字系统中任何复杂的逻辑电路。另外布尔代数还有一些公理如交换律、吸收率、分配律、结合律等等,数字电路设计中经常根据这些公理来做电路的变换和优化,以达到提高性能或节省面积、降低功耗的目的。