diff venus/src/usb/usb_domain_buf.v @ 24:4722b265cb8c

Venus src: USB domain captured
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 20 Nov 2021 19:44:59 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/venus/src/usb/usb_domain_buf.v	Sat Nov 20 19:44:59 2021 +0000
@@ -0,0 +1,46 @@
+/*
+ * This module encapsulates the 74LVC541A buffer in the USB domain.
+ */
+
+module usb_domain_buf  (GND, P_3V3,
+			Int_TxD, Int_RxD, Int_RTS, Int_CTS,
+			Int_DTR, Int_DCD, Int_RI, Int_TxD2, Int_RxD2,
+			Host_TxD, Host_RxD, Host_RTS, Host_CTS,
+			Host_DTR, Host_DCD, Host_RI, Host_TxD2, Host_RxD2);
+
+input GND, P_3V3;
+
+input Int_TxD, Int_RTS, Int_DTR, Int_TxD2;
+output Int_RxD, Int_CTS, Int_DCD, Int_RI, Int_RxD2;
+
+output Host_TxD, Host_RTS, Host_DTR, Host_TxD2;
+input Host_RxD, Host_CTS, Host_DCD, Host_RI, Host_RxD2;
+
+/* buffer common part */
+
+x541_common common (.Vcc(P_3V3),
+		    .GND(GND),
+		    .nOE1(GND),
+		    .nOE2(GND)
+	);
+
+capacitor bypass_cap (P_3V3, GND);
+
+/* input buffers */
+
+buffer_slot_basic buf_RxD  (.A(Host_RxD),  .Y(Int_RxD));
+buffer_slot_basic buf_CTS  (.A(Host_CTS),  .Y(Int_CTS));
+buffer_slot_basic buf_DCD  (.A(Host_DCD),  .Y(Int_DCD));
+buffer_slot_basic buf_RI   (.A(Host_RI),   .Y(Int_RI));
+buffer_slot_basic buf_RxD2 (.A(Host_RxD2), .Y(Int_RxD2));
+
+/* output buffers */
+
+buffer_slot_basic buf_TxD  (.A(Int_TxD),  .Y(Host_TxD));
+buffer_slot_basic buf_DTR  (.A(Int_DTR),  .Y(Host_DTR));
+buffer_slot_basic buf_TxD2 (.A(Int_TxD2), .Y(Host_TxD2));
+
+/* RTS direct pass-thru: use an 0402 0R jumper */
+resistor jmp_RTS (Int_RTS, Host_RTS);
+
+endmodule