如何制作模块向量?

2023-11-26

我想实例化一个一维元素数组,并且元素扩展模块。我该怎么做?如果我说我最好的猜测,那就是:

val elements = Vec( 64, new element )

我收到以下错误消息:

[error] /Users/mykland/work/chisel/array.scala:20: overloaded method value apply with alternatives:
[error]   [T <: Chisel.Data](n: Int, gen: => T)Chisel.Vec[T] <and>
[error]   [T <: Chisel.Data](elt0: T, elts: T*)Chisel.Vec[T] <and>
[error]   [T <: Chisel.Data](gen: => T, n: Int)Chisel.Vec[T]
[error]  cannot be applied to (Int, ascenium.element)
[error]     val elements    = Vec( 64, new element )
[error]                       ^

预先感谢您可以提供的任何帮助。


Edit:我添加了我认为生成模块向量的更好方法:

val my_args = Seq(1,2,3,4)
val exe_units = for (i <- 0 until num_units) yield
{
   val exe_unit = Module(new AluExeUnit(args = my_args(i)))
   // any wiring or other logic can go here
   exe_unit
}

请注意,此方法允许您以不同的方式单独定制每个单元,并返回 Chisel 模块的 Seq()。它还会生成外观更好的硬件。

但如果您确实需要能够动态索引到模块数组中,您可以像这样提取 IO 的 Vec() :

val exe_units_io = Vec(exe_units.map(_.io))

(这是旧的建议,我认为不太好)。

您可以按如下方式创建模块 Vec:

val vec_of_elements = Vec.fill(n) {Module(new MyElement(my_args)).io }

