Chisel Tutorial(五)——Bundles与Vecs
来源:互联网 发布:淘宝山寨手机店铺 编辑:程序博客网 时间:2024/05/22 18:16
以下内容依据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是一些元素组成的向量,每个元素都有一个索引序号,类似于C语言中的数组。下面是一个Vec类型的变量的定义:
val myVec = Vec.fill(5){SInt(width = 23)} // 定义了一个由5个23bit宽度的SInt组成的Vecval reg3 = myVec(3) // 取出其中的一个元素
用户可以使用Bundles、Vec组成更加复杂的数据结构,如下:
class BigBundle extends Bundle { val myVec = Vec.fill(5) { SInt(width = 23)} val flag = Bool() val f = new MyFloat() // 此处的MyFloat是前文定义的bundle}
0 0
- Chisel Tutorial(五)——Bundles与Vecs
- Chisel Tutorial(八)——运行与测试
- Chisel Tutorial(一)——Chisel介绍
- Chisel Tutorial(二)——Chisel的数据类型
- Chisel Tutorial(四)——函数
- Chisel Tutorial(六)——端口
- Chisel Tutorial(七)——模块
- Chisel Tutorial(三)——组合电路
- Chisel Tutorial(九)——状态单元
- Learning—Spring DM与WARs Bundles
- ServiceMix(五) bundles in ServiceMix
- OSGI:osgi.bundles与osgi.bundles.defaultStartLevel
- chisel
- Chisel的安装与使用
- iOS开发之LLDB — Chisel插件的安装说明
- Chisel实验笔记(一)
- Chisel实验笔记(二)
- Chisel实验笔记(三)
- js 基础
- 马良建模学习笔记——法式精雕床(一:床体制作)
- hdu 5384 Danganronpa (ac自动机)
- viewpager+Fragment实现简单滑动切换效果
- Google 镜像站搜集
- Chisel Tutorial(五)——Bundles与Vecs
- C#多媒体编程
- achartengine 属性
- 二叉树构造
- Android取得已安装的应用列表
- JPA学习笔记(4)——使用Table策略来生成主键
- 第一章 介绍 实体,属性,关系
- redbat mysql重启
- Hibernate中的实体状态(一)