RTL Studio Open IDE

Open IP

Public catalog for RtlStudio OpenIP Library305 reference RTL blocks in 17 categories. Titles and short descriptions only; golden RTL, testbenches, and sim/syn artifacts open inside the IDE (Pro).

About the library

Pro · reference RTL IP blocks with packaged simulation and synthesis results.

Each listing links to the IDE deep link for that block. Sign in with Pro to download and open the packaged workspace from cloud storage.

Catalog

Expand a category to see every IP block with a one-line description. We continue to add new blocks over time.

Logic Gates AND, OR, XOR, and other combinational gate and boolean logic primitives. 16 blocks
  • 2-Input AND Gate verilogsimsyn

    A basic 2-input AND gate implemented in Verilog.

  • 2-Input NAND Gate verilogsimsyn

    A basic 2-input NAND gate implemented in Verilog.

  • 2-Input NOR Gate verilogsimsyn

    A simple 2-input NOR gate module for combinational logic.

  • 2-Input OR Gate verilogsimsyn

    A basic 2-input OR gate implemented in Verilog for digital logic design.

  • 2-Input XOR Gate verilogsimsyn

    Basic 2-input XOR logic gate implementation in Verilog.

  • 3-Input Bitwise NOR Gate verilogsimsyn

    A configurable-width combinational module that performs a bitwise NOR operation on three input vectors.

  • 3-Input Majority Voter verilogsimsyn

    Combinational logic module that outputs the majority value of three binary inputs.

  • A synchronous 3-state buffer with enable control and active-low reset, outputting High-Z when disabled.

  • Combinational 5-input majority voter with a tie flag for boundary cases.

  • 8-Bit Bitwise XNOR Gate verilogsimsyn

    An 8-bit combinational logic gate that performs bitwise XNOR operations on two input vectors.

  • 8-Bit NAND Reduction verilogsimsyn

    Computes the NAND of all bits in an 8-bit input vector.

  • 8-Input Majority Voter verilogsimsyn

    Combinational logic that outputs high when 5 or more of 8 inputs are high.

  • An 8-bit combinational logic module that performs bitwise AND or OR operations based on a mode select signal.

  • OR-Reduce 8-Bit verilogsimsyn

    Combinational 8-bit OR-reduce gate producing a single output bit.

  • Generates a mask of all bits strictly below the highest set bit in an 8-bit request vector.

  • XOR-Reduce Tree 8-bit verilogsimsyn

    An 8-bit XOR-reduce tree that computes the parity of an 8-bit input vector using a hierarchical binary tree structure.

