/* striVe black-box stub definitions */

module digital_pll(reset, extclk_sel, osc, clockc, clockp, clockd, div, sel, dco, ext_trim
  output clockc;
  output [3:0] clockd;
  output [1:0] clockp;
  input dco;
  input [4:0] div;
  input [25:0] ext_trim;
  input extclk_sel;
  input osc;
  input reset;
  input [2:0] sel;
endmodule

module striVe_clkrst(ext_clk_sel, ext_clk, pll_clk, reset, ext_reset, clk, resetn);
  output clk;
  input ext_clk;
  input ext_clk_sel;
  input ext_reset;
  input pll_clk;
  input reset;
  wire [2:0] reset_delay;
  output resetn;
endmodule

module striVe_spi(RSTB, SCK, SDI, CSB, SDO, sdo_enb, xtal_ena, reg_ena, pll_dco_ena, pll_d
iv, pll_sel, pll_trim, pll_bypass, irq, reset, RST, trap, mfgr_id, prod_id, mask_rev_in, m
ask_rev);
  input CSB;
  output RST;
  input RSTB;
  input SCK;
  input SDI;
  output SDO;
  output irq;
  output [3:0] mask_rev;
  input [3:0] mask_rev_in;
  output [11:0] mfgr_id;
  output pll_bypass;
  output pll_dco_ena;
  output [4:0] pll_div;
  output [2:0] pll_sel;
  output [25:0] pll_trim;
  output [7:0] prod_id;
  output reg_ena;
  output reset;
  output sdo_enb;
  input trap;
  output xtal_ena;
endmodule

module striVe_soc (pll_clk,
    ext_clk,
    ext_clk_sel,
    clk,
    resetn,
    adc0_ena,
    adc0_convert,
    adc0_done,
    adc0_clk,
    adc1_ena,
    adc1_convert,
    adc1_clk,
    adc1_done,
    dac_ena,
    analog_out_sel,
    opamp_ena,
    opamp_bias_ena,
    bg_ena,
    comp_ena,
    rcosc_ena,
    overtemp_ena,
    overtemp,
    rcosc_in,
    xtal_in,
    comp_in,
    spi_sck,
    spi_ro_xtal_ena,
    spi_ro_reg_ena,
    spi_ro_pll_dco_ena,
    ser_tx,
    ser_rx,
    irq_pin,
    irq_spi,
    trap,
    flash_csb,
    flash_clk,
    flash_csb_oeb,
    flash_clk_oeb,
    flash_io0_oeb,
    flash_io1_oeb,
    flash_io2_oeb,
    flash_io3_oeb,
    flash_csb_ieb,
    flash_clk_ieb,
    flash_io0_ieb,
    flash_io1_ieb,
    flash_io2_ieb,
    flash_io3_ieb,
    flash_io0_do,
    flash_io1_do,
    flash_io2_do,
    flash_io3_do,
    flash_io0_di,
    flash_io1_di,
    flash_io2_di,
    flash_io3_di,
    adc0_data,
    adc0_inputsrc,
    adc1_data,
    adc1_inputsrc,
    comp_ninputsrc,
    comp_pinputsrc,
    dac_value,
    gpio_in_pad,
    gpio_inenb_pad,
    gpio_mode0_pad,
    gpio_mode1_pad,
    gpio_out_pad,
    gpio_outenb_pad,
    spi_ro_config,
    spi_ro_mask_rev,
    spi_ro_mfgr_id,
    spi_ro_pll_div,
    spi_ro_pll_sel,
    spi_ro_pll_trim,
    spi_ro_prod_id);
 input pll_clk;
 input ext_clk;
 input ext_clk_sel;
 input clk;
 input resetn;
 output adc0_ena;
 output adc0_convert;
 input adc0_done;
 output adc0_clk;
 output adc1_ena;
 output adc1_convert;
 output adc1_clk;
 input adc1_done;
 output dac_ena;
 output analog_out_sel;
 output opamp_ena;
 output opamp_bias_ena;
 output bg_ena;
 output comp_ena;
 output rcosc_ena;
 output overtemp_ena;
 input overtemp;
 input rcosc_in;
 input xtal_in;
 input comp_in;
 input spi_sck;
 input spi_ro_xtal_ena;
 input spi_ro_reg_ena;
 input spi_ro_pll_dco_ena;
 output ser_tx;
 input ser_rx;
 input irq_pin;
 input irq_spi;
 output trap;
 output flash_csb;
 output flash_clk;
 output flash_csb_oeb;
 output flash_clk_oeb;
 output flash_io0_oeb;
 output flash_io1_oeb;
 output flash_io2_oeb;
 output flash_io3_oeb;
 output flash_csb_ieb;
 output flash_clk_ieb;
 output flash_io0_ieb;
 output flash_io1_ieb;
 output flash_io2_ieb;
 output flash_io3_ieb;
 output flash_io0_do;
 output flash_io1_do;
 output flash_io2_do;
 output flash_io3_do;
 input flash_io0_di;
 input flash_io1_di;
 input flash_io2_di;
 input flash_io3_di;
 input [9:0] adc0_data;
 output [1:0] adc0_inputsrc;
 input [9:0] adc1_data;
 output [1:0] adc1_inputsrc;
 output [1:0] comp_ninputsrc;
 output [1:0] comp_pinputsrc;
 output [9:0] dac_value;
 input [15:0] gpio_in_pad;
 output [15:0] gpio_inenb_pad;
 output [15:0] gpio_mode0_pad;
 output [15:0] gpio_mode1_pad;
 output [15:0] gpio_out_pad;
 output [15:0] gpio_outenb_pad;
 input [7:0] spi_ro_config;
 input [3:0] spi_ro_mask_rev;
 input [11:0] spi_ro_mfgr_id;
 input [4:0] spi_ro_pll_div;
 input [2:0] spi_ro_pll_sel;
 input [25:0] spi_ro_pll_trim;
 input [7:0] spi_ro_prod_id;
endmodule

module lvlshiftdown (vpwr, vpb, vnb, vgnd, A, X);
 input vpwr;
 input vpb;
 input vnb;
 input vgnd;
 input A;
 output X;
endmodule


//-----------------------------------------------------------------------
// Verilog stub entries for standard power pads (s8 power pads + overlays)
// Also includes stub entries for the corner and fill cells
// Also includes the custom gpiov2 cell (adds m5 on buses), which is a wrapper
// for the s8 gpiov2 cell.
//
// This file is distributed as open source under the Apache 2.0 license
// Copyright 2019 efabless, Inc.
// Written by Tim Edwards 
//-----------------------------------------------------------------------

module s8iom0_vccd_hvc_pad (amuxbus_a, amuxbus_b, drn_hvc, ogc_hvc,
	src_bdy_hvc,vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
	vssio, vssd, vssio_q
);
  inout amuxbus_a;
  inout amuxbus_b;

  inout ogc_hvc;
  inout drn_hvc;
  inout src_bdy_hvc;
  inout vddio;	
  inout vddio_q;	
  inout vdda;
  inout vccd;
  inout vswitch;
  inout vcchib;
  inout vssa;
  inout vssd;
  inout vssio_q;
  inout vssio;

endmodule

module s8iom0_vccd_lvc_pad (amuxbus_a, amuxbus_b,
	drn_lvc1, drn_lvc2, src_bdy_lvc1, src_bdy_lvc2, bdy2_b2b, ogc_lvc,
	vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
	vssio, vssd, vssio_q
);
  inout amuxbus_a;
  inout amuxbus_b;

  inout drn_lvc1;
  inout drn_lvc2;
  inout src_bdy_lvc1;
  inout src_bdy_lvc2;
  inout bdy2_b2b;
  inout	ogc_lvc;
  inout vddio;	
  inout vddio_q;	
  inout vdda;
  inout vccd;
  inout vswitch;
  inout vcchib;
  inout vssa;
  inout vssd;
  inout vssio_q;
  inout vssio;

endmodule

module s8iom0_vdda_lvc_pad (amuxbus_a, amuxbus_b,
	drn_lvc1, drn_lvc2, src_bdy_lvc1, src_bdy_lvc2, bdy2_b2b, ogc_lvc,
	vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
	vssio, vssd, vssio_q
);
  inout amuxbus_a;
  inout amuxbus_b;

  inout drn_lvc1;
  inout drn_lvc2;
  inout src_bdy_lvc1;
  inout src_bdy_lvc2;
  inout bdy2_b2b;
  inout	ogc_lvc;
  inout vddio;	
  inout vddio_q;	
  inout vdda;
  inout vccd;
  inout vswitch;
  inout vcchib;
  inout vssa;
  inout vssd;
  inout vssio_q;
  inout vssio;

endmodule

module s8iom0_vdda_hvc_pad (amuxbus_a, amuxbus_b, drn_hvc, ogc_hvc,
	src_bdy_hvc,vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
	vssio, vssd, vssio_q
);
  inout amuxbus_a;
  inout amuxbus_b;

  inout ogc_hvc;
  inout drn_hvc;
  inout src_bdy_hvc;
  inout vddio;	
  inout vddio_q;	
  inout vdda;
  inout vccd;
  inout vswitch;
  inout vcchib;
  inout vssa;
  inout vssd;
  inout vssio_q;
  inout vssio;

endmodule

module s8iom0_vddio_lvc_pad (amuxbus_a, amuxbus_b,
	drn_lvc1, drn_lvc2, src_bdy_lvc1, src_bdy_lvc2, bdy2_b2b, ogc_lvc,
	vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
	vssio, vssd, vssio_q
);
  inout amuxbus_a;
  inout amuxbus_b;

  inout drn_lvc1;
  inout drn_lvc2;
  inout src_bdy_lvc1;
  inout src_bdy_lvc2;
  inout bdy2_b2b;
  inout	ogc_lvc;
  inout vddio;	
  inout vddio_q;	
  inout vdda;
  inout vccd;
  inout vswitch;
  inout vcchib;
  inout vssa;
  inout vssd;
  inout vssio_q;
  inout vssio;

endmodule

module s8iom0_vddio_hvc_pad (amuxbus_a, amuxbus_b, drn_hvc, ogc_hvc,
	src_bdy_hvc,vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
	vssio, vssd, vssio_q
);
  inout amuxbus_a;
  inout amuxbus_b;

  inout ogc_hvc;
  inout drn_hvc;
  inout src_bdy_hvc;
  inout vddio;	
  inout vddio_q;	
  inout vdda;
  inout vccd;
  inout vswitch;
  inout vcchib;
  inout vssa;
  inout vssd;
  inout vssio_q;
  inout vssio;

endmodule

module s8iom0_vssd_lvc_pad (amuxbus_a, amuxbus_b,
	drn_lvc1, drn_lvc2, src_bdy_lvc1, src_bdy_lvc2, bdy2_b2b, ogc_lvc,
	vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
	vssio, vssd, vssio_q
);
  inout amuxbus_a;
  inout amuxbus_b;

  inout drn_lvc1;
  inout drn_lvc2;
  inout src_bdy_lvc1;
  inout src_bdy_lvc2;
  inout bdy2_b2b;
  inout	ogc_lvc;
  inout vddio;	
  inout vddio_q;	
  inout vdda;
  inout vccd;
  inout vswitch;
  inout vcchib;
  inout vssa;
  inout vssd;
  inout vssio_q;
  inout vssio;

endmodule

module s8iom0_vssd_hvc_pad (amuxbus_a, amuxbus_b, drn_hvc, ogc_hvc,
	src_bdy_hvc,vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
	vssio, vssd, vssio_q
);
  inout amuxbus_a;
  inout amuxbus_b;

  inout ogc_hvc;
  inout drn_hvc;
  inout src_bdy_hvc;
  inout vddio;	
  inout vddio_q;	
  inout vdda;
  inout vccd;
  inout vswitch;
  inout vcchib;
  inout vssa;
  inout vssd;
  inout vssio_q;
  inout vssio;

endmodule

module s8iom0_vssio_lvc_pad (amuxbus_a, amuxbus_b,
	drn_lvc1, drn_lvc2, src_bdy_lvc1, src_bdy_lvc2, bdy2_b2b, ogc_lvc,
	vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
	vssio, vssd, vssio_q
);
  inout amuxbus_a;
  inout amuxbus_b;

  inout drn_lvc1;
  inout drn_lvc2;
  inout src_bdy_lvc1;
  inout src_bdy_lvc2;
  inout bdy2_b2b;
  inout	ogc_lvc;
  inout vddio;	
  inout vddio_q;	
  inout vdda;
  inout vccd;
  inout vswitch;
  inout vcchib;
  inout vssa;
  inout vssd;
  inout vssio_q;
  inout vssio;

endmodule


module s8iom0_vssio_hvc_pad (amuxbus_a, amuxbus_b, drn_hvc, ogc_hvc,
	src_bdy_hvc,vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
	vssio, vssd, vssio_q
);
  inout amuxbus_a;
  inout amuxbus_b;

  inout ogc_hvc;
  inout drn_hvc;
  inout src_bdy_hvc;
  inout vddio;	
  inout vddio_q;	
  inout vdda;
  inout vccd;
  inout vswitch;
  inout vcchib;
  inout vssa;
  inout vssd;
  inout vssio_q;
  inout vssio;

endmodule

module s8iom0_vssa_lvc_pad (amuxbus_a, amuxbus_b,
	drn_lvc1, drn_lvc2, src_bdy_lvc1, src_bdy_lvc2, bdy2_b2b, ogc_lvc,
	vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
	vssio, vssd, vssio_q
);
  inout amuxbus_a;
  inout amuxbus_b;

  inout drn_lvc1;
  inout drn_lvc2;
  inout src_bdy_lvc1;
  inout src_bdy_lvc2;
  inout bdy2_b2b;
  inout	ogc_lvc;
  inout vddio;	
  inout vddio_q;	
  inout vdda;
  inout vccd;
  inout vswitch;
  inout vcchib;
  inout vssa;
  inout vssd;
  inout vssio_q;
  inout vssio;

endmodule

module s8iom0_vssa_hvc_pad (amuxbus_a, amuxbus_b, drn_hvc, ogc_hvc,
	src_bdy_hvc,vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
	vssio, vssd, vssio_q
);
  inout amuxbus_a;
  inout amuxbus_b;

  inout ogc_hvc;
  inout drn_hvc;
  inout src_bdy_hvc;
  inout vddio;	
  inout vddio_q;	
  inout vdda;
  inout vccd;
  inout vswitch;
  inout vcchib;
  inout vssa;
  inout vssd;
  inout vssio_q;
  inout vssio;

endmodule

module s8iom0_corner_pad (amuxbus_a, amuxbus_b, 
	vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
	vssio, vssd, vssio_q
);
  inout amuxbus_a;
  inout amuxbus_b;

  inout vddio;	
  inout vddio_q;	
  inout vdda;
  inout vccd;
  inout vswitch;
  inout vcchib;
  inout vssa;
  inout vssd;
  inout vssio_q;
  inout vssio;

endmodule

module s8iom0s8_com_bus_slice (amuxbus_a, amuxbus_b,
	vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
	vssio, vssd, vssio_q
);
  inout amuxbus_a;
  inout amuxbus_b;

  inout vddio;	
  inout vddio_q;	
  inout vdda;
  inout vccd;
  inout vswitch;
  inout vcchib;
  inout vssa;
  inout vssd;
  inout vssio_q;
  inout vssio;

endmodule

module s8iom0s8_com_bus_slice_1um (amuxbus_a, amuxbus_b,
	ogc_hvc, drn_hvc, src_bdy_hvc,
	vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
	vssio, vssd, vssio_q
);
  inout amuxbus_a;
  inout amuxbus_b;

  inout ogc_hvc;
  inout drn_hvc;
  inout src_bdy_hvc;
  inout vddio;	
  inout vddio_q;	
  inout vdda;
  inout vccd;
  inout vswitch;
  inout vcchib;
  inout vssa;
  inout vssd;
  inout vssio_q;
  inout vssio;

endmodule

module s8iom0_gpiov2_pad (in_h, pad_a_noesd_h, pad_a_esd_0_h, pad_a_esd_1_h,
    pad, dm, hld_h_n, in, inp_dis, ib_mode_sel, enable_h, enable_vdda_h,
    enable_inp_h, oe_n, tie_hi_esd, tie_lo_esd, slow, vtrip_sel, hld_ovr,
    analog_en, analog_sel, enable_vddio, enable_vswitch_h, analog_pol, out,
    amuxbus_a, amuxbus_b,vssa, vdda, vswitch, vddio_q, vcchib, vddio, vccd,
    vssio, vssd, vssio_q 
    );

input out;  		
input oe_n;  		
input hld_h_n;		
input enable_h;
input enable_inp_h;	
input enable_vdda_h;	
input enable_vswitch_h;	
input enable_vddio;	
input inp_dis;		
input ib_mode_sel;
input vtrip_sel;	
input slow;		
input hld_ovr;		
input analog_en;	
input analog_sel;	
input analog_pol;	
input [2:0] dm;		

	inout vddio;	
	inout vddio_q;	
	inout vdda;
	inout vccd;
	inout vswitch;
	inout vcchib;
	inout vssa;
	inout vssd;
	inout vssio_q;
	inout vssio;

inout pad;
inout pad_a_noesd_h,pad_a_esd_0_h,pad_a_esd_1_h;
inout amuxbus_a;
inout amuxbus_b;

output in;
output in_h;
output tie_hi_esd, tie_lo_esd;

endmodule


module s8iom0s8_top_gpio_ovtv2 ( in, in_h, tie_hi_esd, tie_lo_esd, amuxbus_a,
    amuxbus_b, pad, pad_a_esd_0_h, pad_a_esd_1_h, pad_a_noesd_h, 
    vccd, vcchib,vdda, vddio, vddio_q, vssa, vssd, vssio, vssio_q, vswitch, 
    analog_en, analog_pol, analog_sel, dm, enable_h, enable_inp_h, enable_vdda_h, enable_vddio, enable_vswitch_h, hld_h_n,
    hld_ovr, ib_mode_sel, inp_dis, oe_n, out, slow, slew_ctl, vtrip_sel, hys_trim, vinref );

   
input out;  		
input oe_n;  		
input hld_h_n;		
input enable_h;
input enable_inp_h;	
input enable_vdda_h;	
input enable_vddio;	
input enable_vswitch_h;	
input inp_dis;		
input vtrip_sel;	
input hys_trim;
input slow;
input [1:0] slew_ctl;		
input hld_ovr;		
input analog_en;	
input analog_sel;	
input analog_pol;	
input [2:0] dm;		
input [1:0] ib_mode_sel;
input vinref;


	inout vddio;	
	inout vddio_q;	
	inout vdda;
	inout vccd;
	inout vswitch;
	inout vcchib;
	inout vssa;
	inout vssd;
	inout vssio_q;
	inout vssio;

inout pad;
inout pad_a_noesd_h,pad_a_esd_0_h,pad_a_esd_1_h;
inout amuxbus_a;
inout amuxbus_b;

output in;
output in_h;
output tie_hi_esd, tie_lo_esd;

endmodule


module s8iom0s8_top_xres4v2 ( tie_weak_hi_h,  xres_h_n, tie_hi_esd, tie_lo_esd,
    amuxbus_a, amuxbus_b, pad, pad_a_esd_h, enable_h, en_vddio_sig_h, inp_sel_h, filt_in_h,
    disable_pullup_h, pullup_h, enable_vddio
    ,vccd, vcchib, vdda, vddio,vddio_q, vssa, vssd, vssio, vssio_q, vswitch
     );

    output xres_h_n;
    inout amuxbus_a;
    inout amuxbus_b;
    inout pad;
    input disable_pullup_h;
    input enable_h; 
    input en_vddio_sig_h; 
    input inp_sel_h; 
    input filt_in_h;
    inout pullup_h;
    input enable_vddio;
    
    input vccd;
    input vcchib;
    input vdda;
    input vddio;
    input vddio_q;
    input vssa;
    input vssd;
    input vssio;
    input vssio_q;
    input vswitch;
    
    
    
    inout pad_a_esd_h;
    output tie_hi_esd;
    output tie_lo_esd;
    inout tie_weak_hi_h;
endmodule


module scs8hd_conb_1(output HI, output LO);
endmodule
