Main Content

Manchester Receiver Using Multiple Cosimulation Blocks

This example simulates a digital receiver of Manchester encoded data. Manchester encoding is a simple modulation scheme that converts baseband digital data to an encoded waveform with no DC component. The most widely known application of this technique is Ethernet.

The receiver is implemented in HDL. The receiver uses a simple DLL (delay lock loop) clock recovery mechanism, which requires multiple cycles to lock with the incoming data stream. The performance of the receiver is explored by applying phase and frequency errors to a randomly generated stream of bits that is encoded using a simple MATLAB® function: manchesterencoder().

1. ModelSim/QuestaSim

The VHDL code runs in ModelSim® as three ModelSim VHDL Cosimulation blocks under Manchester Receiver Subsystem labeled State Counter, IQ Converter and Decoder.

Open the multiple-block model and click on the ModelSim Startup Command box to launch ModelSim. Start cosimulation in Simulink by clicking "Run".

2. Xcelium

The HDL code runs in the Xcelium simulator and its execution is reflected in Simulink as the behaviors of three HDL Cosimulation blocks under the Manchester Receiver Subsystem. They are labeled State Counter, IQ Converter and Decoder.

Open the multiple-block model and follow the steps outlined in the 'Running a Cosimulation' annotation.