首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
Chisel3 - 使用chisel-iotesters进行验证
】的更多相关文章
Chisel3 - 使用chisel-iotesters进行验证
https://mp.weixin.qq.com/s/KqyklKrPLtPm38sftMYlHA 1. 使用Maven获取库 Chisel相关的库基本上都可以使用Maven获取到(https://mvnrepository.com/artifact/edu.berkeley.cs): 其中Chisel Iotesters是用来进行验证的库,可以看到各个版本及其发布日期: 随便打开一个版本: 可以看到该版本的基本信息,点击jar可以直接下载库的jar包.下面…
Chisel3 - Chisel vs. Scala
https://mp.weixin.qq.com/s/mTmXXBzSizgiigFYVQXKpw 介绍Chisel与Scala的不同与关联. 一. 层次高低 Chisel是使用Scala语言编写的具体代码.从抽象层次上看,Scala更高. 1. 语言与代码 Chisel是使用Scala语言编写的代码. 2. 语言与代码库 Chisel是使用Scala语言编写的代码库. 二. 范围大小 3. 通用语言与领域专用语言 Scala是一门通用语…
Chisel3 - model - Hardware Model
https://mp.weixin.qq.com/s/x6j7LZg7i7i_KcNEA8YCQw Chisel作为领域专用语言(DSL),用于构建硬件模型.待硬件模型建立后,再基于模型进行仿真.验证,以及转换.硬件模型可以转换为firrtl,也可以转换为verilog. 接下来介绍Chisel如何构建硬件模型. 1. Command Command定义用于构建硬件模型的命令. 命令可以分为两类:用于定义数据类型的命令,用于定义逻辑的命令. 用于定义数据的命令,…
Chisel3 - bind - Binding
https://mp.weixin.qq.com/s/2318e6VJ4wFGpWwBOmTikA Chisel数据类型(Data)与Module的绑定关系,根据Data的使用方式不同,而有多种绑定类型. 参考链接: https://github.com/freechipsproject/chisel3/blob/master/chiselFrontend/src/main/scala/chisel3/core/Binding.scala 1. Binding 类型继承图如下:…
Chisel3 - util - Valid
https://mp.weixin.qq.com/s/L5eAwv--WzZdr-CfW2-XNA Chisel提供的Valid接口.如果valid为置1,则表明输出的bits有效:反之,则输出无效. 参考链接: https://github.com/freechipsproject/chisel3/blob/master/src/main/scala/chisel3/util/Valid.scala 1. Valid是一组用户自定义的输入输出接口 类的声明如下: cl…
Chisel3 - Tutorial - FullAdder
https://mp.weixin.qq.com/s/Aye-SrUUuIP6_o67Rlt5OQ 全加器 逻辑图如下: 参考链接: https://github.com/ucb-bar/chisel-tutorial/blob/release/src/main/scala/examples/FullAdder.scala 1. 引入Chisel3 2. 继承自Module类 3. 定义输入输出接口 创建输入和输出接口,包括: a.…
Chisel3 - 模块
https://mp.weixin.qq.com/s/2vjM-gcauvHnn6KJzlOm4g Chisel的模块和Verilog的模块很相似,都用来定义模块结构(hierarchical structure). Chisel的模块定义,包含三部分内容: a. 继承自Module类: b. 定义模块输入输出接口(继承自Bundle): c. 把内部各部分与输入输出接口连接起来: 参考链接: https://github.com/freechipsproject/chisel3/w…
Chisel3 - 运算符和位宽推断
https://mp.weixin.qq.com/s/rI-CJM6GyI6EUHPZ3uYiFg 如同Verilog中的众多运算符,Chisel也针对自身的数据类型,提供了很多运算符. Chisel语言内嵌于Scala.在Scala中,基本上所有的运算符都被当做一般的字符,可以作为命名符号(identifier)的一部分.并且Scala支持省略函数调用时,括在参数两边的括号.所以Scala中定义运算符重载很简单,可以很大的提高代码的可读性. 1. 运算符 参考链接: htt…
Chisel3 - 接口方向(Direction)
https://mp.weixin.qq.com/s/36jreQGpDLCCNfmUwI34lA 模块接口有三种方向:Input/Output/Inout.Chisel在声明模块接口的时候,也需要提供这些信息. 参考链接: https://github.com/freechipsproject/chisel3/wiki/Ports 1. SpeicifiedDirection 声明模块接口方向时,使用的方向类型: 其中: a. 带下划线的为对象: 2. Actua…
Chisel3 - 基本数据类型
https://mp.weixin.qq.com/s/bSrM-wLRn7O_75xYKeoaEQ Chisel中的基本数据类型,不是Verilog中的Wire和Reg.Wire和Register只是数据的容器,而非数据本身.所以Chisel中的数据类型抽象层次更高一些,更关注数据的行为和组织形式的异同. 基本数据类型的类图如下: 其中: 1. 实线箭头为继承父类(extends): 2. 虚线箭头为实现接口(with): 3. 倾斜字体的类为抽象类(abstract): 4. 标…