接TLM端口,需要在uvm_env::build_phase()中创建callback,在connect_phase()中连接端口,并在start_of_simulation_phase() 中注册callback
时间: 2024-09-15 16:11:26 浏览: 33
TLM-BUS_1_phase.zip_TLM_systemc tlm
在UVM (Universal Verification Methodology) 环境中,如果你想要接TLM (Transaction-Level Modeling) 端口,你需要遵循特定的生命周期管理规则。以下是关键步骤:
1. **构建阶段(build_phase())**:
- 在`uvm_env::build_phase()`函数内,这是设计环境初始化的时候,你可以创建一个自定义的回调函数(通常是一个`uvm_callback`实例),这个回调会在适当的时机被调用来处理TLM端口的连接。
```python
class my_uvm_env(uvm_env):
def build_phase(self):
self.my_tlm_port_callback = uvm_callback()
```
2. **连接阶段(connect_phase())**:
- 在`uvm_env::connect_phase()`中,TLM连接通常是稳定的,所以你可以在这里将你的回调函数添加到相关的TLM端口上,以便在端口活动时被触发。
```python
def connect_phase(self):
super().connect_phase()
self.my_tlm_port.connect_phase(self.my_tlm_port_callback)
```
3. **开始仿真阶段(start_of_simulation_phase())**:
- `uvm_env::start_of_simulation_phase()`标志着模拟的开始,在这里你需要注册你的回调函数,使其在整个仿真过程中都能响应TLM交易。
```python
def start_of_simulation_phase(self):
super().start_of_simulation_phase()
self.my_tlm_port.start_of_simulation(self.my_tlm_port_callback)
```
阅读全文