Engee documentation

Charge Pump

The output current is proportional to the difference in the fill coefficients between the two input ports.

blockType: SubSystem

Path in the library:

/Mixed-Signal/PLL/Building Blocks/Charge Pump

Description

Block Charge Pump generates an output current proportional to the difference in the fill coefficients between the signals on its input ports up and down. In the phase frequency auto-tuning (PLL) system, the block Charge Pump converts the phase error represented by the two outputs of the unit PFD, into the single-pole current at the input of the Loop Filter unit.

Ports

Output

# out — Output port
scalar

Details

The output port connected to the Loop Filter unit in the PLL system. The out port outputs a current proportional to the difference in fill factors between the input ports up and down.

Data types

Float64

Complex numbers support

I don’t

Input

# up — Input port
scalar

Details

The input port connected to the up port of the unit PFD in the PLL system.

Data types

Float64

Complex numbers support

I don’t

# down — Input port
scalar

Details

The input port connected to the down port of the block PFD in the PLL system.

Data types

Float64

Complex numbers support

I don’t

Parameters

Configuration

# Output Current (A) — estimated output current

Details

The total value of the calculated output current, set as a positive real scalar in amperes.

program usage

  • Use get_param(gcb,"OutputCurrent") to view the current parameter value Output Current (A).

  • Use set_param(gcb,"OutputCurrent",value) to set for the parameter Output Current (A) a certain value.

Default value

1.0e-3

Program usage name

OutputCurrent

Tunable

No

Evaluatable

Yes

# Input Threshold (V) — threshold for logical switching on input ports

Details

The threshold of logical switching on the input ports, set as a scalar in volts.

program usage

  • Use get_param(gcb,"InputThreshold") to view the current parameter value Input Threshold (V).

  • Use set_param(gcb,"InputThreshold",value) to set for the parameter Input Threshold (V) a certain value.

Default value

0.5

Program usage name

InputThreshold

Tunable

No

Evaluatable

Yes

# Enable increased buffer size — enabling buffer size increase

Details

Select this option to enable buffer size increase during simulation. This will increase the size of the block buffer. Logic Decision and Slew Rate inside the block Charge Pump. The checkbox is unchecked by default.

Default value

false (switched off)

Program usage name

ExtraBuffer

Tunable

No

Evaluatable

Yes

# Buffer size — the number of input buffer samples available during the simulation

Details

The number of input buffer samples available during the simulation, set as a positive integer scalar. This parameter sets the size of the block buffer Logic Decision and Slew Rate inside the block Charge Pump.

Choosing different simulation solvers or sampling strategies can change the number of input samples needed to obtain an accurate output sample. Set for the parameter Buffer size The value is large enough for the input buffer to contain all the necessary input samples.

Dependencies

To use this option, check the box Enable increased buffer size on the tab Configuration.

program usage

  • Use get_param(gcb,"NBuffer") to view the current parameter value Buffer size.

  • Use set_param(gcb,"NBuffer",value) to set for the parameter Buffer size a certain value.

Default value

1000

Program usage name

NBuffer

Tunable

No

Evaluatable

Yes

Current impairments

# Enable current impairments — adding current degradation to the simulation

Details

Check this box to add current impairments such as current imbalance and leakage current to the simulation. The checkbox is checked by default.

Default value

true (switched on)

Program usage name

EnableCurrentImpairments

Tunable

No

Evaluatable

Yes

# Current imbalance — the difference between positive and negative current in the full range

Details

The difference between the positive and negative current in the full range, given as a positive real scalar in amperes.

Dependencies

To use this option, check the box Enable current impairments on the tab Impairments.

program usage

  • Use get_param(gcb,"CurrentImbalance") to view the current parameter value Current imbalance.

  • Use set_param(gcb,"CurrentImbalance",value) to set for the parameter Current imbalance a certain value.

Default value

1.0e-7

Program usage name

CurrentImbalance

Tunable

No

Evaluatable

Yes

# Leakage current — output current without input signal

Details

The output current, when both inputs are equal to logical zero, is set as a non-negative real scalar in amperes.

Dependencies

To use this option, check the box Enable current impairments on the tab Impairments.

program usage

  • Use get_param(gcb,"LeakageCurrent") to view the current parameter value Leakage current.

  • Use set_param(gcb,"LeakageCurrent",value) to set for the parameter Leakage current a certain value.

Default value

1.0e-8

Program usage name

LeakageCurrent

Tunable

No

Evaluatable

Yes

Timing impairmens

# Enable timing impairments — adding temporary impairments to the simulation

Details

