prim_pulse_signal

Shape pulse_in_i with programmable pre- and post-wait counts.

pulse_start_i samples pulse_in_i and starts a sequence: drive the sampled level for pre_pulse_wait_i + 1 cycles, assert pulse_out_o for post_pulse_wait_i + 1 cycles, then return to idle. A new pulse_start_i during the sequence reloads the count of the current phase. IS_ACTIVE_HIGH sets the polarity of pulse_out_o. pulse_done_o is high while idle and low for the whole sequence; pulse_out_o sits at its asserted level while idle, so use it only while pulse_done_o is low.

Parameters

Table 1. Parameters
NameTypeDefaultDescription
COUNT_WIDTHint16Width of the wait counters.
IS_ACTIVE_HIGHbit01 makes pulse_out_o active-high; 0 makes it active-low.

Ports

Table 2. Ports
NameDirectionTypeDescription
clk_iinputlogicPulse clock.
rst_niinputlogicActive-low reset, sampled synchronously.
pulse_start_iinputlogicArms a shaped pulse sequence.
pre_pulse_wait_iinputlogic [COUNT_WIDTH-1:0]Cycles, minus one, of the sampled pulse_in_i level before pulse_out_o asserts.
post_pulse_wait_iinputlogic [COUNT_WIDTH-1:0]Cycles, minus one, that pulse_out_o stays asserted.
pulse_in_iinputlogicLevel sampled on pulse_start_i and driven during the pre-pulse wait.
pulse_out_ooutputlogicShaped pulse output; valid while pulse_done_o is low.
pulse_done_ooutputlogicHigh while idle; low while a sequence runs.