ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

《数字电路》| 第 1 节 ‑ 数字电路基础

《数字电路》| 第 1 节 ‑ 数字电路基础 1.1 本节导论本节是数字电路与逻辑设计的基础入门围绕“数字信号如何表示、如何运算、如何编码”这条主线展开依次讲解信号与数字电路的基本概念、真值表这一逻辑描述工具、常用进制及其转换方法以及有符号数编码、BCD 码、格雷码、独热码、独冷码和奇偶校验码等编码方式为后续学习组合逻辑电路、时序逻辑电路以及计算机组成原理打下根基。1.2 信号的基本概念1.2.1 模拟信号与数字信号信号是指承载信息的物理量它可以通过某种变化规律来传递消息、指令或数据。模拟信号是指在时间和数值上都呈连续变化的电信号它可以精准地模拟物理量的变化规律。数字信号是指在时间和数值上都呈离散状态的电信号通常以二进制0 和 1的形式来表示对应电路中的低电平和高电平1.3 数字电路的功能用来对数字信号进行逻辑运算以实现逻辑命题的电路也称为逻辑电路逻辑:事物的因果关系也叫逻辑关系。逻辑运算:逻辑思维和逻辑推理的数学描述。逻辑命题:一组成立或不成立的输入条件通过某些逻辑运算决定了输出结论是否成立1.4 数字电路的分类1.4.1 组合逻辑电路定义组合逻辑电路Combinational Logic Circuit是指电路的输出仅由当前时刻的输入决定与电路过去的状态无关。它没有记忆功能不包含任何存储元件如触发器、寄存器。核心特点无记忆性输出只取决于当前的输入组合电路内部没有反馈回路。即时性输入变化后经过一段极短的传播延迟输出立即随之变化。功能描述通常用逻辑表达式、真值表或逻辑图来描述其功能。电路结构由基本逻辑门如与门、或门、非门、与非门、或非门、异或门等组合而成不包含时钟信号。典型应用算术运算电路加法器、减法器、比较器。编码器与译码器将一种编码转换为另一种编码。数据选择器与分配器从多路输入中选择一路输出或将一路输入分配到多路输出。奇偶校验器检测数据传输中的奇数位错误。1.4.2 时序逻辑电路定义时序逻辑电路Sequential Logic Circuit是指电路的输出不仅取决于当前时刻的输入还与电路过去的状态历史输入有关。它具备记忆功能内部包含存储元件如触发器、寄存器。核心特点有记忆性电路内部有反馈回路能够“记住”过去的状态。时序性输出变化不仅依赖于当前输入还依赖于时钟信号Clock的边沿上升沿或下降沿触发。功能描述通常用状态表、状态图或时序波形图来描述其功能。电路结构由组合逻辑电路部分和存储电路部分触发器、寄存器等共同构成通常受时钟信号控制。典型应用计数器对时钟脉冲进行计数。寄存器暂存二进制数据。移位寄存器实现数据的串行-并行转换。有限状态机FSM用于控制系统的逻辑流程是数字系统设计的核心1.5 真值表逻辑真值表的简称;一种用来描述逻辑函数的全部真伪关系的表格。真值表描述了输入、输出变量的逻辑因果关系用1表示条件或结论成立用0表示结论不成立从而将逻辑命题数学化最终得到该逻辑命题的输入条件和输出结论之间的全部真伪关系。真值表是描述逻辑功能的最底层工具;真值表是先结构而后内容的列写时输入部分从全0到全1递增顺序全排列以防漏状态;真值表是想出来的不是算出来的。切记不要将每一种输入取值带入表达式计算得到输出!主要思考在什么条件下输出为 1或者输出为 0其余输出全部为0或1真值表的整体分析法先分析出所有输出为1或者为 0的输入组合其余输入组合输出全为 0 或者为 1的思路 绘制真值表哪种所有输出情况少选哪个分析1.6 常用的进制1.7 进制转换1.7.1 十进制与非十进制互转一十进制转非十进制除基取余法:将十进制数反复除以进制基数记录每次的余数直到商为 0最后将所有余数倒序排列即为对应的二进制数二进制基数为 2八进制基数为 8十六进制基数为 16二 非十进制转十进制按权展开求和法将非十进制数的每一位数字乘以其所在位的 “权值”基数的位权次方位权从右往左从 0 开始最后将所有结果相加得到的和即为十进制数二进制基数为 2八进制基数为 8十六进制基数为 16十六进制中 A10、B11、C12、D13、E14、F15示例二进制 10100011 转十进制1.7.2 非十进制间转换以二进制为通用桥梁二进制与八进制3 位二进制对应 1 位八进制2³8二进制与十六进制4 位二进制对应 1 位十六进制2⁴16八进制与十六进制先转二进制再转目标进制无直接位数对应关系分组时从右往左分补 0 补在左侧高位避免位权错误转换后若结果全为 0保留 1 位 0若有前导 0需去掉如二进制 00100011 简化为 1000111.8 编码1.8.1 有符号数的编码原码、反码、补码原码直接表示正负最高位为符号位0 正、1 负其余位为数值位反码正数反码与原码相同负数反码为 “符号位不变数值位按位取反”补码正数补码与原码相同负数补码为 “反码 1”若加 1 后有进位需正常进位符号位参与运算原码、反码、补码 是一种编码用于描述有符号数1.8.2 BCD码即二进制编码的十进制数核心规则是用 4 位二进制数表示 1 位十进制数0-9本质是 “十进制数的二进制编码”而非十进制转二进制8421 BCD 码最常用核心逻辑每 1 位十进制数0-9对应唯一的 4 位二进制数4 位二进制的位权分为 8、4、2、1因此叫 8421 码取值范围4 位二进制仅用 0000~1001 表示 0910101111 为无效码无对应十进制数多位数表示十进制多位数的每一位分别编码再按顺序拼接。1.8.3 奇偶校验码奇偶校验码是一种最简单的检错编码核心规则是在二进制数据位后添加 1 位 “校验位”使整个编码数据位 校验位中 1 的个数满足 “奇校验” 或 “偶校验” 规则仅能检测奇数位错误1 位、3 位等无法检测偶数位错误也无法定位错误位置。奇校验数据位 校验位中1 的总数为奇数偶校验数据位 校验位中1 的总数为偶数编码步骤统计数据位中 1 的个数根据校验类型计算校验位0 或 1使总数满足奇偶规则偶校验数据位1的个数为奇数那么校验位为 1数据位1的个数为偶数那么校验位为 0奇校验数据位1的个数为奇数那么校验位为 0数据位1的个数为偶数那么校验位为 1拼接 “数据位 校验位” 得到最终编码。1.8.4 格雷码格雷码Gray Code是一种无权循环二进制编码核心特性是相邻两个格雷码之间仅有 1 位二进制位不同包括首尾格雷码称为 “循环格雷码”彻底避免了二进制编码相邻值转换时多位翻转导致的 “冒险” 问题广泛用于编码器、计数器、通信等场景。一格雷码 ↔ 二进制 转换规则二进制 → 格雷码规则格雷码的最高位 二进制的最高位格雷码的第 n 位 二进制的第 n 位 ⊕异或二进制的第 n1 位⊕规则相同为 0不同为 1从高位到低位依次计算。案例二进制 101 转格雷码最高位1【格雷码最高位 二进制最高位】第 2 位0⊕11【第二位与第三位异或】第 1 位1⊕01【第一位与第二位异或】结果111格雷码 → 二进制规则二进制的最高位 格雷码的最高位二进制的第 n 位 二进制的第 n1 位 ⊕ 格雷码的第 n 位从高位到低位依次计算案例格雷码 110 转二进制最高位1【格雷码最高位 二进制最高位】第 2 位1⊕10【二进制的最高位1与格雷码的第二位1异或】第 1 位0⊕00【二进制的第二位0与格雷码的第一位0异或】结果1001.8.5 独热码独热码One-Hot Code是一种状态编码核心规则是用 N 位二进制数表示 N 个状态每个状态对应其中恰好 1 位为 1、其余位全为 0的编码因此称为“独热”只有一位“热”。例如 4 个状态用 4 位独热码表示0001、0010、0100、1000与格雷码“相邻仅 1 位不同”不同独热码任意两个不同状态之间都有 2 位不同但每个状态始终只有 1 位为 1。特点优点状态判断简单只需检测某一位是否为 1无需译码电路适合用于状态机、优先级编码等场景缺点编码冗余大N 个状态需要 N 位而二进制只需 ⌈log₂N⌉ 位位宽随状态数线性增长。典型应用有限状态机FSM的状态编码可简化组合逻辑、提升时序性能键盘扫描、总线仲裁等需要快速判断“哪个请求有效”的场景1.8.6 独冷码独冷码One-Cold Code是一种状态编码核心规则是用 N 位二进制数表示 N 个状态每个状态对应其中恰好 1 位为 0、其余位全为 1的编码因此称为“独冷”只有一位“冷”。例如 4 个状态用 4 位独冷码表示1110、1101、1011、0111与独热码“恰好 1 位为 1”相反独冷码是“恰好 1 位为 0”二者互为取反关系。特点优点状态判断简单只需检测某一位是否为 0无需译码电路适合用于状态机、总线仲裁等场景缺点编码冗余大N 个状态需要 N 位而二进制只需 ⌈log₂N⌉ 位位宽随状态数线性增长。典型应用有限状态机FSM的状态编码可简化组合逻辑、提升时序性能低功耗设计中利用“多数位为 1”的特性减少翻转次数降低动态功耗。1.9 本节小结本章围绕数字电路的基础知识展开核心内容可归纳为四条主线一是信号与电路信号分为模拟信号时间与数值连续和数字信号时间与数值离散以 0/1 表示数字电路用于对数字信号进行逻辑运算分为组合逻辑电路输出仅取决于当前输入和时序逻辑电路输出还与电路原状态有关二是真值表它是描述逻辑功能的最底层工具列写时输入从全 0 到全 1 递增全排列核心思路是“想出来而非算出来”三是进制与转换常用进制包括十进制、二进制、八进制、十六进制十进制转非十进制用除基取余法非十进制转十进制用按权展开求和法非十进制间转换以二进制为通用桥梁四是编码方式本章编码可分为数值编码有符号数的原码、反码、补码以及 BCD 码、状态编码格雷码、独热码、独冷码和检错编码奇偶校验码三类分别解决“如何表示数值”“如何表示状态”“如何保证可靠性”的问题掌握这些基础概念是后续学习组合逻辑电路设计、时序逻辑电路以及计算机组成原理的重要前提。
返回列表