仲裁器设计二—round_robin

仲裁器设计二—round_robin_第1张图片

前言

轮询优先仲裁常用于valid—ready握手的mux或者记录模块中选出或者写入的entry,工作中以前经常使用,但是没有深入学习理解其原理,最近刚好有时间,所以详细学习一下其算法原理,在这里进行记录,并贴出verilog代码;

基本原理:

round robin(rr)轮询优先级仲裁,根本原理是考虑公平性,区别于固定优先仲裁【对每个master分配固定的优先级,低优先级的master只有在高优先级的master被处理后,或者高优先级的master没有访问需求的时候才会被响应】轮询优先仲裁对各个master的响应随各个master的请求轮询变化,当一个master得到响应后,其优先级在接下来的仲裁中就会变为最低,其余master的响应优先级会进行相应的调整,通过这种方式,可以均匀的将master的访问分配下去;

首先举一个例子理解round_robin,假设时钟周期为T,有四个输入源(req),相对应

你可能感兴趣的:(soc设计)