数字逻辑电路基础元件与设计流程总结

数字逻辑电路基础元件与设计流程总结

一、常见基础元件(各种"器")

1. 门电路(最基本的逻辑单元)

门电路是所有数字电路的最底层构建块,包括:

  • 与门(AND)或门(OR)非门(NOT/反相器)
  • 与非门(NAND)或非门(NOR)------是实际工艺映射的主要目标门类型
  • 异或门(XOR)------用于加法器、比较器等

任何组合逻辑最终都可以映射到与非门或或非门加上反相器来实现。


2. 译码器(Decoder)

  • 功能:将 n 位二进制输入译码为 2^n 位输出,输出中仅有一位为 1
  • 典型规格:1-2 译码器、2-4 译码器、3-8 译码器、4-16 译码器、7-128 译码器等
  • 构建方式 :采用分级思想+与门组合。例如 2-4 译码器可由 2 个 1-2 译码器和 4 个与门构成;3-8 译码器由 2-4 译码器和 1-2 译码器加与门组合
  • 带使能的译码器:增加使能信号 EN,也被称为"多路分配器"(Demultiplexer)
  • 应用:可用于实现任意组合逻辑函数------将译码器输出(对应最小项)接到或门即可实现函数的"最小项之和"

3. 编码器(Encoder)

  • 功能:与译码器互逆,将输入中为 1 的那一位编码输出
  • 普通编码器:如十进制-BCD 编码器、八-二进制编码器。要求输入中同一时刻只有一位为 1
  • 优先编码器:当输入中有多位为 1 时,选择最高优先级的输入进行编码,并输出有效标志 V。例如 4 输入优先编码器、5 输入优先编码器

4. 多路复用器(Multiplexer / MUX)

  • 功能:从多路输入数据中选择一路输出到输出端,由选择信号决定
  • 典型规格:2-1 MUX、4-1 MUX、8-1 MUX、16-1 MUX 等
  • 内部构成:一个 n-2^n 译码器 + 2^n 个使能门(2 输入与门)+ 一个或门
  • 位宽展开:可构建多位宽的多路复用器,如 4-1 四位多路复用器
  • 应用:可用于实现任意组合逻辑函数------方法 1(用 2^n-1 MUX)和方法 2(用 2^(n-1)-1 MUX,利用共享/压缩技术,门成本约减半)

5. 加法器(Adder)

  • 半加器:2 输入(X, Y)按位加,输出和位 S 和进位 C。S = X ⊕ Y,C = X·Y
  • 全加器:3 输入(X, Y, 进位 Z),输出和位 S 和进位 C。S = X ⊕ Y ⊕ Z,C = XY + (X⊕Y)Z。其中 XY 是"进位生成",X⊕Y 是"进位传播"。可由 2 个半加器 + 1 个或门组成
  • 行波进位加法器(Ripple Carry Adder):将 n 个全加器级联构成 n 位加法器,是迭代组合电路的典型例子。进位从低位向高位逐级传递

6. 减法器与补码加/减法器(Subtractor)

  • 利用补码将减法转化为加法:M - N = M + (2^n - N)
  • 通过 XOR 门在 S=1(减法模式)时对减数取反,同时将 C₀ 置 1,实现"取反加 1"
  • S=0 时执行加法,S=1 时执行减法,共享同一套加法逻辑

7. 锁存器(Latch)

锁存器是最基本的存储元件,在电路供电状态下能保存二进制数据:

  • S-R 锁存器(或非门):交叉耦合两个或非门,S=1/R=0 置位,S=0/R=1 复位,S=1/R=1 禁止
  • S̄-R̄ 锁存器(与非门):交叉耦合两个与非门,低电平有效
  • 时钟 S-R 锁存器:在 S̄-R̄ 锁存器基础上增加控制信号 C,C=1 时为正常 S-R 功能,C=0 时状态不变
  • D 锁存器:在时钟 S-R 锁存器基础上加反相器,消除未定义状态。C=1 时 Q=D("透明"),C=0 时保持

锁存器的问题:C=1 期间是"透明"的,输入变化会直接影响输出,在反馈通路中可能导致不稳定。


8. 触发器(Flip-Flop)

触发器由锁存器构成,解决了锁存器的"透明"问题:

  • 脉冲触发式(主从触发器):由两个锁存器串联(主-从),时钟信号分别控制。主锁存器 C=1 时接收数据,从锁存器 C=0 时传递数据。存在"1s catching"问题
  • 边沿触发式 D 触发器:目前最广泛使用的触发器。只在时钟边沿(上升沿或下降沿)采样输入数据,其他时间输出保持不变
  • 直接输入(预置/清零):在时钟正常运行之前将触发器设置为初始状态

