【chisel】01_Chisel_Slide
Chisel and Xiangshan Learning
Chisel 学习
- chisel-cheatsheet3.pdf
- chisel基本语法、数据类型的讲解和示例,阅读之后可以熟悉基础的语法知识点。chisel变量命名严格按照面向对象语言设计:类名使用驼峰命名法、变量和函数使用小写字母和下划线方式命名。
- 不同点是,chisel使用
:=
进行物理连线的描述,用=
来进行变量的定义(和verilog的=、<=表示方式不同),目前没有看到区分组合逻辑部分和时序逻辑部分的表示。 - 同时chisel里面也定义了一些较为高级的函数、接口(例如,带有握手信号的IO、仲裁器等)
- Digital Design with Chisel
- 这本是丹麦大学Martin Schoeberl教授撰写的Cshisel入门书籍
- 目前有中文版(第几版不太清楚),且目录有点小问题,可以先看中文版,过了一遍之后,再去读英文原版(第四版)Digital Design with Chisel
Ch2 Basic Component
Data Type and Contant
- Chisel 中的有符号数是用补码表示,数据表示的时候,通过用(n.W)的方式规定数据的位宽为n
1 | // variable |
- Update operator
- Chisel 同样规定了线网类型的变量,以及用来赋值的update operator (:=)。
1 | val w = Wire(UInt()) |
- Mux
- Chisel 自带了多路选择器模块,调用方法:
1 | val r = Mux(sel, a, b) |
- Reg
- Chisel的寄存器有两种定义方法,一种是不带输入端口的,另一种是带的:
1 | // first case: |
- Counter
- 计数器可以用Reg + Mux的方式实现:
1 | val cntReg = RegInit(0.U(8.W)) |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Xuanyao's Blog!