Multiplexers Multiplexers, demultiplexers, and data-path selectors. 11 blocks
Counters Up/down, modulo, and loadable binary counters with enable logic. 17 blocks
Shift & Bit Manipulation Shifters, rotators, bit masks, and bitwise manipulation blocks. 17 blocks
Code Conversion Encoders, decoders, priority encoders, and binary/gray converters. 20 blocks
Parity Even/odd parity generators, checkers, and error-detection helpers. 13 blocks
Arbiters Round-robin, fixed-priority, and grant-based resource arbiters. 9 blocks
Edge, Debounce & Pulse Edge detectors, debouncers, pulse stretchers, and one-shot generators. 18 blocks
Arithmetic & Math Adders, multipliers, dividers, ALUs, and arithmetic datapaths. 36 blocks
  • 1-Bit Full Adder verilogsimsyn

    A combinational 1-bit full adder module that computes sum and carry-out from three input bits.

  • 1-Bit Half Adder verilogsimsyn

    A basic 1-bit half adder module that computes sum and carry from two input bits.

  • A 16-bit carry-select adder that splits addition into two 8-bit blocks to reduce propagation delay.

  • A synchronous 16-bit two's complement signed adder with overflow detection logic.

  • A 2-bit saturating up/down counter with synchronous enable and asynchronous reset.

  • Combinational module that counts the number of leading zeros in a 32-bit input vector using a priority encoder approach.

  • A fully combinational 32-bit equality comparator that asserts a high output when two input vectors are identical.

  • 32-Bit Population Count verilogsimsyn

    Combinational 32-bit population count (Hamming weight). Returns the number of set bits in the input vector. Output width is 6 bits (max value 32).

  • A 4-bit arithmetic unit supporting addition and subtraction with signed overflow detection using two's complement logic.

  • A SystemVerilog implementation of a 4-digit Binary Coded Decimal adder with carry propagation, suitable for decimal arithmetic applications.

  • 4-Input 8-Bit Adder Tree verilogsimsyn

    Balanced binary tree adder that sums four 8-bit unsigned inputs into a 10-bit result.

  • 8-Bit Absolute Value verilogsimsyn

    Combinational module to compute the absolute value of an 8-bit signed two's complement integer.

  • An 8-bit Arithmetic Logic Unit supporting addition, subtraction, bitwise logic, and shift operations with carry-out flags.

  • An 8-bit Carry-Save Adder that reduces three 8-bit operands into a sum vector and a carry vector using parallel full-adder slices.

  • Combinational module that counts consecutive zero bits from the LSB of an 8-bit input using a lookup table.

  • Combinational 8-bit unsigned integer comparator generating mutually exclusive eq, gt, and lt signals.

  • A combinational 8-bit magnitude comparator that outputs gt, lt, and eq signals.

  • 8-Bit Min/Max Comparator verilogsimsyn

    Combinational module that outputs the minimum and maximum of two 8-bit unsigned inputs.

  • An 8-bit synchronous one's complement adder that implements end-around carry logic for overflow handling.

  • 8-Bit Saturating Adder verilogsimsyn

    An 8-bit unsigned adder with configurable saturation and overflow detection.

  • Combinational 8-bit saturating subtractor that outputs max(a-b, 0).

  • An 8-bit synchronous subtractor with borrow-in and borrow-out support for unsigned and signed arithmetic.

  • 8-bit signed subtractor (A - B) with overflow detection using two's complement arithmetic.

  • Synchronous 8x8 Multiply-Accumulate unit with 16-bit accumulator and clear support.

  • Combinational module calculating the absolute difference between two unsigned 8-bit integers.

  • BCD Subtractor 4-Digit verilogsimsyn

    A 4-digit Binary Coded Decimal subtractor with borrow propagation and pass-through mode.

  • Combinational radix-4 Booth signed 4x4 multiplier with explicit partial-product recoding (not a single $signed multiply).

  • A 4-bit carry-lookahead adder implementation using explicit generate and propagate terms to minimize carry propagation delay.

  • Clamp Signed 8-bit verilogsimsyn

    Clamps a signed 8-bit input to a specified signed range [lo, hi].

  • Kogge-Stone Parallel Prefix Adder systemverilogsimsyn

    Parameterized combinational Kogge-Stone adder with carry-in, carry-out, and signed overflow detection.

  • A fully parameterized Verilog ripple-carry adder with carry-in, carry-out, and signed overflow detection.

  • Computes the rounded average of two 8-bit unsigned integers using (a + b + 1) >> 1.

  • Saturating MAC 4x4→8 verilogsimsyn

    A combinational saturating multiply-accumulate unit that multiplies two 4-bit operands and adds them to an 8-bit accumulator, saturating to 0xFF on overflow.

  • A 4-bit saturating multiplier that clamps overflow results to 15.

  • Saturating cast from 16-bit signed to 8-bit signed integer, clamping to -128 or 127.

  • Combinational signed 3-way comparator for 8-bit two's complement operands.

