Chisel3 - util - LockingArbiter

2023-11-03

https://mp.weixin.qq.com/s/5oAwH3scumARzPidRBfG2w

 
 
带锁多入单出仲裁器,输出会被锁定指定的时钟周期。
 
参考链接:
 
 
1. LockingArbiterLike
 
 
LockingArbiterLike是一个抽象类(图标中带白色虚线),把仲裁逻辑和选择逻辑,都留给子类去定义。
 
类中定义了一个基本的Arbiter和输出锁定逻辑,而把grant和choice定义成抽象待实现的。
 
锁定逻辑如下:
根据锁定周期的大小,分为两种实现:
a. count == 1
 
与普通Arbiter逻辑一致。
 
b. count > 1
 
 
1) lockCount: 最大值为count-1的计数器;
2) locked: 当前是否锁定状态;
3) lockIdx: 用于存放当前锁定的输入口序号的寄存器;
4) wantsLock: 使用传入的needsLock函数判断io.out.bits是否需要锁定,如果needsLock传入为None,则默认为true;
5) 触发锁定:想要锁定并且正在传输(io.out.fire() && wantsLock
6) 锁定期间chosen使用lockIdx的值;
7) 锁定期间序号不同于lockIdx的输入口不被授权传输:Mux(locked, lockIdx === i.asUInt, g)
 
PS.
1) needsLock.map(_(io.out.bits)).getOrElse(true.B)
 
needsLock为Option,如同有一个或者没有元素的列表,调用其map方法对其中的元素进行转换。
如果没有元素,则返回None;如果有元素则对元素应用map()参数指示的函数,返回的Some()也是一个Option;
 
然后对None或Some调用getOrElse(),传递一个默认值;
 
2) (in, (g, i)) <- io.in zip grant.zipWithIndex
 
 
2. LockingArbiter
 
 
LockingArbiter继承自LockingArbiterLike,由于Locking逻辑已经在LockingArbiterLike中实现了。所以LockingArbiter就很简单,实现LockingArbiterLike中两个抽象方法即可。
 
a. choice
 
小号高优先级,n-1为默认值;
 
b. grant
 
 
小号的valid可以取消大号输入口的授权(grant)。

 

转载于:https://www.cnblogs.com/wjcdx/p/10146372.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Chisel3 - util - LockingArbiter 的相关文章

