FreeCalypso > hg > freecalypso-schem2
diff venus/src/core/baseband.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 | 5ee03a306da3 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/venus/src/core/baseband.v Fri Nov 19 05:58:21 2021 +0000 @@ -0,0 +1,267 @@ +/* + * This module encapsulates the DBB, the ABB and the connections between + * them. It approximately corresponds to the "200 - Baseband" sheet + * in the original Leonardo schematics. + */ + +module baseband (GND, VBAT, VSIM, Vio, Vflash, Vsram, + PWON, RPWON, nTESTRESET, ON_nOFF, CLKTCXO_IN, + TDI, TDO, TCK, TMS, + MCU_A, MCU_D, MCU_RnW, MCU_nFWE, MCU_nFOE, MCU_FDP, + MCU_nBLE, MCU_nBHE, MCU_nCS, + SCLK, SDO, SDI_SDA, nSCS0_SCL, nSCS1, + TX_IRDA, RX_IRDA, TXIR_IRDA, RXIR_IRDA, SD_IRDA, + TX_MODEM, RX_MODEM, RTS_MODEM, CTS_MODEM, DSR_LPG, + MCSI_TXD, MCSI_RXD, MCSI_CLK, MCSI_FSYNCH, + KBC, KBR, BU_PWT, LT_PWL, + GPIO0, GPIO1, GPIO2, GPIO3, GPIO4, GPIO6, GPIO7_RESETOUT, + GPIO8, GPIO13, + ADIN1, ADIN2, ADIN3, ADIN4, DAC, + AUXI, AUXON, AUXOP, EARN, EARP, HSMICBIAS, HSMICP, HSO, + MICBIAS, MICIN, MICIP, + LED_A, LED_B, LED_C, + ICTL, PCHG, VBATS, VCCS, VCHG, + SIM_IO, SIM_CLK, SIM_RST, + Analog_IM, Analog_IP, Analog_QM, Analog_QP, AFC, APC, + TCXOEN, RFEN, TSPCLK, TSPDO, TSPEN_Rita, TSPACT); + +input GND, VBAT; +output VSIM, Vio, Vflash, Vsram; + +input PWON, RPWON, nTESTRESET; +output ON_nOFF; + +input CLKTCXO_IN; + +input TDI, TCK, TMS; +output TDO; + +output [22:0] MCU_A; +inout [15:0] MCU_D; +output MCU_RnW, MCU_nFWE, MCU_nFOE, MCU_FDP, MCU_nBLE, MCU_nBHE; +output [4:0] MCU_nCS; + +output SCLK, SDO, nSCS1; +inout SDI_SDA, nSCS0_SCL; + +output TX_IRDA, TXIR_IRDA, SD_IRDA, TX_MODEM, RTS_MODEM; +input RX_IRDA, RXIR_IRDA, RX_MODEM, CTS_MODEM; +inout DSR_LPG; + +output MCSI_TXD; +input MCSI_RXD; +inout MCSI_CLK, MCSI_FSYNCH; + +output [4:0] KBC; +input [4:0] KBR; +output BU_PWT, LT_PWL; + +inout GPIO0, GPIO1, GPIO2, GPIO3, GPIO4, GPIO6, GPIO7_RESETOUT, GPIO8, GPIO13; + +input ADIN1, ADIN2, ADIN3, ADIN4; +output DAC; + +input AUXI; +output AUXON, AUXOP; +output EARN, EARP; +output HSMICBIAS, HSO; +input HSMICP; +output MICBIAS; +input MICIN, MICIP; + +output LED_A, LED_B, LED_C; + +output ICTL, PCHG; +input VBATS, VCCS, VCHG; + +output SIM_CLK, SIM_RST; +inout SIM_IO; + +inout Analog_IM, Analog_IP, Analog_QM, Analog_QP; +output AFC, APC; +output TCXOEN, RFEN, TSPCLK, TSPDO, TSPEN_Rita; +output [11:0] TSPACT; + +/* nets between DBB and ABB */ +wire Vdbb, Vrtc; +wire CLK13M_OUT, CLK32K_OUT, nRESPWON, IT_WAKEUP; +wire EXT_FIQ, EXT_IRQ; +wire TSPEN_Iota; + +/* Baseband serial port */ +wire BSP_dbb2abb_data, BSP_dbb2abb_sync; +wire BSP_abb2dbb_data, BSP_abb2dbb_sync; + +/* Voiceband serial port */ +wire VSP_DL_data, VSP_UL_data; +wire VSP_clock, VSP_sync; + +/* MCU serial port */ +wire USP_dbb2abb_data, USP_abb2dbb_data, USP_enable; + +/* SIM interface at Vio */ +wire DBBSIO, DBBSCLK, DBBSRST; + +/* instantiate the DBB and ABB blocks! */ + +dbb_block dbb ( .GND(GND), + .Vdbb(Vdbb), + .Vio(Vio), + .Vflash(Vflash), + .Vrtc(Vrtc), + .TSPCLKX(TSPCLK), + .TSPDO(TSPDO), + .TSPDI_IO4(GPIO4), + .TSPEN[0](TSPEN_Iota), + .TSPEN[1](), /* no connect */ + .TSPEN[2](TSPEN_Rita), + .TSPEN[3](), /* no connect */ + .TSPACT(TSPACT), + .DATA(MCU_D), + .ADD(MCU_A), + .RnW(MCU_RnW), + .nFWE(MCU_nFWE), + .nFOE(MCU_nFOE), + .FDP(MCU_FDP), + .nBLE(MCU_nBLE), + .nBHE(MCU_nBHE), + .nCS(MCU_nCS), + .SCLK(SCLK), + .SDO(SDO), + .SDI_SDA(SDI_SDA), + .nSCS0_SCL(nSCS0_SCL), + .nSCS1(nSCS1), + .TX_IRDA(TX_IRDA), + .RX_IRDA(RX_IRDA), + .TXIR_IRDA(TXIR_IRDA), + .RXIR_IRDA(RXIR_IRDA), + .SD_IRDA(SD_IRDA), + .TX_MODEM(TX_MODEM), + .RX_MODEM(RX_MODEM), + .RTS_MODEM(RTS_MODEM), + .CTS_MODEM(CTS_MODEM), + .DSR_LPG(DSR_LPG), + .MCSI_TXD(MCSI_TXD), + .MCSI_RXD(MCSI_RXD), + .MCSI_CLK(MCSI_CLK), + .MCSI_FSYNCH(MCSI_FSYNCH), + .KBC(KBC), + .KBR(KBR), + .BU_PWT(BU_PWT), + .LT_PWL(LT_PWL), + .GPIO[0](GPIO0), + .GPIO[1](GPIO1), + .GPIO[2](GPIO2), + .GPIO[3](GPIO3), + .nRESET_OUT_IO7(GPIO7_RESETOUT), + .CLKTCXO(CLKTCXO_IN), + .CLK32K_OUT(CLK32K_OUT), + .CLK13M_OUT(CLK13M_OUT), + .nRESPWON(nRESPWON), + .EXT_FIQ(EXT_FIQ), + .EXT_IRQ(EXT_IRQ), + .TCXOEN(TCXOEN), + .RFEN(RFEN), + .ON_OFF(ON_nOFF), + .IT_WAKEUP(IT_WAKEUP), + .TDI(TDI), + .TDO(TDO), + .TCK(TCK), + .TMS(TMS), + .BFSR(BSP_abb2dbb_sync), + .BDR(BSP_abb2dbb_data), + .BFSX(BSP_dbb2abb_sync), + .BDX(BSP_dbb2abb_data), + .BCLKX_IO6(GPIO6), + .BCLKR_ARMCLK(GND), + .VDX(VSP_DL_data), + .VDR(VSP_UL_data), + .VFSRX(VSP_sync), + .VCLKRX(VSP_clock), + .MCUDI(USP_abb2dbb_data), + .MCUDO(USP_dbb2abb_data), + .MCUEN0(USP_enable), + .MCUEN1_IO8(GPIO8), + .MCUEN2_IO13(GPIO13), + .SIM_IO(DBBSIO), + .SIM_CLK(DBBSCLK), + .SIM_RST(DBBSRST) + ); + +abb_block abb ( .GND(GND), + .VBAT(VBAT), + .VSIM(VSIM), + .Vdbb(Vdbb), + .Vio(Vio), + .Vflash(Vflash), + .Vsram(Vsram), + .Vrtc(Vrtc), + .nRESPWON(nRESPWON), + .nTESTRESET(nTESTRESET), + .Analog_IM(Analog_IM), + .Analog_IP(Analog_IP), + .Analog_QM(Analog_QM), + .Analog_QP(Analog_QP), + .ADIN1(ADIN1), + .ADIN2(ADIN2), + .ADIN3(ADIN3), + .ADIN4(ADIN4), + .AFC(AFC), + .APC(APC), + .AUXI(AUXI), + .AUXON(AUXON), + .AUXOP(AUXOP), + .BDR(BSP_dbb2abb_data), + .BDX(BSP_abb2dbb_data), + .BFSR(BSP_dbb2abb_sync), + .BFSX(BSP_abb2dbb_sync), + .CK13M(CLK13M_OUT), + .CK32K(CLK32K_OUT), + .DAC(DAC), + .DBBSCK(DBBSCLK), + .DBBSIO(DBBSIO), + .DBBSRST(DBBSRST), + .EARN(EARN), + .EARP(EARP), + .HSMICBIAS(HSMICBIAS), + .HSMICP(HSMICP), + .HSO(HSO), + .ICTL(ICTL), + .INT1(EXT_FIQ), + .INT2(EXT_IRQ), + .ITWAKEUP(IT_WAKEUP), + .LED_A(LED_A), + .LED_B(LED_B), + .LED_C(LED_C), + .MICBIAS(MICBIAS), + .MICIN(MICIN), + .MICIP(MICIP), + .ON_nOFF(ON_nOFF), + .PCHG(PCHG), + .PWON(PWON), + .RPWON(RPWON), + .TCK(), /* no connect */ + .TDI(), /* no connect */ + .TDO(), /* no connect */ + .TDR(TSPDO), + .TEN(TSPEN_Iota), + .TMS(), /* no connect */ + .UDR(USP_dbb2abb_data), + .UDX(USP_abb2dbb_data), + .UEN(USP_enable), + .VBATS(VBATS), + .VCCS(VCCS), + .VCHG(VCHG), + .VCK(VSP_clock), + .VDR(VSP_DL_data), + .VDX(VSP_UL_data), + .VFS(VSP_sync), + .SIM_IO(SIM_IO), + .SIM_CLK(SIM_CLK), + .SIM_RST(SIM_RST) + ); + +/* there needs to be a pull-down resistor on the MCUDI/UDX net */ +resistor R216 (USP_abb2dbb_data, GND); + +endmodule