blob: a49490e453e3899d18ef6960090371bfac2499b3 [file] [log] [blame]
// SPDX-FileCopyrightText: 2020 Efabless Corporation
//
// 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.
// SPDX-License-Identifier: Apache-2.0
// Include caravel global defines for the number of the user project IO pads
`include "defines.v"
`define USE_POWER_PINS
`define UNIT_DELAY #0.1
`ifdef GL
`include "libs.ref/sky130_fd_sc_hd/verilog/primitives.v"
`include "libs.ref/sky130_fd_sc_hd/verilog/sky130_fd_sc_hd.v"
`include "libs.ref/sky130_fd_sc_hvl/verilog/primitives.v"
`include "libs.ref/sky130_fd_sc_hvl/verilog/sky130_fd_sc_hvl.v"
`include "libs.ref//sky130_fd_sc_hd/verilog/sky130_ef_sc_hd__fakediode_2.v"
`include "glbl_cfg.v"
`include "spi_master.v"
`include "uart_i2cm.v"
`include "wb_interconnect.v"
`include "user_project_wrapper.v"
`include "yifive.v"
`include "wb_host.v"
`include "clk_skew_adjust.v"
`include "clk_buf.v"
`else
`include "libs.ref/sky130_fd_sc_hd/verilog/primitives.v"
`include "libs.ref/sky130_fd_sc_hd/verilog/sky130_fd_sc_hd.v"
`include "libs.ref/sky130_fd_sc_hvl/verilog/primitives.v"
`include "libs.ref/sky130_fd_sc_hvl/verilog/sky130_fd_sc_hvl.v"
`ifndef FULL_CHIP_SIM
`include "sram_macros/sky130_sram_2kbyte_1rw1r_32x512_8.v"
`endif
`include "pinmux/src/pinmux.sv"
`include "pinmux/src/pinmux_reg.sv"
`include "pinmux/src/gpio_intr.sv"
`include "pinmux/src/pwm.sv"
`include "pinmux/src/timer.sv"
`include "lib/pulse_gen_type1.sv"
`include "lib/pulse_gen_type2.sv"
`include "qspim/src/qspim_top.sv"
`include "qspim/src/qspim_if.sv"
`include "qspim/src/qspim_fifo.sv"
`include "qspim/src/qspim_regs.sv"
`include "qspim/src/qspim_clkgen.sv"
`include "qspim/src/qspim_ctrl.sv"
`include "qspim/src/qspim_rx.sv"
`include "qspim/src/qspim_tx.sv"
`include "uart/src/uart_core.sv"
`include "uart/src/uart_cfg.sv"
`include "uart/src/uart_rxfsm.sv"
`include "uart/src/uart_txfsm.sv"
`include "lib/async_fifo_th.sv"
`include "lib/reset_sync.sv"
`include "lib/double_sync_low.v"
`include "lib/clk_buf.v"
`include "i2cm/src/core/i2cm_bit_ctrl.v"
`include "i2cm/src/core/i2cm_byte_ctrl.v"
`include "i2cm/src/core/i2cm_top.v"
`include "usb1_host/src/core/usbh_core.sv"
`include "usb1_host/src/core/usbh_crc16.sv"
`include "usb1_host/src/core/usbh_crc5.sv"
`include "usb1_host/src/core/usbh_fifo.sv"
`include "usb1_host/src/core/usbh_sie.sv"
`include "usb1_host/src/phy/usb_fs_phy.v"
`include "usb1_host/src/phy/usb_transceiver.v"
`include "usb1_host/src/top/usb1_host.sv"
`include "sspim/src/sspim_top.sv"
`include "sspim/src/sspim_ctl.sv"
`include "sspim/src/sspim_if.sv"
`include "sspim/src/sspim_cfg.sv"
`include "uart_i2c_usb_spi/src/uart_i2c_usb_spi.sv"
`include "lib/async_fifo.sv"
`include "lib/registers.v"
`include "lib/clk_ctl.v"
`include "lib/ser_inf_32b.sv"
`include "lib/ser_shift.sv"
`include "digital_core/src/glbl_cfg.sv"
`include "wb_host/src/wb_host.sv"
`include "lib/async_wb.sv"
`include "lib/sync_wbb.sv"
`include "lib/sync_fifo2.sv"
`include "wb_interconnect/src/wb_arb.sv"
`include "wb_interconnect/src/wb_slave_port.sv"
`include "wb_interconnect/src/wb_interconnect.sv"
`include "yifive/ycr2c/src/core/pipeline/ycr_pipe_hdu.sv"
`include "yifive/ycr2c/src/core/pipeline/ycr_pipe_tdu.sv"
`include "yifive/ycr2c/src/core/pipeline/ycr_ipic.sv"
`include "yifive/ycr2c/src/core/pipeline/ycr_pipe_csr.sv"
`include "yifive/ycr2c/src/core/pipeline/ycr_pipe_exu.sv"
`include "yifive/ycr2c/src/core/pipeline/ycr_pipe_ialu.sv"
`include "yifive/ycr2c/src/core/pipeline/ycr_pipe_idu.sv"
`include "yifive/ycr2c/src/core/pipeline/ycr_pipe_ifu.sv"
`include "yifive/ycr2c/src/core/pipeline/ycr_pipe_lsu.sv"
`include "yifive/ycr2c/src/core/pipeline/ycr_pipe_mprf.sv"
`include "yifive/ycr2c/src/core/pipeline/ycr_pipe_mul.sv"
`include "yifive/ycr2c/src/core/pipeline/ycr_pipe_div.sv"
`include "yifive/ycr2c/src/core/pipeline/ycr_pipe_top.sv"
`include "yifive/ycr2c/src/core/primitives/ycr_reset_cells.sv"
`include "yifive/ycr2c/src/core/primitives/ycr_cg.sv"
`include "yifive/ycr2c/src/core/ycr_clk_ctrl.sv"
`include "yifive/ycr2c/src/core/ycr_tapc_shift_reg.sv"
`include "yifive/ycr2c/src/core/ycr_tapc.sv"
`include "yifive/ycr2c/src/core/ycr_tapc_synchronizer.sv"
`include "yifive/ycr2c/src/core/ycr_core_top.sv"
`include "yifive/ycr2c/src/core/ycr_dm.sv"
`include "yifive/ycr2c/src/core/ycr_dmi.sv"
`include "yifive/ycr2c/src/core/ycr_scu.sv"
`include "yifive/ycr2c/src/top/ycr_imem_router.sv"
`include "yifive/ycr2c/src/top/ycr_dmem_router.sv"
`include "yifive/ycr2c/src/top/ycr_dp_memory.sv"
`include "yifive/ycr2c/src/top/ycr_tcm.sv"
`include "yifive/ycr2c/src/top/ycr_timer.sv"
`include "yifive/ycr2c/src/top/ycr_dmem_wb.sv"
`include "yifive/ycr2c/src/top/ycr_imem_wb.sv"
`include "yifive/ycr2c/src/top/ycr2_intf.sv"
`include "yifive/ycr2c/src/top/ycr_sram_mux.sv"
`include "yifive/ycr2c/src/top/ycr_router.sv"
`include "yifive/ycr2c/src/top/ycr2_iconnect.sv"
`include "yifive/ycr2c/src/top/ycr2_cross_bar.sv"
`include "yifive/ycr2c/src/top/ycr2_top_wb.sv"
`include "yifive/ycr2c/src/top/ycr_req_retiming.sv"
`include "yifive/ycr2c/src/cache/src/core/icache_top.sv"
`include "yifive/ycr2c/src/cache/src/core/icache_app_fsm.sv"
`include "yifive/ycr2c/src/cache/src/core/icache_tag_fifo.sv"
`include "yifive/ycr2c/src/cache/src/core/dcache_tag_fifo.sv"
`include "yifive/ycr2c/src/cache/src/core/dcache_top.sv"
`include "yifive/ycr2c/src/lib/ycr_async_wbb.sv"
`include "yifive/ycr2c/src/lib/ycr_arb.sv"
`include "lib/sync_fifo.sv"
`include "uart2wb/src/uart2wb.sv"
`include "uart2wb/src/uart2_core.sv"
`include "uart2wb/src/uart_msg_handler.v"
`include "lib/async_reg_bus.sv"
`include "user_project_wrapper.v"
// we are using netlist file for clk_skew_adjust as it has
// standard cell + power pin
`include "lib/clk_skew_adjust.gv"
`include "lib/ctech_cells.sv"
`include "digital_pll/src/digital_pll_controller.v"
`include "digital_pll/src/digital_pll.v"
`include "digital_pll/src/ring_osc2x13.v"
`endif