<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing with OASIS Tables v3.0 20080202//EN" "journalpub-oasis3.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:oasis="http://docs.oasis-open.org/ns/oasis-exchange/table" xml:lang="en" dtd-version="3.0">
  <front>
    <journal-meta><journal-id journal-id-type="publisher">ARS</journal-id><journal-title-group>
    <journal-title>Advances in Radio Science</journal-title>
    <abbrev-journal-title abbrev-type="publisher">ARS</abbrev-journal-title><abbrev-journal-title abbrev-type="nlm-ta">Adv. Radio Sci.</abbrev-journal-title>
  </journal-title-group><issn pub-type="epub">1684-9973</issn><publisher>
    <publisher-name>Copernicus Publications</publisher-name>
    <publisher-loc>Göttingen, Germany</publisher-loc>
  </publisher></journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.5194/ars-17-145-2019</article-id><title-group><article-title>A low complexity digital frequency calibration with high jitter immunity for ultra-low-power oscillators</article-title><alt-title>A Low Complexity Digital Frequency Calibration</alt-title>
      </title-group><?xmltex \runningtitle{A Low Complexity Digital Frequency Calibration}?><?xmltex \runningauthor{M.~Scholl et al.}?>
      <contrib-group>
        <contrib contrib-type="author" corresp="yes">
          <name><surname>Scholl</surname><given-names>Markus</given-names></name>
          <email>mscholl@ias.rwth-aachen.de</email>
        </contrib>
        <contrib contrib-type="author" corresp="no">
          <name><surname>Wunderlich</surname><given-names>Ralf</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no">
          <name><surname>Heinen</surname><given-names>Stefan</given-names></name>
          
        </contrib>
        <aff id="aff1"><institution>Integrated Analog Circuits and RF Systems, RWTH Aachen University, Aachen, 52062, Germany</institution>
        </aff>
      </contrib-group>
      <author-notes><corresp id="corr1">Markus Scholl (mscholl@ias.rwth-aachen.de)</corresp></author-notes><pub-date><day>19</day><month>September</month><year>2019</year></pub-date>
      
      <volume>17</volume>
      <fpage>145</fpage><lpage>150</lpage>
      <history>
        <date date-type="received"><day>13</day><month>February</month><year>2019</year></date>
           <date date-type="rev-recd"><day>18</day><month>May</month><year>2019</year></date>
           <date date-type="accepted"><day>22</day><month>May</month><year>2019</year></date>
      </history>
      <permissions>
        <copyright-statement>Copyright: © 2019 Markus Scholl et al.</copyright-statement>
        <copyright-year>2019</copyright-year>
      <license license-type="open-access"><license-p>This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this licence, visit <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">https://creativecommons.org/licenses/by/4.0/</ext-link></license-p></license></permissions><self-uri xlink:href="https://ars.copernicus.org/articles/17/145/2019/ars-17-145-2019.html">This article is available from https://ars.copernicus.org/articles/17/145/2019/ars-17-145-2019.html</self-uri><self-uri xlink:href="https://ars.copernicus.org/articles/17/145/2019/ars-17-145-2019.pdf">The full text article is available as a PDF file from https://ars.copernicus.org/articles/17/145/2019/ars-17-145-2019.pdf</self-uri>
      <abstract><title>Abstract</title>
    <p id="d1e90">This paper presents a highly efficient digital frequency calibration method for ultra-low-power oscillators in wireless communication systems.
This calibration method locks the ultra-low-power oscillator's output frequency to the reference clock of the wireless transceiver during its send- and receive-state to achieve frequency stability over process variation and temperature drifts.
The introduced calibration scheme offers high jitter immunity and short locking periods overcoming frequency calibration errors for typical ultra-low-power oscillator's by utilizing non-linear segmented feedback levels.
In measurements the proposed calibration method improves the frequency stability of an ultra-low-power 32 kHz oscillator from 53 to 10 ppm <inline-formula><mml:math id="M1" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C<inline-formula><mml:math id="M2" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>  over a wide temperature range for temperature drifts of less than 1 <inline-formula><mml:math id="M3" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C s<inline-formula><mml:math id="M4" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> with an estimated power consumption of 185 nW while coping with relocking periods of 7 ms.</p>
  </abstract>
    </article-meta>
  </front>
<body>
      

<sec id="Ch1.S1" sec-type="intro">
  <label>1</label><title>Introduction</title>
      <p id="d1e144">The demand for low power RF communication architectures in today's rapidly growing markets as the internet of things (IoT), smart utility networks (SUN), wireless sensor networks (WSN) and cyber-physical systems (CPS) has increased to support long battery lifetime on a stringent energy budget.
These architectures utilize an advanced duty-cycle scheme either based on wake-up timer for a time slot based communication protocol (TDMA) or on wake-up receiver to reduce power consumption on system level.
Both architecture types require a stable ultra low power (ULP) low frequency clock source with absolute frequency accuracy to implement a reliable and power saving duty cycle scheme in TDMA systems or for precise baseband data sampling in a wake-up receiver as discussed by <xref ref-type="bibr" rid="bib1.bibx1" id="text.1"/>.</p>
      <p id="d1e150">In prior works, several efforts have been made to achieve absolute frequency accuracy over process variation and temperature drifts.</p>
      <p id="d1e153">However, the conventional approach of using an external low frequency crystal (XTAL) as demonstrated by <xref ref-type="bibr" rid="bib1.bibx9" id="text.2"/> increases the external component count and therefore increases the total cost of the wireless communication system.
