Retriggerable edge-triggered one-shot in VHDL — impossible condition at the clock edge In a retriggerable, edge-triggered one-shot described in VHDL using a counter, which of the following conditions will <em>not</em> exist at a clock edge?

Difficulty: Easy

Correct Answer: The shift register is reset.

Explanation:


Introduction / Context:
Retriggerable one-shots (monostables) generate a pulse of programmable width that restarts if another trigger arrives before timeout. A common synthesizable VHDL model uses a counter and edge detection on the trigger input. At each system clock edge, the process updates the counter: load on a trigger, decrement while active, or hold at zero. Recognizing which state descriptors are relevant avoids confusion with unrelated storage structures.



Given Data / Assumptions:

  • Implementation uses a synchronous process with a counter representing the remaining pulse duration.
  • Edge-trigger detection logic identifies a new trigger on the current clock edge.
  • No shift registers are used in the specified one-shot architecture.


Concept / Approach:

At any given clock edge, exactly one of these actions applies: load the counter to the preset timeout if a trigger edge is detected (retriggerable behavior), decrement the counter by one when it is nonzero (pulse ongoing), or keep it at zero if it already timed out. A description involving a “shift register reset” does not belong to a counter-based monostable and thus cannot be the operative condition for this design.


Step-by-Step Solution:

If trigger_edge = 1 → counter := preset_value (retrigger).Else if counter > 0 → counter := counter − 1.Else → counter remains 0 (no pulse).Output is typically 1 while counter > 0 and 0 otherwise.


Verification / Alternative check:

Examine typical VHDL templates for retriggerable monostables; they use counters/timers and optional synchronizers, not shift registers. Simulation waveforms show the three mutually exclusive branches above executing at successive clock edges.


Why Other Options Are Wrong:

Loading on a trigger: valid and required for retriggerability.

Keeping counter at zero: valid when idle.

Counting down by one: valid while the pulse is active.


Common Pitfalls:

Mixing unrelated design templates (e.g., serial shift register timing) into counter-based monostables; forgetting to synchronize the trigger to the clock domain (which could otherwise cause missed or double triggers).


Final Answer:

The shift register is reset.

More Questions from Counters

Discussion & Comments

No comments yet. Be the first to comment!
Join Discussion