5.2 PCI总线仲裁器的状态机
由于此仲裁器最大支持5个PCI总线主控器,至于仲裁器的仲裁状态什么时候应该发生变化则由总线状态机的状态决定,具体如下:当总线状态机处于FRAMED状态,表明在最后一个数据传输周期结束后,它将释放PCI总线,此时,仲裁器便可撤消对它的_GNT信号,以便去服务于另一个主控器;所以,若用EnChange来代表允许仲裁器仲裁状态发生变化的条件,则采用AHKL语言的具体编程如下:EnChange=(EnCHstate ==FRAMED)#(eNchSTATE == no_req)#(TimeOut[]==TIME_OUT)
该仲裁器中,由于采用循环优先级算法,仲裁器从每一种仲裁状态转换到其它仲裁状态的方法都是一样的,所以,下面只给出了仲裁器的仲裁状态为主控器1时向其它仲裁状态的转换机理(如图3所示)。另外,若仲裁器在刚启动时处于无效状态,则强制状态机在下一个时钟转换到Master0态。
5.3 总线允许信号_GNTi(低电平有效)的建立
在PCI对话中,由于_FRAME 和 _IRDY决定着总线的忙/闲状态。两者之中只要有一个信号成立,总线就处于忙碌状态;当两个信号都无效时,总线才处于空闲状态。所以建立_GNTi的具体编程如下:!_GNTi=(GNTstate==Masteri)&GLOBAL(_PCIrst)&!MaskGNT;%式中,MaskGNT=_FRAME&_IRDY%
总之,本文介绍的PCI总线仲裁器,由于采用单片EPLD即可实现,所以它具有系统结构简单、成本低、可靠性高、在线修改方便及升级容易等特点。目前,采用该仲裁器的PCI高速总线背板已应用在我们研发的总线型高性能网络交换机系列中。经过近两年的实际运行表明,仲裁器工作正常,性能稳定可靠。
本文关键字:暂无联系方式接口电路,单元电路 - 接口电路