MICROCHIP Costas Loop Management User Guide

June 15, 2024
MICROCHIP

MICROCHIP Costas Loop Management User Guide
MICROCHIP Costas Loop Management

Introduction

In wireless transmission, the Transmitter (Tx) and Receiver (Rx) are separated by a distance and electrically isolated. Even though both Tx and Rx are tuned to the same frequency, there is a frequency offset between the carrier frequencies due to the ppm difference between the oscillators used in Tx and Rx. The frequency offset is compensated by using the data aided or non-data- aided (blind) synchronization methods.

A Costas Loop is a non-data-aided PLL-based method for carrier frequency offset compensation. The primary application of Costas loops is in wireless receivers. By using this, the frequency offset between the Tx and Rx is compensated without the help of pilot tones or symbols. The Costas Loop is implemented for the BPSK and QPSK  modulations with a change in the error calculation block. Employing a Costas Loop for the phase or frequency sync might result in phase ambiguity, which must be corrected through techniques such as differential encoding.

Summary

The following table provides a summary of the Costas Loop characteristics.

Table 1. Costas Loop characteristics

Core Version This document applies to Costas Loop v1.0.
Supported Device Families
  • Polar Fire® SoC
  • Polar Fire

Supported Tool Flow| Requires Libero® SoC v12.0 or later releases.
Licensing| Costas Loop IP clear RTL is license locked and the encrypted RTL is freely available with any Libero license. Encrypted RTL: Complete encrypted RTL code is provided for the core, enabling the core to be instantiated with Smart Design. Simulation, Synthesis, and Layout can be performed with Libero software. Clear RTL: Complete RTL source code is provided for the core and test benches.

Features

Costas Loop has the following key features:

  • Supports BPSK and QPSK modulations
  • Tunable loop parameters for wide frequency range

Implementation of IP Core in Libero® Design Suite
IP core must be installed to the IP Catalog of the Libero SoC software. This is installed automatically through the IP
Catalog update function in the Libero SoC software, or the IP core is manually downloaded from the catalog. Once
the IP core is installed in the Libero SoC software IP Catalog, the core is configured, generated, and instantiated within the Smart Design tool for inclusion in the Libero project list.

Device Utilization and Performance

The following tables list the device utilization used for Costas Loop.

Table 2. Costas Loop Utilization for QPSK

Device Details| Resources| Performance (MHz)| RAMs| Math Blocks| Chip Globals
---|---|---|---|---|---
Family| Device| LUTs| DFF| LSRAM| μSRAM
PolarFire® SoC| MPFS250T| 1256| 197| 200| 0| 0| 6| 0
PolarFire| MPF300T| 1256| 197| 200| 0| 0| 6| 0

Table 3. Costas Loop Utilization for BPSK

Device Details| Resources| Performance (MHz)| RAMs| Math Blocks| Chip Globals
---|---|---|---|---|---
Family| Device| LUTs| DFF| LSRAM| μSRAM
PolarFire® SoC| MPFS250T| 1202| 160| 200| 0| 0| 7| 0
Polar Fire| MPF300T| 1202| 160| 200| 0| 0| 7| 0

Important:

  1. The data in this table is captured using typical synthesis and layout settings. CDR reference clock source was set to Dedicated with other configurator values unchanged.
  2. Clock is constrained to 200 MHz while running the timing analysis to achieve the performance numbers.

Functional Description

This section describes the implementation details of the Costas Loop.

The following figure shows the system-level block diagram of the Costas Loop.

Figure 1-1. System-Level Block Diagram of Costas Loop
Functional Description
The latency between the input and output of the Costas top is 11 clock cycles. The THETA_OUT latency is 10 clock
cycles. Kp (proportionality constant), Ki (integral constant), Theta factor, and LIMIT factor must be fixed according to the noise environment and the frequency offset being introduced. The Costas Loop takes some time to lock, like in the PLL operation. Some packets might be lost during the initial locking time of the Costas Loop.

Architecture

Implementation of the Costas Loop requires the following four blocks:

  • Loop Filter (PI Controller in this implementation)
  • Theta Generator
  • Error Calculation
  • Vector Rotation

