杆树 发表于 2025-6-5 08:17:38

chisel学习笔记——基本类型

Chisel学习笔记(二)——基本类型

因为是对着chisel book学的,这篇实际上是加上我的理解的chisel book的翻译
1.信号类型与常量

Chisel提供了三种基本的类型来描述信号、寄存器、组合逻辑:

[*]Bits
[*]SInt
[*]UInt
此外,还定义了逻辑类型Bool。
1.1类型定义

一个Chisel类型的定义有两部分:位宽与类型
比如看下面的例子:
Bits(7.W)
SInt(8.W)
UInt(9.W)分别定义了7bits的Bits类型,8bits的有符号数,9bits的无符号数
1.2 常量定义

而一个Chisel常量类型的定义则有三部分:位宽、类型和值
比如看下面的例子:
-3.S(4.W)​        这个定义代表一个4bits的有符号数3,其中-3、4都是Scala原生的整型,而通过.S、.W转换为Chisel定义的有符号数与宽度类型
​        对于上面的例子应该这样理解,首先4.W将Scala整型4转换为Chisel width,然后作为参数传入.S构成Chisel四位有符号数类型,然后把Scala整型-3转换为Chisel四位有符号数-3。
对于常量的定义,还可以使用其它的进制(16、8、2),这种情况下应该用Scala的字符串类型来表达,如:
"hff".U
"o377".U
"b1111_1111".U都代表十进制的255
2. 组合逻辑

​        首先有必要介绍Scala的一个特性——类型推断,类似C++的auto,对应的关键字为val。这个特性使得我们可以不用像Verilog一样,对每一个变量显式声明它的类型、位宽(位宽实际上作为Bits、SInt、UInt类型的一项属性存在)。
​        先看一个例子:
val logic = a & b | c上面的代码描述了下面这样一个电路:

​        代码中,logic的类型为val,如前述,这不是一个实际的类型,只是表示logic是一个变量,而logic的变量由Scala推断得出。
​        另外,还可以先将一个变量定义为Wire,然后再用一种持续赋值的方法来进行“连接”:
val w = Wire(UInt())
w := a & b​        可以通过类似下标访问的方法来提取某一位或一个区间:
val bit31 = x(31)
val bit0to7 = x(7, 0)​        还可以进行拼接:
val word = bits1 ## bits2​        下面两张表介绍了Chisel中定义的一些硬件算子:
OperatorDescriptionData Types*、/、%乘、除、取模UInt、SInt+、-加、减UInt、SInt===、=/=等于、不等于UInt、SInt,返回Bool>、>=、

湄圳啸 发表于 2025-10-14 10:52:53

懂技术并乐意极积无私分享的人越来越少。珍惜

岑韬哎 发表于 2025-11-7 08:35:06

这个好,看起来很实用

空娅芬 发表于 2025-11-23 04:13:21

过来提前占个楼

暴灵珊 发表于 2025-11-30 01:18:59

热心回复!

坡琨 发表于 2025-12-18 10:43:36

新版吗?好像是停更了吧。

背竽 发表于 2025-12-22 05:11:43

前排留名,哈哈哈

黎娅茜 发表于 2025-12-23 06:48:01

收藏一下   不知道什么时候能用到

喜及眩 发表于 2025-12-24 18:51:59

很好很强大我过来先占个楼 待编辑

甦忻愉 发表于 2025-12-30 03:19:03

收藏一下   不知道什么时候能用到

汇干环 发表于 2026-1-4 15:15:14

yyds。多谢分享

任佳湍 发表于 2026-1-17 10:14:44

不错,里面软件多更新就更好了

荪俗 发表于 2026-1-18 00:24:23

不错,里面软件多更新就更好了

语樊偿 发表于 2026-1-18 02:07:27

yyds。多谢分享

官厌 发表于 2026-1-18 22:44:47

感谢分享

膏包 发表于 2026-1-19 11:37:19

感谢分享,学习下。

郏琼芳 发表于 2026-1-19 23:44:07

鼓励转贴优秀软件安全工具和文档!

僭墙覆 发表于 2026-1-21 08:13:06

谢谢分享,辛苦了

芮梦月 发表于 2026-1-21 18:10:03

用心讨论,共获提升!

劳欣笑 发表于 2026-1-24 08:45:26

感谢分享,下载保存了,貌似很强大
页: [1] 2
查看完整版本: chisel学习笔记——基本类型