Other approaches proposed by <xref ref-type="bibr" rid="bib1.bibx6" id="text.3"/> and <xref ref-type="bibr" rid="bib1.bibx3" id="text.4"/> achieve absolute frequency accuracy by costly factory calibration and also require high temperature stability of the used ULP oscillator leading to increased power consumption in the oscillator design.
More application tailored solutions utilize existing clock signals in a complex system with absolute frequency accuracy but different frequency and design requirements as a reference for an on-chip calibration method.
<xref ref-type="bibr" rid="bib1.bibx8" id="text.5"/> propose a periodic recalibration scheme based on an existing clock signal to achieve absolute frequency accuracy and compensate frequency drifts over temperature changes relaxing the design requirements of the ULP oscillator's temperature stability leading to potentially lower power consumption and lower area.
Nonetheless, this calibration technique uses a successive approximation algorithm which typically have high jitter sensitivity degrading the frequency calibration accuracy.
These on-chip calibration methods like FIR-filter based calibration loops suffer from contradictory requirements of low bandwidth of the loop to suppress jitter resulting in high settling time and the calibration accuracy degradation by increased noise.</p>
      <p id="d1e168">This work presents a calibration technique overcoming the contradictory requirements of high jitter immunity to guarantee the optimum calibration word and fast settling time by using multi-level bang-bang algorithm.
This technique has been used in <xref ref-type="bibr" rid="bib1.bibx7" id="text.6"/> to dramatically increase the<?pagebreak page146?> performance and especially the temperature stability of an ULP oscillator.
The non-linear segmentation of the calibration error in the feedback path allows a large feedback gain for large frequency error leading to a fast settling but also has a very small feedback gain once the frequency tuning word has settled to achieve high jitter tolerance.
For a faster relocking in active states of the TRX the calibration algorithm is synchronized to the ULP oscillator to reduce the error signal in the first calibration cycle of the relocking to a minimum.
The low complexity of the proposed calibration technique leads to an efficient digital implementation with low power consumption.</p>
</sec>
<sec id="Ch1.S2">
  <label>2</label><title>Ultra low power clocks in wireless transceivers</title>
      <p id="d1e182">In Fig. <xref ref-type="fig" rid="Ch1.F1"/> a block diagram of a simplified wireless transceiver (TRX) is depicted.
The frequency synthesizer (PLL) is used to generate a local oscillator (LO) signal to down convert the received RF signal to the baseband which is filtered and digitized for further signal processing and demodulation.
Additionally, the PLL is used to generate a modulated RF signal which is amplified and fed to the antenna during transmit state.
To meet the strict requirements for absolute frequency accuracy of the transmitted signal and also for the LO signal, resulting from the dense channel allocation in the limited RF band, a precise crystal oscillator is used in every TRX as an absolute frequency reference.
This oscillator's frequency depends on the exact application and communication standard but is typically in a range between 10  and 50 MHz.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F1"><?xmltex \currentcnt{1}?><label>Figure 1</label><caption><p id="d1e189">System overview of a wireless transceiver.</p></caption>
        <?xmltex \igopts{width=241.848425pt}?><graphic xlink:href="https://ars.copernicus.org/articles/17/145/2019/ars-17-145-2019-f01.png"/>

      </fig>

      <p id="d1e198">Since many of these wireless TRX are used in devices which are battery operated there is a high demand to reduce average power consumption of the TRX to extend lifetime of the devices.
Therefore, advanced duty cycle schemes have been implemented for TDMA protocols exploiting the deterministic timeslot for transmit and receive operation and powering down most circuits of the TRX in between.
In these systems it is critical to determine the time point before the next dedicated timeslot to turn-on all necessary circuits.
This determination is realized with a wake-up timer counting clock cycles of either the main crystal oscillator or of a dedicated ULP oscillator typically in the range of 32  and 64 kHz.
This low frequency ULP oscillator is implemented to measure a timespan with a certain required accuracy while having much lower power consumption compared to the crystal oscillator.
Thus the main crystal oscillator is only active during the send- and receive-state of the TRX if a dedicated ULP oscillator is implemented and the power consumption can be further reduced as visualized in Fig. <xref ref-type="fig" rid="Ch1.F2"/>.
In this phases the main crystal oscillator can also be used as reference frequency to calibrate the ULP oscillator to overcome frequency deviations due to process variation.
The red curve indicates the power consumption of all blocks necessary to receive or transmit data as these are only active during the dedicated time slots.
The green curve gives the power consumption of the crystal oscillator while the blue curve represents the power consumption of the ULP oscillator.
In light green the area representing the energy which can be saved by implementing an ULP oscillator is visualized.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F2"><?xmltex \currentcnt{2}?><label>Figure 2</label><caption><p id="d1e206">Typical operation scheme of wireless communication systems.</p></caption>
        <?xmltex \igopts{width=241.848425pt}?><graphic xlink:href="https://ars.copernicus.org/articles/17/145/2019/ars-17-145-2019-f02.png"/>

      </fig>

</sec>
<sec id="Ch1.S3">
  <label>3</label><title>Frequency calibration methods</title>
      <p id="d1e223">In Table <xref ref-type="table" rid="Ch1.T1"/> different implementation approaches as analyzed by <xref ref-type="bibr" rid="bib1.bibx2" id="text.7"/> for frequency calibration loops are compared for the most relevant performance characteristics in this application as design complexity, area demand, power consumption and a performance indication for the tradeoff between frequency accuracy and settling time.</p>
      <p id="d1e231">Analog filter based frequency calibration loops offer low power consumption due to the full custom transistor level design flow but also suffer from the complexity and various design choices of this design flow.
This designs and especially the low frequency analog filter, necessary to suppress the high jitter of the clock signal to achieve high frequency accuracy, demand for large area.
Furthermore, it is challenging to apply very low duty-cycling ratios resulting from the short locking periods in which the reference clock is available to this calibration loop due to the analog output voltage drift caused by leakage currents.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F3" specific-use="star"><?xmltex \currentcnt{3}?><label>Figure 3</label><caption><p id="d1e236">Frequency calibration cycle of SAR logic for oscillators with high jitter.</p></caption>
        <?xmltex \igopts{width=426.791339pt}?><graphic xlink:href="https://ars.copernicus.org/articles/17/145/2019/ars-17-145-2019-f03.png"/>

      </fig>