9. 寄存器(Register)

  • 基本寄存器:一组触发器加上组合门电路,用于在数据处理过程中保持信息。如 4 位寄存器、16 位寄存器
  • 并行加载寄存器:所有位在公用时钟脉冲下同时加载
  • 移位寄存器 :具有单向或双向移位功能
    • 带并行加载的移位寄存器:支持串行移位和并行加载
    • 双向移位寄存器:支持左移、右移、并行加载和保持四种操作
  • 常见命名:地址寄存器(AR)、程序计数器(PC)、指令寄存器(IR)等

10. 计数器(Counter)

能在时钟脉冲激励下遍历指定状态序列的寄存器:

  • 行波计数器(Ripple Counter):触发器的时钟来自前一级的输出,非公用时钟
  • 同步计数器:所有触发器共用时钟,分为串行门控和并行门控两种
  • 双向二进制计数器:支持向上和向下计数
  • 具有并行加载功能的计数器
  • BCD 码计数器
  • 任意计数序列计数器:能遍历任意规定的状态序列

11. 三态缓冲器(Tri-state Buffer)

  • 除逻辑 0 和逻辑 1 外,还提供高阻态(Hi-Z)
  • EN=1 时正常传递,EN=0 时输出为 Hi-Z(相当于断开)
  • 用于构建三态总线,多个三态缓冲器输出可连在一起

12. 算术功能模块(其他)

  • 递增器:A + 1,通过将行波进位加法器的一个输入固定为 1 来实现(压缩技术)
  • 递减器:A - 1
  • 乘/除 2^n:左移/右移
  • 零填充:在操作数左端或右端填充 0
  • 符号扩展:在操作数左端填充符号位

13. 可编程逻辑器件

  • ROM(只读存储器):本质上是"永久"存储二进制信息的器件,输入提供地址,输出提供存储数据
  • PLA(可编程逻辑阵列):与门阵列代替译码器(不提供全译码),与门和或门之间的连接均可编程
  • PAL(可编程阵列逻辑):或门阵列固定、与门阵列可编程
  • FPGA(现场可编程门阵列):包含可编程逻辑块(用查找表 LUT 实现组合逻辑)、可编程互联和可编程 I/O 引脚。LUT 本质是 2^k × 1 存储器记录真值表

14. 存储器(Memory)

  • RAM(随机访问存储器) :存取时间与位置无关
    • SRAM(静态 RAM):用锁存器存储,保持信息直到断电
    • DRAM(动态 RAM):以电容电荷存储,需要刷新
  • ROM(只读存储器):非易失性,只能读不能写(正常情况下)

二、各种类型电路的设计流程

流程 A:组合逻辑电路设计(5 步)

这是最基础的设计流程,适用于所有组合电路:

步骤 内容 说明
1. 规范化 指定组合电路行为 确定输入/输出含义,如"BCD 码转余三码"
2. 形式化 用真值表对输入输出形式化 列出所有输入组合与对应输出
3. 优化 优化逻辑,减少门输入成本 卡诺图化简→确定主蕴涵项→选择最少主蕴涵项覆盖所有最小项;进一步可用共享电路(如提取公共子表达式 T₁ = C + D)进一步降低门成本
4. 工艺映射 将优化后逻辑映射到实现工艺 映射到与非门:①替换与门和或门→②将反相器推过扇出点→③抵消反相器对→④重复②③。映射到或非门类似
5. 验证 验证设计正确性 方法一:人工逻辑分析(找出实现电路的真值表或方程式,与规范比较);方法二:模拟(用 Verilog 编程实现 + 编写 TestBench + 比较输出)

流程 B:时序逻辑电路设计(8 步)

在组合电路设计基础上增加了状态相关的步骤:

步骤 内容 说明
1. 规范化 描述电路的时序行为 可用文字、数学、HDL、表格、方程、图等形式。典型例子:序列识别器(如识别输入序列 1101)
2. 形式化 得到状态表或状态图 状态是历史输入的抽象。需要定义初始状态(通过复位信号实现)。Mealy 型输出 = F(输入, 状态),输出标注在转移弧上;Moore 型输出 = F(状态),输出标注在状态圆内。Moore 型通常比 Mealy 型多一个状态
3. 状态分配 给状态分配二进制码 常用方式:计数赋值、格雷码赋值、单热点赋值。格雷码赋值可能获得更低的门成本;单热点赋值简化分析但触发器代价更高
4. 确定触发器输入方程 推导状态方程 选择触发器类型(如 D 触发器),从状态表中的"下一状态"推导出触发器输入方程
5. 确定输出方程 推导输出方程 从状态表中的"输出"推导输出方程
6. 优化 对方程进行优化 用卡诺图等方法优化触发器输入方程和输出方程,减少门输入成本
7. 工艺映射 从方程得到电路 映射到触发器和门(如与非门、非门、D 触发器)
8. 验证 验证设计正确性 手工验证(加载各种状态与输入组合验证输出和下一状态)或模拟验证(用输入序列和时钟信号,在时钟上升沿后验证)

