RTL Studio Open IDE

Clock Generators

1-Cycle Data Delay

A registered delay element that holds input data for one clock cycle with asynchronous reset and synchronous enable.

About this block

Simulate it in the Verilog IDE

Easyverilogsimsyn

1-Cycle Data Delay is a Verilog reference block in the Clock Generators catalog. Clock dividers, gating, and clock distribution helpers. Marked Easy: a small block you can read, simulate, and synthesize in one sitting.

A simple 1-cycle registered delay element with asynchronous reset and synchronous enable. This IP is designed for pipeline synchronization and simple buffering tasks in digital designs.

This IP provides an 8-bit wide data path that delays input data by exactly one clock cycle. It supports asynchronous active-low reset and synchronous enable control, making it suitable for basic data alignment and buffering in synchronous digital systems.

  1. Choose Open in IDE. RTL Studio loads the packaged workspace for 1-Cycle Data Delay.
  2. Read the Verilog module in the editor. The catalog line for this block: A registered delay element that holds input data for one clock cycle with asynchronous reset and synchronous enable.
  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.

Features

  • One-cycle registered delay: Output reflects input data from the previous clock cycle.
  • Asynchronous Active-Low Reset: rst_n forces output to zero immediately, independent of the clock.
  • Synchronous Enable: en allows conditional data capture on the rising clock edge.
  • 8-bit Data Width: Configurable general-purpose data path (din/dout).

Ports

PortDirectionWidthDescription
clkInput1Clock signal
rst_nInput1Asynchronous active-low reset
enInput1Synchronous enable
dinInput8Data input
doutOutput8Delayed data output

Verification

The provided testbench (tb_cycle_delay_1.v) validates the following scenarios:

Test CaseDescriptionExpected Result
TC1Reset value is 0dout becomes 0 after reset deassertion
TC2Single cycle delay with enabledout reflects din after 1 cycle
TC3Hold when disabledout retains value when en is low
TC4New value with enabledout updates to new din when en is high

### Simulation Log

Upon running the simulation, the log should display:

More in Clock Generators

All Clock Generators blocks