view venus/src/usb/usb_domain_buf.v @ 96:ae6951a70d2b

U403: change from 74LVC2G125 to 74LVC2G126 The two parts have the same footprint and pinout, but '126 3-state buffers have active-high OE inputs instead of active-low. The change is purely for software benefit: having GPIO 11/12 set to 1 correspond to that current contribution being enabled will be much more intuitive for developers and tinkerers.
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 09 May 2022 19:27:11 +0000
parents 4722b265cb8c
children
line wrap: on
line source

/*
 * 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