封装和层次结构
TLM接口的使用将验证环境中的每个组件与其他组件隔离。验证环境实例化一个组件,并完成其ports/exports的连接,不需要进一步了解验证组件具体的实现。
较小的验证组件可以组合成较大的验证组件,此时上一级组件就是一个简单的引出包含多个子组件的容器。
层次化连接
建立跨层次连接涉及到一些额外的问题,考虑下图所示的分层设计。
这个设计的层次包含两个组件,producer和consumer。producer包含三个组件,stim、fifo和conv。consumer包含两个组件,fifo和drv。这两个fifo都是uvm_tlm_fifo 组件的例化。
从顶层角度看,producer的put_port与consumer的put_export相连。在上图中,A、B、D和F是标准的 peer-to-peer连接。连接A的代码为:
stim.put_port.connect(fifo.put_export);
连接C和E有所不同,C是port-to-port的连接,E是export-to-export的连接。这两种连接对于完成层次化连接是必要的。
连接E的代码为:
连接C代码为
连接类型
port.connect()方法的参数可以是一个export和port,这取决于连接的性质(即peer-to-peer或者hierarchical)。
export.connect()的参数总是一个子组件的export。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !