AHB VIP Example 的tb_ahb_svt_uvm_basic_ral_sys中关于slave和master接口连接的问题

2023-11-17

AHB 的tb_ahb_svt_uvm_basic_ral_sys中关于slave和master接口连接的问题(这里代码不完整太多没有截完)

一、原始使用方法

hdl_interconnect中文件的DUT的部分内容是:

DUT外面还做了封装,封装成了ahb_svt_dut_sv_wrapper.sv,部分代码如下:

此DUT的作用是:

a.接收来自master的数据(这部分数据是传给slave的),传送给AHB bus,再由AHB bus传送给slave的interface。

b.接收自slave的数据,传送给AHB bus(AHB总线),再由AHB bus传送给master的interface。

注意顶层定义的是svt_ahb_if,其中包含有两个接口,一个是master_if,一个是slave_if。

top的部分代码:

svt_ahb_if部分代码,注意master_if和slave_if中的*_bus,最终会赋值给interface内部的*,比如hrdata_bus会赋值给master的hrdata,haddr_bus会赋值给salve的haddr(这里宏SVT_AHB_DISABLE_IMPLICIT_BUS_CONNECTION是没有定义的):

这里跑的ral_reg_write_read_test波形如下:

二、不使用ahb bus做中间转换的使用方法

如果我们还是定义svt_ahb_if,里面包含master_if和slave_if,但是不使用ahb bus做中间转换,那么顶层以及hdl_interconnnect中文件应该怎么写呢?即是否可以直接将master和slave的interface直接相连?答案,是可以的。(这样的情况不管怎样需要定义SVT_AHB_DISABLE_IMPLICIT_BUS_CONNECTION宏,否则会报出多驱动问题)

1.我们只需要修改ahb_svt_dut_sv_wrapper.sv,将ahb_if.*_bus换成对应的master或slave的接口,修改后的代码如下:

2.定义宏:

3.注意salve interface中有两个hready信号,其中一个hready是slave自己发出的,而hready_in则是slave要接收的(协议里面的interconnect给的,interconnect也会发送此signal给master),在原始方法中hready_bus最中会赋值给slave的hready_in和master的hready。这里由于没有使用ahb bus所以需要自己给slave的hready_in赋值。

dut和ahb_svt_dut_sv_wrapper.sv需要增加对slave的hready_in的赋值。修改ahb_svt_dut_sv_wrapper.sv和dut代码如下:

这里跑出来波形和上面是一样的。

三、

如果我们不定义svt_ahb_if,而只定义master_if和slave_if,那么顶层以及hdl_interconnnect中文件应该怎么写呢?(这种方式是最好理解的,但是并不是最好用的)

可以是可以,但是很麻烦,就上面的AHB给的例子代码会有很多要修改的地方。可能master和slave都需单独定义,但是这样vip env包好的很多组件都不能直接调用。(自己的观点)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AHB VIP Example 的tb_ahb_svt_uvm_basic_ral_sys中关于slave和master接口连接的问题 的相关文章