Check this box to add temporary impairments to the simulation, such as rise/fall time and propagation delay. The checkbox is checked by default.

Default value

true (switched on)

Program usage name

EnableTimingImpairments

Tunable

No

Evaluatable

Yes

# Output step size calculation — determining the method of calculating the output signal step
Default | Advanced

Details

Determining the method of calculating the output signal step:

  • Default — calculate the step size of the output signal based on the rise/fall time; the step size of the output signal is determined by the formula

  • Advanced — calculate the step size of the output signal based on the maximum frequency of interest; the step size of the output signal is determined by the formula

Dependencies

To use this option, check the box Enable timing impairments on the tab Impairments.

Values

Default | Advanced

Default value

Default

Program usage name

DefaultOrAdvanced

Tunable

No

Evaluatable

Yes

# Maximum frequency of interest (Hz) — maximum output frequency of interest

Details

The maximum output frequency of interest, set as a positive real scalar in Hz.

Dependencies

To use this option, check the box Enable timing impairments on the tab Impairments and set for the parameter Output step size calculation meaning Advanced.

program usage

  • Use get_param(gcb,"MaxFreqInterest") to view the current parameter value Maximum frequency of interest (Hz).

  • Use set_param(gcb,"MaxFreqInterest",value) to set for the parameter Maximum frequency of interest (Hz) a certain value.

Default value

1.0e10

Program usage name

MaxFreqInterest

Tunable

No

Evaluatable

Yes

# Up rise/fall time (s) — rise/fall time 20%–80% for the input port up

Details

Rise/fall time 20%–80% for the input port up, set as a positive real scalar in seconds.

Dependencies

To use this option, check the box Enable timing impairments on the tab Impairments.

program usage

  • Use get_param(gcb,"RiseFallUp") to view the current parameter value Up rise/fall time (s).

  • Use set_param(gcb,"RiseFallUp",value) to set for the parameter Up rise/fall time (s) a certain value.

Default value

5.0e-9

Program usage name

RiseFallUp

Tunable

No

Evaluatable

Yes

# Up propagation delay — total signal propagation delay for the input port up

Details

The total signal propagation delay for the input port up, given as a positive real scalar in seconds.

Dependencies

To use this option, check the box Enable timing impairments on the tab Impairments.

program usage

  • Use get_param(gcb,"PropDelayUp") to view the current parameter value Up propagation delay.

  • Use set_param(gcb,"PropDelayUp",value) to set for the parameter Up propagation delay a certain value.

Default value

6.0e-9

Program usage name

PropDelayUp

Tunable

No

Evaluatable

Yes

# Down rise/fall time (s) — rise/fall time 20%–80% for the input port down

Details

Rise/fall time 20%–80% for the input port down, set as a positive real scalar in seconds.

Dependencies

To use this option, check the box Enable timing impairments on the tab Impairments.

program usage

  • Use get_param(gcb,"RiseFallDown") to view the current parameter value Down rise/fall time (s).

  • Use set_param(gcb,"RiseFallDown",value) to set for the parameter Down rise/fall time (s) a certain value.

Default value

2.0e-9

Program usage name

RiseFallDown

Tunable

No

Evaluatable

Yes

# Down propagation delay — total signal propagation delay for input port down

Details

The total signal propagation delay for the input port is down, specified as a positive real scalar in seconds.

Dependencies

To use this option, check the box Enable timing impairments on the tab Impairments.

program usage

  • Use get_param(gcb,"PropDelayDown") to view the current parameter value Down propagation delay.

  • Use set_param(gcb,"PropDelayDown",value) to set for the parameter Down propagation delay a certain value.

Default value

4.0e-9

Program usage name

PropDelayDown

Tunable

No

Evaluatable

Yes

Additional Info

Inside the block Charge Pump

Details

Block Charge Pump converts two block outputs PFD one way out. It consists of two currents: one "up" and one "down". The difference between these two currents is summed up with the deterioration of the leakage current if this option is enabled.

Each branch of the current consists of a block Logic Decision, the degradation subsystem and the gain unit. Block Logic Decision compares the incoming signal with the value of the parameter Input Threshold (V). The degradation subsystem takes into account the impact of the degradation caused by the block Charge Pump. The gain unit multiplies the output signal of the degradation subsystem to obtain the current level defined in the parameter Output Current (A).

Literature

  1. Banerjee, Dean. PLL Performance, Simulation and Design. Indianapolis, IN: Dog Ear Publishing, 2006.

  2. Gardner, Floyd M. Phaselock Techniques. Hoboken, NJ: John Wiley & Sons, Inc. 2005.