Altifigence Academy
数字设计免费 · 入门

数字逻辑电路

从数字信号和 AND、OR、XOR 等逻辑门出发,设计组合电路、锁存器、触发器、计数器与状态机。将真值表、公式、电路和波形直接联系起来,并通过 RTL 实验验证。选修进阶部分进一步扩展到数据通路与接口。

组合逻辑与时序逻辑SystemVerilog波形分析
我的学习

你将学到什么

  • 区分逻辑值与电压,解释八种逻辑门的真值表、符号和等效电路。
  • 从规格出发,利用 SOP、POS 和卡诺图设计组合电路,并穷举检查。
  • 定义编码器、译码器、MUX、DEMUX、加法器和比较器的输入条件及边界值。
  • 解释锁存器与触发器的区别,设计 reset、enable 和时钟的更新规则。
  • 用 RTL 实现计数器、移位寄存器和状态机,分析时序、异步输入与消抖。
  • 利用独立参考模型验证设计,完成可检测重叠 101 模式的检测器。
  • 在选修进阶部分扩展到 ALU、存储器、FIFO、流水线和接口。

开始之前

浏览器练习使用教学模型,不会编译或运行 HDL。如需单独运行提供的源代码,请遵循适用于您操作系统的 Digital Design Studio 指南,并在操作要求时登录。

安装与首次启动 ↗ · 下载 ↗

