用凿子实现高阻抗'Z'输入输出属性
Implement high impedance 'Z' input output property with chisel
我的电路板(apf27) has a processor (i.MX27) and a FPGA (Spartan3A) that communicate through a "memory bus" 在 proc 数据表中称为 WEIM。
我想将数据从 FPGA 传输到处理器。我设法用一个简单的 Output() IO 做到了:
val io = IO(new Bundle {
...
val data = Output(UInt(16.W))
val oen = Input(Bool())
...
我可以从处理器读取数据,但是 "lock" 总线。我必须发布它,因为它上面还有 nand 组件。
要释放它,我可以使用信号 oen(输出使能),但我不能在 Verilog/VHDL 中分配高阻抗值,如 'Z'到 'release' 它。
在 Chisel3 中正确的做法是什么?我在 chisel3 中看到了一个叫做“AnalogRawModule”的东西 github 是要用的东西吗?
模拟正是您要找的。允许 Chisel 不真正支持的双向电线和其他信号仍然通过您的 Chisel 设计进行连接基本上是一种逃避。
这是一个例子:
import chisel3._
import chisel3.experimental.Analog
class AnalogBlackBox extends BlackBox {
val io = IO(new Bundle {
val bus = Analog(32.W)
})
}
class AnalogModule extends Module {
val io = IO(new Bundle {
val bus = Analog(32.W)
})
val inst = Module(new AnalogBlackBox)
inst.io.bus <> io.bus
}
object AnalogDriver extends App {
chisel3.Driver.execute(args, () => new AnalogModule)
}
您不能在 Chisel 中驱动模拟类型的电线,不幸的是您不能进行串联或位 select(尽管我们应该支持),但您至少可以连接信号。如果您需要进行任何类型的 selection 或连接,则需要在 BlackBox 中进行。
我的电路板(apf27) has a processor (i.MX27) and a FPGA (Spartan3A) that communicate through a "memory bus" 在 proc 数据表中称为 WEIM。
我想将数据从 FPGA 传输到处理器。我设法用一个简单的 Output() IO 做到了:
val io = IO(new Bundle {
...
val data = Output(UInt(16.W))
val oen = Input(Bool())
...
我可以从处理器读取数据,但是 "lock" 总线。我必须发布它,因为它上面还有 nand 组件。
要释放它,我可以使用信号 oen(输出使能),但我不能在 Verilog/VHDL 中分配高阻抗值,如 'Z'到 'release' 它。
在 Chisel3 中正确的做法是什么?我在 chisel3 中看到了一个叫做“AnalogRawModule”的东西 github 是要用的东西吗?
模拟正是您要找的。允许 Chisel 不真正支持的双向电线和其他信号仍然通过您的 Chisel 设计进行连接基本上是一种逃避。
这是一个例子:
import chisel3._
import chisel3.experimental.Analog
class AnalogBlackBox extends BlackBox {
val io = IO(new Bundle {
val bus = Analog(32.W)
})
}
class AnalogModule extends Module {
val io = IO(new Bundle {
val bus = Analog(32.W)
})
val inst = Module(new AnalogBlackBox)
inst.io.bus <> io.bus
}
object AnalogDriver extends App {
chisel3.Driver.execute(args, () => new AnalogModule)
}
您不能在 Chisel 中驱动模拟类型的电线,不幸的是您不能进行串联或位 select(尽管我们应该支持),但您至少可以连接信号。如果您需要进行任何类型的 selection 或连接,则需要在 BlackBox 中进行。