- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PCI总线仲裁器设计
一﹑PCI总线仲裁机制
PCI的仲裁是基于设备访问,而不是基于时间分配的。在任一时刻,总线上的一个主设备要想获得对总线的控制权,就必须发出它的请求信号(PCIreqN),如果此刻该设备有权控制总线,总线仲裁器就使该设备的总线占用允许信号(PCIgntN)有效,进而获得总线的使用权。当有多个主设备同时发出总线控制请求时,就必须由仲裁器根据一定的算法判定,当前应该由哪个主设备获得控制权。
二、仲裁算法
常用的仲裁算法有:公平算法、循环算法等。
本仲裁器设计采用的是循环算法,设备的优先级预先设定。目前的设计实现对四个PCI设备请求的仲裁,各设备优先级由高到低安排为:设备0设备1设备2设备3。
系统启动伊始,没有设备使用PCI总线,也没有设备请求使用PCI总线,仲裁器总是设定设备0拥有总线控制权,即将总线停靠于设备0。此时设备0的PCIgntN是有效的。而在此之后,仲裁器总是指定PCI总线的最后一个使用者为总线的停靠设备。
当有一个或多个设备提出拥有总线使用权的请求时,仲裁器将按照事先安排的设备优先级顺序逐一查询。对于只有一个设备请求的情况,该设备的请求将会马上得到响应;如果多个设备同时发出请求时,仲裁器裁定首先响应优先等级高的设备的请求,当此设备完成数据传输交出总线使用权后,再由优先等级低的设备使用总线。示意框图见图2。
如果一个设备已获得总线使用权并且正在进行地址、数据传输时,比它优先级别高的设备也发出了占用请求,仲裁器将会撤销优先级别低的设备的总线占用信号,并把总线使用权交给优先级别高的设备,同时还要确保在任一时刻不会出现多个设备同时占用总线的情况。具体见仿真分析。
三、编程设计与实现
本设计使用AHDL语言,在MaxplusII10.0上编译通过,并进行了仿真。
1.仲裁器信号定义
SUBDESIGNPCI_arb
(--输入
PCIclk:INPUT--PCI时钟
Arbiter_rstN:INPUT--复位信号
PCIreqN[3..0]:INPUT--总线占用请求信号
frameN:INPUT--数据交易的启动或开始,主设备发出
irdyN:INPUT--交易数据准备好,主设备发出
--输出
PCIgntN[3..0]:OUTPUT--总线占用允许信号
)
frameN和irdyN决定了总线的状态,只要两个信号中的一个有效,就表明总线上有数据通过,总线处于忙状态;当两个信号都无效时,则总线处于空闲状态。
2.仲裁器状态机定义
parb_sm:MACHINE
OFBITS(PARB2,PARB1,PARB0)
WITHSTATES(
PARB_SLT0=0,--PCIgnt0#有效,设备0拥有总线使用权,总线空闲
PARB_SLT0D=1,--PCIgnt0#有效,数据在总线上传输,总线处于忙状态
PARB_SLT1=2,--以下类同
PARB_SLT1D=3,
PARB_SLT2=4,
PARB_SLT2D=5,
PARB_SLT3=6,
PARB_SLT3D=7);
3.仲裁的实现
由于采用循环算法,对每一个设备而言状态的变换都是相同的,下面仅以设备0的状态转换为例:
CASEparb_smIS
WHENPARB_SLT0=
IF(!frameN#!irdyN#frameNirdyNPARBtout4)THEN
IF(!PCIreqN1)THEN
PCIgntN1=GND;
parb_sm=PARB_SLT1D;
ELSIF(!PCIreqN2)THEN
PCIgntN2=GND;
parb_sm=PARB_SLT2D;
ELSIF(!PCIreqN3)THEN
PCIgntN3=GND;
parb_sm=PARB_SLT3D;
ELSE
PCIgntN0=GND;
parb_sm=PARB_SLT0D;
ELSE
PCIgntN0=GND;
parb_sm=PARB_SLT0D;
ENDIF;
WHENPARB_SLT0D=
PCIgntN0=GND;
IF(frameNirdyN)THEN
parb_sm=PAR
您可能关注的文档
最近下载
- 中小学生心理健康诊断测验MHT(附测试量表及评分细则).docx VIP
- HG-T 3866-2008 硫化橡胶 压缩耐寒系数的测定.pdf VIP
- 2025年内蒙古公务员考试《申论》真题及答案 .pdf VIP
- 第12课 汉武帝巩固大一统王朝 课件(共25张PPT)(含音频+视频).pptx VIP
- 中电联定额〔2015〕162号对于前期工作费等费用标准的的通知.docx
- 履带吊租赁合同.pdf VIP
- 《中国饮食文化》教学课件—06中国馔肴文化与特色筵宴设计.pptx VIP
- 呼吸内科病案分析.ppt VIP
- 肌骨康复:腰痛康复PPT课件.pptx
- 2023-2024学年河南省南阳市卧龙区九年级(上)期中数学试题(含解析).doc VIP
原创力文档


文档评论(0)