Exemplo n.º 1
0
    def get_netlist_info(self) -> SimNetlistInfo:
        dc_dict = dict(type='DC')
        sp_dict = dict(type='SP',
                       freq=self.specs['sp_freq'],
                       ports=['PORTG', 'PORTD', 'PORTS'],
                       param_type='Y')

        sim_setup = self.get_netlist_info_dict()
        sim_setup['analyses'] = [dc_dict, sp_dict]
        return netlist_info_from_dict(sim_setup)
Exemplo n.º 2
0
    def get_netlist_info(self) -> SimNetlistInfo:
        specs = self.specs
        pnoise_options: Mapping[str, Any] = specs.get('pnoise_options', {})
        trigger_dir = pnoise_options.get('trigger_dir', 'rise')
        probe_thres = pnoise_options.get('probe_thres', 'v_VDD/2')
        probe_pin = pnoise_options.get('probe_pins', '[outp outn]')
        pnoise_options['events']['pm'] += f' trigger={probe_pin} target={probe_pin} triggerthresh={probe_thres} ' \
                                          f'triggerdir={trigger_dir}'
        pss_dict = dict(
            type='PSS',
            fund='1/t_per',
            options=dict(
                harms=pnoise_options.get('harms', 100),
                errpreset=pnoise_options.get('errpreset', 'conservative'),
                tstab=pnoise_options.get('tstab', 0),
                autosteady=pnoise_options.get('autosteady', 'yes'),
                maxacfreq=1e10,
            ),
            save_outputs=self.save_outputs,
        )
        pnoise_dict = dict(
            type='PNOISE',
            start=1,
            stop='0.5/t_per',
            options=dict(
                pnoisemethod=pnoise_options.get('pnoisemethod', 'fullspectrum'),
                noisetype=pnoise_options.get('noisetype', 'sampled'),
                saveallsidebands='yes',
                lorentzian='yes',
            ),
            events=pnoise_options['events'],
            save_outputs=self.save_outputs,
        )
        pac_dict = dict(
            type='PAC',
            p_port=pnoise_options.get('p_port', 'outp'),
            n_port=pnoise_options.get('n_port', 'outn'),
            start=pnoise_options.get('ac_start', 1),
            stop=pnoise_options.get('ac_stop', 100e9),
            options=dict(
                crossingdirection=trigger_dir,
                thresholdvalue=probe_thres,
                maxsideband=0,
                sweeptype='relative',
                ptvtype='sampled'
            ),
            save_outputs=self.save_outputs,
        )

        sim_setup = self.get_netlist_info_dict()
        sim_setup['analyses'] = [pss_dict, pnoise_dict, pac_dict]
        return netlist_info_from_dict(sim_setup)
Exemplo n.º 3
0
    def get_netlist_info(self) -> SimNetlistInfo:
        sweep_var: str = self.specs.get('sweep_var', 'freq')
        sweep_options: Mapping[str, Any] = self.specs['sweep_options']
        ac_options: Mapping[str, Any] = self.specs.get('ac_options', {})
        save_outputs: Sequence[str] = self.specs.get('save_outputs', ['plus', 'minus'])
        ac_dict = dict(type='AC',
                       param=sweep_var,
                       sweep=sweep_options,
                       options=ac_options,
                       save_outputs=save_outputs,
                       )

        sim_setup = self.get_netlist_info_dict()
        sim_setup['analyses'] = [ac_dict]
        return netlist_info_from_dict(sim_setup)
Exemplo n.º 4
0
    def get_netlist_info(self) -> SimNetlistInfo:
        specs = self.specs
        t_step: Optional[float] = specs.get('t_step', None)
        tran_options: Mapping[str, Any] = specs.get('tran_options', {})

        tran_dict = dict(
            type='TRAN',
            start=0.0,
            stop='t_sim',
            options=tran_options,
            save_outputs=self.save_outputs,
        )
        if t_step is not None:
            tran_dict['strobe'] = t_step

        sim_setup = self.get_netlist_info_dict()
        sim_setup['analyses'] = [tran_dict]
        return netlist_info_from_dict(sim_setup)
Exemplo n.º 5
0
    def get_netlist_info(self) -> SimNetlistInfo:
        specs = self.specs
        sweep_var: str = specs['sweep_var']
        sweep_options: Mapping[str, Any] = specs['sweep_options']
        dc_options: Mapping[str, Any] = specs.get('dc_options', {})
        save_outputs: Sequence[str] = specs.get('save_outputs', [])

        dc_dict = dict(
            type='DC',
            param=sweep_var,
            sweep=sweep_options,
            options=dc_options,
            save_outputs=save_outputs,
        )

        sim_setup = self.get_netlist_info_dict()
        sim_setup['analyses'] = [dc_dict]
        return netlist_info_from_dict(sim_setup)
Exemplo n.º 6
0
    def get_netlist_info(self) -> SimNetlistInfo:
        dc_dict = dict(type='DC')

        sim_setup = self.get_netlist_info_dict()
        sim_setup['analyses'] = [dc_dict]
        return netlist_info_from_dict(sim_setup)