求达人指点两个问题,一个AHB的,一个SV的
时间:10-02
整理:3721RD
点击:
请教达人两个问题:(1)两个AHB接口的block A和B相连,如果A作为master,那么htrans、hwrite、hsize、hburst等控制信号必须由A产生吧?
如果B为master,那么这些信号就由B产生吧?也就是说在一个总线系统里面,某个时间段只能有一个master存在,其他的就作为slave了?
一般DMA模块也是AHB master,那么DMA怎么从A和B搬数呢,是不是DMA搬数时,A或B就是slave的角色了?
这一点不是很明白,请高人指点了。
(2)sv中由string作为index的关联数组(size大于50),怎么遍历呢?有没有像普通数组使用foreach的方法?
请高人解答!谢谢!
如果B为master,那么这些信号就由B产生吧?也就是说在一个总线系统里面,某个时间段只能有一个master存在,其他的就作为slave了?
一般DMA模块也是AHB master,那么DMA怎么从A和B搬数呢,是不是DMA搬数时,A或B就是slave的角色了?
这一点不是很明白,请高人指点了。
(2)sv中由string作为index的关联数组(size大于50),怎么遍历呢?有没有像普通数组使用foreach的方法?
请高人解答!谢谢!
(一) 多个master的系统需要有arbiter
(二) 可以
如果A和B都是AHB master,直接相连,没有纵向系统也没有arbiter,那么A和B的主从角色怎么划分呢?是谁给出hsize、hburst、hwrite、htrans等信号的一侧就是master么?
用AHB lite
关联数组的foreach在vcs上面报出一个warning,说this will be an error in future release, 是不是还有更好的遍历方法呢?
我不太明白你的直连是什么意思,你可以把连接关系画个草图传上来?
做个简单实验,只保留foreach associative array, 看是否有warningncsim跑没有问题:
- ass_array[a] = 11
- ass_array[b] = 12
- ass_array[c] = 13
- Simulation complete via $finish(1) at time 0 FS + 0
- ./top.sv:16$finish;
我也不太明白他的连接方式。不知道他的blockA 和 blockB 还有DMA是如何连接的。
能画个连接关系图吗? 最好有数据的流动方向。
你用的是AMBA 的VIP?
朋友!能否把你的验证环境发我一份。?
邮箱:805475356@qq.com
能否把你的环境打包上传分享下?