Design and Verification of an All-Digital Phase-Locked Loop for synchronizing a hard real-time power converter controller

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

Sähkötekniikan korkeakoulu | Master's thesis

Date

2022-03-21

Department

Major/Subject

Micro- and Nanoelectronic Circuit Design

Mcode

ELEC3036

Degree programme

Master’s Programme in Electronics and Nanotechnology (TS2013)

Language

en

Pages

78

Series

Abstract

Accurate time synchronization of CERN power converters is vital to ensure the synchronous performance of actions, such as the start of an acceleration ramp or stopping the beam, in particle accelerators. Additionally, it is required to provide accurate timestamps on certain events, such as faults. This thesis aims to design, verify, and characterize the PLL that belongs to a system that synchronizes a next-generation CERN power converter controller with external UTC time in µs-accuracy. The PLL in this thesis consists of an FPGA-based phase detector, a software-based proportional-integral loop filter, and an external DAC and VCXO. The PLL design is based on an old implementation that was used in the previous controller platform but needs to be re-written due to hardware changes. The main focus is developing and verifying a modular, Wishbone-interface phase detector in VHDL, as well as creating a prototype version for the loop filter in Python. After implementing the different PLL blocks, an analytical system model is derived. Then, the phase detector is verified with unit tests using VHDL and VUnit framework. The complete PLL is verified with system-level tests in both simulation environment, which is implemented with cocotb framework and Python, and hardware environment, which utilizes Python and a UART interface to access FPGA registers. The system-level tests test lock-in time, jitter filtering, and VCXO drift under different conditions. The tests prove that the PLL acquires phase-lock predictably, and the system model describes the behavior accurately. Decreasing the proportional gain factor improves jitter filtering but decreases lock-in time. Decreasing the time-constant decreases lock-in time but reduces stability. Furthermore, the phase drift in the absence of the synchronization pulse is reduced by 45x compared to the old implementation. The thesis consists of five chapters: Chapter 1 provides the motivation for the thesis. Chapter 2 introduces the required PLL theory to construct the system model. The methodology this thesis uses is explained in Chapter 3. Then, Chapter 4 describes the design and verification flow and displays the results. Finally, Chapter 5 summarizes the thesis.

CERN:n tehomuuntajien tarkka aikasynkronointi on elintärkeää toimintojen, kuten kiihdytysramppien aloituksen tai hiukkasuihkun pysäyttämisen, samanaikaisen suorittamisen varmistamiseksi hiukkaskiihdyttimissä. Sen lisäksi sitä tarvitaan tarkkojen aikaleimojen tuottamiseksi tapahtumille, kuten virheille. Tämän diplomityön tavoite on suunnitella, verifioida, ja karakterisoida vaihelukittu silmukka (PLL), joka kuuluu järjestelmään, joka synkronoi seuraavan sukupolven CERN tehomuuntajaohjaimen ulkoisen UTC ajan kanssa mikrosekunnin tarkkuudella. Tämän työn PLL koostuu FPGA-pohjaisesta vaihevertaimesta, ohjelmistopohjaisesta PI-säädin silmukkasuodattimesta, ja erillisestä DA-muuntimesta (DAC) ja jänniteohjatusta kideoskillaattorista (VCXO). PLL toteutus perustuu vanhaan toteutukseen, jota käytettiin edellisessä ohjainalustassa, mutta joka tulee kirjoittaa uudelleen elektroniikan muutoksien vuoksi. Painopiste on modulaarisen, Wishbone-rajapintaisen vaihevertaimen kehittämisessä VHDL-kielellä. Silmukkasuodatin kehitetään Python-kielellä, ja sen on tarkoitus olla prototyyppiversio. Sen jälkeen, kun eri PLL osat on toteutettu, johdetaan analyyttinen järjestelmämalli. Sitten vaihevertain verifioidaan yksikkötesteillä käyttäen VHDL:ää ja VUnit kehystä. Valmis PLL verifioidaan järjestelmätason testeillä sekä simulaatiotasolla, joka toteutetaan cocotb kehyksellä ja Python-kielellä, että laitteistotasolla, joka hyödyntää Python-kieltä ja UART-rajapintaa FPGA rekisterien käsiksipääsemiseen. Järjestelmätason testit testaavat lukittumisaikaa, värinäsuodatusta ja kideoskillaattorin ajelehtimista eri olosuhteissa. Testit osoittavat, että PLL lukittuu ennustettavasti, ja että järjestelmämalli kuvaa PLL:n käyttäytymistä tarkasti. Proportionaalisen vahvistuksen pienentäminen parantaa värinäsuodatusta, mutta pidentää lukittumisaikaa. Aikavakion pienentäminen lyhentää lukittumisaikaa, mutta heikentää stabiilisuutta. Sen lisäksi vaiheen ajelehtiminen synkronointipulssin puuttuessa pieneni 45-kertaisesti verrattuna vanhaan alustaan. Tämä työ koostuu viidestä luvusta: Luku 1 tarjoaa motivaation työlle. Luku 2 esittelee tarvittavan PLL teorian, jotta systeemimalli voidaan luoda. Työssä käytetty metodologia kerrotaan Luvussa 3. Seuraavaksi Luku 4 kuvailee toteutuksen ja verifioinnin etenemisen ja esittelee tulokset. Lopuksi Luku 5 vetää työn yhteen.

Description

Supervisor

Ryynänen, Jussi

Thesis advisor

Uznanski, Slawosz

Keywords

PLL, FPGA, verification, programmable logic

Other note

Citation