真实面经题目 · 原创解析
模块级验证和系统级验证的关注点有什么不一样?
这题考验证层级思维,回答要说明模块级重协议和边界,系统级重集成、配置、跨模块交互和真实场景。
真实面经题目 · 原创解析
这题考验证层级思维,回答要说明模块级重协议和边界,系统级重集成、配置、跨模块交互和真实场景。
模块级验证关注单个 block 是否满足局部 spec,重点是接口协议、寄存器、状态机、异常输入、边界条件、功能覆盖和局部 scoreboard,激励可以更强约束、更精确、更容易打到 corner。系统级验证关注多个模块集成后是否按场景协同工作,重点是地址映射、中断、DMA、总线仲裁、复位时钟、低功耗、性能、资源竞争和端到端数据路径。模块级更容易定位 bug、覆盖细节;系统级更接近真实使用,但可控性和可观测性较差,调试成本更高。好的策略是模块级打深打细,系统级验证集成和关键场景,并复用 agent、sequence 和 coverage。
模块级 testbench 直接连接 DUT 接口,容易产生非法、边界和压力激励。它验证协议时序、寄存器字段、状态跳转、错误处理和局部数据变换。
系统级把多个模块、总线、存储、中断、时钟复位和软件配置放在一起,验证端到端数据流、模块协作、资源冲突和真实用例。
模块级可直接驱动内部接口并观察输出,定位快;系统级刺激往往从外部入口进入,内部状态不易观察,bug 可能跨多个模块传播。
模块级追求细粒度功能覆盖和 corner 覆盖,系统级追求配置组合、业务场景、集成路径和性能指标覆盖。两者覆盖目标不能简单相加替代。
先用日志、scoreboard、关键断言和 trace 定位端到端失败点,再缩小到模块接口,必要时把系统场景降维成模块级复现用例。
需要。模块级不能充分证明地址映射、时钟复位、中断、总线竞争、软件配置和跨模块场景都正确。
要看断言、功能覆盖、代码覆盖、错误注入和回归日志是否对应题目里的关键路径;如果只是组件能跑起来,但没有覆盖目标状态和异常分支,验证价值是不够的。