课程大纲

  1. 数字信号与数的表示
    • 数字信号:将电压读为 0 和 1 的条件概念

      区分逻辑值与电压,计算输入阈值、噪声容限和传播延迟。

    • 数制与固定位宽表示概念

      在进制转换之外,进一步计算表示范围、所需位数和截断误差。

  2. 逻辑门与真值表
    • 基本逻辑门:AND、OR、NOT、BUFFER概念

      将电路符号与真值表对应起来,用多个逻辑门组合条件。

    • NAND、NOR 与反相符号的读法概念

      区分取反的作用范围,利用德摩根定律连接功能相同的符号与表达式。

    • XOR、XNOR:相同、不同与奇偶性概念

      区分双输入 XOR 与多输入奇偶性,解释错误检测的局限。

    • 通用逻辑门:只用 NAND 构造电路概念

      通过具体结构说明 NAND、NOR 的功能完备性,验证 XOR 的中间信号。

  3. 从逻辑表达式到电路设计
    • 布尔代数、等价变换与实现成本概念

      利用德摩根定律和提取公因式变换电路,区分逻辑等价与时序特性。

    • 从真值表到逻辑表达式:最小项、最大项、SOP、POS概念

      分别从输出为 1 和输出为 0 的行推导同一函数,并与卡诺图记法对应。

    • 卡诺图与 don’t-care 的条件概念

      利用格雷码的相邻性简化逻辑表达式,明确未使用输入的假设。

    • 设计实验:从规格到三输入多数表决电路实验

      把自然语言规格转成完整真值表,将最小化、实现与穷举检查连接起来。

  4. 地址与选择电路
    • 译码器、独热选择与有效输入概念

      将二进制地址转换为独立选择线,设计使能、范围和选择不变式。

    • 编码器与优先级:从多个请求中选择一个概念

      区分独热编码器的输入假设,以及优先编码器的 valid 与选择结果。

    • DEMUX 与译码器:将数据送往所选路径概念

      比较 MUX、DEMUX 与译码器的方向和作用,验证独热条件与至多一位为 1 的条件。

    • 信号与端口:位宽、方向和时间的约定概念

      阅读接口约定,区分组合输出与状态输出的验证标准。

    • 从真值表到 MUX 与 Shannon 展开概念

      从选择逻辑推导公式,用 MUX 分解任意逻辑函数。

  5. 算术电路与比较
    • 加法器与进位传递结构概念

      推导全加器表达式,结合功能、位宽与延迟分析串行进位结构。

    • 二进制补码、符号扩展与溢出概念

      用公式与反例区分位串的 signed 解释及加法溢出条件。

    • 比较器与边界值规格概念

      区分同一位串的 unsigned 与 signed 比较,验证边界条件。

  6. 锁存器、触发器与状态存储
    • 记忆的起点:反馈与 SR、D 锁存器概念

      理解交叉耦合的两个稳定状态,解释 SR 禁止输入与 D 锁存器的透明区间。

    • D 触发器:从电平到边沿概念

      比较锁存器与触发器的更新时间,联系寄存器、setup 和 hold 的含义。

    • 触发器、enable 与控制优先级概念

      用下一状态表达式定义保持、装载与复位,避免无意的时钟门控。

    • 同步状态转移与时钟的作用概念

      将同步系统理解为一组读取相同旧状态的寄存器。

  7. MUX 的 RTL 实现与验证
    • 组合选择与寄存输出的延迟概念

      分析将 MUX 结果存入寄存器后,接口与延迟发生的变化。

    • 组合 RTL 与完整赋值概念

      用条件运算符与 always_comb 表达同一函数,找出导致锁存器的遗漏赋值。

    • 实验:MUX 的穷举检查与寄存输出分析实验

      将相同输入施加到组合路径与寄存器路径,利用真值表与采样时刻验证结果。

    • 波形采样时刻与因果关系概念

      区分组合稳定、时钟捕获与事件顺序,正确阅读波形。

    • MUX 验证:穷举检查与属性概念

      分别检查组合输入覆盖率与存储行为,并最小化反例。

    • 设计检查:选择电路的等价性与观察时刻测验

      区分仅用真值表即可完成的验证,与必须观察时钟的验证。

  8. 计数器与同步状态更新
    • 状态数、计数器位宽与未使用编码概念

      从计数范围计算存储位数,并定义非法状态的恢复策略。

    • 计数器的下一状态与复位优先级概念

      将递增、保持、复位与回绕统一为一份规格,计算逐边沿结果。

    • 非阻塞赋值与同时状态更新概念

      区分旧值与下一值,准确解读流水线及计数器 RTL。

    • 实验:计数器复位、回绕与不变式验证实验

      将每个上升沿的状态与参考模型对照,区分初值、复位和位宽的影响。

    • 模计数器、饱和计数器与结束脉冲概念

      设计最大值处理方式,以及终值计数信号的精确周期。

    • 计数器调试与最小反例概念

      设计简短测试,区分复位、enable 与回绕边界错误。

    • 设计检查:位宽、优先级与回绕边界测验

      依据给定的状态转移规格,判断边界值与同时到达的控制输入。

  9. 移位寄存器与数据流
    • 向量索引、位顺序与符号概念

      区分位编号、串行传输顺序与算术解释,阅读数据通路。

    • 串行输入与帧边界概念

      定义输入顺序与有效边沿,计算串并转换中的位排列。

    • 移位寄存器的状态方程概念

      用向量状态转移表达比特移动,将存储长度与输出延迟联系起来。

    • 切片、拼接和重复运算的位宽概念

      计算拼接信号的总位宽与数值保留条件,构建数据通路。

    • 实验:串行数据移动与位顺序验证实验

      结合位串与整数参考模型,验证方向、被丢弃的比特以及复位后的延迟。

    • 区分周期延迟与吞吐率概念

      确定 N 级延迟线的观察基准,定量计算延迟与吞吐率。

    • 移位电路验证与数据、valid 对齐概念

      发现被对称模式掩盖的错误,以及有效信号差一个周期的错位。

    • 设计检查:延迟、对齐与输入保留测验

      不仅检查移位方向,也检查有效数据移动次数与观察基准。

  10. 时序、实际输入与状态机
    • Setup、hold 与时序预算概念

      区分最大与最小路径延迟,计算独立于时钟频率的 hold 条件。

    • 逻辑冒险与等价表达式的局限概念

      分析稳态等价的两个电路,如何因传播延迟而产生不同的瞬态波形。

    • 时钟域边界与亚稳态概念

      理解两级同步器的适用范围,区分单比特、短脉冲与多比特传输。

    • 实际按钮输入:同步、消抖与单次事件概念

      区分异步输入同步与触点弹跳消除,设计基于连续样本的消抖器。

    • 状态机:分离状态、转移与输出概念

      从规格表编写 FSM,比较 Moore、Mealy 输出、非法状态与请求策略。

    • 验证计划、覆盖率与独立参考模型概念

      区分测试通过与规格满足,将边界、交叉条件及最小反例纳入验证计划。

    • 综合设计:检测可重叠的 101 模式概念

      在同一设计中应用状态最小化、输入有效性、寄存输出与独立参考验证。

  11. 选修进阶 · 算术数据通路
    • ALU 与 zero、negative、carry、overflow 标志概念

      用共享加法器实现 ADD/SUB,区分进位与有符号溢出,并推导比较条件。

    • 桶形移位器与分级 MUX概念

      用移动 1、2、4、8 位的 MUX 阶段实现可变移位,处理方向共享、符号填充与超范围移位。

    • 定点数、舍入与饱和概念

      用 W、F 定义数值范围,设计基于 guard、sticky 的偶数舍入及舍入后饱和。

    • 多周期 unsigned 移位加法乘法器概念

      将部分积累加分配到 W 个时钟,验证接受与完成时刻、末次累加、位宽及不变式。

  12. 选修进阶 · 存储器与 FIFO
    • 同步存储器与读写冲突约定概念

      区分寄存读取的响应时刻与 read-first、write-first、no-change,分别设计 valid 和地址初始化的职责。

    • 两读一写寄存器文件与旁路概念

      实现两个独立读端口与同步写入,检查各地址冲突下的旁路及初始化、valid 策略。

    • 单时钟 FIFO 的指针与边界策略概念

      实现深度 4 FIFO 的指针与 occupancy,明确空、满时同时 push/pop 的接受条件。

    • FIFO、存储器验证计划与独立 scoreboard概念

      编写不依赖实现指针的 queue scoreboard,将边界、reset、valid 和未初始化读取纳入验证计划。

  13. 选修进阶 · 流水线与接口
    • Ready/valid 与单槽弹性缓冲区概念

      设计可暂停数据通路中无丢失、无重复的传输条件与同时输入输出。

    • 乘加流水线与数据对齐概念

      按寄存器边界划分运算,使数据、valid 与辅助操作数属于同一事务。

    • 可暂停流水线与背压概念

      逐级计算 ready,在暂停与同时移动过程中防止数据丢失、重复和重复计算。

    • 寄存器接口与副作用发生时刻概念

      规定地址、字节写入与响应暂停,使一个请求准确对应一次状态改变。

    • 综合实验:UART 发送器与帧时序概念

      结合分频计数器、移位寄存器与流量控制,生成 8N1 帧并验证比特边界。

你的选择适用于此浏览器,可随时在页脚更改。