Figure 1-2. Costas Loop Block Diagram
Architecture
The error for a specific modulation scheme is calculated based on the rotated I and Q values using the Vector Rotation Module. The PI controller computes frequency based on the error, proportional gain Kp, and integral gain Ki. The maximum frequency offset is set as a limit value for the PI controller’s frequency output. The Theta Generator module generates the angle by integration. The theta factor input determines the slope of integration and depends.

on the sampling clock. The angle generated from the Theta Generator is used to rotate the I and Q input values. The error function is specific to a modulation type. As the PI controller is implemented in fixed-point format, scaling is performed on proportional and integral outputs of PI controller.
integration
Similarly, scaling is implemented for theta integration.
integration

IP Core Parameters and Interface Signals

This section discusses the parameters in the Costas Loop GUI configurator and I/O signals.

Configuration Settings

The following table lists the description of the configuration parameters used in the hardware implementation of Costas Loop. These are generic parameters are varied as per the requirement of the application.
Table 2-1. Configuration Parameter

Signal Name Description
Modulation Type BPSK or QPSK

Inputs and Outputs Signals
The following table lists the input and output ports of Costas Loop.
Table 2-2. Input and Output Signals

Signal Name| Direction| Signal Type| Width| Description
---|---|---|---|---
CLK_I| Input| —| 1| Clock Signal
ARST_N_IN| Input| —| 1| Active low asynchronous reset signal
I_DATA_IN| Input| Signed| 16| In phase / Real data input
Q_DATA_IN| Input| Signed| 16| Quadrature / Imaginary data Input
KP_IN| Input| Signed| 18| Proportionality constant of PI controller
KI_IN| Input| Signed| 18| Integral constant of PI controller
LIMIT_IN| Input| Signed| 18| Limit for the PI controller
THETA_FACTOR_IN| Input| Signed| 18| Theta factor for theta integration.
I_DATA_OUT| Output| Signed| 16| In phase / Real data Output
Q_DATA_OUT| Output| Signed| 16| Quadrature / Imaginary data Output
THETA_OUT| Output| Signed| 10| Calculated Theta index (0-1023) for the verification
PI_OUT| Output| Signed| 18| PI output

Timing Diagrams

This section discusses the Costas Loop timing diagram.
The following figure shows the timing diagram of Costas Loop.
Figure 3-1. Costas Loop Timing Diagram
Timing Diagram

Testbench

A unified testbench is used to verify and test Costas Loop called as user test bench. Test bench is provided to check the functionality of the Costas Loop IP.

Simulation Rows

To simulate the core using the testbench, perform th following steps:

  1. Open the Libero SoC application, click Catalog tab, expand Solutions-Wireless, double-click COSTAS LOOP, and then click OK. The documentation associated with the IP are listed under Documentations.
    Important: If you do not see the Catalog tab, navigate to View > Windows menu and click Catalog to make it visible.
    Figure 4-1. Costas Loop IP Core in Libero SoC Catalog
    Simulation Rows

  2. Configure the IP as per your requirement.
    Figure 4-2. Configurator GUI
    Configurator GUI
    Promote all the signals to top level and generate the design

  3. On the Stimulus Hierarchy tab, click Build Hierarchy.
    Figure 4-3. Build Hierarchy
    Build Hierarchy

  4. On the Stimulus Hierarchy tab, right-click the testbench (Costas loop bevy), point to Simulate Present Design, and then click Open Interactively
    Figure 4-4. Simulating Pre-Synthesis Design
    Pre-Synthesis Design
    ModelSim opens with the testbench file, as shown in the following figure.
    Figure 4-5. ModelSim Simulation Window
    Simulation Window

Important: If the simulation is interrupted due to the runtime limit specified in the .do file, use the run -all command to complete the simulation

Revision History

The revision history describes the changes that were implemented in the document. The changes are listed by revision, starting with the most current publication.
Table 5-1. Revision History

Revision Date Description
A 03/2023 Initial release

Microchip FPGA Support

Microchip FPGA products group backs its products with various support services, including Customer Service,
Customer Technical Support Center, a website, and worldwide sales offices. Customers are suggested to visit
Microchip online resources prior to contacting support as it is very likely that their queries have been already
answered.

