《PCI总线仲裁器的设计与实现.docx》由会员分享,可在线阅读,更多相关《PCI总线仲裁器的设计与实现.docx(4页珍藏版)》请在第壹文秘上搜索。
1、PQ总线仲裁器的设计与实现摘要基于的器件的总线仲裁器设计,实现仲裁器的编程,并结合仿真结果对总线的仲裁进行了论述。关键词仲裁器,仿真总线仲裁器通常是集成在芯片组中.随着计算机应用的深化,尤其是嵌入式系统的不断发展,集成的仲裁器难以满意某些场合的应用。而采纳技术实现的独立的总线仲裁器,则较好的适应了这方面的需求。一、总线仲裁机制的仲裁是基于设备访问,而不是基于时间安排的。在任一时刻,总线上的一个主设备要想获得对总线的限制权,就必需发出它的恳求信号,假如此刻该设备有权限制总线,总线仲裁器就使该设备的总线占用允许佰号有效,进而获得总线的运用权。当有多个主设备同时发出总线限制恳求时,就必需由仲裁器依据
2、肯定的算法判定,当前应当由哪个主设备获得限制权。二、仲裁算法常用的仲裁算法有公允算法、循环算法等。本仲裁器设计采纳的是循环算法,设备的优先级预先设定。目前的设计实现对四个设备恳求的仲裁,各设备优先级由高到低支配为设备0设备1设备为设备3。系统启动伊始,没有设备运用总线,也没有设备恳求运用总线,仲裁器总是设定设备O拥有总线限制权,即将总线停靠,设备0。此时设备O的是有效的。而在此之后,仲裁器总是指定总线的最终个运用者为总线的停鸵设备。当有个或多个设备提出拥有总线运用权的恳求时,仲裁器将依据事先支配的设备优先级依次逐一查询。对于只有个设备恳求的状况,该设备的恳求将会立刻得到响应:假如多个设备同时发
3、出恳求时,仲裁器裁定首先响应优先等级高的设备的恳求,当此设备完成数据传输交出总线运用权后,再由优先等级低的设备运用总线。示意框图见图2。假如一个设备已获得总线运用权并且正在进行地址、数据传输时,比它优先级别高的设备也发出了占用恳求,仲裁器将会撤销优先级别低的设备的总线占用信号,并把总线运用权交给优先级别裔的设备,同时还要确保在任时刻不会出现多个设备同时占用总线的状况。详细见仿真分析。三、编程设计与实现本设计运用语言,在100上编译通过,并进行了仿真。1仲裁器信号定义一一输入一时钟复位信号30一总线占用恳求信号一数据交易的启动或起先,主设备发出-交易数据打算好,主设备发出一输出&;30-总线占用
4、允许信号和确定J总线的状态,只要两个信号中的个有效,就表明总线上有数据通过,总线处于忙状态;当两个信号都无效时,则总线处于空闲状态。2仲裁器状态机定义_2,1,Oj)=O,-0#有效,设备0拥有总线运用权,总线空闲J)=1,0#有效,数据在总线上传输,总线处于忙状态=2,一以卜类同=3,_2=4,_2=5,_3=6,_3=7:3仲裁的实现由于采纳循环算法,对每一个设备而言状态的变换都是相同的,下而仅以设备0的状态转换为例_0=!U!11=;_=;!22=;_=_2;!33=;_=_3;0=;&:_=_0:0=;_=_0:;_0=0=;&_=_0:_=_0;为了避开线上和线上出现时序竞争,个设备
5、的信号有效和另个设备的的撤销,假如不是在总线空闲状态,则两者之间至少要有一个时钟的延迟。设计中,将每个设备占用总线的状态分为两部分,一总线空闲和总线忙:状态机不能从一个设备的一状态干脆转到另一个设备的一状态,中间必需经过至少一个时钟的.状态的连接,这样就避开了总线上竞争的出现。代码中,为一5位计数器,对时钟个数进行计数,用来判别设备发出恳求信号后是否在规定时间内16个时钟,即40=】OOOo占据了总线,启动了数据的传输:假如超时,则撤销该设备的恳求信号,并按预设的优先级依次,对其余设番总线运用权进行新轮的裁定。计数器的编程实现4#0&1&2&3口=0;&口=口+1;口=0;四、仿真分析1单设备
6、总线恳求状况系统初始化后自动将总线停鸵于设备0上,总线处于空闲状态,、均为高电平。须要强调的点是,仲裁所用的限制信号均在时钟信号的上升沿采样而得。如图3所示,设备2发出总线占用信号,仲裁器在时钟上升沿处采样到该信号,并起先启动计数,此时的、为高电平,设备。仍旧拥有总线运用权;随后设备2驱动使得和有效,在时钟上升沿处,仲裁器采样到和,计数器清零,使设备2的2信号有效,从而占用总线,设备把地址、数据驱动到总线上,总线处于忙状态。之后,设备2撤销其2信号,放弃对总线的占用:接者、信号相维无效,表明数据传输的完成,总线变为空闲,仲裁器在处采样后,将总线停鸵在设备2上。2多个设备同时恳求总线运用权以两个
7、设备为例设备3首先发出恳求信号,仲裁器在时钟处采样后,许数器起先计数,此时总线仍旧为设备O占用若;在时钟处的采样,检测到有效,表明数据传输的起先,仲裁器使得3信号有效,设备3获得总线全部权:在随后的一个时钟上升沿,仲裁器采样到设备2的总线恳求信号,此时由于、依旧有效,表明数据传输正在进行中,必需等当前数据传输完成后,设备2才能占用总线进行自己的数据传输,此时仲裁器隐含设定设备2拥有总线运用权。设备3在时钟之前使得、无效,总线进入空闲状态,停匏在设备3上。设笛2检测到总线空闲,驱动自己的、信号,仲裁器在时钟处采样到有效的、信号后,使2有效,设备2占据总线,起先数据的传输。设备2运用完总线后,使总线回到空闲状态,停靠在设备2上;设备3检测到总线空闲,再次驱幼、有效,从而再次获得总线运用权时钟上升沿处。全部传输完成后,总线将停靠在设备3上。值得提的是,假如设备3在被迫交出总线前不能完成全部数据的传输,它必需使自己的3信号持续有效,这样在设备2用完总线后,仲裁器能将运用权交回,从而完成剩余数据的传输。图5为设备获得总线运用权,在设定的16个时钟周期内没有后动传输,仲裁器状态的变换。仍以两个设备为例。五、应用进行总线仲裁器的设计,系统结构简洁;配置敏捷,可以依据系统的须要,对有关信号进行裁减或者扩展:在线修改便利。本设计采纳的3064实现,并应用于所设计的系统板中。