You're reading an old version of this documentation.
For the latest stable release version, please have a look at master.

Io bundle

Introduction

SpinalHDL will check that in each io bundle there only in/out/inout signals.

Example

The following code :

class TopLevel extends Component {
  val io = new Bundle {
    val a = UInt(8 bits)
  }
}

will throw :

IO BUNDLE ERROR : A direction less (toplevel/io_a :  UInt[8 bits]) signal was defined into toplevel component's io bundle
  ***
  Source file location of the toplevel/io_a definition via the stack trace
  ***

A fix could be :

class TopLevel extends Component {
  val io = new Bundle {
    val a = in UInt(8 bits)
  }
}

But if for meta hardware description reasons you realy want io.a to be direction less, you can do :

class TopLevel extends Component {
  val io = new Bundle {
    val a = UInt(8 bits)
  }
  a.allowDirectionLessIo
}