Edge Detection

Description of the Edge Detection components in Schematic Editor, which detects rising, falling, or both rising and falling edges of its input signal.

Component Icon

Figure 1. Edge detection icon

Description

The Edge Detection component detects rising, falling or both rising and falling edges of the input signal.

When the edge is detected, the output is set to value 1 for the duration of one simulation step.

The Edge Detection component is realized as a composite component comprised of Unit Delay and Relation Operation components, as represented in Figure 2

Figure 2. Implementation of the Edge Detection component: (a) for both edges, (b) for the rising edge, (c) for the falling edge.

The new signal value is compared to the value from the previous simulation cycle, and if the Relation Operation component detects the difference, the output is set to 1. Figure 3 illustrates the behavior of the Edge Detection component for an arbitrary input signal with each type of edge detection (rising, falling, and both)

Figure 3. Output of the Edge Detection component for each type of edge detection.

Ports

  • Input terminal
    • Supported types: uint, int and real.
    • Vector support: yes.
  • Output terminal
    • Supported types: uint, int and real.
      • The output type is inherited from the input signal.
    • Vector support: yes.
      • The vector length is inherited from the input signal.

Properties

  • Detect edge
    • Select which signal edge to detect. There are three available configurations: rising, falling, and both.
  • Execution rate
    • Type in the desired signal processing execution rate. This value must be compatible with other signal processing components of the same circuit: the value must be a multiple of the fastest execution rate in the circuit. There can be up to four different execution rates, but they must all be multiple of the basic simulation timestep. To specify the execution rate, you can use either decimal (e.g. 0.001) or exponential values (e.g. 1e-3) in seconds. Alternatively, you can type in ‘inherit’ in which case the component will be assigned execution rate based on the execution rate of the components it is receiving input from.