<?xmltex \floatpos{t}?><table-wrap id="Ch1.T1"><?xmltex \currentcnt{1}?><label>Table 1</label><caption><p id="d1e249">Comparison of different calibration methods.</p></caption><oasis:table frame="topbot"><?xmltex \begin{scaleboxenv}{.89}[.89]?><oasis:tgroup cols="5">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="center"/>
     <oasis:colspec colnum="3" colname="col3" align="center"/>
     <oasis:colspec colnum="4" colname="col4" align="center"/>
     <oasis:colspec colnum="5" colname="col5" align="center"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">Complexity</oasis:entry>
         <oasis:entry colname="col3">Area</oasis:entry>
         <oasis:entry colname="col4">Power</oasis:entry>
         <oasis:entry colname="col5">Performance</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">Analog filter based</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M5" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M6" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M7" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M8" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">IIR filter based</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M9" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">0</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M10" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M11" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Bang-bang algorithm</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M12" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M13" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">0</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M14" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">SAR algorithm</oasis:entry>
         <oasis:entry colname="col2">0</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M15" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">0</oasis:entry>
         <oasis:entry colname="col5">0</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup><?xmltex \end{scaleboxenv}?></oasis:table></table-wrap>

      <p id="d1e418">IIR filter based frequency calibration loops overcome these output voltage drift issues because digital circuits and digital signal representation are inherently tolerant to leakage current.
The downside of this calibration approach are<?pagebreak page147?> the digital multiplications needed in the IIR filter resulting in high power consumption.</p>
      <p id="d1e421">The bang-bang algorithm is based on a very simple principle as it increases the digital tuning word by a fixed step size if the frequency of the ULP oscillator is too high and decreases the tuning word by the same amount if the output frequency is too low.
Due to its simplicity this calibration approach can be implemented with high power and area efficiency.
On the other hand the fixed step size leads to an unfavorable tradeoff between settling time, calibration accuracy and jitter immunity making this approach not suitable for applications with low duty-cycle ratios.</p>
      <p id="d1e424">Frequency calibration with a SAR algorithm can also be implemented very area and power efficient because it is using binary decisions based on the sign of the frequency deviation and there are no calculations with the actual frequency deviation word.
Additionally, the utilized binary search approach, which can also be seen as an inverse binary weighted step size, leads to a fast settling of this calibration approach.
A critical drawback of this approach is the missing relocking capability leading to a full calibration cycle in every relocking period independent from the actual frequency deviation.
Even more critical are the facts that the SAR logic is very prone to jitter because the step size is not adapted to the current frequency error and an error at the beginning of the calibration cycle cannot be corrected in later steps heavily degrading the calibration accuracy.
Fig. <xref ref-type="fig" rid="Ch1.F3"/> illustrates a calibration cycle of a SAR logic for an oscillator with high jitter and it also demonstrates how the jitter affects the calibration accuracy.
The upper graph shows the output tuning word of the SAR logic controlling the frequency of an oscillator whereas the lower graph gives the actual clock signal of the oscillator in the black curve, the desired period length in red arrows, a Gaussian distributed jitter probability in blue and the clock signal with jitter as a green edge within the circle.
In the first two calibration steps the algorithm performs as expected by testing if the oscillator's frequency is too high or low compared to the desired value for the tuning word “100000” and “010000”.
In the third step the frequency tuning word is set to “011000” and the frequency is measured to be high because the ULP oscillator's clock edge occurs earlier due to jitter.
Therefore the third bit is falsely detected as a “1” and consequently all following bits will be detected as “0” because the oscillator's output frequency is too low.</p>
</sec>
<sec id="Ch1.S4">
  <label>4</label><title>Multi-level bang-bang algorithm</title>
      <p id="d1e437">To overcome the limitations of the SAR and bang-bang algorithm but also avoiding the power consumption of the IIR filter based calibration a multi-level bang-bang algorithm as shown in Fig. <xref ref-type="fig" rid="Ch1.F4"/> is presented in this work.
The non-linear segmentation allows a large feedback gain for large frequency error leading to a fast settling but also has a very small feedback gain once the frequency tuning word has settled to achieve high jitter tolerance.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F4" specific-use="star"><?xmltex \currentcnt{4}?><label>Figure 4</label><caption><p id="d1e444">Implementation of the proposed digital multi-level bang-bang calibration logic.</p></caption>
        <?xmltex \igopts{width=398.338583pt}?><graphic xlink:href="https://ars.copernicus.org/articles/17/145/2019/ars-17-145-2019-f04.png"/>

      </fig>

      <?pagebreak page148?><p id="d1e453">The frequency error <inline-formula><mml:math id="M16" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">err</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is calculated from the ULP oscillator's clock and the reference clock from the crystal oscillator of the wireless transceiver by a frequency detector consisting of a counter, a register and a digital subtraction.
