DIV - Pulse divider

A DIV block is a 32-bit pulse divider that can divide a pulse train between two outputs. It has an internal counter that counts from 0 to DIVISOR-1. On each rising edge of INP, if counter = DIVISOR-1, then it is set to 0 and the pulse is sent to OUTD, otherwise it is sent to OUTN. Change in any parameter causes the block to be reset.

Fields

Name Type Description
ENABLE bit_mux Reset on falling edge, enable on rising
INP bit_mux Input pulse train
DIVISOR param Divisor value
FIRST_PULSE param enum
Where to send first pulse
0 OutN
1 OutD
OUTD bit_out Divided pulse output
OUTN bit_out Non-divided pulse output
COUNT read Internal counter value

Which output do pulses go to

With a DIVISOR of 3, the block will send 1 of 3 INP pulses to OUTD and 2 of 3 INP pulses to OUTN. The following two examples illustrate how the FIRST_PULSE parameter controls the initial value of OUT, which controls whether OUTD or OUTN gets the next pulse.

(Source code, png, hires.png, pdf)

../_images/div_doc-1.png

(Source code, png, hires.png, pdf)

../_images/div_doc-2.png

Reset conditions

If an ENABLE falling edge is received at the same time as an INP rising edge, the input signal is ignored and the block reset.

(Source code, png, hires.png, pdf)

../_images/div_doc-3.png