"PCI总线仲裁器的设计与实现" PCI总线仲裁器是计算机系统中的一个重要组件,负责管理PCI总线上的设备之间的数据传输。由于计算机应用的不断发展, especialmente 在嵌入式系统中,集成的仲裁器难以满足某些场合的应用。因此,使用CPLD技术实现独立的PCI总线仲裁器变得非常必要。 一、PCI总线仲裁机制 PCI总线仲裁机制是基于设备访问,而不是基于时间分配的。在任一时刻,总线上的一个主设备要想获得对总线的控制权,就必须发出它的请求信号。如果此刻该设备有权控制总线,总线仲裁器就使该设备的总线占用允许信号有效,进而获得总线的使用权。当有多个主设备同时发出总线控制请求时,就必须由仲裁器根据一定的算法判定,当前应该由哪个主设备获得控制权。 二、仲裁算法 常用的仲裁算法有:公平算法、循环算法等。本仲裁器设计采用的是循环算法,设备的优先级预先设定。目前的设计实现对四个PCI设备请求的仲裁,各设备优先级由高到低安排为:设备0、设备1、设备2、设备3。 系统启动伊始,没有设备使用PCI总线,也没有设备请求使用PCI总线,仲裁器总是设定设备0拥有总线控制权,即将总线停靠于设备0。此时设备0的PCIgntN是有效的。而在此之后,仲裁器总是指定PCI总线的最后一个使用者为总线的停靠设备。 当有一个或多个设备提出拥有总线使用权的请求时,仲裁器将按照事先安排的设备优先级顺序逐一查询。对于只有一个设备请求的情况,该设备的请求将会马上得到响应;如果多个设备同时发出请求时,仲裁器裁定首先响应优先等级高的设备的请求,当此设备完成数据传输交出总线使用权后,再由优先等级低的设备使用总线。 三、编程设计与实现 本设计使用AHDL语言,在MaxplusII上编译通过,并进行了仿真。仲裁器信号定义包括PCI时钟、复位信号、总线占用请求信号、数据交易的启动或开始信号、交易数据准备好信号等。仲裁器状态机定义包括八个状态,分别对应不同的总线状态。仲裁的实现采用了循环算法,每个设备的状态转换都是相同的。 本文介绍了PCI总线仲裁器的设计与实现,使用CPLD技术实现独立的PCI总线仲裁器,能够满足嵌入式系统中的应用需求。该设计采用循环算法,设备的优先级预先设定,并使用AHDL语言进行编程设计。该设计的实现可以提高PCI总线的使用效率,满足计算机系统中的应用需求。
- 粉丝: 3814
- 资源: 59万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 520节日爱心代码,编程语言实现的爱心代码
- 前端跨平台开发框架大盘点,前端开发框架介绍
- 《农业工程学报》论文模板
- C#ASP.NET Core 3.1学生信息管理系统源码带运行文档数据库 SQL2014源码类型 WebForm
- Python机器人运动仿真 机器人matlab运动仿真
- java高校实验室智能管理系统源码数据库 MySQL源码类型 WebForm
- 六一快乐python代码 python六一儿童节元素
- 京东618活动自动刷任务脚本(永久有效)
- JAVAlayui极速开发企业应用系统源码数据库 MySQL源码类型 WebForm
- FPGA设计中基于Verilog的RTL级仿真详解及其重要性