The counter is clocked with the reference clock and its value is stored in a flip-flop at the synchronized rising edge of the ULP oscillator's clock signal.
To fasten the relocking during active state of the reference clock signal the counter's restart bit is synchronized to the ULP oscillator's clock signal minimizing the first calculated error value of each relocking cycle.
The frequency error <inline-formula><mml:math id="M17" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">err</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is calculated from the stored counter value by subtraction a constant word <inline-formula><mml:math id="M18" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">freq</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, determining the frequency ratio between the ULP clock and the reference clock.
Afterwards this error signal is non-linearly segmented into three different levels representing a correction word <inline-formula><mml:math id="M19" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">corr</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.
This correction word is added to the tuning word <inline-formula><mml:math id="M20" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">tune</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> as the output of the calibration logic.
By choosing the segmentation levels as given in Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>) the segmentation can be very efficiently implemented in digital logic.
          <disp-formula id="Ch1.E1" content-type="numbered"><label>1</label><mml:math id="M21" display="block"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">corr</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mfenced open="{" close=""><mml:mtable class="cases" columnspacing="1em" rowspacing="0.2ex" columnalign="left left" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:mn mathvariant="normal">32</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>if</mml:mtext><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mn mathvariant="normal">32</mml:mn><mml:mo>≤</mml:mo><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">err</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>if</mml:mtext><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mn mathvariant="normal">16</mml:mn><mml:mo>≤</mml:mo><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">err</mml:mi></mml:msub><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">32</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">32</mml:mn></mml:mfrac></mml:mstyle></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>if</mml:mtext><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mn mathvariant="normal">0</mml:mn><mml:mo>≤</mml:mo><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">err</mml:mi></mml:msub><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">16</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">32</mml:mn></mml:mfrac></mml:mstyle></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>if</mml:mtext><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mo>-</mml:mo><mml:mn mathvariant="normal">16</mml:mn><mml:mo>≤</mml:mo><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">err</mml:mi></mml:msub><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>if</mml:mtext><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mo>-</mml:mo><mml:mn mathvariant="normal">32</mml:mn><mml:mo>≤</mml:mo><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">err</mml:mi></mml:msub><mml:mo>&lt;</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">16</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">32</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>if</mml:mtext><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">err</mml:mi></mml:msub><mml:mo>&lt;</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">32</mml:mn></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:math></disp-formula></p>
      <p id="d1e731">To achieve optimal performance the smallest level covers all errors <inline-formula><mml:math id="M22" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">err</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> caused by jitter of the ULP oscillator after settling of the calibration loop to ensure the smallest feedback gain with highest calibration accuracy.
This error range can be estimated from the <inline-formula><mml:math id="M23" display="inline"><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mi mathvariant="italic">σ</mml:mi></mml:mrow></mml:math></inline-formula>-range of the rms-jitter of the oscillator.
Additionally, errors resulting from non-linearities or changing of the feedback gain are avoided by this choice of range because only the smallest level occurs after settling.
The larger segmentation levels represent a trade-off between stability of the feedback loop and settling time of the calibration.</p>
      <p id="d1e755">To further validate the choice of error range and segmentation levels simulation results for the relocking time of different bang-bang algorithm implementations are given in Table <xref ref-type="table" rid="Ch1.T2"/>.
In simulation a standard bang-bang calibration loop using only the smallest segmentation level of the other implementations achieving 20.8 ms relocking time is compared to two different multi-level bang-bang calibration loops.
One of these multi-level loops uses a linear segmented feedback path resulting in 7.9 ms relocking time and the other one uses a non-linear segmentation as implemented in the presented design achieving 6.6 ms relocking time.</p>

<?xmltex \floatpos{t}?><table-wrap id="Ch1.T2"><?xmltex \currentcnt{2}?><label>Table 2</label><caption><p id="d1e763">Comparison of different bang-bang algorithm implementations.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="2">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="left"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">Relocking Time</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">Bang-bang</oasis:entry>
         <oasis:entry colname="col2">20.8 ms</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Linear feedback multi-level bang-bang</oasis:entry>
         <oasis:entry colname="col2">7.9 ms</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Non-linear feedback multi-level bang-bang</oasis:entry>
         <oasis:entry colname="col2">6.6 ms</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d1e816">To avoid problems related to clock domain crossing the ULP oscillator's clock signal is synchronized to the reference clock domain by a two flip-flop synchronizer avoiding metastability of this signal.
Besides this synchronization all other signals, registers and computations are in the clock domain of the reference clock avoiding problems with clock domain crossing in this design.</p>

<?xmltex \floatpos{t}?><table-wrap id="Ch1.T3" specific-use="star"><?xmltex \currentcnt{3}?><label>Table 3</label><caption><p id="d1e822">Performance comparison of ULP oscillators with different calibration approaches.</p></caption><oasis:table frame="topbot"><?xmltex \begin{scaleboxenv}{.77}[.77]?><oasis:tgroup cols="7">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="left"/>
     <oasis:colspec colnum="3" colname="col3" align="left"/>
     <oasis:colspec colnum="4" colname="col4" align="left"/>
     <oasis:colspec colnum="5" colname="col5" align="left"/>
     <oasis:colspec colnum="6" colname="col6" align="left"/>
     <oasis:colspec colnum="7" colname="col7" align="left"/>
     <oasis:thead>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">
                    <xref ref-type="bibr" rid="bib1.bibx5" id="text.8"/>
                  </oasis:entry>
         <oasis:entry colname="col3">
                    <xref ref-type="bibr" rid="bib1.bibx4" id="text.9"/>
                  </oasis:entry>
         <oasis:entry colname="col4">
                    <xref ref-type="bibr" rid="bib1.bibx8" id="text.10"/>
                  </oasis:entry>
         <oasis:entry colname="col5">
                    <xref ref-type="bibr" rid="bib1.bibx6" id="text.11"/>
                  </oasis:entry>
         <oasis:entry colname="col6">
                    <xref ref-type="bibr" rid="bib1.bibx3" id="text.12"/>
                  </oasis:entry>
         <oasis:entry colname="col7">
                    <xref ref-type="bibr" rid="bib1.bibx7" id="text.13"/>
                  </oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2"/>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4"/>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
         <oasis:entry colname="col7">(This Technique)</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">Process</oasis:entry>
         <oasis:entry colname="col2">180 nm</oasis:entry>
         <oasis:entry colname="col3">180 nm</oasis:entry>
         <oasis:entry colname="col4">130 nm</oasis:entry>
         <oasis:entry colname="col5">65 nm</oasis:entry>
         <oasis:entry colname="col6">65 nm</oasis:entry>
         <oasis:entry colname="col7">130 nm</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Area</oasis:entry>
         <oasis:entry colname="col2">0.017 mm<inline-formula><mml:math id="M25" display="inline"><mml:msup><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">0.245 mm<inline-formula><mml:math id="M26" display="inline"><mml:msup><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">0.250 mm<inline-formula><mml:math id="M27" display="inline"><mml:msup><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5">0.032 mm<inline-formula><mml:math id="M28" display="inline"><mml:msup><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6">0.015 mm<inline-formula><mml:math id="M29" display="inline"><mml:msup><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col7">0.014 mm<inline-formula><mml:math id="M30" display="inline"><mml:msup><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Frequency</oasis:entry>
         <oasis:entry colname="col2">31.24 kHz</oasis:entry>
         <oasis:entry colname="col3">0.011 kHz</oasis:entry>
         <oasis:entry colname="col4">100 kHz</oasis:entry>
         <oasis:entry colname="col5">18.5 kHz</oasis:entry>
         <oasis:entry colname="col6">33 kHz</oasis:entry>
         <oasis:entry colname="col7">32 kHz</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Power</oasis:entry>
         <oasis:entry colname="col2">360 nW</oasis:entry>
         <oasis:entry colname="col3">5.8 nW</oasis:entry>
         <oasis:entry colname="col4">150 nW</oasis:entry>
         <oasis:entry colname="col5">120 nW</oasis:entry>
         <oasis:entry colname="col6">190 nW</oasis:entry>
         <oasis:entry colname="col7">80 nW</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Accuracy</oasis:entry>
         <oasis:entry colname="col2">4000 ppm <inline-formula><mml:math id="M31" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C<inline-formula><mml:math id="M32" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">45 ppm <inline-formula><mml:math id="M33" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C<inline-formula><mml:math id="M34" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">14 ppm <inline-formula><mml:math id="M35" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C<inline-formula><mml:math id="M36" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5">22 ppm <inline-formula><mml:math id="M37" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C<inline-formula><mml:math id="M38" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6">38 ppm <inline-formula><mml:math id="M39" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C<inline-formula><mml:math id="M40" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col7">10 ppm <inline-formula><mml:math id="M41" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C<inline-formula><mml:math id="M42" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>, 53 ppm <inline-formula><mml:math id="M43" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C<inline-formula><mml:math id="M44" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula><inline-formula><mml:math id="M45" display="inline"><mml:msup><mml:mi/><mml:mo>*</mml:mo></mml:msup></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Temp Range</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M46" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>45–80 <inline-formula><mml:math id="M47" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M48" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>10–90 <inline-formula><mml:math id="M49" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C</oasis:entry>
         <oasis:entry colname="col4">20–70 <inline-formula><mml:math id="M50" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M51" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>40–90 <inline-formula><mml:math id="M52" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C</oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M53" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>20–90 <inline-formula><mml:math id="M54" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C</oasis:entry>
         <oasis:entry colname="col7">10–100 <inline-formula><mml:math id="M55" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Cal. Method</oasis:entry>
         <oasis:entry colname="col2">Multi-Stage Bang-Bang</oasis:entry>
         <oasis:entry colname="col3">NA</oasis:entry>
         <oasis:entry colname="col4">SAR Alg.</oasis:entry>
         <oasis:entry colname="col5">Factory Cal.</oasis:entry>
         <oasis:entry colname="col6">Factory Cal.</oasis:entry>
         <oasis:entry colname="col7">Presented Technique</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup><?xmltex \end{scaleboxenv}?></oasis:table><table-wrap-foot><p id="d1e825"><inline-formula><mml:math id="M24" display="inline"><mml:msup><mml:mi/><mml:mo>*</mml:mo></mml:msup></mml:math></inline-formula> Without periodic relocking. NA: not available.</p></table-wrap-foot></table-wrap>

</sec>
<sec id="Ch1.S5">
  <label>5</label><title>Measurement results</title>
      <p id="d1e1383">The presented digital frequency calibration method has been designed and evaluated using synthesized hardware description language on an Virtex-5 FPGA platform.
For measurements the FPGA is connected to a custom designed ULP low frequency digitally controlled oscillator (DCO) on a separate ASIC fabricated in a 130 nm technology which was presented by <xref ref-type="bibr" rid="bib1.bibx7" id="text.14"/>.
The ULP oscillator's clock signal and a 32 MHz reference clock signal are connected to the FPGA while the 9 bit frequency tuning word from the calibration loop is written from the FPGA to the custom ASIC with a 8 MHz SPI interface.
The latency caused by communication over a SPI interface instead of parallel wired connection to the analog circuitry is neglectable in the measurement.</p>
      <p id="d1e1389">Additional synthesis results for a co-integrated on-chip implementation of the presented digital frequency calibration in the  130 nm technology estimate a power consumption of 26.4 <inline-formula><mml:math id="M56" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>W during relocking and 5120 <inline-formula><mml:math id="M57" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>m<inline-formula><mml:math id="M58" display="inline"><mml:msup><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:math></inline-formula> occupied area.
The estimated power consumption during relocking <inline-formula><mml:math id="M59" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi mathvariant="normal">cal</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> translates to an average power consumption <inline-formula><mml:math id="M60" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi mathvariant="normal">avg</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> of
          <disp-formula id="Ch1.E2" content-type="numbered"><label>2</label><mml:math id="M61" display="block"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi mathvariant="normal">avg</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mi mathvariant="normal">cal</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">cal</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">cycle</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mn mathvariant="normal">26.4</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi><mml:mi mathvariant="normal">W</mml:mi></mml:mrow><mml:mo>⋅</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">7</mml:mn><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mrow class="unit"><mml:mi mathvariant="normal">ms</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mrow class="unit"><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mn mathvariant="normal">185</mml:mn><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mrow class="unit"><mml:mi mathvariant="normal">nW</mml:mi></mml:mrow></mml:mrow></mml:math></disp-formula>
        for a periodic 7 ms relocking cycle every second.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F5"><?xmltex \currentcnt{5}?><label>Figure 5</label><caption><p id="d1e1513">Chip micrograph of the low frequency ULP DCO used in the measurement setup.</p></caption>
        <?xmltex \igopts{width=199.169291pt}?><graphic xlink:href="https://ars.copernicus.org/articles/17/145/2019/ars-17-145-2019-f05.png"/>

      </fig>

      <p id="d1e1523">A micrograph of the 32 kHz ULP DCO used in measurement is shown in Fig. <xref ref-type="fig" rid="Ch1.F5"/>, occupying <inline-formula><mml:math id="M62" display="inline"><mml:mrow><mml:mn mathvariant="normal">100</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi><mml:mi mathvariant="normal">m</mml:mi></mml:mrow><mml:mo>×</mml:mo><mml:mn mathvariant="normal">140</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi><mml:mi mathvariant="normal">m<?pagebreak page149?></mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> area.
The power consumption of this ULP oscillator is 80 nW from a 1.2 V supply voltage.
This design has a measured rms-jitter of 1.0 <inline-formula><mml:math id="M63" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:math></inline-formula> resulting from the current-source-based oscillator topology demanding for high jitter immunity of the digital frequency calibration method.</p>
      <p id="d1e1562">Figure <xref ref-type="fig" rid="Ch1.F6"/> shows a measured calibration cycle with initial locking and relocking after a provoked frequency error demonstrating fast relocking capability and high jitter immunity.
The blue curve illustrates the output <inline-formula><mml:math id="M64" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">tune</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> of the digital frequency calibration loop whereas the red curve represents the <inline-formula><mml:math id="M65" display="inline"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi mathvariant="normal">err</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> signal in the digital logic indicating the current frequency error.
During the 20 ms initial calibration phase different feedback levels can be observed as the slope of the frequency tuning word changes.
After provoking a small frequency error the digital calibration loop relocks the oscillator's output frequency within 7 ms.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F6"><?xmltex \currentcnt{6}?><label>Figure 6</label><caption><p id="d1e1591">Measured calibration cycle with initial locking and relocking after provoked frequency error.</p></caption>
        <?xmltex \igopts{width=241.848425pt}?><graphic xlink:href="https://ars.copernicus.org/articles/17/145/2019/ars-17-145-2019-f06.png"/>

      </fig>

      <p id="d1e1600">In Fig. <xref ref-type="fig" rid="Ch1.F7"/> the measured output frequency of the ULP oscillator over a temperature range from 10  to 100 <inline-formula><mml:math id="M66" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C and temperature gradients of 1 <inline-formula><mml:math id="M67" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C s<inline-formula><mml:math id="M68" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> is shown.
The blue line represents the measured oscillator's output frequency with an initial calibration cycle whereas the red dash-dotted line shows the output frequency after periodic relocking every second.
The presented periodic relocking calibration scheme improves the ULP oscillator's frequency stability over temperature from 53 to 10 ppm <inline-formula><mml:math id="M69" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C<inline-formula><mml:math id="M70" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F7"><?xmltex \currentcnt{7}?><label>Figure 7</label><caption><p id="d1e1659">Measured improvement in the temperature stability of the ULP oscillator's frequency with initial calibration and periodic recalibration for small temperature gradients of 1 <inline-formula><mml:math id="M71" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C s<inline-formula><mml:math id="M72" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>.</p></caption>
        <?xmltex \igopts{width=241.848425pt}?><graphic xlink:href="https://ars.copernicus.org/articles/17/145/2019/ars-17-145-2019-f07.png"/>

      </fig>

      <p id="d1e1690">Table <xref ref-type="table" rid="Ch1.T3"/> gives a comparison between other published works and the ULP low frequency clock generation from <xref ref-type="bibr" rid="bib1.bibx7" id="text.15"/> utilizing the proposed and analyzed frequency calibration method to improve the system performance.
With the frequency calibration method discussed in this work the previous published clock generation system<?pagebreak page150?> improves the temperature stability of the oscillator from 53 to 10 ppm <inline-formula><mml:math id="M73" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C<inline-formula><mml:math id="M74" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> and therefore exhibit the temperature stability of other published works for similar temperature ranges with lower power consumption.</p>
</sec>
<sec id="Ch1.S6" sec-type="conclusions">
  <label>6</label><title>Conclusions</title>
      <p id="d1e1727">A highly efficient, low effort digital frequency calibration method with high jitter immunity specially tailored to ultra-low-power oscillators in wireless communication systems has been presented.
By overcoming typical issue of ULP oscillators and enabling fast relocking with a non-linear segmented feedback in the calibration loop, the temperature stability of a custom designed ULP oscillator has been improved from 53 to 10 ppm <inline-formula><mml:math id="M75" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C<inline-formula><mml:math id="M76" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> for small temperature gradients of 1 <inline-formula><mml:math id="M77" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C s<inline-formula><mml:math id="M78" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> and periodic relocking after 1 s.
Measurements validate the design choices and demonstrate fast and precise settling for ULP oscillators with high jitter output signals while maintaining low power consumption and area.
Due to its simplicity and flexibility, it can be added as a straight-forward temperature stability enhancement technique for ULP clock sources in wireless communication systems.</p>
</sec>

      
      </body>
    <back><notes notes-type="dataavailability"><title>Data availability</title>

      <p id="d1e1776">The data are available upon request.</p>
  </notes><notes notes-type="competinginterests"><title>Competing interests</title>

      <p id="d1e1782">The authors declare that they have no conflict of
interest.</p>
  </notes><notes notes-type="sistatement"><title>Special issue statement</title>

      <p id="d1e1788">This article is part of the special issue “Kleinheubacher Berichte 2018”. It is a result of the Kleinheubacher Tagung 2018, Miltenberg, Germany, 24–26 September 2018.</p>
  </notes><notes notes-type="reviewstatement"><title>Review statement</title>

      <p id="d1e1794">This paper was edited by Jens Anders and reviewed by two anonymous referees.</p>
  </notes><?xmltex \hack{\newpage}?><ref-list>
    <title>References</title>

      <ref id="bib1.bibx1"><label>Burdett(2015)</label><?label Burdett2015?><mixed-citation>Burdett, A.: Ultra-Low-Power Wireless Systems: Energy-Efficient
Radios for the Internet of Things, in: IEEE Solid-State Circuits Mag.,
18–28, <ext-link xlink:href="https://doi.org/10.1109/MSSC.2015.2417095" ext-link-type="DOI">10.1109/MSSC.2015.2417095</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx2"><label>Franklin et al.(2014)</label><?label Franklin2014?><mixed-citation>
Franklin, G. F., Powell, J. D., and Emami-Naeini, A.: Feedback Control of
Dynamic Systems 7th, Prentice Hall Press Upper Saddle River, NJ, USA, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx3"><label>Griffith et al.(2014)</label><?label Griffith2014?><mixed-citation>Griffith, D., Røine, P. T., Murdock, J., and Smith, R.: A 190 nW 33 kHz RC
oscillator with <inline-formula><mml:math id="M79" display="inline"><mml:mrow><mml:mo>±</mml:mo><mml:mn mathvariant="normal">0.21</mml:mn></mml:mrow></mml:math></inline-formula> % temperature stability and 4 ppm long-term
stability, in: Int. Solid-State Circuits Conf. Dig. Tech. Papers (ISSCC),
300–301, <ext-link xlink:href="https://doi.org/10.1109/ISSCC.2014.6757443" ext-link-type="DOI">10.1109/ISSCC.2014.6757443</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx4"><label>Jeong et al.(2014)</label><?label Jeong2014?><mixed-citation>Jeong, S., Lee, I., Blaauw, D., and Sylvester, D.: A 5.8 nW,
45 ppm/<inline-formula><mml:math id="M80" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C on-chip CMOS wake-up timer using a constant charge
subtraction scheme, in: Proc. Custom Integrated Circuits Conf. (CICC),
1–4, <ext-link xlink:href="https://doi.org/10.1109/CICC.2014.6946008" ext-link-type="DOI">10.1109/CICC.2014.6946008</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx5"><label>Joonhyung et al.(2010)</label><?label Joonhyung2010?><mixed-citation>Joonhyung, L., Kwangmook, L., and Koonsik, C.: Ultra low power RC oscillator
for system wake-up using highly precise auto-calibration technique, in: Proc.
European Solid-State Circuits Conf. (ESSCIRC),   274–277,
<ext-link xlink:href="https://doi.org/10.1109/ESSCIRC.2010.5619876" ext-link-type="DOI">10.1109/ESSCIRC.2010.5619876</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx6"><label>Paidimarri et al.(2013)</label><?label Paidimarri2013?><mixed-citation>Paidimarri, A., Griffith, D., Wang, A., Chandrakasan, A. P., and Burra, G.: A
120 nW 18.5 kHz RC oscillator with comparator offset cancellation for
<inline-formula><mml:math id="M81" display="inline"><mml:mrow><mml:mo>±</mml:mo><mml:mn mathvariant="normal">0.25</mml:mn></mml:mrow></mml:math></inline-formula> % temperature stability, in: Int. Solid-State Circuits Conf. Dig.
Tech. Papers (ISSCC),  184–185, <ext-link xlink:href="https://doi.org/10.1109/ISSCC.2013.6487692" ext-link-type="DOI">10.1109/ISSCC.2013.6487692</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx7"><label>Scholl et al.(2016)</label><?label Scholl2016?><mixed-citation>Scholl, M., Zhang, Y., Wunderlich, R., and Heinen, S.: A 80 nW, 32 kHz
charge-pump based ultra low power oscillator with temperature compensation,
in: Proc. European Solid-State Circuits Conf. (ESSCIRC),  343–346,
<ext-link xlink:href="https://doi.org/10.1109/ESSCIRC.2016.7598312" ext-link-type="DOI">10.1109/ESSCIRC.2016.7598312</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx8"><label>Shrivastava and Calhoun(2012)</label><?label Shrivastava2012?><mixed-citation>Shrivastava, A. and Calhoun, B. H.: A 150 nW, 5 ppm/<inline-formula><mml:math id="M82" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C, 100 kHz
On-Chip clock source for ultra low power SoCs, in: Proc. Custom
Integrated Circuits Conf. (CICC), 1–4, <ext-link xlink:href="https://doi.org/10.1109/CICC.2012.6330699" ext-link-type="DOI">10.1109/CICC.2012.6330699</ext-link>,
2012.</mixed-citation></ref>
      <ref id="bib1.bibx9"><label>Yoon et al.(2016)</label><?label Yoon2016?><mixed-citation>Yoon, D., Jang, T., Sylvester, D., and Blaauw, D.: A 5.58 nW Crystal
Oscillator Using Pulsed Driver for Real-Time Clocks, in: IEEE J. Solid-State
Circuits (SSC),   509–522, <ext-link xlink:href="https://doi.org/10.1109/JSSC.2015.2501982" ext-link-type="DOI">10.1109/JSSC.2015.2501982</ext-link>, 2016.</mixed-citation></ref>

  </ref-list></back>
    <!--<article-title-html>A low complexity digital frequency calibration with high jitter immunity for ultra-low-power oscillators</article-title-html>
<abstract-html><p>This paper presents a highly efficient digital frequency calibration method for ultra-low-power oscillators in wireless communication systems.
This calibration method locks the ultra-low-power oscillator's output frequency to the reference clock of the wireless transceiver during its send- and receive-state to achieve frequency stability over process variation and temperature drifts.
The introduced calibration scheme offers high jitter immunity and short locking periods overcoming frequency calibration errors for typical ultra-low-power oscillator's by utilizing non-linear segmented feedback levels.
In measurements the proposed calibration method improves the frequency stability of an ultra-low-power 32&thinsp;kHz oscillator from 53 to 10&thinsp;ppm&thinsp;°C<sup>−1</sup>  over a wide temperature range for temperature drifts of less than 1&thinsp;°C&thinsp;s<sup>−1</sup> with an estimated power consumption of 185&thinsp;nW while coping with relocking periods of 7&thinsp;ms.</p></abstract-html>
<ref-html id="bib1.bib1"><label>Burdett(2015)</label><mixed-citation>
Burdett, A.: Ultra-Low-Power Wireless Systems: Energy-Efficient
Radios for the Internet of Things, in: IEEE Solid-State Circuits Mag.,
18–28, <a href="https://doi.org/10.1109/MSSC.2015.2417095" target="_blank">https://doi.org/10.1109/MSSC.2015.2417095</a>, 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib2"><label>Franklin et al.(2014)</label><mixed-citation>
Franklin, G. F., Powell, J. D., and Emami-Naeini, A.: Feedback Control of
Dynamic Systems 7th, Prentice Hall Press Upper Saddle River, NJ, USA, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib3"><label>Griffith et al.(2014)</label><mixed-citation>
Griffith, D., Røine, P. T., Murdock, J., and Smith, R.: A 190&thinsp;nW 33&thinsp;kHz RC
oscillator with ±0.21&thinsp;% temperature stability and 4&thinsp;ppm long-term
stability, in: Int. Solid-State Circuits Conf. Dig. Tech. Papers (ISSCC),
300–301, <a href="https://doi.org/10.1109/ISSCC.2014.6757443" target="_blank">https://doi.org/10.1109/ISSCC.2014.6757443</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib4"><label>Jeong et al.(2014)</label><mixed-citation>
Jeong, S., Lee, I., Blaauw, D., and Sylvester, D.: A 5.8&thinsp;nW,
45&thinsp;ppm/°C on-chip CMOS wake-up timer using a constant charge
subtraction scheme, in: Proc. Custom Integrated Circuits Conf. (CICC),
1–4, <a href="https://doi.org/10.1109/CICC.2014.6946008" target="_blank">https://doi.org/10.1109/CICC.2014.6946008</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib5"><label>Joonhyung et al.(2010)</label><mixed-citation>
Joonhyung, L., Kwangmook, L., and Koonsik, C.: Ultra low power RC oscillator
for system wake-up using highly precise auto-calibration technique, in: Proc.
European Solid-State Circuits Conf. (ESSCIRC),   274–277,
<a href="https://doi.org/10.1109/ESSCIRC.2010.5619876" target="_blank">https://doi.org/10.1109/ESSCIRC.2010.5619876</a>, 2010.
</mixed-citation></ref-html>
<ref-html id="bib1.bib6"><label>Paidimarri et al.(2013)</label><mixed-citation>
Paidimarri, A., Griffith, D., Wang, A., Chandrakasan, A. P., and Burra, G.: A
120&thinsp;nW 18.5&thinsp;kHz RC oscillator with comparator offset cancellation for
±0.25&thinsp;% temperature stability, in: Int. Solid-State Circuits Conf. Dig.
Tech. Papers (ISSCC),  184–185, <a href="https://doi.org/10.1109/ISSCC.2013.6487692" target="_blank">https://doi.org/10.1109/ISSCC.2013.6487692</a>, 2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib7"><label>Scholl et al.(2016)</label><mixed-citation>
Scholl, M., Zhang, Y., Wunderlich, R., and Heinen, S.: A 80&thinsp;nW, 32&thinsp;kHz
charge-pump based ultra low power oscillator with temperature compensation,
in: Proc. European Solid-State Circuits Conf. (ESSCIRC),  343–346,
<a href="https://doi.org/10.1109/ESSCIRC.2016.7598312" target="_blank">https://doi.org/10.1109/ESSCIRC.2016.7598312</a>, 2016.
</mixed-citation></ref-html>
<ref-html id="bib1.bib8"><label>Shrivastava and Calhoun(2012)</label><mixed-citation>
Shrivastava, A. and Calhoun, B. H.: A 150&thinsp;nW, 5&thinsp;ppm/°C, 100&thinsp;kHz
On-Chip clock source for ultra low power SoCs, in: Proc. Custom
Integrated Circuits Conf. (CICC), 1–4, <a href="https://doi.org/10.1109/CICC.2012.6330699" target="_blank">https://doi.org/10.1109/CICC.2012.6330699</a>,
2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib9"><label>Yoon et al.(2016)</label><mixed-citation>
Yoon, D., Jang, T., Sylvester, D., and Blaauw, D.: A 5.58&thinsp;nW Crystal
Oscillator Using Pulsed Driver for Real-Time Clocks, in: IEEE J. Solid-State
Circuits (SSC),   509–522, <a href="https://doi.org/10.1109/JSSC.2015.2501982" target="_blank">https://doi.org/10.1109/JSSC.2015.2501982</a>, 2016.
</mixed-citation></ref-html>--></article>
