首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Synopsys验证VIP学习笔记(3)总线事务的配置和约束

在使用Synopsys AXI VIP时,需要配置一些信号的属性或定义一些信号的delay,通常可以直接在svt_axi_transaction类中控制。

AXI VIP中描述从事务数据的类是svt_axi_slave_transaction,从事务类提供了配置信号数据(如rresp[], bresp, data[])和延迟(如bvalid_delay, addr_ready_delay)的一些属性,大多数属性为public且可随机化,并且仅在配置vip slave agent为active模式时才生效。

AXI事务对象(transaction object)可用于:

产生随机激励/报告监测到的总线事务/对总线事务请求发起随机响应/收集功能覆盖率数据/支持错误插入

事务对象支持随机化并提供了两组约束:

valid_ranges:限制被driver接收的值,保证VIP基本操作,不能被禁止

resonable_* constraints:可单独被禁止,控制协议和设置仿真边界

如果需要配置信号delay,可以在axi slave sequence或其他派生自svt_axi_slave_base_sequence的自定义sequence内添加如下约束:

其中addr_ready_delay定义了写地址通道AWREADY信号的delay和读地址通道ARREADY信号的delay,其他各通道的valid或ready信号的delay时间也都有特定的成员控制。

如果需要约束特定信号的数据,如rresp和bresp等,也可采用同样方式:

VIP还允许通过属性指定延迟的分布权重,如ZERO_DELAY_wt、SHORT_DELAY_wt和LONG_DELAY_wt分别定义了用于控制零延迟、短延迟和长延迟分布的权重。例如:

AXI总线的很多属性可以在port_configuration类中配置,除axi_interface_type, data_width, addr_width, id_width, reset_type等变量外,还有各种信号的coverage和protocol check使能等,其中num_outstanding_xact可定义主从机支持的outstanding深度:

这里outstanding深度默认值为4,最大值为10,并由宏SVT_AXI_MAX_NUM_OUTSTANDING_XACT定义。

如果需要覆盖VIP中某些宏,可以添加svt_axi_user_defines.svi文件在其中重定义,并在编译时添加编译选项“+define+SVT_AXI_INCLUDE_USER_DEFINES”。关于VIP中宏的一些具体覆盖方法可以参考这篇文章:《Synopsys验证VIP学习笔记(5)重写VIP中的系统常数》。

另外,通过配置

svt_axi_system_configuration::enable_delayed_response_port = 1,可以额外提供两个端口并以delay的方式输入response数据,以实现和上面同样的目的,该参数的详细用法可以参考user guide。

参考资料:VC Verification IP AMBA AXI UVM User Guide R-2020.09

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230305A01F4R00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券