You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

chiseltest测试框架中initSource、initSink和setSinkClock的作用是什么?

Decoupled接口测试初始化方法用途说明

你示例中调用的四个方法都是chiseltest为Decoupled握手接口提供的内置驱动方法,作用如下:

dut.input.initSource()
dut.input.setSourceClock(dut.clock)
dut.output.initSink()
dut.output.setSinkClock(dut.clock)
  • initSource():针对测试台作为数据发送方的Decoupled输入端口做初始状态配置,会自动将端口的valid信号拉低、所有bits字段置为默认值,避免仿真启动时信号为未定义X态,导致握手逻辑判断异常。dut.input是DUT的输入口,测试台需要向这个端口发送数据,因此作为数据源调用source类初始化方法。
  • initSink():针对测试台作为数据接收方的Decoupled输出端口做初始状态配置,会自动将端口的ready信号拉低,同样避免初始X态影响握手逻辑。dut.output是DUT的输出口,测试台需要从这个端口接收数据,因此作为数据接收端调用sink类初始化方法。
  • setSourceClock() / setSinkClock():为对应的Decoupled驱动绑定DUT的工作时钟,后续调用enqueue()、dequeue()、expectDequeue()这类封装好的自动握手API时,驱动会自动按照绑定的时钟沿做信号驱动和采样,不需要开发者手动编写时钟同步逻辑,大幅简化测试代码。

不执行初始化操作可能会出现仿真启动阶段握手信号状态异常,导致仿真结果不符合预期;如果不绑定时钟,所有的自动握手API都无法正常工作,需要开发者手动控制valid/ready信号的时序。

内容的提问来源于stack exchange,提问作者FabienM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 17:57:01