Analog Buffer


Speed Key Names: abuffer, abuf

Signal name and type

Description

Digital input: <enable>

Enables the <ain#> inputs to propagate to the corresponding <aout#> outputs on the rising edge of the enable line, as follows:

Analog signals (2-Series and X-Series)

All analog values will propagate to the outputs on the rising edge of the enable line. When the enable line goes low all outputs remain at their last value, forming a sample and hold.

When the enable line goes high again, it forces the buffer to re-propagate the values from input to output, from the top of the buffer to the bottom of the buffer.

For example, given the following signals:

<ain1> = SIG1

<ain2> = SIG2

<ain3> = SIG3

<aout1> = SIG1-o

<aout2> = SIG2-o

<aout3> = SIG3-o

On the rising edge of <enable>, first SIG1-o takes on the state of SIG1. Then, SIG2-o takes on the state of SIG2. Finally, SIG3-o takes on the state of SIG3.

Serial signals (2-Series)

All serial signals tied to a Make String Permanent symbol or implied permanent (such as from a Telephone Dialing Keypad) will propagate on the rising edge of <enable>. Strings that are transient will not propagate to the output.

Serial signals (X-Series)

All serial signals (permanent or transient) will propagate to the outputs on the rising edge of <enable>.

If the input string is transient, this will usually propagate an empty string, but it's possible that the contents or partial contents of previous data will be issued on the string.

For some symbols that have storage beyond the scope of a logic solution, such as a Telephone Dialing Keypad, the string will be propagated just as it appears on the output of the symbol.

High/1 (rising edge) = Propagate inputs to outputs; Low/0 = Sample and hold

Analog or serial inputs: <ain1> through <ain4000>

The analog value or serial string that will be propagated to the corresponding output on the rising edge of <enable>.

The Analog Buffer can be used with both analog and serial strings. Every input must have a corresponding output, and each input/output pair is independent of other input/output pairs. However, the input type must match the output type. That is, a serial input must have a corresponding serial output; similarly, an analog input must be paired with an analog output.

Analog signals (2-Series and X-Series)

Sets the analog value that will be propagated to the corresponding output with each rising edge of <enable>. If the input/output pair contains the same analog value, the analog input will still be propagated.

If an analog input changes value or is re-propagated while <enable> is high, the value will only be propagated to the corresponding output if the output has a different value.

For example, given the following signals:

SIG1 = 25d

SIG1-o = 25d

If SIG1 has 25d re-propagated while <enable> is high (for example, by re-triggering an Analog Initialize (INIT) that had 25d as a parameter), SIG1-o will NOT re-propagate the value  of 25d. If an Serial/Analog One Shot symbol (SMV) were driven by SIG1-o, the output of the SMV would NOT pulse.

Serial signals (2-Series)

The string that will be propagated to the corresponding serial output on the rising edge of <enable>, only if the string is tied to a Make String Permanent symbol, or if it is implied permanent (such as from a Telephone Dialing Keypad). Strings that are transient will not propagate to the output.

If the string changes value or is re-propagated while <enable> is high (for example, by re-triggering a Serial Send symbol) the string will always propagate to the output. If an Serial/Analog One Shot (SMV) were driven by the output string of the buffer, it would pulse in both cases.

Serial signals (X-Series)

The string (permanent or transient) that will be propagated to the corresponding output on the rising edge of <enable>.

If the input string is transient, this will usually propagate an empty string, but it's possible that the contents or partial contents of previous data will be issued on the string.

For some symbols that have storage beyond the scope of a logic solution, such as a Telephone Dialing Keypad, the string will be propagated just as it appears on the output of the symbol.

If the input string is re-propagated while <enable> is high (for example, by re-triggering a Serial Send symbol), the output string will NOT be re-propagated. If a Serial/Analog One Shot (SMV) were driven by the output string of the buffer, it would NOT pulse.

If the string changes value while <enable> is high the string will propagate to the output. If a Serial/Analog One Shot (SMV) were driven by the output string of the buffer, it would pulse.

To propagate serial data, the Serial Buffer symbol can be used as an alternative to the Analog Buffer.

Analog or serial outputs: <aout1> through <aout4000>

Propagates the value of the corresponding input with each rising edge of <enable>.

When the enable line goes low the output remains at the last value, forming a sample and hold.

Analog signals (2-Series)

If multiple analog inputs are issued in the same logic wave when <enable> is high, and the corresponding outputs are jammed together (meaning that they're using the same signal name), the outputs will take on each of the values in order.

For example, an Analog Initialize drives 2 analog inputs of the Analog Buffer, with one analog input being set to 25d and the other being set to 36d. The corresponding analog outputs have the same signal name. The analog outputs will first take on the value of 25d and then take on the value of 36d.

Analog signals (X-Series and earlier)

If multiple analog inputs are issued in the same logic wave when <enable> is high, and the corresponding outputs are jammed together (meaning that they're using the same signal name), only the last value issued will be propagated to the output signal.

For example, an Analog Initialize drives 2 analog inputs of an Analog Buffer, with one analog input being set to 25d and the other being set to 36d.  The corresponding analog outputs have the same signal name. The analog output will have the value 36d re-propagated onto it each time the Analog Initialize triggers. Even if the output signal has the same value as the final input signal it will still be re-propagated.

Serial signals (2-Series)

If multiple serial inputs are issued in the same logic wave when <enable> is high, and the corresponding outputs are jammed together (meaning that they're using the same signal name), the output strings will be issued on successive logic solutions. This is the same as giving each output a unique name and routing them to a Serial Concatenation symbol.

Serial signals (X-Series and earlier)

If multiple serial inputs are issued in the same logic wave when <enable> is high, and the corresponding outputs are jammed together (meaning that they're using the same signal name), only the last value issued will be propagated to the output signal.

Thus to preserve all values, each output of the Serial Buffer should have a unique name, and then routed to the input of the Serial Concatenation symbol.

To propagate serial data, the Serial Buffer symbol can be used as an alternative to the Analog Buffer.

See also Buffer, Serial Buffer, Analog Scaling Buffer, Make String Permanent