随机推荐

  • Vue-Axios的封装---登录注册---axios(二)

    Vue cli Axios的封装 简单的的登录与注册 第一种 逻辑数据未分离 注册 登录 用户页面获取用户数据信息以及注销 第二种 逻辑数据分离 token 封装Axios 为什么封装axios 实现 调用封装完毕的Axios 并在添加所需
  • vuforia sdk及案例 (第二章)

    有过上一章了现在去看下载部分 我事先下载好了 用的Android Q版本 开发软件版本是3 5 3的 然后我看了一去升级到了3 6 1 我是最新版本来做的 这是我下载的 导入工程案例 VuforiaSamples 8 6 10 出现问题一
  • IntelliJ IDEA开发工具的安装,scala插件安装

    IntelliJ IDEA开发工具安装 scala插件安装 1 IntelliJ IDEA开发工具下载 下载官方网址 https www jetbrains com idea download other html 我下的2021 3 2
  • Pytorch Advanced(一) Generative Adversarial Networks

    生成对抗神经网络GAN 发挥神经网络的想象力 可以说是十分厉害了 参考 1 AI作家 2 将模糊图变清晰 去雨 去雾 去抖动 去马赛克等 这需要AI具有 想象力 能脑补情节 3 进行数据增强 根据已有数据生成更多新数据供以feed 可以减缓
  • modulename: loading out-of-tree module taints kernel

    问题描述 使用insmod命令加载编写的驱动模块时 出现提示信息 loading out of tree module taints kernel 不过 模块还是能够被加载 并且卸载后再次加载时 该提示信息没有再次出现 然而整个系统重启后再
  • Linux编码修改

    1 查看当前系统默认采用的字符集 locale 2 查看系统当前编码 echo LANG 如果输出为 en US UTF 8 英文 zh CN UTF 8 中文 3 查看系统是否安装中文字符集 locale a grep zh 如果出现了
  • JS的深拷贝函数

    自定义深拷贝函数 引入的赋值 指向同一个对象 相互之间会影响 对象的浅拷贝 只是浅层的拷贝 内部引入对象时 依然会相互影响 对象的深拷贝 两个对象不再有任何关系 不会相互影响 function isObject value const va
  • flask 开发Restful API :post get

    命令行安装flask pip install flask 新建脚本api py from flask import Flask from flask import request import json app Flask name app
  • 使你的IT职业生涯更上一层楼de14条建议

    摘要 升值为企业IT部门的领导者 是大部分IT技术人员职业生涯的最终追求 但从一般大众中脱颖而出 并非易事 仅仅把本职工作干好远远不够 还需要IT技术人员展示出投身于技术发展的奉献精神及伴随技术发展而发展的能力 升值为企业IT部门的领导者
  • OpenGL坐标变换及其数学原理,两种摄像机交互模型(附源程序)

    OpenGL坐标变换及其数学原理 两种摄像机交互模型 附源程序 实验平台 win7 VS2010 先上结果截图 文章最后下载程序 解压后直接运行BIN文件夹下的EXE程序 a 鼠标拖拽旋转物体 类似于OGRE中的 OgreBites Cam
  • 频繁跳槽是职场走下坡路的开始,Java程序员注意:跳槽前,你该考虑5个问题

    本文转载自 频繁跳槽是职场走下坡路的开始 Java程序员注意 跳槽前 你该考虑5个问题 职场上 跳槽是所有职场人都会遇到的问题 关于职场跳槽的理由 笔者做了以下盘点 和直接领导的矛盾导致离职 逃避问题而离职 工作压力大 挣钱少而离职 总之
  • Harbor安装及简单使用

    在虚拟机初始化的基础上 安装Docker wget O etc yum repos d CentOS Base repo http mirrors aliyun com repo Centos 7 repo wget https mirro
  • 2020-06-11

    你需要继续学习 这样一来如果有机会的话 你应该可以往前进一步
  • 【C语言】让你不再害怕指针——C指针详解(经典,非常详细)

    https blog csdn net qq 41035588 article details 79673674
  • java 读取excel数据

    本文共介绍两种方式 第一种是常规POI读取 第二种是大文件读取 依赖包
  • OpenCV3.3 + Python3.6 开发环境配置

    2018 9 6 更新 Anaconda3 5 2 0版本 Python 3 6 下OpenCV 3 安装 今天重新安装了 Python 的环境 发现在新版本 Anaconda3 下安装配置 OpenCV 3 十分简单 在 Anaconda
  • 【ubuntu虚拟机命令】+ 【mysql数据库】

    ubuntu虚拟机命令 cd 进入家目录 ll 查看文件列表 rm rf 目录名 删除目录 sudo su 从用户切换到 root su ubuntu 从 root 切换到 用户 vi bim 打开文件 i 编辑文件 退出 esc 保存退出
  • 40-400-020-运维-优化-使用MySQLTunner优化MySQL

    文章目录 1 概述 2 安装MySQL 3 下载 4 报告分析 1 概述 MySQLTuner 是一个 Perl 脚本 可以用来分析您的 MySQL 性能 并且基于收集到的信息给出相应的优化建议 这样子 您就可以调整 my cnf 从而优化
  • 关于colmap+nerf对数据集进行预处理的使用总结

    前言 零零碎碎的东西太多 有必要统一记录一下 因为是回忆步骤 所以可能有不准确的地方 Colmap的使用 1 下载 下载链接 colmap 下载之后直接解压就能使用 点击COLMAP bat 2 colmap 这里到处都是很详细的操作步骤
  • Chisel3 - util - LockingArbiter

    https mp weixin qq com s 5oAwH3scumARzPidRBfG2w 带锁多入单出仲裁器 输出会被锁定指定的时钟周期 参考链接 https github com freechipsproject chisel3 b