scala - 在凿子中动态创建模块,同时将动态参数传递给这些模块
问题描述
考虑这个例子
for(x <- 0 until numberOfHWBlocks){
val hw_block = Module(new HW_BLOCK(x)(p :Parameters)).io
}
每次这都会根据 x 是什么创建一个新模块。我想要的是我不想每次都将 val hw_block 声明为 for 循环内的单独实体,因为该值会覆盖先前的值。我想要将这些模块的序列存储在单个 val 中。像这样的东西
for( x <- 0 until numberOfHWBlocks){
hw_block(x) = Module(new HW_BLOCK(x)(p :Parameters)).io
}
其中 hw_block 被定义为 for 循环外的 Seq
val hw_block = Seq.fill(numberOfHWBlocks){//What do I have to instantiate here??//}
解决方案
你考虑过制表吗
val hw_block = Seq.tablulate(numberOfHardHWBlocks) { x =>
Module(new HW_BLOCK(x)(p :Parameters)).io
}
tabulate
类似于文件,但使您能够区分正在实例化的元素
注意:我认为您创建模块的语法略有错误。我认为应该是Module(new HW_BLOCK(...)).io
,这会创建模块然后返回 io 包以在 HW_Block 中参考
推荐阅读
- python - 如何实现伪代码交换 A[i] 和 A[j]?
- c# - 无法翻译 LINQ 表达式 - Nullable Id 字段出错
- android - 实现平台特定代码时 Flutter 中缺少插件异常
- javascript - 如何使用 Google 跟踪代码管理器的自定义 Javascript 变量对具有多个 pageAttributes 的帖子进行分类?
- python - 按一列分组并计算 Pandas 中的多个类别
- python - 使用 2 个不同长度的数组 Numpy Python
- facebook - 虚幻引擎 4.22 - 无法应用 Facebook SDK 9.0.1
- linux - 更新 pip3 后出现语法错误
- php - 不知何故,API 没有通过 cURL 发送我的参数,我怎样才能让它工作?
- sql - 如何在 SQL 中使用 Mode 删除重复值