简单优先级仲裁器:使用VHDL和Logisim在嵌入式系统中分配资源

今日头条

1135人已加入

描述

本文着眼于仲裁器的用例和优点,以及在VHDL中实现简单优先级仲裁器。
仲裁是任何现代计算机系统的重要组成部分。从I2C和CAN 等通信协议中的总线仲裁到多处理器系统中的存储器仲裁,可以在需要共享资源的任何地方找到仲裁器。

仲裁器可以是同步的(即,时钟控制的)或异步的,它们的工作方式是基于输入请求授予对资源的访问。

在嵌入式世界中,资源总是有限的。使用仲裁器可以简化资源控制并为竞争子系统增加优先级,同时提高了系统性能和稳健性。

基础知识
什么是仲裁器?
在最基本的情况下,仲裁器是一种设备,它接受N个请求作为输入,并以单热的形式输出单个授权。one-hot是一组任意大小的位,由除1之外的全零组成; 即,1位是逻辑高或“热”。通过这种方式,仲裁器查看其输入集并允许单个设备访问资源。



行动中的仲裁者的例子
假设我们有三个设备,每个设备都有一个与仲裁器绑定的请求信号。这里的“设备”用作任何请求者的通用术语。请求者可以是FIFO(先进先出)队列,CPU,状态机等。当设备需要访问资源时,它只是将其请求信号设置为高。仲裁器检查其输入并授予访问权限。

图1显示了一个框图,下面是一个真值表。在该示例中,授权信号不以任何特定方式使用。授权信号如何提供对资源的访问取决于应用程序和实现。

图1.带有请求和授权信号的仲裁器


图1描述了每个设备独立发出请求的情况。

但是,当两个或更多设备同时发出请求时呢?为了解决这个问题,我们可以在仲裁器中建立优先级。



如何建立仲裁者的优先权
图2显示了一个修改后的真值表,它根据请求给出了优先级。具有请求R3的Dev3优先于Dev2(具有R2)和Dev1(具有R1)。带请求R2的Dev2优先于Dev1(带R1)。再次注意,授权输出始终是一热的。这对于防止多个设备同时访问同一资源至关重要。

更多内容,点击关注国外课栈网“电子物语”专栏

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分