对数相关的辅助方法,Math通过软件方法实现,CircuitMath通过硬件方法实现。
 
参考链接:
 
 
1. Math
 
1) log2Up
 
同log2Ceil,建议使用log2Ceil。
 
2) log2Ceil
 
求对数,向上取整。
 
 
一方面:
1位二进制无符号数,表示的数值范围:0, 1
2位二进制无符号数,增加的数值范围:2, 3
3位二进制无符号数,增加的数值范围:4, 5, 6, 7, 即:2^(3-1) .. 2^3 - 1
...
n位二进制无符号数,增加的数值范围:2^(n-1) .. 2^n - 1
 
即是bitLength每增加1,增加的数值范围;
 
另一方面:
若log2(N)向上取整为n,则N的数值范围为:2^(n-1) + 1 .. 2^n;
则N-1的数值范围为:2^(n-1) .. 2^n - 1,这正是n位二进制无符号数所增加的数值范围;
 
所以:
(N-1).bitLength = n;
 
仅供理解,并非严谨证明。姑妄观之。
 
3) log2Down
 
同log2Floor,建议使用log2Floor。
 
4) log2Floor
 
求2的对数,向下取整。
基于log2Ceil,把向上取整加的1减掉。如果没有加1,也就不需要减了。
 
5) isPow2
 
判断一个数字是否2的指数幂。
 
 
2. CircuitMath
 
生成一个计算某个数的2的对数值的电路。小数部分舍弃掉。
 
 
1) Log2
 
使用分治策略,若高位的一半有比特置1,则使用高位的一半进行后续计算。
 
3. 附录

Chisel3 - util - Math vs. CircuitMath的更多相关文章

  1. Java.util.Math类--数学相关的工具类

    Math类--数学相关的工具类 java.util.Math类是数学相关的工具类,里面提供了大量的静态方法,完成与数学运算相关的操作. public static double abs(double ...

  2. Chisel3 - util - OneHot

    https://mp.weixin.qq.com/s/Jsy8P3m9W2EYKwneGVekiw   独热码相关的电路生成器.   参考链接: https://github.com/freechip ...

  3. Chisel3 - util - MixedVec

    https://mp.weixin.qq.com/s/mO648yx4_ZRedXSWX4Gj2g   可以容纳不同类型的变量的向量.   参考链接: https://github.com/freec ...

  4. Chisel3 - util - Mux

    https://mp.weixin.qq.com/s/TK1mHqvDpG9fbLJyNxJp-Q   Mux相关电路生成器.   参考链接: https://github.com/freechips ...

  5. Chisel3 - util - Lookup

    https://mp.weixin.qq.com/s/g85Si6n37D9PYfR5hEoRQQ     实现一个查找逻辑.   参考链接: https://github.com/freechips ...

  6. Chisel3 - util - Valid

    https://mp.weixin.qq.com/s/L5eAwv--WzZdr-CfW2-XNA   Chisel提供的Valid接口.如果valid为置1,则表明输出的bits有效:反之,则输出无 ...

  7. Chisel3 - util - LFSR16

    https://mp.weixin.qq.com/s/DSdb4tmRwDTOki7mbyuu9A     实现16位线性反馈移位寄存器.可用于生成简单的伪随机数.     ​​     ​​   参 ...

  8. Chisel3 - util - Bitwise

    https://mp.weixin.qq.com/s/MQzX1Ned35ztz0vusPdkdQ   比特相关的操作.   参考链接: https://github.com/freechipspro ...

  9. Chisel3 - util - BitPat

    https://mp.weixin.qq.com/s/80Q8j-OSMtgh5a92pI-MZA   使用value和mask来描述一个比特模式,即:value = bits & mask. ...

随机推荐

  1. 教你配置windows上的windbg,linux上的lldb,打入clr内部这一篇就够了

    一:背景 1. 讲故事 前几天公众号里有位兄弟看了几篇文章之后,也准备用windbg试试看,结果这一配就花了好几天,(づ╥﹏╥)づ,我想也有很多跃跃欲试的朋友在配置的时候肯定会遇到这样和那样的问题,所 ...

  2. 单向环形链表解决约瑟夫环(Josephus)问题

    一.约瑟夫环问题 Josephu 问题为:设编号为1,2,- n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那 ...

  3. Intel x86

    PCIe一般规则: purely平台 Intel UPI, Processor DMI3 (Rx lanes only), and Processor PCIe3 (Rx lanes only)Not ...

  4. Arrays.binarySearch的返回值

    如果查找的值包含在数组中,返回搜索的第一个值的下标: 如果查找的值不在数组中,返回(-插入点-1):插入点即为第一个大于此查找值的元素下标 插入点 为将该值插入数组的那一点:即第一个大于此键的元素下标 ...

  5. C# 获取从1月至12月的月初时间和月末时间

    public IActionResult GetMonthData() { var dataList = new List<object>(); var currentMonth = Da ...

  6. JS理论:调用栈、事件循环、消息队列(也叫任务队和回调队列)、作业队列(微任务队列)

    一:调用栈是个什么鬼东西,它具有栈的属性--后进先出 先看一段简单的JS代码: const second = function(){ console.log('hello there'); } con ...

  7. 今天,你遇到redis线上连接超时了吗?

    一封报警邮件,大量服务节点 redis 响应超时. 又来,好烦. redis 响应变慢,查看日志,发现大量 TimeoutException. 大量TimeoutException,说明当前redis ...

  8. 【题解】[SCOI2015]小凸玩矩阵

    题目链接 思路:题目要求变相解答一下,求出是否有n-k个数,不大于当前求的第k个数 而每一行每一列只能有一个数,就可以得到一个二分图的思路,边上的权值就是第i行第j列这个数的值 对于答案就是第k大的数 ...

  9. Dubbo对Spring Cloud说:来老弟,我要拥抱你

    项目地址 https://github.com/yinjihuan/kitty-cloud 前言 Kitty Cloud 开源后有以为朋友在 GitHub 上给我提了一个 issues,问为什么项目中 ...

  10. 《学习笔记》Layui-WPF窗体美化

    一睹为快: 1.创建自定义控件,并取名为LayuiWPFStyle 2.在当前目录中创建Fonts和WindowStyle文件加用来存放字体文件和自定义窗体,字体用fontawesome字体当然你们可 ...