zoukankan      html  css  js  c++  java
  • Chisel3

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

    介绍Chisel3中基本数据类型的字面量的写法,及其背后的实现机制,也就是Scala隐式规则。
     
    参考链接:
     
     
    1. 位宽字面量(literal)
     
    8.W,即位宽为8,类型为Width
     
    2. 有符号数字面量
     
    8.S,即大小为8的有符号数,位宽自动推断(1+4位)。
     
     
    3. 无符号数字面量
     
    8.U,即大小为8的无符号数,位宽自动推断(4位)。
     
    带进制的字符串:
     
    加下划线提高可读性:
     
    4. 布尔型字面量
     
    true.B/false.B,即值为true/false的布尔型数,位宽为1.
     
    5. 固定位宽
     
    给有符号和无符号数传入位宽参数,即可指定位宽,如8.U(32.W)即指定位宽为32位。
     
    For literals of type UInt, the value is zero-extended to the desired bit width.
    For literals of type SInt, the value is sign-extended to fill the desired bit width.
    If the given bit width is too small to hold the argument value, then a Chisel error is generated.
     
    6. 隐式转换规则
     
    .W/.U/.S/.B实际上都是类的方法:
     
     
     
    但是8.U中的8是Int型,而Int类型没有.W/.U/.S方法,true/false是Boolean类型没有.B方法,为什么可以调用呢?
     
    这里用到的就是Scala的隐式规则。
     
    当Scala在Int类型上找不到.W/.U/.S这些方法的时候,就会查找隐式规则:
    a. 哪个类型有这些目标方法?
    b. 有没有隐式规则可以把Int类型转换成为含有目标方法的类型?
     
    import chisel3._ 的时候,即把这些隐式规则引入进来了:
     
     
  • 相关阅读:
    IE浏览器版本的判断
    Ajax中的同步和异步
    linq之多表连接
    C#中const 和 readonly 修饰符的用法详解
    sql中的分页实现
    JS中的编码,解码类型及说明
    HttpContext概念讲解
    VS语法书写提示
    c#版本23个设计模式
    批处理 使用默认浏览器 打开html文件
  • 原文地址:https://www.cnblogs.com/wjcdx/p/10035406.html
Copyright © 2011-2022 走看看