整理自:丁磊、张海笑《数字逻辑与EDA设计》、南京理工大学《数字逻辑电路》
数字逻辑导论
一、数字技术的发展
布尔代数
乔治·布尔(George Boole,1815~1864),19世纪最重要的数学家之一
电子管
李·德福雷斯特(Lee de Forest,1873~1961,美国发明家),1906年发明了真空三极管(Vacuum Tube),也称为电子管
数字电子学的诞生
克劳德·香农(Claude Elwood Shannon,1916~2001,美国数学家),1938年,发表了论文“继电器与开关电路的符号分析”,把布尔代数和继电器、电子电路开关结合起来,诞生了数字电子学
第一台电子管计算机
世界上第一台电子管计算机——ENIAC,1946年,18800只电子管、30吨、170平方米、140千瓦,5000次加法/秒
晶体管
威廉·肖克利(William Shockley、Walter Houser Brattain、John Bardeen,1910~1989,美国教授),1948年发明了半导体三极管,又称晶体管。体积小,功耗低
集成电路
杰克·基尔比(Jack Kilby,1923~2005,美国电气工程师),1958年研制出集成电路(Integrated Circuit),只集成5个元件
小规模集成电路(SSI),10~100个元件/片
中规模集成电路(MSI),100~1,000个元件/片
大规模集成电路(LSI),1,000~1万个元件/片
超大规模集成电路(VLSI),1万~100万个元件/片
甚大规模集成电路(ULSI),100万~1000万元件/片
GSI-Giga Scale Integration,1000万~元件/片
二、数字技术的优点
数字技术灵活性好
数字计算机只需配置不同的软件就可以完成不同的任务
数字系统精度高
当用数字形式表示数值信息时,可以通过增加二进制的位数来达到满意的精度和范围
信息以数字方式表示易于存储和读取
数字信息可以可靠的保存在光盘、硬盘、各种半导体存储器中,而且可方便地从这些存储设备或器件中读取
数字系统适合小型化
随着集成电路的规模越来越大,性能越来越高,很多功能模块可用一个或几个芯片完成,大大减小了数字系统的体积
数字信号的传输可靠性高
一方面,数字电路的输入具有噪声门限,使得二进制信号传输时具有一定的抗干扰能力;
另一方面,数字技术允许使用检错和纠错机制来发现或纠正数字信息传输过程中出现的错误,大大提高了数字通信的性能
数字系统处理能力强
完成的功能可以从数据处理、虚拟仿真、算法实现到过程控制、信息显示等
三、概述
数字逻辑与数字硬件
数字逻辑:数字电路逻辑设计
数字电路:用数字信号完成对数字量进行算术运算和逻辑运算的电路
又称数字逻辑电路,由于具有逻辑运算与逻辑处理功能
数字硬件:用逻辑电路构造的计算机硬件和许多其他类型的产品
用于构造数字硬件的技术更迭:
20世纪60年代以前,逻辑电路由注入分立晶体管和电阻等体积较大的元器件构成
集合电路的出现使一个芯片上集成多个晶体管甚至整个电路成为可能
数字硬件设计者可以在一个芯片上设计逻辑电路,也可以在印制电路板(PCB)上设计包含多个芯片的电路
不同类型的集成电路芯片:
标准芯片:具有精心设计的一致公认和接受的逻辑功能和物理结构,用于实现常用逻辑电路的芯片
优点:
包含少量电路,实现了简单功能
构造逻辑电路时,设计者可以选择某种功能的芯片,并定义如何互连以实现一个更大规模的逻辑电路
缺点:
功能低下的芯片在印制电路板上占据较大的空间,效率低下
每个芯片的功能固定不变
可编程逻辑器件(PLD):具有通用的结构并包含可编程开关集合,通过这些开关可以采用不同方式配置芯片内部电路的芯片,最常用的可编程逻辑器件成为现场可编程门阵列(FPGA)
优点:
可编程开关由最终用户编程,而不是在制造芯片时编程
PLD的尺寸可变,可用于超大规模逻辑电路。一个FPGA中包含大量小规模逻辑电路单元,可通过FPGA内部的可编程开关实现相互间的连接,具有高容量的特点
缺点:
FPGA的可编程开关占用了较多芯片面积,同时限制了所实现电路的运行速度
全定制芯片(专用集成芯片ASIC):首先设计芯片需要包含的逻辑电路,然后由工艺厂进行制造的芯片
优点:
可根据特定任务优化电路设计,以获得更好的性能
缺点:
制造过程时间长
制造成本高,但若用在批量产品中,则每个芯片的平均成本可能相对低;或一个芯片代替多个芯片实现相同的功能,在PCB所需面积会变小,进一步降低成本
数字系统设计方法:
数字系统:处理二进制离散信息的系统
传统的设计方法:
由一些标准芯片加上一定的外围电路→模块→各种功能电路→系统
在设计时,缺少灵活度,设计系统所需芯片的种类多且数量大
设计周期长,需要通过搭建电路来测试设计方案是否正确
现代的设计方法:基于EDA(电子设计自动化)技术的设计
系统设计→在顶层划分功能模块→用硬件描述语言描述,在功能级上仿真、纠错→用综合工具将设计转化为门电路网表→用PLD器件(Programmable Logic Device,可编程逻辑器件)或专用集成电路(ASIC)实现
使用PLD芯片,减少了所需芯片的种类和数量,缩小了体积,降低了功耗,提高了系统的可靠性
仿真和调试过程是在高层次上利用EDA工具完成,提高了设计的成功率
计算机结构:一台计算机包含多个PCB、一个电源系统以及存储单元(硬盘等)
每个模板都插入一个称为主板的PCB中,一块主板有多个集成电路芯片,并提供连接其他PCB的插槽,如声卡、显卡、网卡
一块芯片包含一系列子电路,每个子电路是一个逻辑电路,逻辑电路由逻辑门组成,逻辑门由晶体管构成,晶体管由硅片上的各种材料层制备
模拟信号及数字信号
模拟信号:表示模拟量的信号
模拟量:在时间上与数值上都连续
时间上“连续”:在一个指定的时间范围内,物理量的数值个数有无穷多个
数值上“连续”:物理量的数值本身有无穷多个
数字信号:表示数字量的信号
数字量:在时间上与数值上都离散
时间上“离散”:在一个指定的时间范围里,物理量的数值的个数有限
数值上“离散”:物理量的数值本身的数目有限
将无限量的模拟信号转化为有限的数字信号才可存储,因内存有限
转化步骤:采样、量化、编码
采样:以相同的时间间隔,将时间上连续的模拟信号截取成时间上离散的数字信号,即在时间上把模拟信号离散化
量化:将采样得到的瞬间幅度值离散化,也就是用有限个幅度值近似表示原来连续变化的幅度值
编码:按照一定的规律,把量化后的值用二进制数字表示
数字抽象
数字系统是一个能对数字信号进行处理和传输的实体,由各种能实现特定功能的数字逻辑电路相互连接而成,表示信息所用的信号都是离散型的
早期机械式的数字系统,如查尔斯·巴贝奇的分析机,使用蒸汽作动力,用10个齿轮分别表示0~9十个数字
现在,大多数数字系统使用二进制处理信息,主要有以下原因
电路容易实现。二进制只有两个数码,在电路中可用高、低电平表示,且区分两种电压值比区分10个电压值容易很多
物理上容易实现存储。如通过磁极的取向、表面的凹凸等来记录‘1’、‘0’信息
便于运算。与十进制相比,二进制的运算规则要简单很。可使运算器的硬件结构大大简化,且有利于运算速度的提高
便于逻辑判断。二进制中的‘1’与‘0’,正好与逻辑命题中的“真”“假”对应
在数字系统中,数字信号可用电平的高低和脉冲信号的有无表示,但常用前一种方式
数字信号传输时对“0”“1”的处理
用自然二进制(高电平 “1”,低电平 “0” ) 编码的数字信号不适合于在信道中直接传输:
① 这种类型的数字信号存在直流分量和低频分量,容易被具有电容耦合电路的设备或频带低端受限的信道过滤;
② 当出现连续的“0”或“1”数据时,接收端无法获取定时信息(即同步信息);
③ 接收端无法判断是否包含错码。
因此数字信号在传输时需要特定的编码。
常用的四种传输编码 :
不归零编码(NRZ):用正电平表示‘1’,用负电平表示‘0’
优点:发送能量大,直流分量小,抗干扰能力比较强
缺点:需要另外传输同步信号
翻转不归零编码(NRZI):如果输入为0,输出保持其前一个值;若输入为1,输出为前一个输出值的相反值
缺点:需要另外传输同步信号
归零编码(RZ):高电平表示“1”,低电平表示“0”,但整个码元分两部分,前半部分用高低电平表示数据,后半部分则归零位
-
特点:
前半部分表示数据,高电平表示“1”,低电平表示“0”
后半部分永远为0,即低电平,作为同步信号
缺点:
当出现长串的“0”时,将丢失同步信号
曼彻斯特编码:也叫相位编码,有曼彻斯特编码、差分曼彻斯特编码
曼彻斯特编码:每一位的中间有一电平的跳变,位中间的跳变既作时钟信号,又做数据信号;从高到低跳变表示“0”,反之表示“1”。有连续的0时,前一位的中间跳到低位后,由于下一位又是0,所以要在每位开始时跃升到高处
差分曼彻斯特编码:每位中间的跳变仅提供同步信号,而用每位开始时有无跳变表示“0”或'1",如果有跳变则表示“0”,反之表示“1”
两种曼彻斯特编码的优点:
每位编码中有一跳变,不存在直流分量,因此具有自同步能力和良好的抗干扰能力
两种曼彻斯特编码的缺点:
每一个码元都被调成两个电平,所以数据传输速率只有调制速率的1/2