LFSR, PRBS & CRC LFSR, PRBS, CRC, and pseudo-random sequence generators. 13 blocks
Clock Generators Clock dividers, gating, and clock distribution helpers. 16 blocks
Coding & Line Codes Line codes, serializers, and digital encoding/decoding blocks. 19 blocks
Bus Interfaces AXI, APB, Wishbone, and other on-chip bus interface adapters. 19 blocks
Clock-Domain Crossing Clock-domain crossing FIFOs, synchronizers, and handshake bridges. 16 blocks
Control & Timers FSMs, timers, watchdogs, and control/state sequencing blocks. 25 blocks
Memory & FIFOs SRAM models, FIFOs, register files, and memory-style storage. 26 blocks
  • A synchronous RAM module with 16 words of 16-bit width, featuring byte-level write enable signals for granular data updates.

  • Sixteen-word 8-bit single-port RAM with no reset and registered (synchronous) read data out.

  • A configurable 32-bit asynchronous FIFO using AXI4-Stream interfaces and Gray code pointers for safe cross-clock-domain data transfer.

  • 32-word by 16-bit synchronous single-port RAM with combinational read.

  • Four-word 8-bit single-port RAM with async reset clear, synchronous write, and combinational read.

  • 256x64 dual-port RAM with byte-enable masking and combinational reads.

  • An 8-bit depth-1 skid buffer that absorbs backpressure by holding data until the consumer is ready. It asserts ready_in only when empty and maintains valid_out until valid_in deasserts.

  • 8x16 Single-Port Synchronous RAM with byte write enable. Depth: 8 words, Width: 16 bits. Read is synchronous (data available on next clock edge after address). Write is synchronous (data written on rising edge if we_n is low).

  • An 8-deep, 32-bit wide register file with one synchronous write port and two independent combinational read ports.

  • Eight-word 8-bit single-port RAM with async reset via loop init, synchronous write, and combinational read.

  • Asymmetric RAM WR8 RD16 verilogsimsyn

    A synchronous RAM module with 8-bit write width and 16-bit read width, featuring zero-padded reads.

  • Circular Buffer 16x8 verilogsimsyn

    A synchronous circular buffer with 16 entries and 8-bit data width supporting push/pop operations with full/empty flags.

  • Single-clock FIFO that tracks occupancy with an explicit count register, exposes wready/rvalid on both producer and consumer sides, and defaults to depth 64 with 16-bit data.

  • Dual-Port RAM with Write-First Bypass behavior where read data reflects write data immediately if addresses match.

  • A 4x16 dual-port register file with two asynchronous read ports and one synchronous write port.

  • FWFT Sync FIFO 16x8 verilogsimsyn

    First-Word-Fall-Through Synchronous FIFO with 16-word depth and 8-bit data width.

  • LIFO Stack 8-Bit verilogsimsyn

    Synchronous LIFO stack with depth 8, 8-bit data width, full/empty flags, and overflow/underflow protection.

  • Ping-Pong Buffer 8x8 verilogsimsyn

    An 8x8 double-buffering module that swaps between two memory banks on a frame pulse for continuous data streaming.

  • Compact single-clock FIFO using extra-bit read/write pointers for full/empty detection, enable-style w_en/r_en ports, synchronous flush, and default depth 16 with 32-bit data.

  • Regfile 1W2R 8x16 verilogsimsyn

    8-word by 16-bit register file with 1 write port and 2 read ports, featuring synchronous RAW bypass.

  • ROM 16x8 Case Lookup verilogsimsyn

    A combinational ROM with 16 words of 8 bits, mapping 4-bit addresses to their hex values.

  • A simple Content Addressable Memory with 4 entries and 8-bit width, supporting parallel search and indexed write.

  • A synchronous FIFO module with 64-bit data width, configurable depth, and status flags for full, empty, almost full, and almost empty conditions.

  • A synchronous FIFO depth calculator using a counter-based approach to track buffer levels with configurable almost-full thresholds.

  • True Dual-Port RAM 8x8 verilogsimsyn

    True Dual-Port RAM with 8 words of 8-bit width and Port A write priority.

  • A 4x8 register file with two write ports where Port A has priority over Port B on address collision.

Interface Protocols UART, SPI, I2C, and other serial or peripheral protocol interfaces. 14 blocks

Open a block in RTL Studio

Pick any block above or browse the live catalog in the IDE Open IP panel. Free tier includes core edit, lint, sim, and synth; Open IP load requires Pro.