https://mp.weixin.qq.com/s/kf4FvAFye_bRdT49Yow7Hg

 
简单介绍Misc中各个辅助方法的用途和实现。
 
 
1. ParameterizedBundle
 
包含一个隐式参数的Bundle。
 
2. DecoupledHelper
 
rvs:Ready/Valid们。
a. fire():返回一个rvs是否全部为真的判断;
b. fire(exclude, includes):从rvs中临时排除一个exclude,在临时增加一组includes,再返回一个是否全部为真的判断;
 
3. MuxT
 
根据cond的值,从con和alt中选择一个使用。
 
4. MuxTLookup
 
Creates a cascade of n MuxTs to search for a key value:
 
5. ValidMux
 
创建一个级联的选择器,按先后顺序,谁的valid为真,则输出谁的bits。
 
6. Str
 
a. 基于字符串生成一个可以表示这个字符串的UInt:
 
b. 生成一个可以表示参数字符的UInt:
 
c. 把二进制UInt的值,转换为10进制表示,每个数字占用一个字符(8位)的UInt:
 
d. 把二进制SInt的值,转换为10进制表示,每个数字占用一个字符(8位)的UInt。如果是负值,则添加负号,如果是正值,则添加一个空格。
 
7. Split
 
把x拆分成多个部分。
 
8. Random
 
在[0, mod)范围内生成一个随机数,实现方式是生成一个随机数对mod进行求余运算:
 
9. Majority
 
在Seq[Bool]中是1多,还是0多。1多则输出1,0多则输出0。
a. n的值比一半多一个,即5个里面取3个,6个里面取4个;
b. in.subsets(n):每个子集,都是从in.size个元素中取n个组成的;
c. reduce(_ && _):只有n个元素全为1,结果才为1,即in中1占多数;
d. reduce(_ || _):存在1,结果即为1;
 
10. PopCountAtLeast
 
x中是否存在不低于n个值为1的位:
 
11. MaskGen
 
单独介绍,这里略去。
 
12. 附录
 
 
 
 

Rocket - util - Misc的更多相关文章

  1. Rocket - util - Annotations

    https://mp.weixin.qq.com/s/7C8ZmPpwAqFqyKjL9K40Fg   介绍util中定义的注解(Annotations).   ​​   1. Annotation ...

  2. Rocket - util - Timer

    https://mp.weixin.qq.com/s/Z4JJhZ_jL1lqF1nf_orq9A   简单介绍Timer的实现.   ​​   1. 基本功能   实现定时器的功能.   2. Ti ...

  3. Rocket - util - Replacement

    https://mp.weixin.qq.com/s/zCP7wPuxgQ-r94Tr6BV5iw   简单介绍Replacement的实现.   ​​   1. 基本介绍   用于实现Cache替换 ...

  4. Rocket - util - ReduceOthers

    https://mp.weixin.qq.com/s/gbR5fuDbE_nUFVxw-p4rsA   简单介绍ReduceOthers的实现.   ​​   1. 基本介绍   输入一组Bool元素 ...

  5. Rocket - util - Repeater

    https://mp.weixin.qq.com/s/xyEq3DgYuf2QuNjssv8pkA   简单介绍Repeater的实现.   ​​   1. 基本功能   A Repeater pas ...

  6. Rocket - util - PrefixSum

    https://mp.weixin.qq.com/s/G2vLP-ncoJzSOgxGGEJkfA   简单介绍PrefixSum的实现.   ​​   1. 基本介绍   ​​ 把一个序列从前向后逐 ...

  7. Rocket - util - MultiWidthFifo

    https://mp.weixin.qq.com/s/CUnrpyQN5LRBR5bxC5u86A   简单介绍MultiWidthFifo的实现.   ​​   1. 基本介绍   实现一个输入宽度 ...

  8. Rocket - util - MaskGen

    https://mp.weixin.qq.com/s/_aJqf1cFJDK5RVRBhxTWOw   介绍MaskGen的实现.   ​​   1. 基本介绍   给定总线宽度beatBytes,根 ...

  9. Rocket - util - LanePositionedQueue

    https://mp.weixin.qq.com/s/yO_9Ec3S5-AosRVLpsBgOg   简单介绍基于通道位置的队列(LanePositionedQueue)的实现.   ​​   1. ...

随机推荐

  1. 看直播 csust oj

    看直播 Description 小明喜欢看直播,他订阅了很多主播,主播们有固定的直播时间 [Li, Ri] . 可是他网速只有2M,不能同时播放两个直播,所以同一时间只能看一个直播. 并且他只会去看能 ...

  2. java23种设计模式——泡MM版

    一.创建型模式 1.FACTORY:追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,固然口味有所不同,但不管你带MM往麦当劳或肯德基,只管向服务员说;来四个鸡翅就行了.麦当劳和肯德 ...

  3. POI问题总结,关于数字级联及多级级联(三级以上)

    目录 最近公司业务需要用到excel,并且要导出模板,今天为止所有的功能都已经实现了,在这里对出现的一些问题做一个总结. 效果图: 这是一个五级联动的数据,其中第一列是数字开头,实现了五级联动 问题1 ...

  4. LeetCode--LinkedList--141.Linked List Cycle(Easy)

    141. Linked List Cycle(Easy)2019.7.10 题目地址https://leetcode.com/problems/linked-list-cycle/ Given a l ...

  5. LeetCode--Unique Email Addresses & Hamming Distance (Easy)

    929. Unique Email Addresses (Easy)# Every email consists of a local name and a domain name, separate ...

  6. 使用 PyCharm 添加 Django 项目

    一.前置准备(PyCharm与Python的下载,已有的跳过) 1.首先下载PyCharm 地址:http://www.jetbrains.com/pycharm/ 2.然后下载Python 地址:h ...

  7. angular 实现依赖注入

    1:首先获取module对象var myAppModule = angular.module('myApp', []); 2:定义对象(类似spring中xml声明bean对象<bean id= ...

  8. (Python基础教程之八)Python中的list操作

    Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...

  9. 00003-aspose for java 生成水印刻章等,可转为word,pic,pdf

    对应java代码: package com.yoooya.ytp.utils.doc; import com.aspose.words.Document; import com.aspose.word ...

  10. spark机器学习从0到1基本数据类型之(二)

        MLlib支持存储在单个机器上的局部向量和矩阵,以及由一个或多个RDD支持的分布式矩阵. 局部向量和局部矩阵是用作公共接口的简单数据模型. 底层线性代数操作由Breeze提供. 在监督学习中使 ...