RTL Studio Open IDE

Clock Generators

Burst Enable for N Cycles — L1 Upgrade — L2 Upgrade

Latch-free, fully synthesizable clock divider with burst, freeze, and clear capabilities. Uses m, n, and div inputs in the comparison logic to ensure no unused ports.

About this block

Simulate it in the Verilog IDE

Mediumverilogsimsyn

Burst Enable for N Cycles — L1 Upgrade — L2 Upgrade is a Verilog reference block in the Clock Generators catalog. Clock dividers, gating, and clock distribution helpers. Marked Medium: more state or a wider datapath, still one workspace in the IDE.

This IP implements a latch-free, fully synthesizable clock divider with support for dynamic divider selection, burst enable, freeze, and clear capabilities. It is designed for applications requiring precise timing control, frequency synthesis, and clock gating.

### Key Features

  • Dynamic Divider Selection: Supports three 8-bit inputs (div, n, m) with a priority chain: div > n > m.
  • Control Signals:

- enable: Synchronous pause/resume of counting. - freeze: Holds the current output state without resetting the counter. - clear: Synchronous reset of counter and output. - rst_n: Asynchronous active-low reset.

  • Synthesis Friendly: All input ports are functionally utilized to prevent unused port warnings. No latches are inferred.
  • Verilog-2001 Compatible: Fully synthesizable code.
  1. Choose Open in IDE. RTL Studio loads the packaged workspace for Burst Enable for N Cycles — L1 Upgrade — L2 Upgrade.
  2. Read the Verilog module in the editor. The catalog line for this block: Latch-free, fully synthesizable clock divider with burst, freeze, and clear capabilities. Uses m, n, and div inputs in the comparison logic to ensure no unused ports.
  3. Run the packaged testbench with the in-browser Verilator simulator, then open the VCD in the waveform viewer.
  4. Run Yosys in the same IDE for a generic netlist. Sky130 liberty mapping is a separate Pro library option.

RTL Studio is the Verilog simulator and IDE around this block: Slang lint, Verilator, VCD waveforms, and Yosys, in the browser. Simulation guide · Yosys guide.

Ports

Port NameDirectionWidthDescription
clkInput1Clock input
rst_nInput1Asynchronous active-low reset
enableInput1Synchronous enable to start/stop counting
freezeInput1Synchronous freeze to hold output state
clearInput1Synchronous clear to reset counter and output
mInput8Fallback divider value (used if div and n are 0)
nInput8Secondary divider value (used if div is 0)
divInput8Primary divider value
outOutput1Toggled output signal

Verification

The provided testbench (tb_burst_enable_freeze_clear_enable_div_used_mn.v) verifies the following scenarios:

Test CaseDescriptionExpected Result
TC1Reset and Clear functionalityOutput is low, counter resets
TC2Freeze and ResumeOutput holds state while frozen, resumes after
TC3M and N Fallback LogicDivider uses n when div is 0, m as final fallback
TC4Enable Low (Disable)Output holds state when enable is low
TC5M Input PresenceM is connected and does not cause synthesis errors

### Running Simulation

Expected log output:

  • TC1 PASS Clear
  • TC2 PASS Freeze
  • TC2 PASS Freeze/Resume structure
  • TC3 PASS M/N Fallback
  • TC4 PASS Enable Low
  • TC5 PASS M Input Presence
  • Simulation ends with INFO: PASS

More in Clock Generators

All Clock Generators blocks