RTL Studio Open IDE

Shift & Bit Manipulation

8-Bit Parallel-to-Serial Converter

Converts 8-bit parallel input to LSB-first serial output with busy flag and synchronous load.

About this block

Simulate it in the Verilog IDE

Mediumverilogsimsyn

8-Bit Parallel-to-Serial Converter is a Verilog reference block in the Shift & Bit Manipulation catalog. Shifters, rotators, bit masks, and bitwise manipulation blocks. Marked Medium: more state or a wider datapath, still one workspace in the IDE.

This IP core converts an 8-bit parallel input into a serial bitstream. It shifts data out least-significant-bit (LSB) first on each clock cycle. The design uses a synchronous shift register with a 4-bit counter for tracking. A busy_o signal indicates when the core is actively shifting data.

This 8-bit parallel-to-serial converter provides a simple and reliable way to serialize data. It supports LSB-first output and includes a busy flag for system integration. The design is fully synchronous except for the active-low reset. Integrators can use this core for basic serial communication protocols or data packing tasks.

  1. Choose Open in IDE. RTL Studio loads the packaged workspace for 8-Bit Parallel-to-Serial Converter.
  2. Read the Verilog module in the editor. The catalog line for this block: Converts 8-bit parallel input to LSB-first serial output with busy flag and synchronous load.
  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

  • Converts 8-bit parallel data to serial output.
  • LSB-first shifting order.
  • Synchronous load and enable control.
  • Active-low asynchronous reset.
  • Busy flag for flow control.

Ports

Port NameDirectionWidthDescription
clkInput1Clock input
rst_nInput1Active-low asynchronous reset
load_iInput1Load parallel data into shift register
en_iInput1Enable shifting when busy
parallel_iInput8Parallel data input
s_oOutput1Serial data output
busy_oOutput1High during shifting operation

Architecture

The module consists of an 8-bit shift register and a 4-bit counter. Data is loaded into the shift register when load_i is asserted. The busy_o signal goes high immediately after loading. Shifting occurs only when busy_o is high and en_i is asserted. Each clock cycle, the LSB is output and the register shifts right. The counter increments until it reaches 7, at which point busy_o deasserts.

Verification

The testbench includes five self-checking test cases. It verifies correct shifting for 0xFF, 0x00, 0xAA, and 0x55. It also tests reset behavior during an active shift operation. All tests passed successfully in the simulation log.

Test CaseDescriptionResult
TC1Load 0xFF and shift outPASS
TC2Load 0x00 and shift outPASS
TC3Load 0xAA and shift outPASS
TC4Load 0x55 and shift outPASS
TC5Reset during shiftPASS

More in Shift & Bit Manipulation

All Shift & Bit Manipulation blocks