-
Notifications
You must be signed in to change notification settings - Fork 79
EMCU
Pepijn de Vos edited this page Nov 17, 2024
·
2 revisions
The Gowin EMCU primitive supports various functions, including two UARTs, two Timers, a Watchdog, 16-bit GPIO, two additional UARTs, JTAGs, six User Interrupt interfaces, AHB Flash read interface, AHB Sram read/write interface, two AHB bus extension interfaces, and one APB bus extension interface.
This device is supported in Apicula.
| Port | Size | Direction |
|---|---|---|
| APBTARGEXP2PADDR | 12 | output |
| APBTARGEXP2PENABLE | 1 | output |
| APBTARGEXP2PPROT | 3 | output |
| APBTARGEXP2PRDATA | 32 | input |
| APBTARGEXP2PREADY | 1 | input |
| APBTARGEXP2PSEL | 1 | output |
| APBTARGEXP2PSLVERR | 1 | input |
| APBTARGEXP2PSTRB | 4 | output |
| APBTARGEXP2PWDATA | 32 | output |
| APBTARGEXP2PWRITE | 1 | output |
| DAPJTAGNSW | 1 | output |
| DAPNTDOEN | 1 | output |
| DAPNTRST | 1 | input |
| DAPSWCLKTCK | 1 | input |
| DAPSWDITMS | 1 | input |
| DAPTDI | 1 | input |
| DAPTDO | 1 | output |
| FCLK | 1 | input |
| FLASHERR | 1 | input |
| FLASHINT | 1 | input |
| GPINT | 5 | input |
| INITEXP0EXREQ | 1 | input |
| INITEXP0EXRESP | 1 | output |
| INITEXP0HADDR | 32 | input |
| INITEXP0HAUSER | 1 | input |
| INITEXP0HBURST | 3 | input |
| INITEXP0HMASTER | 4 | input |
| INITEXP0HMASTLOCK | 1 | input |
| INITEXP0HPROT | 4 | input |
| INITEXP0HRDATA | 32 | output |
| INITEXP0HREADY | 1 | output |
| INITEXP0HRESP | 1 | output |
| INITEXP0HRUSER | 3 | output |
| INITEXP0HSEL | 1 | input |
| INITEXP0HSIZE | 3 | input |
| INITEXP0HTRANS | 2 | input |
| INITEXP0HWDATA | 32 | input |
| INITEXP0HWRITE | 1 | input |
| INITEXP0HWUSER | 4 | input |
| INITEXP0MEMATTR | 2 | input |
| INTMONITOR | 1 | output |
| IOEXPINPUTI | 16 | input |
| IOEXPOUTPUTENO | 16 | output |
| IOEXPOUTPUTO | 16 | output |
| MTXHRESETN | 1 | output |
| MTXREMAP | 4 | input |
| PORESETN | 1 | input |
| RTCSRCCLK | 1 | input |
| SRAM0ADDR | 13 | output |
| SRAM0CS | 1 | output |
| SRAM0RDATA | 32 | input |
| SRAM0WDATA | 32 | output |
| SRAM0WREN | 4 | output |
| SYSRESETN | 1 | input |
| TARGEXP0EXREQ | 1 | output |
| TARGEXP0EXRESP | 1 | input |
| TARGEXP0HADDR | 32 | output |
| TARGEXP0HAUSER | 1 | output |
| TARGEXP0HBURST | 3 | output |
| TARGEXP0HMASTER | 4 | output |
| TARGEXP0HMASTLOCK | 1 | output |
| TARGEXP0HPROT | 4 | output |
| TARGEXP0HRDATA | 32 | input |
| TARGEXP0HREADYMUX | 1 | output |
| TARGEXP0HREADYOUT | 1 | input |
| TARGEXP0HRESP | 1 | input |
| TARGEXP0HRUSER | 3 | input |
| TARGEXP0HSEL | 1 | output |
| TARGEXP0HSIZE | 3 | output |
| TARGEXP0HTRANS | 2 | output |
| TARGEXP0HWDATA | 32 | output |
| TARGEXP0HWRITE | 1 | output |
| TARGEXP0HWUSER | 4 | output |
| TARGEXP0MEMATTR | 2 | output |
| TARGFLASH0EXRESP | 1 | input |
| TARGFLASH0HADDR | 29 | output |
| TARGFLASH0HBURST | 3 | output |
| TARGFLASH0HRDATA | 32 | input |
| TARGFLASH0HREADYMUX | 1 | output |
| TARGFLASH0HREADYOUT | 1 | input |
| TARGFLASH0HRESP | 1 | input |
| TARGFLASH0HRUSER | 3 | input |
| TARGFLASH0HSEL | 1 | output |
| TARGFLASH0HSIZE | 3 | output |
| TARGFLASH0HTRANS | 2 | output |
| TPIUTRACECLK | 1 | output |
| TPIUTRACEDATA | 4 | output |
| UART0BAUDTICK | 1 | output |
| UART0RXDI | 1 | input |
| UART0TXDO | 1 | output |
| UART1BAUDTICK | 1 | output |
| UART1RXDI | 1 | input |
| UART1TXDO | 1 | output |
EMCU emcu_inst (
.APBTARGEXP2PADDR(APBTARGEXP2PADDR),
.APBTARGEXP2PENABLE(APBTARGEXP2PENABLE),
.APBTARGEXP2PPROT(APBTARGEXP2PPROT),
.APBTARGEXP2PRDATA(APBTARGEXP2PRDATA),
.APBTARGEXP2PREADY(APBTARGEXP2PREADY),
.APBTARGEXP2PSEL(APBTARGEXP2PSEL),
.APBTARGEXP2PSLVERR(APBTARGEXP2PSLVERR),
.APBTARGEXP2PSTRB(APBTARGEXP2PSTRB),
.APBTARGEXP2PWDATA(APBTARGEXP2PWDATA),
.APBTARGEXP2PWRITE(APBTARGEXP2PWRITE),
.DAPJTAGNSW(DAPJTAGNSW),
.DAPNTDOEN(DAPNTDOEN),
.DAPNTRST(DAPNTRST),
.DAPSWCLKTCK(DAPSWCLKTCK),
.DAPSWDITMS(DAPSWDITMS),
.DAPTDI(DAPTDI),
.DAPTDO(DAPTDO),
.FCLK(FCLK),
.FLASHERR(FLASHERR),
.FLASHINT(FLASHINT),
.GPINT(GPINT),
.INITEXP0EXREQ(INITEXP0EXREQ),
.INITEXP0EXRESP(INITEXP0EXRESP),
.INITEXP0HADDR(INITEXP0HADDR),
.INITEXP0HAUSER(INITEXP0HAUSER),
.INITEXP0HBURST(INITEXP0HBURST),
.INITEXP0HMASTER(INITEXP0HMASTER),
.INITEXP0HMASTLOCK(INITEXP0HMASTLOCK),
.INITEXP0HPROT(INITEXP0HPROT),
.INITEXP0HRDATA(INITEXP0HRDATA),
.INITEXP0HREADY(INITEXP0HREADY),
.INITEXP0HRESP(INITEXP0HRESP),
.INITEXP0HRUSER(INITEXP0HRUSER),
.INITEXP0HSEL(INITEXP0HSEL),
.INITEXP0HSIZE(INITEXP0HSIZE),
.INITEXP0HTRANS(INITEXP0HTRANS),
.INITEXP0HWDATA(INITEXP0HWDATA),
.INITEXP0HWRITE(INITEXP0HWRITE),
.INITEXP0HWUSER(INITEXP0HWUSER),
.INITEXP0MEMATTR(INITEXP0MEMATTR),
.INTMONITOR(INTMONITOR),
.IOEXPINPUTI(IOEXPINPUTI),
.IOEXPOUTPUTENO(IOEXPOUTPUTENO),
.IOEXPOUTPUTO(IOEXPOUTPUTO),
.MTXHRESETN(MTXHRESETN),
.MTXREMAP(MTXREMAP),
.PORESETN(PORESETN),
.RTCSRCCLK(RTCSRCCLK),
.SRAM0ADDR(SRAM0ADDR),
.SRAM0CS(SRAM0CS),
.SRAM0RDATA(SRAM0RDATA),
.SRAM0WDATA(SRAM0WDATA),
.SRAM0WREN(SRAM0WREN),
.SYSRESETN(SYSRESETN),
.TARGEXP0EXREQ(TARGEXP0EXREQ),
.TARGEXP0EXRESP(TARGEXP0EXRESP),
.TARGEXP0HADDR(TARGEXP0HADDR),
.TARGEXP0HAUSER(TARGEXP0HAUSER),
.TARGEXP0HBURST(TARGEXP0HBURST),
.TARGEXP0HMASTER(TARGEXP0HMASTER),
.TARGEXP0HMASTLOCK(TARGEXP0HMASTLOCK),
.TARGEXP0HPROT(TARGEXP0HPROT),
.TARGEXP0HRDATA(TARGEXP0HRDATA),
.TARGEXP0HREADYMUX(TARGEXP0HREADYMUX),
.TARGEXP0HREADYOUT(TARGEXP0HREADYOUT),
.TARGEXP0HRESP(TARGEXP0HRESP),
.TARGEXP0HRUSER(TARGEXP0HRUSER),
.TARGEXP0HSEL(TARGEXP0HSEL),
.TARGEXP0HSIZE(TARGEXP0HSIZE),
.TARGEXP0HTRANS(TARGEXP0HTRANS),
.TARGEXP0HWDATA(TARGEXP0HWDATA),
.TARGEXP0HWRITE(TARGEXP0HWRITE),
.TARGEXP0HWUSER(TARGEXP0HWUSER),
.TARGEXP0MEMATTR(TARGEXP0MEMATTR),
.TARGFLASH0EXRESP(TARGFLASH0EXRESP),
.TARGFLASH0HADDR(TARGFLASH0HADDR),
.TARGFLASH0HBURST(TARGFLASH0HBURST),
.TARGFLASH0HRDATA(TARGFLASH0HRDATA),
.TARGFLASH0HREADYMUX(TARGFLASH0HREADYMUX),
.TARGFLASH0HREADYOUT(TARGFLASH0HREADYOUT),
.TARGFLASH0HRESP(TARGFLASH0HRESP),
.TARGFLASH0HRUSER(TARGFLASH0HRUSER),
.TARGFLASH0HSEL(TARGFLASH0HSEL),
.TARGFLASH0HSIZE(TARGFLASH0HSIZE),
.TARGFLASH0HTRANS(TARGFLASH0HTRANS),
.TPIUTRACECLK(TPIUTRACECLK),
.TPIUTRACEDATA(TPIUTRACEDATA),
.UART0BAUDTICK(UART0BAUDTICK),
.UART0RXDI(UART0RXDI),
.UART0TXDO(UART0TXDO),
.UART1BAUDTICK(UART1BAUDTICK),
.UART1RXDI(UART1RXDI),
.UART1TXDO(UART1TXDO)
);