blob: 588dfc396f1639adc82d998e411657be2aa66668 [file] [log] [blame]
// Copyright 2025 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
module chip_nexus
#(parameter MemInitFile = "",
parameter int ClockFrequencyMhz = 80)
(input clk_p_i,
input clk_n_i,
input rst_ni,
input spi_clk_i,
input spi_csb_i,
input spi_mosi_i,
output logic spi_miso_o,
output [1 : 0] uart_tx_o,
input [1 : 0] uart_rx_i,
output logic io_halted,
output logic io_fault,
output logic io_halted_n,
output logic io_fault_n,
output logic spi_clk_probe_o,
output logic spi_csb_probe_o,
output logic spi_mosi_probe_o,
output logic spi_miso_probe_o);
logic clk;
logic rst_n;
logic clk_48MHz;
logic clk_aon;
assign spi_clk_probe_o = spi_clk_i;
assign spi_csb_probe_o = spi_csb_i;
assign spi_mosi_probe_o = spi_mosi_i;
assign spi_miso_probe_o = spi_miso_o;
top_pkg::uart_sideband_i_t[1 : 0] uart_sideband_i;
top_pkg::uart_sideband_o_t[1 : 0] uart_sideband_o;
assign uart_sideband_i[0].cio_rx = uart_rx_i[0];
assign uart_sideband_i[1].cio_rx = uart_rx_i[1];
assign uart_tx_o[0] = uart_sideband_o[0].cio_tx;
assign uart_tx_o[1] = uart_sideband_o[1].cio_tx;
assign io_halted_n = ~io_halted;
assign io_fault_n = ~io_fault;
clkgen_wrapper #(.ClockFrequencyMhz(ClockFrequencyMhz))
i_clkgen(.clk_p_i(clk_p_i),
.clk_n_i(clk_n_i),
.rst_ni(rst_ni),
.srst_ni(rst_ni),
.clk_main_o(clk),
.clk_48MHz_o(clk_48MHz),
.clk_aon_o(clk_aon),
.rst_no(rst_n));
kelvin_soc i_kelvin_soc (
.clk_i(clk),
.rst_ni(rst_n),
.spi_clk_i(spi_clk_i),
.spi_csb_i(spi_csb_i),
.spi_mosi_i(spi_mosi_i),
.spi_miso_o(spi_miso_o),
.scanmode_i('0),
.uart_sideband_i(uart_sideband_i),
.uart_sideband_o(uart_sideband_o),
.io_halted(io_halted),
.io_fault(io_fault)
);
endmodule