Advertisement

Chisel Tutorial (5) - Bundle 与 Vec

阅读量:

以下内容依据2015年7月10日版本的Chisel 2.2 Tutorial整理

此处的Bundles、Vecs将不进行翻译,以免因翻译偏差造成理解上的误差,各位是否有更好的建议?

Bundle与Vec同样是Chisel中定义的数据类型。Bundle用于表示一组元素的集合,其中每个元素均拥有独立的变量名称,其特性类似于C语言中的结构体。用户可通过创建Bundle的子类方式,来定义属于Bundle类型的变量,具体示例如下:

复制代码
 class MyFloat extends Bundles{

    
   val sign = Bool()
    
   val exponent = UInt(width=8)
    
   val significant = UInt(width=23)
    
 } 
    
  
    
 val x = new MyFloat()
    
 val xs = x.sign
    
    
    
    

Chisel建议用户遵循Scala的命名规范,将类名的首字母进行大写处理。在上述定义中还存在一个需要特别关注的细节,即在UInt的构造函数中设置了一个名为width的参数,该参数用于确定当前定义的UInt数据类型的位宽。

Vec是由多个元素构成的向量结构,每个元素均对应一个唯一的索引

全部评论 (0)

还没有任何评论哟~