blob: b2da41218d75eb37e360093db946629ea2214b51 [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
module top_earlgrey_asic (
// Clock and Reset
input IO_CLK,
input IO_RST_N,
// JTAG interface
input IO_JTCK,
input IO_JTMS,
input IO_JTDI,
input IO_JTRST_N,
output IO_JTDO,
// UART interface
input IO_URX,
output IO_UTX,
// GPIO x 16 interface
inout IO_GP0,
inout IO_GP1,
inout IO_GP2,
inout IO_GP3,
inout IO_GP4,
inout IO_GP5,
inout IO_GP6,
inout IO_GP7,
inout IO_GP8,
inout IO_GP9,
inout IO_GP10,
inout IO_GP11,
inout IO_GP12,
inout IO_GP13,
inout IO_GP14,
inout IO_GP15
);
logic [31:0] cio_gpio_p2d, cio_gpio_d2p, cio_gpio_en_d2p;
logic cio_uart_rx_p2d, cio_uart_tx_d2p, cio_uart_tx_en_d2p;
// Top-level design
top_earlgrey top_earlgrey (
.clk_i (IO_CLK),
.rst_ni (IO_RST_N),
.jtag_tck_i (IO_JTCK),
.jtag_tms_i (IO_JTMS),
.jtag_trst_ni (IO_JTRST_N),
.jtag_td_i (IO_JTDI),
.jtag_td_o (IO_JTDO),
.cio_uart_rx_p2d_i (cio_uart_rx_p2d),
.cio_uart_tx_d2p_o (cio_uart_tx_d2p),
.cio_uart_tx_en_d2p_o (cio_uart_tx_en_d2p),
.cio_gpio_gpio_p2d_i (cio_gpio_p2d),
.cio_gpio_gpio_d2p_o (cio_gpio_d2p),
.cio_gpio_gpio_en_d2p_o (cio_gpio_en_d2p)
);
// pad control
padctl padctl (
// UART
.cio_uart_rx_p2d,
.cio_uart_tx_d2p,
.cio_uart_tx_en_d2p,
// GPIO
.cio_gpio_p2d,
.cio_gpio_d2p,
.cio_gpio_en_d2p,
// pads
.IO_URX,
.IO_UTX,
.IO_GP0,
.IO_GP1,
.IO_GP2,
.IO_GP3,
.IO_GP4,
.IO_GP5,
.IO_GP6,
.IO_GP7,
.IO_GP8,
.IO_GP9,
.IO_GP10,
.IO_GP11,
.IO_GP12,
.IO_GP13,
.IO_GP14,
.IO_GP15,
// SPI related pins
.IO_DPS0(1'b1),
.IO_DPS1(1'b1),
.IO_DPS2(),
.IO_DPS3(1'b0),
.IO_DPS4(1'b0),
.IO_DPS5(1'b0),
.IO_DPS6(1'b0),
.IO_DPS7(1'b0)
);
endmodule