A pulse generator in a design should not generate pulses in any of the
following ways:
Creating a wide glitch using a two-input AND, NAND, OR, or NOR gate, where the source for
the two gate inputs are the same, but the design inverts the source for one of the
gate inputs.Figure 1. Asynchronous Pulse Generator Example
Using a register where the register output drives the register's own
asynchronous reset signal through a delay chain (one or more consecutive nodes that
act as a buffer for creating intentional delay).Figure 2. Asynchronous Pulse Generator Example
These pulse generators are asynchronous, where the generated pulse width
can never be reliably predefined. As a result, the pulse width depends on the circuit
delay. For example, the pulse width generated by a pulse generator that uses a 2-input
AND gate depends on the relative delays of the path
that drives the AND gate directly and the path that the
design inverts before driving the AND gate.
Recommendation
Ensure that any pulse generator generates pulses in a synchronous manner without
violating any of the guidelines in the Description.
Figure 3. Synchronous Pulse Generator. Ensure that pulse generators generate pulses as shown in the following example
recommended pulse generator implemented in a synchronous manner: