计算机系统 II 实验(Laboratory)
Verilog / SystemVerilog
围绕“代码对应什么电路、什么时候更新、怎样连接和验证”整理语法与设计方法。接续系统 I 的 Verilog 笔记,先读前三章,再按所设计的模块查阅后续章节。
| 章节 | 解决的问题 |
|---|---|
| 1. 硬件描述与模块 | HDL、模块、端口、线网、变量、编译流程 |
| 2. 类型、位宽与表达式 | 四态逻辑、字面量、有符号运算、拼接、数组 |
| 3. 组合与时序逻辑 | assign / always、锁存器、复位、阻塞与非阻塞赋值 |
| 4. 参数化与数据组织 | generate、循环、函数、enum / struct / package、宏 |
| 5. 状态机与运算电路 | FSM、计数器、加减法、迭代乘法、加法树、CPU 控制 |
| 6. 接口与握手 | interface / modport、valid-ready、背压、内存总线 |
| 7. 存储、FIFO 与外设 | RAM、字节掩码、跨时钟域、UART、数码管、VGA |
| 8. 仿真与调试 | testbench、波形、自检、队列、DPI-C、lint 与时序约束 |
完整模块示例使用 SystemVerilog(.sv);标注“片段”的代码依赖所在模块的声明。代码中的 clk 默认上升沿有效,rst_n / rstn 表示低有效复位,rst 的极性需看具体实现。
源码与主题索引
资料根目录为 ~/sys1/sys1-sp26/。覆盖 src/ 中 51 个及 repo/sys-project/ 中 21 个 HDL 文件,包含模块、头文件与仿真代码;对应文件路径及 SHA-256 记录见 扫描清单。构建产物、Verilator 自身的回归测试及 RISC-V 软件工具链不属于课程 RTL。
| 源码位置(相对资料根目录) | 主要内容 | 对应章节 |
|---|---|---|
src/lab0-2/、lab0-3/ |
Logisim 导出门电路、端口、反相参数、穷举 testbench | 1–3、8 |
src/lab1-1/、lab1-2/ |
多路选择器、向量/数组、七段译码、显示宏 | 1–4、7 |
src/lab2-1/ |
全加器、generate、加减法、随机自检 | 2、4、5、8 |
src/lab3-1/、lab3-2/ |
enum 状态机、复位、使能、BCD 级联计数 | 3–5 |
src/lab3-3/ |
多周期乘法、start-finish、DPI-C 判定 | 3、5、8 |
src/lab4-1/、lab4-2/ |
滑动窗口、乘法与加法树、队列、串口回环 | 4–8 |
src/project/submit/、Core2.sv |
ALU、立即数、比较器、寄存器组、控制器、访存 | 2–7 |
repo/sys-project/include/ |
数据包、结构体、接口宏、响应码 | 4、6 |
repo/sys-project/general/ |
总线互联、RAM、同步/异步 FIFO、UART、SCPU | 6、7 |
repo/sys-project/syn/ |
时钟、消抖、数码管、VGA、字符 ROM、VRAM、顶层 | 3、7、8 |
repo/sys-project/sim/ |
时钟/串口激励、超时、提交级差分测试 | 8 |
实验文档主要参考 lab0-2-appendix.md、lab2-1-appendix.md、lab3-1-appendix.md、lab3-3-appendix.md、lab4-1-appendix.md 及各实验、project 文档的教学部分。笔记按知识组织,省略提交步骤、评分规则和环境安装过程。