但请注意,Vec 实际上只能是电线或寄存器,因此我们实际上只是创建了 IO 电线的 Vec,它恰好创建了我们在此过程中关心的模块。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何制作模块向量? 的相关文章

  • 第十五章 Scala进阶——隐式转换与隐式参数

    考虑如下场景 假设编写了一个向量类MyVector 并且包含了一些向量的基本操作 因为向量可以与标量做数乘运算 所以需要一个计算数乘的方法 它应该接收一个类型为基本值类的参数 在向量对象myVec调用该方法时 可以写成诸如 myVec 2
  • chisel快速入门(三)

    前一篇见此 chisel快速入门 二 沧海一升的博客 CSDN博客简单介绍了chisel 使硬件开发者能快速上手chisel https blog csdn net qq 21842097 article details 121418806
  • DANA简介

    Dynamically Allocated Neural Network DANA Accelerator https github com bu icsg dana spinalHDL Doc https spinalhdl github
  • Chisel 教程翻译 之 第三章 构建过程和测试 of 《Digital Design with Chisel》

    3 Build Process and Testing 21 3 1 Building your Project with sbt 21 3 1 1 Source Organization 21 3 1 2 Running sbt 23 3
  • 吃透Chisel语言.15.Chisel模块详解(二)——Chisel模块嵌套和ALU实现

    Chisel模块详解 二 Chisel模块嵌套和ALU实现 稍微复杂点的硬件设计就需要用嵌套的模块层级来构建了 上一篇文章中实现的计数器其实就是个例子 计数器内部嵌套了一个寄存器 一个Mux和一个加法器 这一篇文章就仔细讲解模块之间是怎么连
  • chisel线网(wire)和寄存器(reg)详解(更新)

    主体内容摘自 https blog csdn net qq 34291505 article details 87714172 在Verilog里 模块内部主要有 线网 wire 和 四态变量 reg 两种硬件类型 它们用于描述数字电路的组
  • 吃透Chisel语言.10.Chisel项目构建、运行和测试(二)——Chisel中生成Verilog代码&Chisel开发流程

    Chisel项目构建 运行和测试 二 Chisel中生成Verilog代码 Chisel开发流程 上一篇文章我们提到了怎么用sbt构建Chisel项目并运行Chisel代码 但是毕竟还是在电脑上运行的 而在实践中 我们写的Chisel代码最
  • Chisel入门(三)------Chisel的基本语法2

    概述 继续介绍Chisel的基本语法 3 组件 3 1 Chisel中的组件是模块 Chisel中的每个模块都拓展了class 并包含了接口的io字段 接口是由封装为IO 的Bundle所定义的 Bundle包含的字段表示模块的输入输出端口
  • chisel黑盒(调用verilog书写的模块)

    因为Chisel的功能相对Verilog来说还不完善 所以设计人员在当前版本下无法实现的功能 就需要用Verilog来实现 在这种情况下 可以使用Chisel的BlackBox功能 它的作用就是向Chisel代码提供了用Verilog设计的
  • Chisel 手册(中文part1)

    Chisel 手册 part1 作者 Jonathan Bachrach Huy Vo Krste Asanovi EECS Department UC Berkeley 译者 智能物联 CSDN 1 简介 本文为Chisel手册 Cons
  • Chisel 语言学习 1 基本数据类型和操作

    Chisel 语言学习 1 基本数据类型和操作 系列文章主要用来记录学习Chisel和scala过程中遇到的难点或知识点 目录 用 TOC 来生成目录 Chisel 语言学习 1 基本数据类型和操作 目录 变量的声明与赋值 数据位操作 截取
  • Chisel基础之Scala

    前言 Scala is yet another programming language which supports common programming paradigms We chose to use it for several
  • Chisel(四)Scala语法 操作符

    学习更多相关知识 关注博主知乎账号 用户名Trustintruth https www zhihu com people suo yi xin 90 activities Scala追求的是纯粹的面向对象 不推荐不属于面向对象的基本类型及其
  • chisel开发环境搭建(intellij)

    chisel开发环境搭建 介绍 目录 1 相关概述 1 1 安装环境说明 1 2 参考资料 2 安装intellij 2 1 安装jdk1 8 2 2 安装intellij 2 3 申请学生免费授权 3 安装scala支持 4 安装chis
  • 详细介绍如何在linux中配置chisel环境

    一 安装java和scala 1 安装java 安装java sudo apt install openjdk 11 jre headless 安装javac sudo apt install openjdk 11 jdk headless
  • Chisel 手册 英文版

    Chisel Manual Jonathan Bachrach Huy Vo Krste Asanovi EECS Department UC Berkeley jrb huytbvo krste eecs berkeley edu Apr
  • Chisel实验笔记(一)

    最近在学习Risc v 其中伯克利大学开源了一款兼容Risc v指令集的处理器Rocket 而Rocket处理器是采用Chisel编写的 所以要学习Chisel Chisel的简单介绍如下 Chisel Constructing Hardw
  • 凿子3.功能模块Mux4

    我正在按照文档学习 Chisel在 Github 上 https github com ucb bar chisel3 wiki Short 20Users 20Guide 20to 20Chisel 到目前为止 一切都完美无缺 但我还是卡
  • 测试工具中的 Chisel 运行时错误

    This Chisel https chisel eecs berkeley edu 代码工作正常 chiselMainTest Array String backend c genHarness gt Module new Cache n
  • 如何生成异步复位verilog总是阻塞凿子

    Chisel 始终生成敏感度列表中仅包含时钟的块 always posedge clk begin end 是否可以将模块配置为使用异步重置并生成这样的始终块 always posedge clk or posedge reset begi

