在连接和驱动双向端口(inout)信号时,分几种情况(主要就测试平台连接的情况而言)。如果是把两个具备inout端口的设计连接在一起,这种情况较易处理。如果拿到的是一个IP模块,该模块(具备单向端口)的目标是将来被集成到顶层(具备双向驱动端口),那么在验证模块IP时,需要在测试平台就这些单向驱动端口做双向驱动的“胶水逻辑”(glue logic)。这部分逻辑可以先封装在一个临时模块再与其他双向驱动模块集成,或直接将这部分逻辑在测试平台实现。
关键词:
inout,drive,multi-drive
避坑指南:
双向驱动端口的连接往往见于芯片系统测试平台。在连接时,需要考虑其他单向驱动逻辑与双向驱动端口之间的驱动关系,避免在同一时间对端口出现多个驱动源而引发多驱动问题(可能进一步导致X传播)。为避免发生多驱动问题,往往需要借助其他信号,或约定时序和驱动强度等来完成。
参考代码: sv_inout_multidrive_connection.sv
阅读手记: