https://mp.weixin.qq.com/s/36jreQGpDLCCNfmUwI34lA
模块接口有三种方向:Input/Output/Inout。Chisel在声明模块接口的时候,也需要提供这些信息。
参考链接:
1. SpeicifiedDirection
声明模块接口方向时,使用的方向类型:
其中:
a. 带下划线的为对象;
2. ActualDirection
使用方法目前不明。
其中:
a. 带下划线的为对象;
b. 不带箭头的联系为关联关系;
3. Input
定义了apply方法的Object,用法如函数调用。这三个函数调用,会为传入参数(Data子类型)的方向性赋值:
使用方法如:
val io = IO(new Bundle {
val in = Input(UInt(1.W))
val out = Output(UInt(1.W))
})
再如:
val io = IO(new Bundle {
val isWr = Input(Bool())
val wrAddr = Input(UInt(8.W))
val wrData = Input(UInt(32.W))
val boot = Input(Bool())
val valid = Output(Bool())
val out = Output(UInt(32.W))
})
4. Output
参考Input。
5. Flipped
参考Input。
6. Inout
Chisel中并无Inout类型,需使用Analog类型进行模拟。