随机推荐

  • 修复了与 css 转换结合使用时附件背景图像在 chrome 中闪烁/消失的问题

    我目前正在做一个视差网站主题 背景图像需要固定地附加到某些 div 和 section 以避免 jquery 沉迷于一切 问题是在转换完成时 任何动画项目下方标签的背景图像都会消失 仅在 Google Chrome 上 补救 这是一个非常常
  • 使用 Ant 从命令行编译 NetBeans 项目

    我有一个 NetBeans 项目 想从命令行编译 StackOverflow 上还有许多其他关于如何执行此操作的问题 但它们解释了如何使用以下命令来编译项目javac src java 我没有更改 NetBeans 项目的构建设置 默认情况
  • 将 Oracle 10g CLOB 与 Grails 2.0.1 结合使用

    我正在开发一个使用 Oracle 10g 和 Grails v2 0 1 的项目 我尝试在 Domain 类中使用 CLOB 数据类型作为文本输入字段 但它似乎不起作用 我的第一次尝试是基于我读到的内容关于 GORM 这里 其中说要使用ty
  • Python:fork、pipe 和 exec

    我想在Python应用程序中执行一个程序 它将在后台运行 但最终会来到前台 GUI 用于与其交互 但控制是通过标准输入和标准输出上的控制台提供的 我希望能够使用我的应用程序的 GUI 来控制它 所以我的第一个想法是 Fork 在父级中 du
  • 禁用帐户选择器 FirebaseUI React

    我正在努力解决一些看起来小菜一碟的事情 但我仍然无法找到解决方案 我正在使用reactjs和reactjs实现firebase身份验证过程firebaseUI 网络反应 一切都很好 除了当我尝试使用电子邮件 密码登录时 它需要我帐户选择器
  • numpy loadtxt 单行/行作为列表

    我有一个数据文件 只有一行 例如 1 2 2 1 3 2 我使用numpy版本1 3 0 loadtxt来加载它 a b c loadtxt data dat usecols 0 1 2 unpack True 输出是一个浮点数而不是像数组
  • jQuery:获取数据属性

    在我的 html 中我有一个span元素 span class field This is a span 我想得到data fullText属性 我尝试了这两种方法 但它们不起作用 都返回undefined field hover func
  • Skimr - 似乎无法生成直方图

    遇到了这个看似新的软件包 skimr 它看起来很漂亮 并且正在尝试它 看起来我缺少一些软件包安装 Skim 工作正常 只是它不打印直方图 它应该打印数字变量 我只是尝试文档中给出的示例 链接到 skimr 文档 https github c
  • 从python脚本访问django数据库

    我正在尝试从常规 Python 脚本中访问我的 Django 数据库 到目前为止我所做的是 import os import django from django db import models os environ setdefault
  • MailComposer didFinishWith 结果在 Swift 3.0 中不起作用

    我将我的应用程序转换为 swift 3 0 并遇到问题MailComposeController 当我调用函数时 func mailComposeController controller MFMailComposeViewControll
  • 在 Google Apps 脚本中从服务器到客户端进行通信

    我正在尝试编写一个具有客户端和服务器端组件的 Google Apps 脚本 客户端组件显示进度条 客户端调用服务器端函数 异步调用 其进度必须显示在客户端进度栏中 现在 我想要的是能够根据服务器端功能的反馈来更新客户端进度条 这可能吗 由于
  • 获取容器的 docker run 命令

    我有一个我创建的容器 但我不记得确切的内容docker run我用来启动它的命令 有什么办法可以找回吗 这与查看 Docker 中运行 停止容器的完整命令我想知道的是生成容器的完整 docker 命令 而不是容器内的命令 您可以通过查看输出
  • Matplotlib 中的非线性第二轴

    我想知道如果没有任何解析公式 是否有一种方法可以在 Matplotlib 中添加第二个非线性 x 轴 或者简化是否有办法为原始 x 轴中的每个数字创建不同的标签 下图解释了我正在寻找的内容 不幸的是类似question之前已被问过但未得到答
  • 如何在Java中使用Collections.sort()?

    我得到了一个物体Recipe实现Comparable
  • 需要在每个 cron 作业之前设置 rvm 环境

    我大致按照这组说明的第一部分中概述的模式安装和配置 RVM http blog ninjahideout com posts a guide to a nginx passenger and rvm server 基本上 这意味着没有预构建
  • 带有单击事件处理程序的 WPF 命令

    当我使用Command in a Button控制加入的事件处理程序Click事件永远不会引发 我怎样才能使用Command并处理Click事件处理程序 您可以将 ICommand 附加到另一个属性并从 Click 处理程序中执行它
  • Chrome DevTools - 性能选项卡摘要

    在 Chrome DevTools 的 性能 选项卡上 摘要 面板显示多个活动类别的计时 加载 脚本编写 渲染 绘画 系统 空闲 我似乎无法在 DevTools 文档中找到每个类别所代表的内容的简明描述 我觉得我必须忽略一些显而易见的事情
  • 如何将两个div并排放置? [复制]

    这个问题在这里已经有答案了 考虑以下代码 wrapper width 500px border 1px solid black first width 300px border 1px solid red second border 1px
  • 如何将 package.json 数组传递给 grunt.js

    有没有办法将数组从 package json 文件传递 给 grunt js 我尝试了几种不同的方法 但似乎都不起作用 我目前有 global module false module exports function grunt Proje
  • 如何制作模块向量?

    我想实例化一个一维元素数组 并且元素扩展模块 我该怎么做 如果我说我最好的猜测 那就是 val elements Vec 64 new element 我收到以下错误消息 error Users mykland work chisel ar