索手锋芒的个人空间 https://blog.eetop.cn/calvin [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

SYNOPSYS AXI VIP using note

热度 4已有 8745 次阅读| 2016-6-3 09:26 |个人分类:SYNOPSYS VIP note

ref:https://solvnet.synopsys.com/dow_retrieve/latest/snps_vip_lib/doc/axi_svt_uvm_class_reference/html/index.html
1. testbench buildup
   
关于
bench可以选择两种方式,比如只需要master agent:(下面的所有example都会以我的DUT是slave)
1.
单独invoke master agent,所以留给userconfiguration objectsvt_axi_port_configuration

2.invoke svt_axi_system_env,相当于invoke了即有master又有slaveenv,所以database里面的最高层级是svt_axi_system_env;user configuration object是svt_axi_system_configuration,以下是各configuration的主要信息:

The AXI VIP defines following configuration classes:
. System configuration (svt_axi_system_configuration)
The System configuration class contains configuration information which is applicable across the
entire system. You can specify the system level configuration parameters through this class. You
need to provide the system configuration to the system env from the environment or the testcase.
The system configuration mainly specifies:
. Number of master and slave agents in the system env
. Port configurations for master and slave agents
. Virtual top level AXI interface
. Address map
. Timeout values
. Port configuration (svt_axi_port_configuration)
The Port configuration class contains configuration information which is applicable to individual
AXI master or slave agents in the system env. Some of the important information provided by port
configuration class is:
. Active or Passive mode of the master or slave port agent
. Enable or disable protocol checks
. Enable or disable port-level coverage
. Interface type (AXI3/AXI4/AXI4-Lite)
. Port configuration contains the virtual interface for the port
The port configuration objects within the system configuration object are created in the constructor
of the system configuration.
❖ Interconnect configuration (svt_axi_interconnect_configuration)
Interconnect configuration class contains configuration information for the interconnect component.
It has a handle to the system configuration. In addition, this class contains configuration for number
of master and slave ports of the interconnect component, and the respective configuration for these
master and slave ports.
建议:
不管你的DUT是master,slave,还是interconnector,最好选择第2种方式,这便于向上集成,而且用起来也很方便,因为他提供的example就是这样的,所以只需要gen出example,把东西搬过来用就可以了。
USER最好要提供三个配置文件:
1.cust_svt_axi_system_configuration:
extends from svt_axi_system_configuration, 对自己的环境进行用户自定义配置并config_db set下去(如果没有,vip不会报错,他会自己create一个default出来,所以要特别注意,)如下所示:
相关设定可以查看官司网的class referrence(需要注意的时,master_cfg只是调用function gen出来了,并没有随机,但建议不要随机整个cfg,而是对某些你DUT支援的进行随机,比如说arready default value 之类的)

(图中deault value的约束有点问题,对于master来说,应该约束rready和bready才是有用约束,对于slave来说应该约束arready,awready,wready)
2.cust_svt_axi_master_transaction
extends from svt_axi_master_transaction,主要是对一些DUT的limition进行限制,加额外或override constraint,并记得在build phase override其default 的transaction.


3. svt_axi_user_defines.sv

predefine一些define,因为VIP的default define不一定是你想要的(特别要注意,如果你想override他default define,一定要在compile option加上 +define+SVT_AXI_INCLUDE_USER_DEFINES,他的devfine文件才会去include svt_axi_user_define.sv)
ps.对port width相关信息的define在svt_axi_port_defines.svi
      对于transaction管控,比如outstanding ability之类的在svt_axi_common_defines.svi


2. monitor
  VIP的monitor提供了几个analysis_port,其中item_observed_port用的比较多,记录了transaction的所有信息,传输的是svt_axi_transaction

2

点赞

刚表态过的朋友 (2 人)

发表评论 评论 (2 个评论)

回复 gyong22 2019-5-26 15:34
good info. thaks
回复 the_seed 2020-9-29 15:41
对于master来说,使用default_bready约束bready信号是否也相当于约束了bvalid和bready的依赖关系?根据我的测试来看,当约束default_bready为0时,master只有接收到bvalid有效(高)以后才会使bready为高

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 4

    获赞
  • 4

    评论
  • 3176

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-5 11:01 , Processed in 0.024734 second(s), 15 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部