固定优先级仲裁器
仲裁器Arbiter是数字设计中非常常见的模块,应用也非常广泛。定义就是当有两个或两个以上的模块需要占用同一个资源的时候,我们需要由仲裁器arbiter来决定哪一个模块来占有这个资源。最简单的仲裁器就是固定优先级仲裁器(Fixed Priority Arbiter),也叫SP(Strict Priority, 严格优先级)仲裁,该仲裁器会给各个输入队列分配优先级,当高优先级的队列非空时,优先调度高优先级队列。只有当高优先级队列为空时,才有可能调度低优先级的队列。在整个过程中,优先级是固定、保持不变的。
仲裁器设计对于一个固定优先级仲裁器,输入是一个多比特的request向量,每一个bit代表一个模块的request, 输出一个多比特的grant向量,每个bit代表给对应的模块的grant信号。我们可以把优先级这样安排,最低位优先级最高,最高位优先级最低。
方法一一种简单的方法就是采用case语句实现:
module fixed_prio_arb
(
input [2:0