数字逻辑电路
从数字信号和 AND、OR、XOR 等逻辑门出发,设计组合电路、锁存器、触发器、计数器与状态机。将真值表、公式、电路和波形直接联系起来,并通过 RTL 实验验证。选修进阶部分进一步扩展到数据通路与接口。
你将学到什么
- 区分逻辑值与电压,解释八种逻辑门的真值表、符号和等效电路。
- 从规格出发,利用 SOP、POS 和卡诺图设计组合电路,并穷举检查。
- 定义编码器、译码器、MUX、DEMUX、加法器和比较器的输入条件及边界值。
- 解释锁存器与触发器的区别,设计 reset、enable 和时钟的更新规则。
- 用 RTL 实现计数器、移位寄存器和状态机,分析时序、异步输入与消抖。
- 利用独立参考模型验证设计,完成可检测重叠 101 模式的检测器。
- 在选修进阶部分扩展到 ALU、存储器、FIFO、流水线和接口。
开始之前
浏览器练习使用教学模型,不会编译或运行 HDL。如需单独运行提供的源代码,请遵循适用于您操作系统的 Digital Design Studio 指南,并在操作要求时登录。
安装与首次启动 ↗ · 下载 ↗课程大纲
- 数字信号与数的表示
- 数字信号:将电压读为 0 和 1 的条件概念
区分逻辑值与电压,计算输入阈值、噪声容限和传播延迟。
- 数制与固定位宽表示概念
在进制转换之外,进一步计算表示范围、所需位数和截断误差。
- 逻辑门与真值表
- 基本逻辑门:AND、OR、NOT、BUFFER概念
将电路符号与真值表对应起来,用多个逻辑门组合条件。
- NAND、NOR 与反相符号的读法概念
区分取反的作用范围,利用德摩根定律连接功能相同的符号与表达式。
- XOR、XNOR:相同、不同与奇偶性概念
区分双输入 XOR 与多输入奇偶性,解释错误检测的局限。
- 通用逻辑门:只用 NAND 构造电路概念
通过具体结构说明 NAND、NOR 的功能完备性,验证 XOR 的中间信号。
- 从逻辑表达式到电路设计
- 布尔代数、等价变换与实现成本概念
利用德摩根定律和提取公因式变换电路,区分逻辑等价与时序特性。
- 从真值表到逻辑表达式:最小项、最大项、SOP、POS概念
分别从输出为 1 和输出为 0 的行推导同一函数,并与卡诺图记法对应。
- 卡诺图与 don’t-care 的条件概念
利用格雷码的相邻性简化逻辑表达式,明确未使用输入的假设。
- 设计实验:从规格到三输入多数表决电路实验
把自然语言规格转成完整真值表,将最小化、实现与穷举检查连接起来。
- 地址与选择电路
- 译码器、独热选择与有效输入概念
将二进制地址转换为独立选择线,设计使能、范围和选择不变式。
- 编码器与优先级:从多个请求中选择一个概念
区分独热编码器的输入假设,以及优先编码器的 valid 与选择结果。
- DEMUX 与译码器:将数据送往所选路径概念
比较 MUX、DEMUX 与译码器的方向和作用,验证独热条件与至多一位为 1 的条件。
- 信号与端口:位宽、方向和时间的约定概念
阅读接口约定,区分组合输出与状态输出的验证标准。
- 从真值表到 MUX 与 Shannon 展开概念
从选择逻辑推导公式,用 MUX 分解任意逻辑函数。
- 算术电路与比较
- 加法器与进位传递结构概念
推导全加器表达式,结合功能、位宽与延迟分析串行进位结构。
- 二进制补码、符号扩展与溢出概念
用公式与反例区分位串的 signed 解释及加法溢出条件。
- 比较器与边界值规格概念
区分同一位串的 unsigned 与 signed 比较,验证边界条件。
- 锁存器、触发器与状态存储
- 记忆的起点:反馈与 SR、D 锁存器概念
理解交叉耦合的两个稳定状态,解释 SR 禁止输入与 D 锁存器的透明区间。
- D 触发器:从电平到边沿概念
比较锁存器与触发器的更新时间,联系寄存器、setup 和 hold 的含义。
- 触发器、enable 与控制优先级概念
用下一状态表达式定义保持、装载与复位,避免无意的时钟门控。
- 同步状态转移与时钟的作用概念
将同步系统理解为一组读取相同旧状态的寄存器。
- MUX 的 RTL 实现与验证
- 组合选择与寄存输出的延迟概念
分析将 MUX 结果存入寄存器后,接口与延迟发生的变化。
- 组合 RTL 与完整赋值概念
用条件运算符与 always_comb 表达同一函数,找出导致锁存器的遗漏赋值。
- 实验:MUX 的穷举检查与寄存输出分析实验
将相同输入施加到组合路径与寄存器路径,利用真值表与采样时刻验证结果。
- 波形采样时刻与因果关系概念
区分组合稳定、时钟捕获与事件顺序,正确阅读波形。
- MUX 验证:穷举检查与属性概念
分别检查组合输入覆盖率与存储行为,并最小化反例。
- 设计检查:选择电路的等价性与观察时刻测验
区分仅用真值表即可完成的验证,与必须观察时钟的验证。
- 计数器与同步状态更新
- 状态数、计数器位宽与未使用编码概念
从计数范围计算存储位数,并定义非法状态的恢复策略。
- 计数器的下一状态与复位优先级概念
将递增、保持、复位与回绕统一为一份规格,计算逐边沿结果。
- 非阻塞赋值与同时状态更新概念
区分旧值与下一值,准确解读流水线及计数器 RTL。
- 实验:计数器复位、回绕与不变式验证实验
将每个上升沿的状态与参考模型对照,区分初值、复位和位宽的影响。
- 模计数器、饱和计数器与结束脉冲概念
设计最大值处理方式,以及终值计数信号的精确周期。
- 计数器调试与最小反例概念
设计简短测试,区分复位、enable 与回绕边界错误。
- 设计检查:位宽、优先级与回绕边界测验
依据给定的状态转移规格,判断边界值与同时到达的控制输入。
- 移位寄存器与数据流
- 向量索引、位顺序与符号概念
区分位编号、串行传输顺序与算术解释,阅读数据通路。
- 串行输入与帧边界概念
定义输入顺序与有效边沿,计算串并转换中的位排列。
- 移位寄存器的状态方程概念
用向量状态转移表达比特移动,将存储长度与输出延迟联系起来。
- 切片、拼接和重复运算的位宽概念
计算拼接信号的总位宽与数值保留条件,构建数据通路。
- 实验:串行数据移动与位顺序验证实验
结合位串与整数参考模型,验证方向、被丢弃的比特以及复位后的延迟。
- 区分周期延迟与吞吐率概念
确定 N 级延迟线的观察基准,定量计算延迟与吞吐率。
- 移位电路验证与数据、valid 对齐概念
发现被对称模式掩盖的错误,以及有效信号差一个周期的错位。
- 设计检查:延迟、对齐与输入保留测验
不仅检查移位方向,也检查有效数据移动次数与观察基准。
- 时序、实际输入与状态机
- Setup、hold 与时序预算概念
区分最大与最小路径延迟,计算独立于时钟频率的 hold 条件。
- 逻辑冒险与等价表达式的局限概念
分析稳态等价的两个电路,如何因传播延迟而产生不同的瞬态波形。
- 时钟域边界与亚稳态概念
理解两级同步器的适用范围,区分单比特、短脉冲与多比特传输。
- 实际按钮输入:同步、消抖与单次事件概念
区分异步输入同步与触点弹跳消除,设计基于连续样本的消抖器。
- 状态机:分离状态、转移与输出概念
从规格表编写 FSM,比较 Moore、Mealy 输出、非法状态与请求策略。
- 验证计划、覆盖率与独立参考模型概念
区分测试通过与规格满足,将边界、交叉条件及最小反例纳入验证计划。
- 综合设计:检测可重叠的 101 模式概念
在同一设计中应用状态最小化、输入有效性、寄存输出与独立参考验证。
- 选修进阶 · 算术数据通路
- ALU 与 zero、negative、carry、overflow 标志概念
用共享加法器实现 ADD/SUB,区分进位与有符号溢出,并推导比较条件。
- 桶形移位器与分级 MUX概念
用移动 1、2、4、8 位的 MUX 阶段实现可变移位,处理方向共享、符号填充与超范围移位。
- 定点数、舍入与饱和概念
用 W、F 定义数值范围,设计基于 guard、sticky 的偶数舍入及舍入后饱和。
- 多周期 unsigned 移位加法乘法器概念
将部分积累加分配到 W 个时钟,验证接受与完成时刻、末次累加、位宽及不变式。
- 选修进阶 · 存储器与 FIFO
- 同步存储器与读写冲突约定概念
区分寄存读取的响应时刻与 read-first、write-first、no-change,分别设计 valid 和地址初始化的职责。
- 两读一写寄存器文件与旁路概念
实现两个独立读端口与同步写入,检查各地址冲突下的旁路及初始化、valid 策略。
- 单时钟 FIFO 的指针与边界策略概念
实现深度 4 FIFO 的指针与 occupancy,明确空、满时同时 push/pop 的接受条件。
- FIFO、存储器验证计划与独立 scoreboard概念
编写不依赖实现指针的 queue scoreboard,将边界、reset、valid 和未初始化读取纳入验证计划。
- 选修进阶 · 流水线与接口
- Ready/valid 与单槽弹性缓冲区概念
设计可暂停数据通路中无丢失、无重复的传输条件与同时输入输出。
- 乘加流水线与数据对齐概念
按寄存器边界划分运算,使数据、valid 与辅助操作数属于同一事务。
- 可暂停流水线与背压概念
逐级计算 ready,在暂停与同时移动过程中防止数据丢失、重复和重复计算。
- 寄存器接口与副作用发生时刻概念
规定地址、字节写入与响应暂停,使一个请求准确对应一次状态改变。
- 综合实验:UART 发送器与帧时序概念
结合分频计数器、移位寄存器与流量控制,生成 8N1 帧并验证比特边界。