Contact Technical Support Center through the website at www.microchip.com/support. Mention the FPGA Device
Part number, select appropriate case category, and upload design files while creating a technical support case.

Contact Customer Service for non-technical product support, such as product pricing, product upgrades, update
information, order status, and authorization.

  • From North America, call 800.262.1060
  • From the rest of the world, call 650.318.4460
  • Fax, from anywhere in the world, 650.318.8044

Microchip Information

The Microchip Website

Microchip provides online support via our website at www.microchip.com/. This website is used to make files and
information easily available to customers. Some of the content available includes:

  • Product Support – Data sheets and errata, application notes and sample programs, design resources, user’s guides and hardware support documents, latest software releases and archived software
  • General Technical Support – Frequently Asked Questions (FAQs), technical support requests, online discussion groups, Microchip design partner program member listing
  • Business of Microchip – Product selector and ordering guides, latest Microchip press releases, listing of seminars and events, listings of Microchip sales offices, distributors and factory representatives

Product Change Notification Service

Microchip’s product change notification service helps keep customers current on Microchip products. Subscribers will receive email notification whenever there are changes, updates, revisions or errata related to a specified product family or development tool of interest.

To register, go to www.microchip.com/pcn and follow the registration instructions.

Customer Support

Users of Microchip products can receive assistance through several channels:

  • Distributor or Representative
  • Local Sales Office
  • Embedded Solutions Engineer (ESE)
  • Technical Support

Customers should contact their distributor, representative or ESE for support. Local sales offices are also available to help customers. A listing of sales offices and locations is included in this document.

Technical support is available through the website at: www.microchip.com/support

Microchip Devices Code Protection Feature

Note the following details of the code protection feature on Microchip products:

  • Microchip products meet the specifications contained in their particular Microchip Data Sheet.
  • Microchip believes that its family of products is secure when used in the intended manner, within operating specifications, and under normal conditions.
  • Microchip values and aggressively protects its intellectual property rights. Attempts to breach the code protection features of Microchip product is strictly prohibited and may violate the Digital Millennium Copyright Act.
  • Neither Microchip nor any other semiconductor manufacturer can guarantee the security of its code. Code protection does not mean that we are guaranteeing the product is “unbreakable”. Code protection is constantly evolving. Microchip is committed to continuously improving the code protection features of our products

Legal Notice

This publication and the information herein may be used only with Microchip products, including to design, test,
and integrate Microchip products with your application. Use of this information in any other manner violates these
terms. Information regarding device applications is provided only for your convenience and may be superseded
by updates. It is your responsibility to ensure that your application meets with your specifications. Contact your
local Microchip sales office for additional support or, obtain additional support at www.microchip.com/en us/support/ design-help/client-support- services.

THIS INFORMATION IS PROVIDED BY MICROCHIP “AS IS”. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE, OR WARRANTIES RELATED TO ITS CONDITION, QUALITY, OR PERFORMANCE.

IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL, OR CONSEQUENTIAL LOSS, DAMAGE, COST, OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE INFORMATION OR ITS USE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP’S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THE INFORMATION OR ITS USE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THE INFORMATION.

Use of Microchip devices in life support and/or safety applications is entirely at the buyer’s risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights unless otherwise stated.

Quality Management System

For information regarding Microchip’s Quality Management Systems, please visit www.microchip.com/quality.

Worldwide Sales and Service

AMERICAS ASIA/PACIFIC ASIA/PACIFIC EUROPE

