// 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"


     `include "sram_macros/sky130_sram_2kbyte_1rw1r_32x512_8.v"
     `include "pinmux/src/pinmux.sv"
     `include "pinmux/src/pinmux_reg.sv"
     `include "pinmux/src/gpio_intr.sv"
     `include "pinmux/src/pwm.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_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_mcore_router.sv"
     `include "yifive/ycr2c/src/top/ycr2_intf.sv"
     `include "yifive/ycr2c/src/top/ycr2_mintf.sv"
     `include "yifive/ycr2c/src/top/ycr2_top_wb.sv"
     `include "yifive/ycr2c/src/top/ycr_icache_router.sv"
     `include "yifive/ycr2c/src/top/ycr_dcache_router.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"
`endif
