EDN China > 其它文章 > 汽车电子 > 总线技术 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

使能PCI总线仲裁器核的VHDL程序

Antonio Di Rocco?? Selex Communications?? Chieti?? Italy?? 2007年12月08日 ?? 收藏0

  本设计实例描述了一个PCI2.2总线仲裁器的VHDL实现方法(图1)。任何PCI系统都可能有一个或多个PCI主控设备。多数设备可以用作目标主机,但必须有一个设备作PCI总线的启动设备,或叫主设备。通常只有微处理器或高级DSP才能同时完成PCI主设备和目标模式,它们可能要带一个PCI仲裁器。PCI仲裁器核与33MHz和66MHz PCI系统接口,支持多达六个PCI总线主控,支持“总线停靠”,实现一种真正的循环仲裁机制,支持总线等待时间和损坏的主机,并且它是一个无需FPGA或PLD库智能产权的可综合VHDL源。

图1这是采用PLD/FPGA的PCI总线仲裁器它根据一种简单的循环优先机制授予总线访问权


  PCI总线支持一个以上的主控设备。如果只有一个主控请求总线,则该主控能立即得到授权。如果有多个设备同时请求使用PCI总线传输数据,则必须向仲裁器声明自己的请求信号REQ_N。有最高优先权的主控获得GNT_N授权。在此之后,次高优先权的获得授权,依次类推。PCI_RST声明将仲裁器优先权移位寄存器复位到设备0。

  PCI总线在AD总线和C/BE线上没有轮询机制。为避免这些信号长时间浮空,PCI设计必须实现总线停靠,即由一个主控设备在总线空闲状态时驱动AD总线和C/BE线。仲裁

器要选择哪个主控作为停靠主控。仲裁器会声明停靠主控的GNT_N,尽管该停靠主控并未声明REQ_N。VHDL代码中的常数“Bus_parker”定义了停靠主控。当某个设备有权访问PCI总线后,该设备必须在16个PCI时钟周期内开始总线访问。如果该设备并没有开始,则它将失去总线授权,由下一个最高优先权设备获得总线。为检查总线等待时间,仲裁器必须检查信号FRAME_N和IRDY_N。PCI仲裁器核可装入任何PLD或FPGA,只占用很少资源。


?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

PCI? 总线仲裁? VHDL?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