FreeCalypso > hg > freecalypso-schem2
diff venus/src/core/abb_block.v @ 9:3ed0f7a9c489
Venus: first version of Verilog for the Calypso core
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 19 Nov 2021 05:58:21 +0000 |
parents | |
children | c1256c8757c3 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/venus/src/core/abb_block.v Fri Nov 19 05:58:21 2021 +0000 @@ -0,0 +1,238 @@ +/* + * This module encapsulates the Iota ABB chip plus the following: + * + * - bypass capacitors on the VBAT input and the regulator outputs + * - all GND connections + * - IBIAS and VREF external components + * - UPR, VLMEM, VLRTC and everything connected to them + * - pull-up of SIM_IO to VSIM + * - cap on the AFC output + * - RC network joining BDL[IQ][MP] and BUL[IQ][MP] + * - VBACKUP resistor to GND in this FC Venus version + * + * All other Iota signals are passed through untouched. + */ + +module abb_block (GND, VBAT, VSIM, Vdbb, Vio, Vflash, Vsram, Vrtc, + nRESPWON, nTESTRESET, + Analog_IM, Analog_IP, Analog_QM, Analog_QP, + ADIN1, ADIN2, ADIN3, ADIN4, AFC, APC, AUXI, AUXON, AUXOP, + BDR, BDX, BFSR, BFSX, CK13M, CK32K, DAC, DBBSCK, DBBSIO, + DBBSRST, EARN, EARP, + HSMICBIAS, HSMICP, HSO, ICTL, INT1, INT2, ITWAKEUP, + LED_A, LED_B, LED_C, MICBIAS, MICIN, MICIP, ON_nOFF, + PCHG, PWON, RPWON, + TCK, TDI, TDO, TDR, TEN, TMS, UDR, UDX, UEN, + VBATS, VCCS, VCHG, VCK, VDR, VDX, VFS, + SIM_IO, SIM_CLK, SIM_RST); + +input GND, VBAT; +output VSIM, Vdbb, Vio, Vflash, Vsram, Vrtc; + +output nRESPWON; +input nTESTRESET; + +inout Analog_IM, Analog_IP, Analog_QM, Analog_QP; + +input ADIN1, ADIN2, ADIN3, ADIN4; +output AFC, APC, DAC; + +input AUXI; +output AUXON, AUXOP; +output EARN, EARP; +output HSMICBIAS, HSO; +input HSMICP; +output MICBIAS; +input MICIN, MICIP; + +input BDR, BFSR; +output BDX, BFSX; +input TDR, TEN; +input UDR, UEN; +output UDX; +output VCK, VDX, VFS; +input VDR; + +input CK13M, CK32K, ITWAKEUP; +output INT1, INT2; +output ON_nOFF; + +input DBBSCK, DBBSRST; +inout DBBSIO; + +input PWON, RPWON; +output ICTL, PCHG; + +output LED_A, LED_B, LED_C; + +output SIM_CLK, SIM_RST; +inout SIM_IO; + +input TCK, TDI, TMS; +output TDO; + +input VBATS, VCCS, VCHG; + +/* nets inside this module */ +wire UPR, VLMEM, Vabb; +wire IBIAS, VREF; +wire BULIM, BULIP, BULQM, BULQP; +wire VBACKUP; + +/* instantiate the Iota! */ + +iota_100ggm iota (.ADIN1(ADIN1), + .ADIN2(ADIN2), + .ADIN3(ADIN3), + .ADIN4(ADIN4), + .AFC(AFC), + .APC(APC), + .AUXI(AUXI), + .AUXON(AUXON), + .AUXOP(AUXOP), + .BDLIM(Analog_IM), + .BDLIP(Analog_IP), + .BDLQM(Analog_QM), + .BDLQP(Analog_QP), + .BDR(BDR), + .BDX(BDX), + .BFSR(BFSR), + .BFSX(BFSX), + .BULIM(BULIM), + .BULIP(BULIP), + .BULQM(BULQM), + .BULQP(BULQP), + .CK13M(CK13M), + .CK32K(CK32K), + .DAC(DAC), + .DBBSCK(DBBSCK), + .DBBSIO(DBBSIO), + .DBBSRST(DBBSRST), + .EARN(EARN), + .EARP(EARP), + .GNDA(GND), + .GNDAV(GND), + .GNDD(GND), + .GNDL1(GND), + .GNDL2(GND), + .HSMICBIAS(HSMICBIAS), + .HSMICP(HSMICP), + .HSO(HSO), + .IBIAS(IBIAS), + .ICTL(ICTL), + .INT1(INT1), + .INT2(INT2), + .ITWAKEUP(ITWAKEUP), + .LEDA(LED_A), + .LEDB1(LED_B), + .LEDB2(LED_B), + .LEDC(LED_C), + .MICBIAS(MICBIAS), + .MICIN(MICIN), + .MICIP(MICIP), + .ON_nOFF(ON_nOFF), + .PCHG(PCHG), + .PWON(PWON), + .REFGND(GND), + .RESPWONz(nRESPWON), + .RPWON(RPWON), + .SIMCK(SIM_CLK), + .SIMIO(SIM_IO), + .SIMRST(SIM_RST), + .TCK(TCK), + .TDI(TDI), + .TDO(TDO), + .TDR(TDR), + .TEN(TEN), + .TEST3(), /* no connect */ + .TEST4(), /* ditto */ + .TESTRSTz(nTESTRESET), + .TESTV(), /* no connect */ + .TMS(TMS), + .UDR(UDR), + .UDX(UDX), + .UEN(UEN), + .UPR(UPR), + .VBACKUP(VBACKUP), + .VBAT(VBAT), + .VBATS(VBATS), + .VCABB(VBAT), + .VCCS(VCCS), + .VCDBB(VBAT), + .VCHG(VCHG), + .VCIO1(VBAT), + .VCIO2(VBAT), + .VCK(VCK), + .VCMEM(VBAT), + .VCRAM(VBAT), + .VDR(VDR), + .VDX(VDX), + .VFS(VFS), + .VLMEM(VLMEM), + .VLRTC(GND), + .VRABB(Vabb), + .VRDBB(Vdbb), + .VREF(VREF), + .VRIO1(Vio), + .VRIO2(Vio), + .VRMEM(Vflash), + .VRRAM(Vsram), + .VRRTC(Vrtc), + .VRSIM(VSIM), + .VSDBB(Vdbb), + .VXRTC() /* no connect */ + ); + +/* power bypass caps per Leonardo schematics */ + +/* VBAT input */ +capacitor C220 (VBAT, GND); +capacitor C221 (VBAT, GND); + +/* regulator outputs */ +capacitor C213 (Vabb, GND); +capacitor C214 (Vdbb, GND); +capacitor C215 (Vio, GND); +capacitor C216 (Vflash, GND); +capacitor C217 (Vsram, GND); +capacitor C218 (VSIM, GND); +capacitor C219 (Vrtc, GND); + +/* UPR bypass cap */ +capacitor C208 (UPR, GND); + +/* + * VLMEM is pulled up to UPR, and we are eliminating the pull-down option + * on FC Venus - our LCD wiring is incompatible with 1.8V MEMIF. + */ +resistor R209 (VLMEM, UPR); + +/* nTESTRESET also needs to be pulled up to UPR */ +resistor R208 (nTESTRESET, UPR); + +/* IBIAS and VREF */ +resistor R204 (IBIAS, GND); +capacitor C204 (VREF, GND); + +/* pull-up on SIM_IO to VSIM */ +resistor R206 (SIM_IO, VSIM); + +/* cap on AFC output */ +capacitor C205 (AFC, GND); + +/* RC network joining BDL[IQ][MP] and BUL[IQ][MP] */ + +abb_rc_network abb_rc_network ( .IM_bidir(Analog_IM), + .IP_bidir(Analog_IP), + .QM_bidir(Analog_QM), + .QP_bidir(Analog_QP), + .IM_abbout(BULIM), + .IP_abbout(BULIP), + .QM_abbout(BULQM), + .QP_abbout(BULQP) + ); + +/* VBACKUP pull-down to GND */ +resistor VBACKUP_pull_down (VBACKUP, GND); + +endmodule