Corporate Office 2355 West Chandler Blvd. Chandler, AZ 85224-6199Tel: 480-792-7200Fax: 480-792-7277Technical Support: www.microchip.com/support Web Address: www.microchip.com Atlanta Duluth, GA Tel: 678-957-9614Fax: 678-957-1455 Austin, TX Tel: 512-257-3370 Boston Westborough, MA Tel: 774-760-0087Fax: 774-760-0088 Chicago Itasca, IL Tel: 630-285-0071Fax: 630-285-0075 Dallas Addison, TX Tel: 972-818-7423Fax: 972-818-2924 Detroit Novi, MI Tel: 248-848-4000 Houston, TX Tel: 281-894-5983 Indianapolis Noblesville, IN Tel: 317-773-8323Fax: 317-773-5453Tel: 317-536-2380 Los Angeles Mission Viejo, CA Tel: 949-462-9523Fax: 949-462-9608Tel: 951-273-7800 Raleigh, NC Tel: 919-844-7510 New York, NY Tel: 631-435-6000 San Jose, CA Tel: 408-735-9110Tel: 408-436-4270 Canada – Toronto Tel: 905-695-1980Fax: 905-695-2078| Australia – Sydney Tel: 61-2-9868-6733 China – Beijing Tel: 86-10-8569-7000 China – Chengdu Tel: 86-28-8665-5511 China – Chongqing Tel: 86-23-8980-9588 China – Dongguan Tel: 86-769-8702-9880 China – Guangzhou Tel: 86-20-8755-8029 China – Hangzhou Tel: 86-571-8792-8115 China – Hong Kong SAR Tel: 852-2943-5100 China – Nanjing Tel: 86-25-8473-2460 China – Qingdao Tel: 86-532-8502-7355 China – Shanghai Tel: 86-21-3326-8000 China – Shenyang Tel: 86-24-2334-2829 China – Shenzhen Tel: 86-755-8864-2200 China – Suzhou Tel: 86-186-6233-1526 China – Wuhan Tel: 86-27-5980-5300 China – Xian Tel: 86-29-8833-7252 China – Xiamen Tel: 86-592-2388138 China – Zhuhai Tel: 86-756-3210040| India – Bangalore Tel: 91-80-3090-4444 India – New Delhi Tel: 91-11-4160-8631 India – Pune Tel: 91-20-4121-0141 Japan – Osaka Tel: 81-6-6152-7160 Japan – Tokyo Tel: 81-3-6880- 3770 Korea – Daegu Tel: 82-53-744-4301 Korea – Seoul Tel: 82-2-554-7200 Malaysia – Kuala Lumpur Tel: 60-3-7651-7906 Malaysia – Penang Tel: 60-4-227-8870 Philippines – Manila Tel: 63-2-634-9065 Singapore Tel: 65-6334-8870 Taiwan – Hsin Chu Tel: 886-3-577-8366 Taiwan – Kaohsiung Tel: 886-7-213-7830 Taiwan – Taipei Tel: 886-2-2508-8600 Thailand – Bangkok Tel: 66-2-694-1351 Vietnam – Ho Chi Minh Tel: 84-28-5448-2100| Austria – Wels Tel: 43-7242-2244-39Fax: 43-7242-2244-393 Denmark – Copenhagen Tel: 45-4485-5910Fax: 45-4485-2829 Finland – Espoo Tel: 358-9-4520-820 France – Paris Tel: 33-1-69-53-63-20Fax: 33-1-69-30-90-79 Germany – Garching Tel: 49-8931-9700 Germany – Haan Tel: 49-2129-3766400 Germany – Heilbronn Tel: 49-7131-72400 Germany – Karlsruhe Tel: 49-721-625370 Germany – Munich Tel: 49-89-627-144-0Fax: 49-89-627-144-44 Germany – Rosenheim Tel: 49-8031-354-560 Israel – Ra’anana Tel: 972-9-744-7705 Italy – Milan Tel: 39-0331-742611Fax: 39-0331-466781 Italy – Padova Tel: 39-049-7625286 Netherlands – Drunen Tel: 31-416-690399Fax: 31-416-690340 Norway – Trondheim Tel: 47-72884388 Poland – Warsaw Tel: 48-22-3325737 Romania – Bucharest Tel: 40-21-407-87-50 Spain – Madrid Tel: 34-91-708-08-90Fax: 34-91-708-08-91 Sweden – Gothenburg Tel: 46-31-704-60-40 Sweden – Stockholm Tel: 46-8-5090-4654 UK – Wokingham Tel: 44-118-921-5800Fax: 44-118-921-5820

Company logo

References

Read User Manual Online (PDF format)

Read User Manual Online (PDF format)  >>

Download This Manual (PDF format)

Download this manual  >>

Related Manuals