UniMate AI

COMP3222

数字电路与系统

6 学分难度 中等

利用 VHDL/Verilog 进行 FPGA 设计,涵盖组合与时序逻辑电路优化。

Syllabus

每周大纲

默认只展示每周独有的知识重点;节奏、考核、Tutorial 和避坑信息按需展开。

  1. 1

    数字逻辑基础与布尔代数

    📖核心知识点:数字系统与模拟系统的区别;数制转换——二进制、八进制、十六进制互转;布尔代数基础——AND/OR/NOT运算及其基本定律(交换律、结合律、分配律、De Morgan定律);布尔函数的表示——真值表、逻辑表达式、逻辑电路图三种等价形式。⏰本周节奏:第一周以数学基础为主,布尔代数定律务必记熟——后续化简全靠这些定律,建议做10+道布尔表达式化简练习。🎯考试关联:De Morgan定律的应用和布尔表达式化简是期末基础计算题;数制转换是选择题高频考点。🧪Tutorial/Lab:练习二进制/十六进制转换;用布尔代数定律化简给定逻辑表达式。📌作业关联:所有后续电路设计都以布尔代数为基础,本周的化简技能是设计高效电路的前提。⚠️易错点:De Morgan定律的推广形式——对多变量表达式取反时每一项都要取反且运算符翻转;二进制补码表示中负数的范围比正数多一个。

  2. 2

    组合逻辑:卡诺图与电路优化

    📖核心知识点:最小项(Minterm)和最大项(Maxterm)的定义;卡诺图(Karnaugh Map)——2/3/4变量K-map的画法与分组规则;质蕴含项(Prime Implicant)和必要质蕴含项(Essential Prime Implicant)的识别;「无关项「(Don't Care)在K-map中的利用;Quine-McCluskey方法(表格法)简介——适合多变量情况。⏰本周节奏:K-map是数字设计的核心优化工具,4变量K-map必须练到手熟,建议做8-10道完整的K-map化简题(含Don't Care)。🎯考试关联:K-map化简是期末必考计算题(15-20分),要求画图、分组、写出最简积之和/和之积表达式。🧪Tutorial/Lab:用K-map化简给定布尔函数;比较代数法和K-map法化简结果的等价性。📌作业关联:Assignment中的组合电路设计需要先用K-map化简再实现,化简质量直接影响电路复杂度。⚠️易错点:K-map分组必须是2的幂大小(1,2,4,8)且必须是矩形;4变量K-map的边缘和角落可以「绕回「分组;遗漏必要质蕴含项导致结果不是最简。

  3. 3

    组合电路模块:加法器与多路选择器

    📖核心知识点:半加器(Half Adder)与全加器(Full Adder)的设计——真值表→布尔表达式→电路图;行波进位加法器(Ripple Carry Adder)的构造与延迟分析;超前进位加法器(Carry Lookahead Adder)——Generate/Propagate信号与并行进位计算;多路选择器(MUX)的结构与应用——2:1、4:1 MUX及其级联;用MUX实现任意布尔函数。⏰本周节奏:加法器和MUX是后续所有复杂电路的基础构建块,重点理解进位传播的延迟问题和CLA的优化思想。🎯考试关联:CLA的Generate/Propagate计算和延迟分析是期末计算题考点;用MUX实现布尔函数是设计题考点。🧪Tutorial/Lab:在FPGA开发板上用Verilog/VHDL实现4位行波进位加法器;用MUX实现一个3变量布尔函数。📌作业关联:Assignment的ALU设计通常以加法器为核心,CLA的理解有助于优化设计。⚠️易错点:行波进位加法器的最坏延迟=n×全加器延迟(最高位进位需要逐位传播);CLA中Generate和Propagate公式的推导——Gi=Ai·Bi, Pi=Ai⊕Bi。

  4. 4

    时序逻辑基础:锁存器与触发器

    📖核心知识点:组合逻辑vs时序逻辑的本质区别——时序逻辑有记忆/状态;SR锁存器——基本存储单元的构造与特性表;D锁存器与D触发器——电平触发vs边沿触发的区别;触发器的时序参数——建立时间(Setup Time)、保持时间(Hold Time)、传播延迟(Clock-to-Q);寄存器——多位D触发器的并行组合。⏰本周节奏:从组合逻辑到时序逻辑是全课最大的概念跳跃,重点理解「边沿触发「的工作原理和时序约束。🎯考试关联:触发器的时序图分析(给定时钟和输入波形画输出波形)是期末必考题;建立时间/保持时间违反的后果是简答题考点。🧪Tutorial/Lab:在Verilog中实现D触发器和寄存器;分析时序图中触发器的输出变化。📌作业关联:Assignment的有限状态机设计以触发器为存储元件,时序理解是正确性的保证。⚠️易错点:D锁存器在高电平期间是透明的(输出跟随输入变化),D触发器只在时钟边沿采样——两者行为完全不同;建立时间违反导致亚稳态(Metastability)。

  5. 5

    有限状态机设计

    📖核心知识点:有限状态机(FSM)的分类——Moore型(输出只依赖当前状态)vs Mealy型(输出依赖当前状态和当前输入);FSM设计流程——状态图→状态表→状态编码→逻辑表达式→电路实现;状态编码策略——顺序编码、格雷码编码、独热码(One-Hot)编码的优缺点;状态化简——等价状态的识别与合并。⏰本周节奏:FSM设计是全课最核心的综合技能,建议对2-3个不同应用场景(序列检测器、自动售货机)完成完整的设计流程。🎯考试关联:FSM的完整设计(状态图→状态表→电路实现)是期末压轴大题(20+分);Moore vs Mealy的区别是简答题必考点。🧪Tutorial/Lab:设计一个「1011「序列检测器的FSM——画状态图、填状态表、选择编码、导出逻辑表达式并在FPGA上验证。📌作业关联:Assignment通常要求设计和实现一个较复杂的FSM控制器。⚠️易错点:Mealy型FSM的输出可能产生毛刺(Glitch)因为它依赖组合逻辑;状态图中遗漏某些输入组合导致FSM行为未定义;One-Hot编码的触发器数量等于状态数(而非log2(状态数))。

  6. 6

    寄存器传输级设计与数据通路

    📖核心知识点:寄存器传输级(RTL)设计方法——用寄存器间的数据传输操作描述硬件行为;数据通路(Datapath)与控制器(Controller)的分离设计;数据通路组件——寄存器、ALU、移位器、MUX、计数器的RTL描述;ASM图(Algorithmic State Machine Chart)——结合状态图和流程图的硬件算法描述;从ASM图到数据通路+控制器的系统化设计方法。⏰本周节奏:RTL设计是从单个模块到系统级设计的桥梁,ASM图的绘制和解读是本周重点。🎯考试关联:ASM图的绘制和从ASM图导出控制信号是期末设计题考点;数据通路与控制器的接口设计是高频考点。🧪Tutorial/Lab:用ASM图设计一个简单的GCD(最大公约数)计算器;将ASM图转化为数据通路和FSM控制器。📌作业关联:Assignment的大型设计项目通常采用RTL方法论,ASM图是设计文档的核心。⚠️易错点:ASM图中条件框的输出条件必须互斥且完备;数据通路中控制信号的时序——控制器状态变化和数据通路操作的同步关系。

  7. 7

    存储器与可编程逻辑

    📖核心知识点:存储器分类——ROM(只读)、RAM(随机访问)、SRAM vs DRAM的结构与性能差异;存储器的地址解码——行译码器与列译码器;可编程逻辑器件——PLA(可编程逻辑阵列)、PAL、CPLD的结构;FPGA架构——查找表(LUT)、可配置逻辑块(CLB)、布线资源、I/O块;FPGA设计流程——综合→布局→布线→下载。⏰本周节奏:FPGA是本课程的重要实验平台,理解LUT如何实现任意布尔函数是关键。🎯考试关联:SRAM vs DRAM的结构差异和性能特点是简答题必考点;PLA/PAL的编程方法是计算题考点。🧪Tutorial/Lab:在FPGA上综合并下载之前设计的FSM;分析综合报告中的资源使用情况。📌作业关联:所有FPGA Assignment的实现都依赖对FPGA架构的理解,资源利用率是评分维度之一。⚠️易错点:SRAM用6个晶体管存1位(快但面积大),DRAM用1个晶体管+1个电容(密度高但需刷新);FPGA的LUT大小(通常4-6输入)限制了单个LUT能实现的函数复杂度。

  8. 8

    算术电路与数据表示

    📖核心知识点:有符号数的表示——补码(Two's Complement)的性质与运算规则;溢出检测——加法溢出的判定条件(同号相加结果异号);乘法器设计——阵列乘法器、Booth编码乘法器;除法器设计——恢复余数法与不恢复余数法;浮点数表示——IEEE 754标准(符号位+指数+尾数)、特殊值(±0, ±∞, NaN)。⏰本周节奏:算术电路是处理器设计的核心功能单元,补码运算和IEEE 754必须理解透彻。🎯考试关联:IEEE 754浮点数的编码/解码是期末必考计算题;Booth乘法器的执行过程是高频计算题。🧪Tutorial/Lab:手动执行Booth乘法算法;将十进制浮点数编码为IEEE 754格式并验证。📌作业关联:Assignment的ALU设计需要支持各种算术运算,溢出检测和Booth乘法是进阶要求。⚠️易错点:补码的最小负数取反再加1会溢出(-128的补码取反仍然是-128);IEEE 754的指数使用偏移表示(Bias=127对于单精度);浮点加法需要先对阶再尾数相加。

  9. 9

    高级时序设计与时序分析

    📖核心知识点:同步设计原则——所有触发器使用同一时钟,避免异步设计的不确定性;时钟偏移(Clock Skew)与时钟抖动(Clock Jitter)的影响;关键路径(Critical Path)分析——确定电路最高工作频率;建立时间约束Tclk ≥ Tcq + Tcomb + Tsetup;保持时间约束Thold ≤ Tcq + Tcomb_min;亚稳态(Metastability)与同步器设计。⏰本周节奏:时序分析是芯片设计能否工作的根本保证,关键路径计算是本周核心技能。🎯考试关联:给定电路计算最高时钟频率和关键路径是期末必考计算题;亚稳态的原因与同步器设计是简答题考点。🧪Tutorial/Lab:对给定时序电路进行建立时间和保持时间分析;计算最高工作频率并识别关键路径。📌作业关联:Assignment的FPGA设计需要满足时序约束,时序分析报告是提交内容之一。⚠️易错点:保持时间约束与时钟频率无关(它约束的是同一时钟边沿的最短路径);多位信号跨时钟域必须使用同步器否则会产生亚稳态。

  10. 10

    系统级设计与全课总结

    📖核心知识点:总线结构——地址总线、数据总线、控制总线的作用;总线仲裁——集中式(菊花链、优先级编码)vs分布式仲裁;简单处理器的完整设计——数据通路+控制器+存储器接口的系统集成;设计验证——仿真测试(Testbench编写)、形式化验证简介;全课知识图谱——布尔代数→组合逻辑→时序逻辑→FSM→RTL设计→存储器→算术电路→时序分析的完整数字设计体系。⏰本周节奏:最后一周以系统级整合和复习为主,建议绘制全课知识地图,从基本门电路到完整处理器的设计层次。🎯考试关联:期末综合题可能要求完成一个小型系统的完整设计(数据通路+控制器+时序分析)。🧪Tutorial/Lab:完成FPGA项目的最终集成与验证;做全课综合模拟题。📌作业关联:所有Assignment截止前最终检查——确保设计功能正确、时序满足、测试覆盖充分。⚠️易错点:系统集成时接口信号的位宽不匹配;Testbench中时钟生成和复位逻辑的编写规范;综合结果与仿真结果不一致(通常是时序违反或未初始化信号导致)。

From Seniors

学长留下的

基础信息谁都查得到,真正值钱的是过来人的经验。

学姐说

比你早一年的学长留下的真实经验 —— ChatGPT 给不了。

这门课还没有学长经验,你可以是第一个 —— 注册后在课内分享。

往年考点 / 踩坑

这门课暂无往年考点记录。

毕业生去向(整体)

下面是匠人学院毕业生整体去过的公司分布(来自脱敏校友证言)。这是全平台的总体去向,不代表选这门课的人一定去这些公司。

统计自 317 份脱敏校友证言

Deloitte

6 位校友

岗位:Graduate Program · Graduate Consulting · Platform Engineer · Web developer · Platform engineer

Zerologix

4 位校友

岗位:Frontend Dev · junior frontend developer · Front-end Developer · Full Stack Developer

Servian

4 位校友

岗位:Full-stack Developer · Data Engineer · Consultant

关于这块数据,我们说实话

雇主墙来自脱敏毕业生证言(testimonials)的整体分布,无法关联到具体学员或其所选课程;仅作为毕业生去向的总体社会证明展示。

我们没有"某位学长选了这门课、后来进了哪家公司"这种可查询的个人去向档案 —— 校友证言是脱敏的,无法关联到具体的人或他选过的课。所以这里只给整体分布,不给个人路径,不编。