状态分配对门成本影响的实例(序列识别器 1101):

  • 计数赋值 A(00),B(01),C(10),D(11):门成本 G=22
  • 格雷码赋值 A(00),B(01),C(11),D(10):门成本 G=9
  • 单热点赋值:组合逻辑简单但触发器多

流程 C:基于状态机图的设计流程

适用于更复杂的时序电路设计,引入了状态机图(SMD):

  1. 定义输入输出变量,并定义每个变量 0 和 1 的含义
  2. 画出电路状态机图或写出状态机表 。状态机图相比传统状态图增加了:
    • 转移条件(TC):输入条件的布尔表达式
    • 输出条件(OC):控制输出行为是否发生
    • 四种输出类型:Moore(无条件)、TCI(转移条件无关)、TCD(转移条件依赖)、TOCD(转移和输出条件依赖)
  3. 转换为状态机表
  4. 约束检查
    • TC 约束:从同一状态出发的所有 TC 对必须互斥(Tij · Tik = 0)且覆盖所有输入组合(ΣTij = 1)
    • OC 约束:对同一输出变量的不同值,输出条件必须互斥且覆盖所有输入组合
  5. 从状态机表推导下一状态和输出的优化方程

流程 D:寄存器传输系统设计(8 步)

适用于构建完整的数字系统(如码表、电梯控制器等):

步骤 内容 说明
① 系统说明书 定义系统功能 如码表:计时上限 99.99 秒,支持 START/STOP/CSS/RESET
② 定义外部信号 确定外部数据和控制信号 列出所有输入信号、输出信号、寄存器
③ 画出状态机图 定义系统状态和转移 Moore 型状态机
④ 定义内部控制和状态信号 将状态映射到控制信号 如 LSR=S1+S6, RSTM=S2, ENTM=S3 等
⑤ 画出模块图 数据通路结构 计数器、寄存器、多路复用器等的连接关系
⑥ 设计寄存器传输逻辑 实现数据通路 如 4 位 BCD 计数器、16 位并行加载寄存器、16 位 2-1 MUX
⑦ 设计控制单元逻辑 实现控制逻辑 可用硬连线逻辑或微程序控制
⑧ 检查正确性 验证系统 功能验证

其中微程序控制是控制单元的一种实现方式:将控制值存储在存储器中,每条微指令指定一条或多条微操作,一系列微指令组成微程序。


三、总结对照表

电路类型 核心元件 设计流程
组合逻辑电路 门、译码器、编码器、MUX、加法器 5 步:规范化→形式化→优化→工艺映射→验证
时序逻辑电路 锁存器、触发器、寄存器 8 步:在组合流程基础上增加状态分配、确定状态/输出方程
算术功能模块 全加器、半加器、补码器 属于组合电路,可用迭代阵列方法设计
可编程逻辑器件 ROM、PLA、PAL、FPGA/LUT 通过编程配置实现目标功能
寄存器传输系统 寄存器、计数器、MUX、总线、三态缓冲器 8 步系统设计,含状态机设计和控制单元设计
存储器系统 SRAM 单元、DRAM 单元、译码器 地址译码 + 读写控制 + 定时波形设计
相关推荐
Alaso_shuang9 个月前
verilog的学习
学习·fpga开发·数字逻辑·数字电路
JokerSZ.2 年前
用V e r i l o g实现一个简单ALU(组合逻辑)
fpga开发·cpu·数字逻辑
Terasic友晶科技2 年前
第一篇 逻辑门(与门、或门、非门、异或门)
fpga开发·数字逻辑·数字系统设计·de1-soc·逻辑门
视觉&物联智能2 年前
【电路笔记】-数字逻辑门总结
笔记·单片机·嵌入式硬件·物联网·嵌入式·数字逻辑·数字电路
沐雨先生2 年前
数字逻辑-时序逻辑电路二——沐雨先生
数字逻辑
Pedestrians742 年前
数字逻辑与计算机组成
计算机网络·数字逻辑·计算机组成
HackerKevn2 年前
【上海大学数字逻辑实验报告】四、组合电路(三)
数字逻辑·实验报告
认真写博客的夏目浅石.3 年前
群晖NAS搭建WebDV服务手机ES文件浏览器远程访问
java·c语言·开发语言·c++·数字逻辑