Week 1Introduction to Digital System Design & FPGAs
### 📖 核心知识点:数字系统设计与FPGA导论 课程介绍现代数字系统设计的方法论。学习 FPGA (Field Programmable Gate Array) 的架构:CLB (Configurable Logic Block)、IOB (I/O Block)、Routing Matrix。了解 FPGA vs ASIC vs Microcontroller 的设计取舍。熟悉 Xilinx/Intel FPGA 开发工具链。 - **核心概念/公式**: FPGA 架构 (LUT-based CLB、Flip-Flop、Block RAM、DSP Slice)、Design Flow (Specification→Synthesis→Implementation→Bitstream→Programming) ⏰ **本周节奏**: 难度 ⭐⭐⭐ | 预计投入 9h(Lecture 2h + Tutorial 1h + Lab 2h + 自学 4h) 🎯 **考试关联**: Final Exam (50%, Hurdle ≥40%) 会考 FPGA 架构基础概念。Lab Activities (30%) 从本周开始。 🧪 **Tutorial/Lab**: 搭建 FPGA 开发环境 (Vivado/Quartus),完成第一个 LED 闪烁设计。 📌 **作业关联**: Lab Prac 1 (Due Week 3) 从本周开始准备。Project (20%) 选题讨论。 ⚠️ **易错点**: FPGA 开发不是编程而是硬件描述——所有 VHDL 代码最终会变成门电路;综合 (Synthesis) 时间可能很长,需要提前留足时间。 (数据来源:2024 S2 UQ Course Profile,CSSE4010)
课程导向与研究问题
💡 学习提示
• 总结 课程导向与研究问题 的核心概念与适用场景
• 为第1周生成 5 道练习题并给出解题步骤
Week 2VHDL Fundamentals: Entities & Architectures
### 📖 核心知识点:VHDL基础 - 实体与架构 学习 VHDL (VHSIC Hardware Description Language) 的基本语法。掌握 Entity (接口描述) 和 Architecture (行为/结构描述) 的编写。学习 VHDL 数据类型:std_logic, std_logic_vector, integer, boolean。掌握信号 (Signal) 和变量 (Variable) 的区别。 - **核心概念/公式**: Entity 声明 Port (in/out/inout/buffer)、Architecture 三种描述风格 (Behavioral/Dataflow/Structural)、Signal 赋值 <= vs Variable 赋值 := ⏰ **本周节奏**: 难度 ⭐⭐⭐⭐ | 预计投入 10h(Lecture 2h + Tutorial 1h + Lab 2h + 自学 5h) 🎯 **考试关联**: VHDL 语法和代码阅读是 Final Exam 的核心考点。 🧪 **Tutorial/Lab**: 用 VHDL 描述基本逻辑门和多路选择器 (MUX),仿真验证功能。 📌 **作业关联**: Lab Prac 1 的基础模块。 ⚠️ **易错点**: Signal 更新在 process 结束时才生效(不是立即生效);std_logic 的 'U' (Uninitialized) 状态在仿真中导致意外行为;忘记给 process 的 sensitivity list 加入所有读取的信号。 (数据来源:2024 S2 UQ Course Profile,CSSE4010)
理论深化I
💡 学习提示
• 总结 理论深化 I 的核心概念与适用场景
• 为第2周生成 5 道练习题并给出解题步骤
Week 3VHDL Combinational Logic Design
### 📖 核心知识点:VHDL组合逻辑设计 学习用 VHDL 描述组合逻辑电路。掌握 Concurrent Signal Assignment、When-Else、With-Select-When 等并发语句。学习 Process 语句中的 If-Then-Else 和 Case 语句。设计 Decoder, Encoder, Priority Encoder, ALU 等组合电路。 - **核心概念/公式**: Concurrent Statements (并发执行) vs Sequential Statements (Process 内顺序执行)、Sensitivity List 规则、Latch 意外生成的原因 ⏰ **本周节奏**: 难度 ⭐⭐⭐⭐ | 预计投入 10h(Lecture 2h + Tutorial 1h + Lab 2h + 自学 5h) 🎯 **考试关联**: VHDL 组合逻辑代码编写和分析是 Final Exam 的高频考点。 🧪 **Tutorial/Lab**: Lab Prac 1 截止 — 提交 VHDL 组合逻辑设计并进行 Oral Assessment(口头解释设计)。 📌 **作业关联**: Lab Prac 1 (6%, Due Week 3) 截止提交。需要现场向 Tutor 解释设计。 ⚠️ **易错点**: Process 中的 If 语句不完整(缺少 else 分支)会综合出 Latch 而非组合逻辑;Case 语句缺少 when others 分支导致综合错误;忘记 Sensitivity List 中的信号导致仿真与综合行为不一致。 (数据来源:2024 S2 UQ Course Profile,CSSE4010)
理论深化II
💡 学习提示
• 总结 理论深化 II 的核心概念与适用场景
• 为第3周生成 5 道练习题并给出解题步骤
Week 4VHDL Sequential Logic: Flip-Flops & Registers
### 📖 核心知识点:VHDL时序逻辑设计 学习用 VHDL 描述时序逻辑电路。掌握 Clock Edge Detection (rising_edge/falling_edge),D Flip-Flop、Register 的 VHDL 描述。学习 Synchronous Reset vs Asynchronous Reset 的实现。设计 Shift Register 和 Counter。 - **核心概念/公式**: rising_edge(clk) 用于时钟边沿检测、同步复位 if rising_edge(clk) then if reset=... vs 异步复位 if reset=... elsif rising_edge(clk) ⏰ **本周节奏**: 难度 ⭐⭐⭐⭐ | 预计投入 10h(Lecture 2h + Tutorial 1h + Lab 2h + 自学 5h) 🎯 **考试关联**: 时序逻辑的 VHDL 代码编写是 Final Exam 的必考内容。 🧪 **Tutorial/Lab**: 设计可配置的 N-bit Counter 和 Shift Register,综合到 FPGA 验证。 📌 **作业关联**: Lab Prac 2 (Due Week 5) 从本周开始准备。 ⚠️ **易错点**: 同步复位和异步复位的 VHDL 模板写错位置导致综合结果不同;Clock Domain Crossing 问题(多时钟域设计中的 Metastability);Counter 溢出处理。 (数据来源:2024 S2 UQ Course Profile,CSSE4010)
专题实践I
💡 学习提示
• 总结 专题实践 I 的核心概念与适用场景
• 为第4周生成 5 道练习题并给出解题步骤
Week 5Finite State Machines in VHDL
### 📖 核心知识点:VHDL有限状态机设计 学习用 VHDL 实现 Finite State Machine (FSM)。掌握 Moore FSM 和 Mealy FSM 的 VHDL 标准模板(Two-Process 和 Three-Process Style)。学习 State Encoding 方法:Binary, One-Hot, Gray。设计交通灯控制器等经典 FSM 应用。 - **核心概念/公式**: FSM Two-Process Template (状态寄存器 Process + 次态/输出逻辑 Process)、One-Hot Encoding 在 FPGA 中的效率优势、Safe FSM (处理 illegal states) ⏰ **本周节奏**: 难度 ⭐⭐⭐⭐⭐ | 预计投入 11h(Lecture 2h + Tutorial 1h + Lab 2h + 自学 6h)🔥 高压周 🎯 **考试关联**: FSM 的 VHDL 实现是 Final Exam 最重要的考点之一。需要能手写完整 FSM 代码。 🧪 **Tutorial/Lab**: Lab Prac 2 截止 — 提交 FSM 设计并进行 Oral Assessment。 📌 **作业关联**: Lab Prac 2 (6%, Due Week 5) 截止。FSM 是后续所有 Lab 和 Project 的基础。 ⚠️ **易错点**: 忘记在 Case 中处理所有状态(when others => 兜底);Moore FSM 的输出应该只依赖 current_state,不要意外依赖输入;One-Hot 编码中使用 if state(0)='1' 而非 case state。 (数据来源:2024 S2 UQ Course Profile,CSSE4010)
专题实践II
💡 学习提示
• 总结 专题实践 II 的核心概念与适用场景
• 为第5周生成 5 道练习题并给出解题步骤
Week 6Simulation & Testbench Design
### 📖 核心知识点:仿真与测试平台设计 学习如何编写 VHDL Testbench 进行功能仿真。掌握 Assert 语句进行自动化验证。学习 Stimulus Generation 的技巧:Clock 生成、Reset 序列、输入向量。了解 Post-Synthesis Simulation 和 Timing Simulation 的区别。 - **核心概念/公式**: Testbench 不可综合(无 Port 的 Entity)、Clock 生成 clk <= not clk after PERIOD/2、Assert+Report 自动验证、Wait 语句控制仿真时序 ⏰ **本周节奏**: 难度 ⭐⭐⭐ | 预计投入 9h(Lecture 2h + Tutorial 1h + Lab 2h + 自学 4h) 🎯 **考试关联**: Testbench 编写是 Final Exam 可能的考查内容。 🧪 **Tutorial/Lab**: 为之前设计的 FSM 编写完整的 Testbench,实现自动化 Pass/Fail 判定。 📌 **作业关联**: Lab Prac 3 (Due Week 7) 要求提交包含 Testbench 的完整设计。 ⚠️ **易错点**: Testbench 中的时间单位 (ns, us) 不一致;忘记在仿真结束时加 wait 或 std.env.stop 导致仿真无限运行;Post-synthesis timing 与 behavioral simulation 结果不同是正常的。 (数据来源:2024 S2 UQ Course Profile,CSSE4010)
专题实践III
💡 学习提示
• 总结 专题实践 III 的核心概念与适用场景
• 为第6周生成 5 道练习题并给出解题步骤
Week 7Synthesis & FPGA Implementation
### 📖 核心知识点:综合与FPGA实现 深入学习 VHDL 综合 (Synthesis) 的过程和约束。理解 Synthesis Tool 如何将 VHDL 转换为门级网表。学习 Timing Constraints (SDC 格式)、Place and Route 的基本概念。掌握 FPGA Resource Utilization 报告的解读。 - **核心概念/公式**: Synthesis = VHDL → Gate-level Netlist、Timing Constraint: create_clock、Setup Time / Hold Time 违反、Critical Path 分析 ⏰ **本周节奏**: 难度 ⭐⭐⭐⭐ | 预计投入 10h(Lecture 2h + Tutorial 1h + Lab 2h + 自学 5h) 🎯 **考试关联**: 综合过程和时序分析是 Final Exam 的重要考点。 🧪 **Tutorial/Lab**: Lab Prac 3 截止 — 提交综合到 FPGA 的完整设计。分析 Timing Report 和 Utilization Report。 📌 **作业关联**: Lab Prac 3 (6%, Due Week 7) 截止。 ⚠️ **易错点**: 非可综合代码(如 after 延时语句)在综合时被忽略;Critical Path 上的逻辑层数太深导致时序违反;Synthesis Warning 中的 Latch Inference 通常是 Bug。 (数据来源:2024 S2 UQ Course Profile,CSSE4010)
中期展示
💡 学习提示
• 总结 中期展示 的核心概念与适用场景
• 为第7周生成 5 道练习题并给出解题步骤
Week 8Memory Systems: RAM & ROM in VHDL
### 📖 核心知识点:存储系统 - RAM与ROM的VHDL实现 学习在 FPGA 中实现存储器。掌握 Block RAM (BRAM) 和 Distributed RAM 的区别和使用场景。学习 ROM (Lookup Table)、Single-Port RAM、Dual-Port RAM 的 VHDL 描述模板。了解 Memory Initialization (COE 文件)。 - **核心概念/公式**: BRAM 的容量 = 深度 × 宽度、Dual-Port RAM 的读写冲突处理、ROM 初始化(type 数组 + constant 赋值) ⏰ **本周节奏**: 难度 ⭐⭐⭐ | 预计投入 9h(Lecture 2h + Tutorial 1h + Lab 2h + 自学 4h) 🎯 **考试关联**: RAM/ROM 的 VHDL 描述是 Final Exam 的可能考点。 🧪 **Tutorial/Lab**: 实现一个 VGA 显示系统,使用 ROM 存储图像数据、RAM 作为帧缓冲。 📌 **作业关联**: Lab Prac 4 (Due Week 9) 涉及存储器设计。 ⚠️ **易错点**: BRAM 读取有一个时钟周期延迟(不是组合逻辑输出);Dual-Port RAM 同时读写同一地址的行为需要明确(Read-first / Write-first / No-change);ROM 初始化数据格式错误。 (数据来源:2024 S2 UQ Course Profile,CSSE4010)
系统优化
💡 学习提示
• 总结 系统优化 的核心概念与适用场景
• 为第8周生成 5 道练习题并给出解题步骤
Week 9Arithmetic Circuits & ALU Design
### 📖 核心知识点:算术电路与ALU设计 学习数字算术电路的 VHDL 实现。掌握 Adder (Ripple Carry, Carry Lookahead)、Multiplier、Comparator 的设计。学习如何使用 FPGA 内置的 DSP Slice 加速算术运算。设计一个多功能 ALU。 - **核心概念/公式**: Carry Lookahead Adder 的 Generate/Propagate、unsigned vs signed 类型运算、FPGA DSP48 Slice 的使用方法 ⏰ **本周节奏**: 难度 ⭐⭐⭐⭐ | 预计投入 10h(Lecture 2h + Tutorial 1h + Lab 2h + 自学 5h) 🎯 **考试关联**: ALU 设计和算术电路分析是 Final Exam 的考查范围。 🧪 **Tutorial/Lab**: Lab Prac 4 截止 — 设计并实现一个 8-bit ALU,支持加减、逻辑运算和移位操作。 📌 **作业关联**: Lab Prac 4 (6%, Due Week 9) 截止。Project 设计方案应该已经确定。 ⚠️ **易错点**: signed 和 unsigned 运算的结果类型不同;Ripple Carry Adder 位数增多后关键路径延迟线性增长;乘法器消耗 FPGA 资源较多,大位宽乘法应使用 DSP Slice。 (数据来源:2024 S2 UQ Course Profile,CSSE4010)
前沿拓展
💡 学习提示
• 总结 前沿拓展 的核心概念与适用场景
• 为第9周生成 5 道练习题并给出解题步骤
Week 10Bus Interfaces & Communication Protocols
### 📖 核心知识点:总线接口与通信协议 学习数字系统中的总线接口设计。掌握 AXI (Advanced eXtensible Interface) 总线协议的基本概念。学习 SPI、I2C、UART 等通信协议在 FPGA 中的实现。了解 System-on-Chip (SoC) 设计的基本概念。 - **核心概念/公式**: AXI4-Lite 的 Read/Write Channel、UART 发送器的 Baud Rate Generator 设计、SPI Master 的 VHDL 实现 ⏰ **本周节奏**: 难度 ⭐⭐⭐⭐ | 预计投入 10h(Lecture 2h + Tutorial 1h + Lab 2h + 自学 5h) 🎯 **考试关联**: 通信协议在 FPGA 中的实现方法是考试可能的考点。 🧪 **Tutorial/Lab**: Lab Prac 5 — 实现 UART 发送器/接收器的 VHDL 设计并在 FPGA 上验证。 📌 **作业关联**: Lab Prac 5 (6%, Due Week 12) 开始。Project 进入实现阶段。 ⚠️ **易错点**: AXI 握手信号 (VALID/READY) 的时序关系容易搞错;UART 波特率生成器的分频计数器 off-by-one;跨时钟域信号需要同步器(至少两级 Flip-Flop)。 (数据来源:2024 S2 UQ Course Profile,CSSE4010)
综合项目冲刺
💡 学习提示
• 总结 综合项目冲刺 的核心概念与适用场景
• 为第10周生成 5 道练习题并给出解题步骤
Week 11Advanced FPGA Design Techniques
### 📖 核心知识点:高级FPGA设计技术 学习高级 FPGA 设计技巧。掌握 Clock Domain Crossing (CDC) 的安全处理方法。学习 FPGA 设计优化策略:Pipelining、Resource Sharing、Retiming。了解 Partial Reconfiguration 和 High-Level Synthesis (HLS) 概念。 - **核心概念/公式**: CDC 同步器 (Two-FF Synchronizer, FIFO-based CDC)、Pipeline 寄存器插入提高时钟频率、Resource Sharing 减少面积 ⏰ **本周节奏**: 难度 ⭐⭐⭐⭐ | 预计投入 10h(Lecture 2h + Tutorial 1h + Lab 2h + 自学 5h) 🎯 **考试关联**: CDC 处理方法和设计优化是 Final Exam 的高级考点。 🧪 **Tutorial/Lab**: 对之前的设计进行 Pipelining 优化,比较优化前后的最大时钟频率。 📌 **作业关联**: Project (20%) 进入最终阶段,应用优化技术提升设计性能。 ⚠️ **易错点**: Two-FF Synchronizer 只能用于单 bit 信号(多 bit 需要 Gray Code 或 FIFO);Pipeline 增加了 Latency(延迟换吞吐量);Retiming 工具结果可能不如手动优化。 (数据来源:2024 S2 UQ Course Profile,CSSE4010)
成果整理
💡 学习提示
• 总结 成果整理 的核心概念与适用场景
• 为第11周生成 5 道练习题并给出解题步骤
Week 12Project Integration & Design Optimization
### 📖 核心知识点:项目集成与设计优化 课程最终阶段。完成 FPGA 项目的系统集成和优化。学习如何分析和优化 Timing、Area、Power 三个设计维度。Project Demo 和 Final Review。 - **核心概念/公式**: Power Estimation 工具使用、Area-Speed-Power 三角权衡、Design Review Checklist ⏰ **本周节奏**: 难度 ⭐⭐⭐⭐ | 预计投入 12h(Lecture 2h + Tutorial 1h + Lab 2h + 自学 7h)📝 项目冲刺周 🎯 **考试关联**: Final Exam (50%, Hurdle ≥40%) 覆盖全部 12 周内容。重点:VHDL 代码编写 (30%)、FSM 设计 (20%)、时序分析 (20%)、架构概念 (15%)、优化技术 (15%)。 🧪 **Tutorial/Lab**: Lab Prac 5 (6%) 截止。Project (20%) Demo — 向 Tutor 展示 FPGA 设计并回答技术问题。 📌 **作业关联**: Project (20%, Due Week 12-13) 截止。所有 Lab Prac 完成。 ⚠️ **易错点**: Demo 时 FPGA 板子出问题需要提前准备备用 Bitstream;Project Report 缺少设计决策的理由说明会被扣分;Final Exam 需要能手写 VHDL 代码,IDE 的自动补全帮不了你。 (数据来源:2024 S2 UQ Course Profile,CSSE4010)
最终评估
💡 学习提示
• 总结 最终评估 的核心概念与适用场景
• 为第12周生成 5 道练习题并给出解题步骤