# HG changeset patch # User Mychaela Falconia # Date 1637430498 0 # Node ID 9f70dc110ad7152e6d16c3f2c77849622febb17a # Parent 22ac331aa0f8a2819d961d1db71af15881c930e8 venus/src/usb: building blocks from DUART28 diff -r 22ac331aa0f8 -r 9f70dc110ad7 venus/src/usb/FT2232D_block.v --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/venus/src/usb/FT2232D_block.v Sat Nov 20 17:48:18 2021 +0000 @@ -0,0 +1,90 @@ +/* + * This module encapsulates the FT2232D chip and its immediate accessories: + * the oscillator crystal, the EEPROM, the AVCC filter and the cap on 3V3OUT. + */ + +module FT2232D_block (GND, VCC, VCCIOA, VCCIOB, + USBDP, USBDM, RESET, RSTOUT, PWREN, + ADBUS, ACBUS, SI_WUA, BDBUS, BCBUS, SI_WUB); + +input GND, VCC, VCCIOA, VCCIOB; + +inout USBDP, USBDM; + +input RESET; +output RSTOUT, PWREN; + +inout [7:0] ADBUS, BDBUS; +inout [3:0] ACBUS, BCBUS; +input SI_WUA, SI_WUB; + +/* FT2232D pins handled within this block */ + +wire EECS, EESK, EEDATA; +wire XTIN, XTOUT; +wire AVCC, FTDI_3V3; + +/* instantiate the FT2232D */ + +FT2232D_chip FT2232D (.GND(GND), + .AGND(GND), + .VCC(VCC), + .AVCC(AVCC), + .VCCIOA(VCCIOA), + .VCCIOB(VCCIOB), + .OUT_3V3(FTDI_3V3), + .USBDP(USBDP), + .USBDM(USBDM), + .EECS(EECS), + .EESK(EESK), + .EEDATA(EEDATA), + .RESET(RESET), + .RSTOUT(RSTOUT), + .TEST(GND), + .PWREN(PWREN), + .XTIN(XTIN), + .XTOUT(XTOUT), + .ADBUS(ADBUS), + .ACBUS(ACBUS), + .SI_WUA(SI_WUA), + .BDBUS(BDBUS), + .BCBUS(BCBUS), + .SI_WUB(SI_WUB) + ); + +/* VCCIO bypass caps */ + +capacitor VCCIOA_bypass_cap (VCCIOA, GND); +capacitor VCCIOB_bypass_cap (VCCIOB, GND); + +/* AVCC filter */ + +resistor AVCC_filter_R (VCC, AVCC); +capacitor AVCC_cap (AVCC, GND); + +/* 3V3OUT */ + +capacitor FTDI_3V3_cap (FTDI_3V3, GND); + +/* crystal oscillator */ + +xtal_2pin_pkg xtal (XTIN, XTOUT); +capacitor XTIN_cap (XTIN, GND); +capacitor XTOUT_cap (XTOUT, GND); + +/* serial EEPROM */ + +wire EEPROM_DOUT; + +eeprom_93Cx6_16bit eeprom (.GND(GND), + .VCC(VCC), + .CS(EECS), + .SK(EESK), + .DIN(EEDATA), + .DOUT(EEPROM_DOUT) + ); + +resistor DOUT_series_R (EEPROM_DOUT, EEDATA); +resistor DOUT_pullup_R (EEPROM_DOUT, VCC); + +endmodule diff -r 22ac331aa0f8 -r 9f70dc110ad7 venus/src/usb/FT2232D_chip.v --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/venus/src/usb/FT2232D_chip.v Sat Nov 20 17:48:18 2021 +0000 @@ -0,0 +1,78 @@ +/* + * This module encapsulates the FT2232D chip and its pinout. + */ + +module FT2232D_chip (GND, AGND, VCC, AVCC, VCCIOA, VCCIOB, OUT_3V3, + USBDP, USBDM, EECS, EESK, EEDATA, RESET, RSTOUT, TEST, PWREN, + XTIN, XTOUT, ADBUS, ACBUS, SI_WUA, BDBUS, BCBUS, SI_WUB); + +input GND, AGND, VCC, AVCC, VCCIOA, VCCIOB; +output OUT_3V3; + +inout USBDP, USBDM; +output EECS, EESK; +inout EEDATA; + +input RESET, TEST; +output RSTOUT, PWREN; + +input XTIN; +output XTOUT; + +inout [7:0] ADBUS, BDBUS; +inout [3:0] ACBUS, BCBUS; +input SI_WUA, SI_WUB; + +/* instantiate the package; the mapping of signals to pins is defined here */ + +pkg_LQFP48 pkg (.pin_1(EESK), + .pin_2(EEDATA), + .pin_3(VCC), + .pin_4(RESET), + .pin_5(RSTOUT), + .pin_6(OUT_3V3), + .pin_7(USBDP), + .pin_8(USBDM), + .pin_9(GND), + .pin_10(SI_WUA), + .pin_11(ACBUS[3]), + .pin_12(ACBUS[2]), + .pin_13(ACBUS[1]), + .pin_14(VCCIOA), + .pin_15(ACBUS[0]), + .pin_16(ADBUS[7]), + .pin_17(ADBUS[6]), + .pin_18(GND), + .pin_19(ADBUS[5]), + .pin_20(ADBUS[4]), + .pin_21(ADBUS[3]), + .pin_22(ADBUS[2]), + .pin_23(ADBUS[1]), + .pin_24(ADBUS[0]), + .pin_25(GND), + .pin_26(SI_WUB), + .pin_27(BCBUS[3]), + .pin_28(BCBUS[2]), + .pin_29(BCBUS[1]), + .pin_30(BCBUS[0]), + .pin_31(VCCIOB), + .pin_32(BDBUS[7]), + .pin_33(BDBUS[6]), + .pin_34(GND), + .pin_35(BDBUS[5]), + .pin_36(BDBUS[4]), + .pin_37(BDBUS[3]), + .pin_38(BDBUS[2]), + .pin_39(BDBUS[1]), + .pin_40(BDBUS[0]), + .pin_41(PWREN), + .pin_42(VCC), + .pin_43(XTIN), + .pin_44(XTOUT), + .pin_45(AGND), + .pin_46(AVCC), + .pin_47(TEST), + .pin_48(EECS) + ); + +endmodule diff -r 22ac331aa0f8 -r 9f70dc110ad7 venus/src/usb/eeprom_93Cx6_16bit.v --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/venus/src/usb/eeprom_93Cx6_16bit.v Sat Nov 20 17:48:18 2021 +0000 @@ -0,0 +1,19 @@ +module eeprom_93Cx6_16bit (GND, VCC, CS, SK, DIN, DOUT); + +input GND, VCC; +input CS, SK, DIN; +output DOUT; + +/* instantiate the package; the mapping of signals to pins is defined here */ + +pkg_IC_8pin pkg (.pin_1(CS), + .pin_2(SK), + .pin_3(DIN), + .pin_4(DOUT), + .pin_5(GND), + .pin_6(VCC), /* ORG input on some 93Cx6 variants */ + .pin_7(), /* no connect */ + .pin_8(VCC) + ); + +endmodule diff -r 22ac331aa0f8 -r 9f70dc110ad7 venus/src/usb/regulator_ic.v --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/venus/src/usb/regulator_ic.v Sat Nov 20 17:48:18 2021 +0000 @@ -0,0 +1,13 @@ +module regulator_ic (IN, OUT, GND, EN); + +input IN, GND, EN; +output OUT; + +pkg_IC_5pin pkg (.pin_1(IN), + .pin_2(GND), + .pin_3(EN), + .pin_4(), /* no connect */ + .pin_5(OUT) + ); + +endmodule diff -r 22ac331aa0f8 -r 9f70dc110ad7 venus/src/usb/usb_conn.v --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/venus/src/usb/usb_conn.v Sat Nov 20 17:48:18 2021 +0000 @@ -0,0 +1,21 @@ +/* + * This module captures the mini-USB connector. + */ + +module usb_conn (GND, VBUS, Dminus, Dplus, ID); + +inout GND, VBUS, Dminus, Dplus, ID; + +conn_miniUSB_plus4 conn (.pin_1(VBUS), + .pin_2(Dminus), + .pin_3(Dplus), + .pin_4(ID), + .pin_5(GND), + /* mounting pads */ + .pin_6(GND), + .pin_7(GND), + .pin_8(GND), + .pin_9(GND) + ); + +endmodule