在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 7341|回复: 5

[求助] 求助:要写一个axi master的话,是将读写分两个driver好呢,还是一个driver好?

[复制链接]
发表于 2013-1-14 10:17:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
各位:
      目前想用UVM写一个axi master 模型,正在考虑它driver的问题。本来是打算将write与read分开由2个driver分别发,这样两个driver的进程就完全并行了。不过如果我需要将随机产生的write的控制信号再传递给read,实现“写完读”的功能的话,又不知道该怎么传输这些东西了。
      如果把read和write放到同一个driver中,将read与write作为两个单独的task的话,那么sequence如何并行的使用这两个task呢?
      另外,按照我目前分两个driver的想法,transfer中的定义是不分写和读的(即把araddr与awaddr统称为addr),那么如果是使用同一个driver的话,那就得加上transfer的方向,那么每次产生一个新的transfer就是非读即写,就是说不能达到同时读写的功能。可是如果不加上transfer的方向的话,难道读写都用相同的地址,相同的控制信号?我好像有点被绕进去了,谁能来帮我抽抽线头呀?
       谢谢了!
发表于 2013-1-14 21:07:03 | 显示全部楼层
还是分成2个driver比较好,write的控制信号做个事件传过去,write的内容你也可以用fifo传过去啊,这样read的时候会比较方便,你造case也好办一些
 楼主| 发表于 2013-1-15 10:05:02 | 显示全部楼层
回复 2# gata8848

那read要怎么处理write传归来的和自己随机产生的数据啊。我想了半天都觉得一个driver只能处理一种情况。这样的话就需要两个不同的read driver了。或者可以让它先处理完自己的数据,然后再上fifo中取write的数据来处理么?
另外,问一下,这里的fifo指的是fifo_port吧?
发表于 2013-1-15 19:50:16 | 显示全部楼层
你那个transaction好好构思一下。传过来之后,你还是可以assert。randomize一把的。要么你另外定义个read的transaction。继承一下。
发表于 2013-1-18 20:38:04 | 显示全部楼层
来看看  不是很懂
发表于 2013-1-18 20:43:53 | 显示全部楼层
可以将你的write channel的信息传到read channel相对应的sequence里就行了,并行的处理可以通过queue就可以实现了吧。再说本来无论read还是write,他们的channel都是并行的,还是做成并行的driver处理更好。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

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

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表