Synopsys AXI VIP为master和slave agent中的monitor提供了名为item_started_port和item_observed_port的analysis port,前者仅在总线事务传输开始时发送,后者则在总线事务传输完成后发送完整svt_axi_master_transaction和svt_axi_slave_transaction对象到item_observed_port端口,并且在vip agent为passive和active模式下都有效。可以将该端口连接至现有scoreboard用以分析总线事务信号,方法如下:
首先需要在scoreboard中声明export(或import)端口
在scoreboard::build_phase()中创建export对象
添加write_xxx函数以从analysis port中获取transaction
在base_test的connect_phase()中连接slave agent的analysis port和scoreboard
注意,vip monitor中某些信号的监测需要在port_configuration中配置使能开启,如arqos和awqos信号:
如果要在VIP环境中添加自定义TLM analysis port,需采用callback方法。SVT AXI VIP提供了很多callback方法,以下举例说明如何在AXI port monitor中添加自定义端口svt_axi_port_monitor_callback::read_address_phase_ended。
首先创建自定义callback类,并在read_address_phase_ended方法中添加自定义端口item_observed_port_addr
2. 在scoreboard中创建export端口和write()方法,这一步同上步骤1、2、3,代码略去
3. 在env中连接TLM端口,需要在uvm_env::build_phase()中创建callback,在connect_phase()中连接端口,并在start_of_simulation_phase() 中注册callback
参考资料:VC Verification IP AMBA AXI UVM User Guide R-2020.09
领取专属 10元无门槛券
私享最新 技术干货