내 AC701 kit (artix7)에 간단한 끌 3 깜박이는 디자인을 쓰고 싶습니다. 하지만 그렇게하려면 클럭 입력 차동 버퍼를 인스턴스화해야합니다.chisel3 블랙 박스로 자일링스 차동 클록 버퍼를 인스턴스화하는 방법은 무엇입니까?
IBUFDS #(
.DIFF_TERM("TRUE"),
.IOSTANDARD("DEFAULT")
) IBUFDS1_inst (
.O(clock1), // Clock buffer
.I(clock1_p), // Diff_p clock
.IB(clock1_n) // Diff_n clock
);
내가 그것을 인스턴스화«블랙»클래스를 사용할 필요가 chisel documentation에서 읽을 : 자일링스는 그렇게하려면 다음을 Verilog 템플릿을 제공합니다. 그러나 나는 그것을 할 수 없다. 나는이 시도 :
class IbufdsParam extends VerilogParameters {
val DIFF_TERM = "TRUE"
val IOSTANDARD = "DEFAULT"
}
class IBUFDS extends BlackBox {
val params = new IbufdsParam()
val io = IO(new Bundle {
val O = Output(Bool())
val I = Input(Bool())
val IB = Input(Bool())})
io.O.setName("O")
io.I.setName("I")
io.IB.setName("IB")
/* For simulation */
io.O := io.I & ~io.IB
}
을하지만 그 chisel3이 VerilogParameters 클래스 모르는 것 같다 :
[error] blinking_led/blink.scala:5: not found: type VerilogParameters
[error] class IbufdsParam extends VerilogParameters {
그리고«말씀이 모듈 클럭을 사용하고 재설정하지 않는 방법을 모른다 ».
일단이 블랙 박스가 올바르게 선언되면 깜박이는 모듈의 메인 클럭에 출력 클럭 ('O')을 연결해야합니다. 어떻게하는지 잘 모르겠습니다. 나는 그것에 대해 생각하고있다 :
class Blink extends Module {
val io = IO(new Bundle {
val clock_p = Input(Bool())
val clock_n = Input(Bool())
val led = Output(Bool())
})
val ibufds = IBUFDS()
Driver.implicitClock := ibufds.io.O
ibufds.io.I := io.clock_p
ibufds.io.IB:= io.clock_n
...
}
그러나 나는 그것이 옳은 길이 아닌가 생각한다. 그렇지 않습니까?
답장을 보내 주셔서 감사합니다. 우리는 Verilog 시뮬레이션을 위해 Verilog 블랙 박스 구현을 제공 할 수 있다고 말합니다. 동일한 파일에 제공 할 수 있습니까? 그것을하는 방법을 말할 수 있습니까? – FabienM
괜찮습니다! Verilog는 빌드 프로세스의 후반부에 포함 된 별도의 파일에 있어야합니다 (예 : * Chisel + Firrtl이 Verilog를 생성 한 후 *.). 기본적으로 Verilog 시뮬레이션 단계에서는 Chisel에서 생성 된 Verilog와 함께 Blackbox 구현을 포함하는 Verilog 파일을 포함하면됩니다. – jkoenig