错误infor:位于' chisel3.core.Bool@32'必须是硬件,而不是裸凿类型

时间:2018-03-15 08:16:21

标签: chisel

我的队列代码如下:

class LocalQueue[T <: Data](gen: T, val entries: Int,
                       pipe: Boolean = false,
                       flow: Boolean = false) extends Module

{

  /** The I/O for this queue */



  val io = new QueueIO(gen, entries)

  /....../

  val init_done        = RegInit(0.U(1.W))

  val tick_cnt         = RegInit(0.U(1.W))


  val do_enq = io.enq.valid && io.enq.ready && (1.U === init_done) && (0.U === tick_cnt)

  val do_deq = io.deq.ready && io.deq.valid && (1.U === init_done) && (1.U === tick_cnt)

当我编译时,得到以下错误日志:

  

[error](run-main-3a)chisel3.core.Binding $ ExpectedHardwareException:   位于&#39; chisel3.core.Bool@32'必须是硬件,而不是裸机   凿子类型chisel3.core.Binding $ ExpectedHardwareException:bits   在&#39; chisel3.core.Bool@32'上进行操作;必须是硬件,而不是裸凿   型

错误似乎是由以下陈述引起的:

  val do_enq = io.enq.valid && io.enq.ready && (1.U === init_done) && (0.U === tick_cnt)

  val do_deq = io.deq.ready && io.deq.valid && (1.U === init_done) && (1.U === tick_cnt)

1 个答案:

答案 0 :(得分:0)

你仍然需要用Que包装QueueIO,即

val io = IO(new QueueIO(gen, entries))

虽然您可以在没有IO包装器的情况下找到示例,但是使用Chisel 2 向后兼容模式。