Chisel3:按位求反运算符

时间:2017-07-18 10:19:45

标签: chisel

对于chisel2和chisel3之间的按位否定运算符,似乎存在错误或未记录的更改。

Chisel3代码无法正常工作

import chisel3._

class bitwise_neg extends Module {
    val io = new Bundle {
        val in   = Input(UInt(4.W))
        val out  = Output(UInt(4.W))
    }
    io.out := ~io.in
}

为包含“〜”的行生成错误消息:

type mismatch; found : ()chisel3.core.Bits required: chisel3.core.Data

Chisel2工作​​代码

import Chisel._

class bitwise_neg extends Module {
    val io = new Bundle {
        val in        = UInt(INPUT, 4)
        val out       = UInt(OUTPUT, 4)
    }

    io.out := ~io.in
}

有关新Chisel3语法的任何想法,或者这是一个错误吗?

1 个答案:

答案 0 :(得分:0)

问题与~无关,即使您删除了~,也会收到同样的错误。正如jkoenig所说, chisel3要求你将io包裹包装在IO()中,如下所示:

class bitwise_neg extends Module {
  val io = IO(new Bundle {
    val in   = Input(UInt(4.W))
    val out  = Output(UInt(4.W))
  })
  io.out := ~io.in
}

如果你想(但我不推荐)你可以使用chisel3中的兼容层和大写凿import import Chisel._

使用chisel2表示法
import Chisel._

class bitwise_neg extends Module {
  val io = new Bundle {
    val in   = UInt(INPUT, 4.W)
    val out  = UInt(OUTPUT, 4.W)
  }
  io.out := io.in
}