以下内容依据2015-7-10版的Chisel 2.2 Tutorial整理
端口就是硬件单元对外的接口,需要指明方向(输入还是输出)。一个端口声明的例子如下:
class Decoupled extends Bundle{
val ready = Bool(OUTPUT)
val data = UInt(INPUT, 32)
val valid = Bool(INPUT)
}
INPUT、OUTPUT指定方向,后面指出宽度,对于Bool类型,其宽度就是1,所以不需要明确指出。除了上述方式外,还可以如下定义:
class ScalaIO extends Bundle{
val in = new MyFloat().asInput
val scala = new MyFloat().asInput
val out = new MyFloat().asOutput
}
此处的方法asInput、asOutput为MyFloat中所有的元素指定方向。