当前位置: 首页 > news >正文

宜昌市水利建设工程协会网站工信部网站备案怎么查询

宜昌市水利建设工程协会网站,工信部网站备案怎么查询,哪个网站做海报好,下海做公关的网站题目描述当A、B两组的信号请求访问某个模块时#xff0c;为了保证正确的访问#xff0c;需要对这些信号进行仲裁。请用Verilog实现一个仲裁器#xff0c;对两组请求信号进行仲后#xff0c;要求#xff1a;协议如图所示#xff0c;请求方发送req#xff08;request…题目描述当A、B两组的信号请求访问某个模块时为了保证正确的访问需要对这些信号进行仲裁。请用Verilog实现一个仲裁器对两组请求信号进行仲后要求协议如图所示请求方发送reqrequest信号1表示有请求给仲裁器仲裁器响应grant信号为1表示请求成功:通过参数定义在冲突情形下响应A/B的比例举例一段时间内有若干次A请求和若干次B请求其中AB发生冲突的有N次这N次中先响应A 3次后响应B 1次循环反复。举例中的3和1可配置。添加必要的注释增加代码可读性。解题思路根据题目描述很容易想到模块arbiter的端口应该如下module arbiter (input wire clk, // 时钟信号input wire rst, // 复位信号input wire reqA, // A组请求信号input wire reqB, // B组请求信号output reg grantA, // A组响应信号output reg grantB // B组响应信号 );时钟、复位信号。两个请求信号和两个相应响应信号。只有在冲突时AB冲突响应比为3:1。其他情况下正常响应。所以可以写一个计数器仅在冲突时加1。计数器0,1,2时响应A计数器3时响应B于此同时将计数器置0。对于仲裁部分可以将总线的请求信号reqA和reqB拼接成一个2bit信号这样使用case语句就能避免多级if-else嵌套导致的长组合逻辑链。在case语句中把{reqA, reqB}的所有可能2b00,2b01,2b10,2b11。全都规划到就行当{reqA, reqB}2b11时判断冲突计数器范围落在[0,A_ratio-1]则冲突时A获得总线若counter落在[A_ratio,A_ratioB_ratio-2]时冲突时B获得总线。这样模块满足题目要求可自定义冲突分配比例。代码module arbiter #(parameter [7:0] A_ratio 3 , // A grant ratio parameter [7:0] B_ratio 1 // B grant ratio )(input wire clk , // 时钟信号input wire rstn , // 复位信号input wire reqA , // A组请求信号input wire reqB , // B组请求信号output grantA , // A组响应信号output grantB // B组响应信号 );// 定义计数器和比例参数 reg [7:0] counter 0;   // belongs to [0, A_ratio B_ratio - 1] reg grantA_reg,grantB_reg;assign grantA grantA_reg; assign grantB grantB_reg;always (posedge clk) beginif (!rstn) begingrantA_reg 0;grantB_reg 0;end else begincase({reqA,reqB})2b00:begingrantA_reg 1b0;grantB_reg 1b0;end2b01:begingrantA_reg 1b0;grantB_reg 1b1;end2b10:begingrantA_reg 1b1;grantB_reg 1b0;enddefault:beginif(counter (A_ratio - 1) )begingrantA_reg 1b1;grantB_reg 1b0;endelse begingrantA_reg 1b0;grantB_reg 1b1;endendendcaseend endalways (posedge clk)beginif(!rstn)begincounter 8d0;endif( (reqAreqB) (counter (A_ratio B_ratio - 2)) )begincounter counter 1b1;endelse counter 8d0; endendmoduletbmodule arbiter_tb;// 定义时钟和复位信号 reg clk; reg rstn;// 定义A组和B组请求信号 reg reqA; reg reqB;// 定义A组和B组响应信号 wire grantA; wire grantB;// 实例化被测试的模块 arbiter dut (.clk(clk),.rstn(rstn),.reqA(reqA),.reqB(reqB),.grantA(grantA),.grantB(grantB) );// 时钟信号发生器 always #5 clk ~clk;// 测试用例1A组优先 initial begin// 初始化信号rstn 0;clk 0;reqA 0;reqB 0;// 复位#15 rstn 1;#1 // 发送A组请求#10 reqA 1;// 发送B组请求#10 reqA 0;reqB 1;// 发送A and B组请求 eight timesrepeat(8) begin#10 reqA 1;reqB 1;endrepeat(2) begin#10 reqA 1;reqB 0;endrepeat(2) begin#10 reqA 0;reqB 1;end#10 reqA 0;reqB 0;// 停止测试#100 $finish; endinitial begin$fsdbDumpfile(arbiter.fsdb);$fsdbDumpvars(0); endendmodule波形图在tb里先分别让A、B各请求总线一次然后让他们出现请求冲突8次最后再让A、B分别请求总线两次从图中可以看到在A、B请求冲突的时候A_grant、B_grant拿到总线的比例是3:1我们在module定义开头给了两个parameter定义了A_grant、B_grant拿到总线的比例A_ratio和B_ratio如果要修改模块代码修改module传入的parameter的值即可。更多手撕代码题可以前往 数字IC手撕代码--题库
http://www.hkea.cn/news/14387613/

相关文章:

  • 江苏省中医院网站建设男的和女的做那种短视频网站
  • 大连高新区规划建设局网站网站开发选题依据
  • 信贷网站开发深圳网站建设行业排行
  • 如何看网站是否有做网站地图wordpress 自动备份
  • 盐城市城乡建设门户网站免费的网站建造
  • 茂名企业做网站公众平台官网登录入口
  • 网站的流量是怎么回事素材图下载
  • 江门做网站的公司域名备案期间 网站访问
  • 去国外做非法网站吗注册一个5000万空壳公司要多少钱
  • 上海住房和城乡建设部网站深圳网站优化搜索
  • 光电网站建设相同网站名
  • 网站需要什么费用网站系统说明
  • 免费行情软件网站大全下载南昌市住房和城乡建设网站
  • 在哪个网站上做实验仪器比较好wordpress4.9
  • 苍南网站设计公司怎么跟电商合作去哪找
  • 放单网站建设健身器材网站源码
  • 义乌网站制作电话做产品网站费用吗
  • 做产品网站营销推广公司标志设计图片大全免费
  • 商务网站建设工程师注册安全工程师通过率
  • 网站美工做图晋江友情链接是什么意思
  • 网站规划与网页设计第二版电商erp软件排名
  • 网站取消301后网站开发工程师发展趋势
  • 网站数据库 mysql中国装饰公司十大排名
  • php网站开发招聘需求开源站群cms
  • 哪个网站做h5比较好兰州市政建设集团办公网站
  • 自己电脑做网站用备案网站建设 模版
  • 塘厦仿做网站wordpress分类页置顶信息
  • 峡江网站建设jquery网站模板
  • 关于新闻管理的网站建设报告河北省建设项目环保备案网站
  • html5手机网站教程wordpress怎么制作网站主页