随机推荐

  • 静态链接原理以及过程

    通常程序的编译中 或多或少会调用其它库中的函数接口 本篇blog就是讲静态库的调用流程 通常我们知道编译一个可执行程序会有这四个过程 预处理 编译 汇编以及链接 前面三步就是产生目标文件 o的过程 链接就是把各个 o文件粘在一起 构成一个可
  • 杂项设备(misc device)和字符设备(char device)区别

    杂项设备 misc device 杂项设备也是在嵌入式系统中用得比较多的一种设备驱动 在 Linux 内核的include linux目录下有Miscdevice h文件 要把自己定义的misc device从设备定义在这里 其实是因为这些
  • Go语言基础面试题

    一 选择题 1 关于异常设计 下面说法正确的是 A 在程序开发阶段 坚持速错 让程序异常崩溃 开发 测试 准生产 生产 B 在程序部署后 应恢复异常避免程序终止 C 一切皆错误 不用进行异常设计 D 对于不应该出现的分支 使用异常处理 参考
  • 2021-08-03训练记录

    2021 08 03训练记录 Magic Line String Invasion A B C 小biu放牛 小A的游戏 A B C Magic Line 样例输入 1 4 0 1 1 0 1 0 0 1 样例输出 1 999000000
  • 原始GPS与百度、谷歌、高德地图的相互转换(c语言转换)

    原始GPS与百度 谷歌 高德地图的相互转换 c语言转换 原始GPS与百度 谷歌 高德地图的相互转换 1 介绍三种坐标系 2 WGS84 GCJ02 BD09之间的相互转换 C语言实现 原始GPS与百度 谷歌 高德地图的相互转换 1 介绍三种
  • centos 7中NGINX负载均衡(最详细)

    环境 centos7 192 168 186 140 负载均衡 centos7 192 168 186 141 web端 centos7 192 168 186 142 web端 1 关闭防火墙与setenforce web端也要执行 ro
  • json 模块:处理 JSON 数据

    JSON JavaScript Object Notation 是一种轻量级的数据交换格式 易于人阅读和编写 同时也易于机器解析和生成 JSON 基础 JSON 的基础结构有两种 键值对 name value pairs 和数组 array
  • VS编译程序缺失msvcp140d.dll、vcruntime140d.dll和ucrtbased.dll解决方法

    今天编译的一个程序到客户现场电脑上运行闪退 查看发现缺少msvcp140d dll vcruntime140d dll以及ucrtbased dll 总结一下解决办法 供大家参考 方式一 找到对应的 msvcp140d dll vcrunt
  • Java的SSH连接远程服务器

    在我们的示例中 我们将首先打开SSH连接 然后执行一个命令 读取输出并将其写入控制台 最后关闭SSH连接 我们将使示例代码尽可能简单 2 JSch JSch 是SSH2的Java实现 它使我们可以连接到SSH服务器并使用端口转发 X11转发
  • 记几个数据查询语句

    查看某用户所在的表空间SELECT USERNAME DEFAULT TABLESPACE FROM DBA USERS WHERE USERNAME GISAP 查看用户表分区select from user tab partitions
  • java中 instanceof 关键字 作用 和 实际用途

    instanceof 闲聊一下 所谓看书只看前三章 基础java决定上限 所以说基础很重要 Java也是基础扎实决定你的上限 1 instanceof 是Java中的一个关键字 Java中的关键子都是小写 2 instanceof关键字的作
  • 【不忘初心】Windows11 22000.652 X64 四合一[纯净精简版][2.68G](2022.5.3)

    此版可正常更新补丁关闭按流量计费 WIN11全新的UI界面出炉 可以说这一次Windows 11全新升级 无论是从Logo上还是UI界面设计 都有很大的变化 母版来自UUP WIN11 22000 652 为了保证稳定初心的系统全部都是离线
  • 【模拟集成电路】电荷泵(CP)设计

    电荷泵 CP 设计 前言 一 电荷泵 CP 原理 1 电流失配问题 2 开关管的时钟馈通问题 3 电荷注入问题 二 电荷泵 CP 电路 三 电荷泵性能测试 测试原理图 充电测试 放电测试 参考文献 各部分链接链接 前言 本文主要内容是对电荷
  • NLP 算法工程师面试问答-DeepLearningAlgorithm

    关于生成对抗网络GAN 那些你不知道的事 一 动机 之前我们提到玻尔兹曼机 Boltzmann machine 波尔茨曼机作为一种基于能量函数的概率模型 因为能量函数比较复杂 所以存在较多的限制 虽然受限玻尔兹曼机 Restricted B
  • C#通过读取appconfig文件连接数据库

    以Oracle为例 C 连接数据库的时候 需要一些连接字符串 一开始写在程序中 这样会有两个问题 通用性不太好 如果程序具有普遍性 但是连接字符串写死了 每次替换很麻烦 一个工程有很多个项目 每个项目都需要连接字符串 每次更改或者设置也很麻
  • 手机一键制作u盘启动盘_老毛桃U盘启动盘制作教程

    制作前准备 1 准备一个U盘 建议U盘内存8G以上 因为制作时会格式化 请注意备份U盘原资料 2 下载老毛桃U盘装机工具套装 官网 www laomaotao net 老毛桃U盘装机工具下载链接 www laomaotao net 制作过程
  • django 报错:urllib3.exceptions.ConnectTimeoutError 问题解决方法

    问题描述 django项目运行时报错 urllib3 exceptions ConnectTimeoutError
  • opkg 更新软件

    opkg 不同的版本存在不同的配置文件 一般常用的是 etc opkg conf etc opkg customfeeds conf 和 etc opkg distfeeds conf三个 这三个配置文件将会影响opkg运行时软件资源的取向
  • iOS 对象信息保存、转化JSON、JSON生成对象的模型方案记录

    目标 将对象的一些信息提取保存起来 然后转化成JSON 再上传到服务器 或其他保存本地的用途 从服务器接收或从本地读取 然后通过JSON的信息生成指定的对象 方案代码 KeepLabelInfoModel h TestViewXIB Cre
  • AHB VIP Example 的tb_ahb_svt_uvm_basic_ral_sys中关于slave和master接口连接的问题

    AHB 的tb ahb svt uvm basic ral sys中关于slave和master接口连接的问题 这里代码不完整太多没有截完 一 原始使用方法 hdl interconnect中文件的DUT的部分内容是 DUT外面还做了封装