RTL Studio Open IDE

Bus Interfaces

Wishbone Classic to Pipelined Bridge

Converts Wishbone Classic slave interface to Wishbone Pipelined master interface for protocol bridging.

About this block

Simulate it in the Verilog IDE

Hardverilogsimsyn

Wishbone Classic to Pipelined Bridge is a Verilog reference block in the Bus Interfaces catalog. AXI, APB, Wishbone, and other on-chip bus interface adapters. Marked Hard: a larger reference. Simulate the packaged testbench before you change the RTL.

This IP core provides a robust interface bridge that converts a Wishbone Classic slave interface into a Wishbone Pipelined master interface. It allows legacy Classic slaves to communicate seamlessly with modern Pipelined masters by buffering transactions and handling protocol timing differences.

The design is lightweight, using a simple finite state machine (FSM) to ensure data integrity and correct handshaking across the protocol boundary. It is suitable for integrating older peripherals into newer SoC architectures.

  1. Choose Open in IDE. RTL Studio loads the packaged workspace for Wishbone Classic to Pipelined Bridge.
  2. Read the Verilog module in the editor. The catalog line for this block: Converts Wishbone Classic slave interface to Wishbone Pipelined master interface for protocol bridging.
  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

  • Protocol Conversion: Translates Classic timing constraints to Pipelined master signals.
  • Transaction Support: Handles single-cycle and back-to-back transactions.
  • Read/Write Support: Fully supports both read and write operations with correct data direction.
  • Data Integrity: Latches Classic inputs during the BUSY state to ensure stable data transfer to the Pipelined master.
  • Simple Implementation: Uses a 3-state FSM (IDLE, BUSY, ACK) for easy integration and verification.
  • Synchronous Reset: Active-low reset synchronized to the clock domain.

Ports

Port NameDirectionWidthDescription
clkInput1Clock input
rst_nInput1Active-low reset
c_cyc_iInput1Classic Cycle valid
c_stb_iInput1Classic Strobe valid
c_we_iInput1Classic Write Enable
c_adr_iInput32Classic Address
c_dat_iInput32Classic Data Input
c_sel_iInput4Classic Byte Strobe
c_ack_oOutput1Classic Acknowledge
c_dat_oOutput32Classic Data Output
p_cyc_oOutput1Pipelined Cycle valid
p_stb_oOutput1Pipelined Strobe valid

Architecture

The bridge operates using a three-state Finite State Machine (FSM): IDLE, BUSY, and ACK.

### State Descriptions

  1. IDLE: The bridge waits for a valid Classic request (c_cyc_i AND c_stb_i).
  2. BUSY: Upon receiving a request, the bridge latches the Classic input signals (c_adr, c_dat, c_we, c_sel) and drives the Pipelined master interface (p_cyc, p_stb, etc.). It remains in this state until the Pipelined slave asserts p_ack_i.
  3. ACK: Once p_ack_i is asserted, the bridge transitions to the ACK state. It asserts c_ack_o to complete the Classic transaction and returns to IDLE.

Verification

The provided testbench verifies basic functionality through three test cases. To run the simulation:

  1. Open the project in your preferred HDL simulator (e.g., ModelSim, Vivado Simulator, Icarus Verilog).
  2. Compile the RTL and testbench files.
  3. Run the simulation.

### Expected Results

The Log panel should display the following:

  • TC1 PASS (Single Write Transaction)
  • TC2 PASS (Back-to-Back Write Transactions)
  • TC3 PASS (Single Read Transaction)
  • INFO: PASS
Test CaseDescriptionResult
TC1Single Write TransactionPASS
TC2Back-to-Back Write TransactionsPASS
TC3Single Read TransactionPASS

More in Bus Interfaces

All Bus Interfaces blocks