MDIO master VIP 图解 (ArrayBox的妙用)
来源:互联网 发布:美橙表业淘宝上没有 编辑:程序博客网 时间:2024/06/05 03:24
如图:
1. readword 每调用一次,最后都会update RdDataPtr,使其自增1.
2. 关联数组RdDataArrayBox, Index 是 RdDataPtr, Value 是各个mailbox。 mailbox中放入的是各个transaction。 为何不直接将RdDataArrayBox的值设为各个transaction呢? 这是个关键所在!不防考虑一下这种情况,在调用了readword后立即调用getword函数。 runloop还没有来得及把transaction放入到对应的mailbox中,而getword却要立即返回,当然应该阻塞住getword的返回runloop直到拿到了transaction并放入对应的mailbox中。 回想起来也只有mailbox才能实现这个功能。
3. 所以当我们设计的master要将返回的数据保存以待查用并需要实现阻塞时,通常需要一个ArrayBox来通过put和get实现阻塞。
4. 等待mailbox中排在自己前面的transaction全部处理完毕,这个过程可以用semaphore 加以实现
///////////////////////////////////////////////////////////////////////////// /*- mdioDone(): Wait until all transactions in the input mailbox // are finished.*/ ///////////////////////////////////////////////////////////////////////////// task mdioDone(); this.tr = new(); this.tr.TrType = MDIO_m_busTrans::WAIT; super.trInBox.put(this.tr); this.tr = null; super.waitSem.get(1); endtask
当然上述的3和4也可以用其他方式实现,譬如
3。 通过一个input mailbox和output mailbox加以实现,不过只能是put 到 input mailbox后伴随着一个 get from output mailbox。请参考I2C Master的VIP, 以及APB3.0 Master的实现。
4。 通过mailbox加以实现,put一个特别的transaction到mailbox中,mailbox拿到了后发出事件。
- MDIO master VIP 图解 (ArrayBox的妙用)
- AXI VIP Master
- AXI SLAVE VIP 图解
- PHY的MDIO/MDC简介
- PHY管理接口(MDIO)
- PHY管理接口(MDIO)
- APB3.0 Slave Master VIP 框图
- 蓝桥杯练习(vip) FJ的字符串
- 蓝桥杯练习(vip) 完美的代价
- 关于MII总线接口MDC/MDIO的版本
- switch mii psgmii mdio 之间的关系
- [转]PHY管理接口(MDIO)
- PHY管理接口(MDIO)[z]
- SMI(MDC/MDIO)总线接口介绍
- SMI(MDC/MDIO)总线接口介绍
- 精彩SQL master..spt_values表妙用
- 宏的妙用(转)
- /()/的妙用
- hadoop localhost:ssh:connect to host localhost port 22:Connection refused问题
- mysql注意事项
- Jquery格式化日期时间
- bochsdbg调试保护模式程序的方法
- 在Spring中使用JMS
- MDIO master VIP 图解 (ArrayBox的妙用)
- 字符串倒序输出的两个写法
- 实现的一个聊天程序
- 有关位操作
- smarty内建函数的实例代码(一)
- VC 实现自绘 窗体 标题栏 非客户区
- 我是如何学习Xcode下Objective C开发的?
- 使用JDBC处理大数据和大文本
- 使用tsocks做代理