Repository navigation
zh getting started index
github-actions[bot] edited this page Oct 30, 2026
·
1 revision
这份教程用一个 8 位累加器,带你从一条断言写到流水输入、参考模型和覆盖率。 先运行例子,再改一个地方看看结果;不需要先读完整 API 手册。
前半部分只需要 Python。仓库提供了一个用 Python 模拟的累加器,方便练习输入和时钟, 不需要先安装 RTL 仿真器。接入真实硬件的方法放在最后一节选读中。
主要看两个文件:
examples/getting_started/
├── test_accumulator.py 按教学顺序排列的测试、驱动、监视器和模型
└── toy_dut.py 已写好的累加器
每一页会指出当前要看的测试函数,并给出只运行它的命令。 如果使用仓库中的文件,不要重复粘贴页面里的代码。 如果想从空文件跟着写,就按章节顺序追加,保留前面用到的定义和 import。
# region 和 # endregion 是帮助编辑器折叠代码的注释,不影响运行。
| 步骤 | 要解决的问题 |
|---|---|
| 0. 准备环境 | 命令在哪里执行?依赖怎么安装? |
| 1. 第一次通过和失败 | 测试怎么判断结果对不对? |
| 2. 输入与时钟 | 写了输入,为什么结果还没变? |
| 3. 多组数据与边界 | 除了一个正常数字,还应该测什么? |
| 4. 提取 Driver | 输入时序重复了,怎么写一次、多处使用? |
| 5. 延迟输出与 Monitor | 输出只出现一拍,怎样避免漏读? |
| 6. 组装 Agent | 怎样连接输入、输出和自动检查? |
| 7. 参考模型与测试环境 | 长序列的期望值怎么算?怎样为每条测试建立独立环境? |
| 8. 流水、多批次与取消 | 上一笔还没返回,下一笔能不能发? |
| 9. 看懂失败 | 算错、漏回、迟到和多回,分别是什么表现? |
| 10. 功能覆盖率 | 测试通过后,怎么知道还有哪些情况没测到? |
先做到第 3 步就可以停下来练习。Driver、Monitor 和 Agent 是整理已有代码的方法, 不需要在第一个测试里同时学会。
完成后,可以选读乱序响应和原生后端与项目 DUT。
- DUT:被测设计。这里是累加器,实际项目里也可能是缓存、总线接口或运算单元。
- 激励:送给 DUT 的输入,例如“加上 3”。
- 期望值、实际值:按规格算出的结果、从 DUT 读到的结果。测试比较这两个值。
- 事务:一次完整操作,例如“加上 3 并取得结果”。它可能跨越多个时钟周期。
页面中的 bash 代码块在终端执行,python 代码块对应源文件中的代码;预期输出不用复制。
现在从准备环境开始。
第 3 步后,你能独立编写带输入、时钟和边界断言的测试;完成第 10 步后, 你能把可复用组件、参考模型、流水检查和覆盖率组合进一个测试环境。 接下来按自己的项目任务查操作指南,按名称查API。 想理解时钟与 asyncio 的关系,或覆盖率能说明什么,阅读原理说明。
内容由 CI 自动同步;请编辑主仓库文档。 Automatically synced by CI; edit the source documentation.
- 首页
- 教程
- 操作指南
- 参考
- 原理说明
- Home
-
Tutorials
- Learning path
- 0. Prepare your environment
- 1. Your first PASS and FAIL
- 2. Inputs and clocks
- 3. More cases and boundaries
- 4. Extract a Driver
- 5. Delayed output and a Monitor
- 6. Assemble an Agent
- 7. Models and the test environment
- 8. Pipelines, batches, and cancellation
- 9. Understand failures
- 10. Functional coverage
- Optional: out-of-order responses
- Optional: native clocks and project DUTs
-
How-to guides
- Find your task
- Simulation and events
- Verification components
- Coverage and regressions
- Migration and maintenance
- Runnable examples
- Reference
- Explanation