首页 技术 正文
技术 2022年11月18日
0 收藏 505 点赞 3,760 浏览 981 个字

https://mp.weixin.qq.com/s/3uUIHW8DmisYARYmNzUZeg 介绍如何构建由模块组成的硬件模型。 1. 子模块 一个模块可以有一个或多个子模块,创建子模块时,需要使用Module(…)包裹:​Chisel3 – model – 子模块,顶层模块​ Module()实现如下:​Chisel3 – model – 子模块,顶层模块​ bc是一个call-by-name参数,在第一次引用时调用。 1) 在调用bc创建模块之前,先保存Builder的状态。​Chisel3 – model – 子模块,顶层模块​a. Module()只能用于包裹一个模块的实例化操作:​Chisel3 – model – 子模块,顶层模块​ Builder.readyForModuleConstr在实例化模块之前被置为false: ​Chisel3 – model – 子模块,顶层模块​ 这个要求模块的实例化必须在Module()以内。子模块在父模块中以Module()包裹实例化,顶层模块如何实例化呢?也需要以Module()包裹,后续再讲。 b. 记录当前Builder的状态信息,如当前的val parent = Builder.currentModule为将要实例化的模块的父模块:  ​Chisel3 – model – 子模块,顶层模块​ 2) 调用bc,创建子模块 子模块创建之初,会先要设置Builder的状态,如下注释中所言:​Chisel3 – model – 子模块,顶层模块​ 实际代码在BaseModule类体中:​Chisel3 – model – 子模块,顶层模块​ 3) 恢复Builder的状态​Chisel3 – model – 子模块,顶层模块​ 4) 把创建的模块,转换成为一个component​Chisel3 – model – 子模块,顶层模块​如果父模块不为空,则使用pushCommand把新创建的模块以DefInstance命令添加到硬件模型中。 2. generateComponent ​Chisel3 – model – 子模块,顶层模块​​Chisel3 – model – 子模块,顶层模块​a. 处理各模块名字;b. 定义ModuleIO;c. 将模块输入输出端口转换为component所需的Port;d. 定义component:val component = DefModule(this, name, firrtlPorts, invalidateCommands ++ getCommands)  3. 顶层模块 顶层模块也需要使用Module()包裹着创建。 如顶层模块Adder4的创建。其创建函数被传给chisel3.Driver.execute方法:​Chisel3 – model – 子模块,顶层模块​ ​Chisel3 – model – 子模块,顶层模块​ ​Chisel3 – model – 子模块,顶层模块​ ​Chisel3 – model – 子模块,顶层模块​可以看到,这里调用gen()的时候,也包裹在Module()之中。 只是这里的Module(gen())也是一个call-by-name参数,并不是直接调用:​Chisel3 – model – 子模块,顶层模块​这里的Builder即为之前多次提到的Builder。build方法返回顶层模块Circuit。  

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,082
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,557
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,406
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,179
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,815
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,898