首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
Chisel3 - 模块
】的更多相关文章
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 - model - 子模块,顶层模块
https://mp.weixin.qq.com/s/3uUIHW8DmisYARYmNzUZeg 介绍如何构建由模块组成的硬件模型. 1. 子模块 一个模块可以有一个或多个子模块,创建子模块时,需要使用Module(...)包裹: Module()实现如下: bc是一个call-by-name参数,在第一次引用时调用. 1) 在调用bc创建模块之前,先保存Builder的状态. a. Module()只能用于包裹一个模块的实例化操作: Build…
Chisel3 - model - Builder
https://mp.weixin.qq.com/s/THqyhoLbbuXXAtdQXRQDdA 介绍构建硬件模型的Builder. 1. DynamicContext 动态上下文,供构建硬件模型时,存放上下文状态信息. 2. Builder Builder使用DynamicContext存储数据.供其他类获取和存储信息使用. 3. ClockAndReset 这里以clock和reset为例. 1) DynamicContext中,定义了c…
Chisel3 - model - IO ports
https://mp.weixin.qq.com/s/fgCvIFt0RdEajhJVSy125w 介绍模块的输入输出端口的定义与管理. 1. _ports 1) 模块的输入输出端口,在BaseModule中管理: 2) 添加输入输出端口 使用IO(...)添加: 3) 使用 所有的端口一起使用: 2. 用户自定义模块端口 用户通过实现Module类中的抽象方法io,实现一个Bundle的匿名子类,于其中定义各个输入输出端口. …
Chisel3 - model - when
https://mp.weixin.qq.com/s/YGTXky4wff7LXUphUxISQg 介绍创建模块判断逻辑的when命令. 1. when/elsewhen/otherwise 伴生对象when中的工厂方法,会创建一个WhenContext: WhenContext含有方法elsewhen/otherwise: 他们又各自创建一个新的WhenContext. WhenContext的构造方法在类体中: when(cond){...} a…
Chisel3 - bind - Wire, Reg, MemPort
https://mp.weixin.qq.com/s/AxYlRtAXjd55eoGX5l1W-A 模块(Module)从输入端口(input ports)接收输入,经过内部实现的转换逻辑,从输出端口(output ports)输出. 在Chisel3中,模块的输入输出端口,通过IO(new Bundle{...})的形式定义,其中定义了各种类型的数据变量.在实现模块内部转换逻辑的时候,也需要使用到各种类型的数据变量.这些变量如何加入到hardware graph中呢?就是通过WireB…
Chisel3 - Tutorial - ShiftRegister
https://mp.weixin.qq.com/s/LKiXUgSnt3DzgFLa9zLCmQ 简单的寄存器在时钟的驱动下,逐个往下传值. 参考链接: https://github.com/ucb-bar/chisel-tutorial/blob/release/src/main/scala/examples/ShiftRegister.scala 1. 引入Chisel3 2. 继承自Module类 3. 定义输入输出接口 创建各项输入输出…
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 - 使用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 - util - Queue
https://mp.weixin.qq.com/s/vlyOIsQxR6bCqDDMtRQLLg 实现队列模块,先入先出(FIFO). 参考链接: https://github.com/freechipsproject/chisel3/blob/master/src/main/scala/chisel3/util/Decoupled.scala 1. QueueIO 队列(Queue )输入输出接口,entries为队列的容量.这些接口的方向都是从队列的角度来定义的.…