clocking的输入与输出是相对验证环境tb还是dut的?

在 SystemVerilog 中,clocking块的inputoutput方向是相对验证环境(如测试平台 Testbench) 而言的,用于定义测试平台与 DUT(RTL)之间的信号交互方向及时序。

具体来说:

  • input:表示该信号是测试平台从 DUT(RTL)接收的信号(DUT 输出到测试平台的信号,如 DUT 的状态信号、数据输出等)。
  • output:表示该信号是测试平台驱动到 DUT(RTL)的信号(测试平台输出到 DUT 的信号,如激励信号、控制信号等)。

举例说明

假设 DUT 有一个数据输入data_in(由测试平台驱动)和一个数据输出data_out(输出到测试平台),对应的clocking块定义如下:

systemverilog

interface my_intf(input clk, input rst_n);
  logic [7:0] data_in;  // 测试平台 → DUT(output)
  logic [7:0] data_out; // DUT → 测试平台(input)
  
  // 相对测试平台的方向定义
  clocking cb @(posedge clk);
    default input #1step output #0; // 输入采样时序、输出驱动时序
    output data_in;  // 测试平台驱动到DUT(output相对TB)
    input data_out;  // 测试平台从DUT接收(input相对TB)
  endclocking
endinterface
  • 对测试平台而言,data_inoutput(需要驱动给 DUT),data_outinput(需要从 DUT 采样)。
  • 对 DUT(RTL)而言,方向恰好相反:data_in是 DUT 的inputdata_out是 DUT 的output

核心作用

clocking块的方向定义本质是规范测试平台与 DUT 的接口时序

  • input信号:测试平台在时钟沿采样DUT 输出的信号(通常带#1step等时序偏移,避免竞争冒险)。
  • output信号:测试平台在时钟沿驱动到 DUT 的信号(通常带#0或延迟,确保 DUT 在时钟沿看到稳定值)。

因此,方向始终以测试平台为参考,与 DUT 的端口方向形成互补,是验证环境中时序同步的关键机制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值