arbiter circuit(以Verilog FSM实现仲裁器)
有限状态机实现仲裁器
状态图如下:
题目要求:
这个FSM作为一个仲裁器电路,控制着三个请求设备对某种类型资源的访问。每个设备通过设置一个信号r[i]=1来提出对资源的请求,其中r[i]是r[1]、r[2]或r[3]。每个r[i]是FSM的一个输入信号,代表三个设备中的一个。只要没有请求,FSM就会保持在状态A。当一个或多个请求发生时,FSM决定哪个设备收到使用资源的授权,并改变到一个状态,将该设备的g[i]信号设置为1。每个g[i]是FSM的一个输出。有一个优先级系统,即设备1比设备2的优先级高,设备3的优先级最低。因此,举例来说,当FSM处于状态A时,设备3只有在它是唯一提出请求的设备时才会收到授予。一旦设备i被FSM授予授予,只要它的请求r[i]=1,该设备就会继续收到授予。
编写完整的Verilog代码来表示这个FSM。
module top_module (input clk,input resetn, // active-low synchronous resetinput [3:1] r, // requestoutput [3:1] g // grant
); reg [2:0]state,next_state ;
parameter A=3'b000,B=3'b001,C=3'b010,D=3'b100;//FF
always@(posedge clk)beginif(!resetn)state<=A;elsestate<=next_state;
end//Transitionalways @(*) begincase (state)A: casez(r) //优先级判断,也可以用if-else3'b000:next_state=A;3'bzz1:next_state=B;3'bz1z:next_state=C;3'b1zz:next_state=D;default:next_state=A;endcaseB: //被授权后只用考虑r1变化next_state=r[1]?B:A;C:next_state=r[2]?C:A;D:next_state=r[3]?D:A;default:next_state=A;endcase
end//output
always@(*)beging=3'b000; //default_statecase(state)B:g[1]=1'b1;C:g[2]=1'b1;D:g[3]=1'b1;
endcase
end
endmodule
if-else判断A状态的优先级:
A: if(r == 3'b000)next_state = A;else if(r[1]) next_state = B;else if(r[2:1] == 2'b10) next_state = C;else if(r == 3'b100) next_state = D;elsenext_state=A;
arbiter circuit(以Verilog FSM实现仲裁器)相关推荐
- Verilog固定优先级仲裁器——Fixed Priority Arbiter
1.原理 仲裁器主要用于当多个source发出请求时,根据一定的规则,来选择响应哪一个source. 固定优先级,就是每个source的优先级是提前分配好的,是固定的. 比如说source有6个,编号 ...
- Verilog轮询仲裁器设计——Round Robin Arbiter
上篇讲了固定优先级仲裁器的设计,并给出了指定最高优先级的实现方法 Verilog固定优先级仲裁器--Fixed Priority Arbiter_weixin_42330305的博客-CSDN博客 轮 ...
- Verilog——一个简单仲裁器的实现
Verilog--一个简单仲裁器的实现 仲裁器基本功能 仲裁器(arbiter) 的主要功能是,多个source源同时发出请求时,根据当前的优先级来判断应响应哪一个source. 仲裁器分为轮询优先级 ...
- 【数字IC手撕代码】Verilog固定优先级仲裁器|题目|原理|设计|仿真
芯片设计验证社区·芯片爱好者聚集地·硬件相关讨论社区·数字verifier星球 四社区联合力荐!近500篇数字IC精品文章收录! [数字IC精品文章收录]学习路线·基础知识·总线·脚本语言·芯片求职· ...
- Verilog权重轮询仲裁器设计——Weighted Round Robin Arbiter
前两篇讲了固定优先级仲裁器的设计.轮询仲裁器的设计 Verilog固定优先级仲裁器--Fixed Priority Arbiter_weixin_42330305的博客-CSDN博客 Verilog轮 ...
- 【数集项目之 MCDF】(三) 仲裁器 arbiter
接下来进行仲裁器 arbiter的设计.根据设计文档,我们知道从输入总共有3个通道,而这三个通道很有可能都接收到数据可以进行发送.而arbiter就是综合优先级.是否有包可以发送等因素,选择一个通 ...
- 仲裁器设计(二)-- Round Robin Arbiter 轮询调度算法
作者:李虹江 原文:https://mp.weixin.qq.com/s/r-nckE5nGz9mc5KqjPXKYg 本文授权转自IC加油站微信号,未经作者授权,严禁二次转载. 上一篇老李讲了固定优 ...
- 【数字IC/FPGA】仲裁器进阶--Round Robin Arbiter
Round Robin Arbiter 固定优先级的缺点是:每个模块的优先级自始至终是固定不变的,这在某种程度上来说是不公平的,Round Robin就是考虑到公平性的一种仲裁算法.其基本思路是,当一 ...
- round robin arbiter 轮询仲裁器设计
前言 仲裁器Arbiter是数字设计中非常常见的模块,应用也非常广泛.定义就是当有两个或两个以上的模块需要占用同一个资源的时候,我们需要由仲裁器arbiter来决定哪一个模块来占有这个资源.一般来说, ...
最新文章
- sqlserver字段类型详解
- 安卓程序添加指纹解锁功能
- Alpha阶段第2周/共2周 Scrum立会报告+燃尽图 04
- .net hbase client--终于浮出水面的轮子
- MyBatis 二级缓存
- 【重磅推出】推荐系统系列教程之九:解密“看了又看”和“买了又买”(Item-Based)...
- NUC1014 排版题.输出排列成菱形的字母【打印图案】
- 2020-11-30 OpenCV人工智能图像处理学习笔记 第4章 计算机视觉加强之图像特效
- java创建实体 内存_加载Java实体时内存不足
- 面试必掌握之计算机网络
- 教务管理系统数据字典mysql_数据库课程设计报告--教务管理系统设计
- 计算机打印机墨水更换方法,怎么看打印机有没有墨?老司机教你查看打印机墨水量方法 (全文)...
- 「POJ2826」An Easy Problem?!【计算几何】
- Heaven of Imaginary(PKUSC2018)
- 嵌入式实验考试后的辛酸苦楚
- 堡垒主机在信息安全等级保护制度中的探究与应用
- Go Flag包使用及解析
- 【业务理解】指标异动分析
- 我的软设、系分考试经验(书)
- 基于java jsp的大学教室管理系统
热门文章
- 【Leetcode】883. 三维形体投影面积
- TCP/IP详解:TCP——超时和重传
- iOS开发,一个使用AVPlayer实现的播放在线音乐的Demo
- 如何在Typora中以可视化或源码的方式使用markdown
- 线下支付场景的争夺成为巨头争战的主题
- 解决Ubuntu16.04软件商店无法加载
- blog微服务架构代码_DDD+微服务大型案例:Uber如何从复杂的RPC微服务转向面向业务领域的微服务架构DOMA? -优步工程博客...
- 安全集群访问非安全集群问题记录
- 奥比中光深度相机使用笔记一
- 一文详解IT运维大会精华 网络安全等保2.0时代掌控万物互联