### ABTITER 仲裁器:基于Round-Robin的四层级仲裁逻辑解析 #### 引言 在现代数字系统设计中,多个设备或模块经常需要共享一个资源(如总线)。为了有效地管理这些请求并避免冲突,仲裁机制应运而生。本文将深入探讨一种名为ABTITER的四层级轮询仲裁器的设计原理与实现细节,该设计最初由W.D. Peterson用VHDL编写。 #### ABTITER仲裁器概述 ABTITER仲裁器是一种基于轮询策略的仲裁器,其核心功能是处理四个请求信号,并按照预定的顺序依次授予这些请求信号的使用权。此仲裁器特别适合于需要公平性分配资源的应用场景,例如在多处理器系统中的资源共享。 #### 核心组件解析 ABTITER仲裁器主要包含以下几个关键组件: - **请求信号** (`req3`, `req2`, `req1`, `req0`):表示来自不同设备的请求。 - **授权信号** (`gnt3`, `gnt2`, `gnt1`, `gnt0`):用于指示哪些请求被选中。 - **时钟信号** (`clk`) 和 **复位信号** (`rst`):为整个电路提供时序控制。 #### 逻辑实现详解 ##### 内部寄存器与信号定义 - **`gnt`**: 内部授权信号,用于表示当前授权状态。 - **`comreq`**: 表示是否存在有效的请求组合。 - **`beg`**: 标记新一轮请求的开始。 - **`lgnt`**: 内部授权信号,表示各请求的最终授权状态。 - **`lasmask`**: 用于控制请求状态机的状态。 - **`lmask`**: 用于屏蔽某些请求的信号。 ##### 请求处理逻辑 - **`lgnt0`**: - 如果没有其他更高优先级的请求且`req0`有效,则授权`lgnt0`。 - 如果`req0`已经在上一个周期被授权(`lgnt0`为高),则继续授权。 - **`lgnt1`**: - 如果没有其他更高优先级的请求且`req1`有效,则授权`lgnt1`。 - 如果`req1`已经在上一个周期被授权(`lgnt1`为高),则继续授权。 - **`lgnt2`**: - 如果没有其他更高优先级的请求且`req2`有效,则授权`lgnt2`。 - 如果`req2`已经在上一个周期被授权(`lgnt2`为高),则继续授权。 - **`lgnt3`**: - 如果没有其他更高优先级的请求且`req3`有效,则授权`lgnt3`。 - 如果`req3`已经在上一个周期被授权(`lgnt3`为高),则继续授权。 ##### 状态机逻辑 - **`lasmask`状态机**: - 当新的请求出现(`beg`为高)且之前没有有效的请求(`ledge`为低)时,更新`lasmask`。 - `ledge`用于跟踪请求的边缘变化,以便确定何时更新`lasmask`。 ##### 组合逻辑 - **`comreq`逻辑**: - `comreq`用于检测是否存在有效的请求组合。 - 如果任何一个请求信号与其对应的授权信号同时为高,则`comreq`为高。 #### 结论 ABTITER仲裁器通过复杂的组合逻辑和状态机实现了高效的四层级轮询仲裁。这种仲裁方式能够确保每个请求都有机会获得资源使用权,从而提高了系统的整体性能和稳定性。对于需要公平资源分配的应用场景而言,ABTITER仲裁器提供了一种灵活且强大的解决方案。
// A four level, round-robin arbiter. This was
// orginally coded by WD Peterson in VHDL.
//----------------------------------------------------
module arbiter (
clk,
rst,
req3,
req2,
req1,
req0,
gnt3,
gnt2,
gnt1,
gnt0
);
// --------------Port Declaration-----------------------
input clk;
input rst;
input req3;
input req2;
input req1;
input req0;
output gnt3;
output gnt2;
output gnt1;
output gnt0;
//--------------Internal Registers----------------------
wire [1:0] gnt ;
- 白马青衫等风来2018-11-13垃圾,完全没用.......骗积分的,写给幼儿园看的吗???
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 技术资料分享多核处理器构架的高速JPEG解码算法很好的技术资料.zip
- 技术资料分享第24章 性能和资源占用很好的技术资料.zip
- 技术资料分享第23章 LCD驱动API函数很好的技术资料.zip
- 技术资料分享第22章 LCD驱动程序很好的技术资料.zip
- 技术资料分享第21章 高层次配置很好的技术资料.zip
- 技术资料分享第20章 底层配置很好的技术资料.zip
- 技术资料分享第19章 与时间相关的函数很好的技术资料.zip
- 技术资料分享第18章 输入设备很好的技术资料.zip
- 技术资料分享第17章 Shift-JIS支持很好的技术资料.zip
- 技术资料分享第16章 Unicode很好的技术资料.zip