Introduction
In recent years, CMOS-based pulsed Radar system has emerged as a cost-effective scheme for indoor wireless sensing applications [1] [2] [3] [4] [5]. Such a Radar transmits a sequence of short-duration pulses periodically. Once a pulse is transmitted, it listens to any echo (or returned signal) to decide if an object is detected within its target range (e.g., in an
In general, a pulsed Radar relies on a timing control unit called Programmable Phase Shifter to control its transceiver's operations precisely. This function of the programmable phase shifter depends on two major parameters, as illustrated in Fig. 1:
(1) Operation Period To
This denotes the timing interval between two pulses. For example, in our working example, we use 10MHz as the operation frequency, or 100ns as the operation period, meaning that the RF front-end transmits a short-duration pulse signal in every 100ns period. It is notable that this operation period is also the maximum tunable range of a programmable phase shifter. So, our example has a wide range of tunable range [0ns, 100ns].
(2) Tuning Resolution \boldsymbol{\delta}_{\mathbf{0}}
This denotes the minimum tuning unit of time. In our example, we set 10ps as the tuning resolution. Overall, the tunable range is divided into \begin{equation*}
\mathbf{Phase}\ \mathbf{Shift}\ \mathbf{Amount} (\mathbf{PSA}) =\boldsymbol{k}^{\ast}10\mathbf{ps}
\end{equation*}
Where the phase-shift amount (PSA) is equivalent to the Time-of-Arrival (ToA).
Our programmable phase shifter produces two clock signals
A cell-based “programmable phase-shifter” design has been revealed in [6]. It produced the desired phase-shift amount by a so-called two-stage coarse-fine tuning process [7]. More specifically, it incorporates a Generic DLL to create a desired “fine delay” within [1ns 2ns], when added to a “coarse delay” in [0ns, 99ns] will become a desired phase-shift amount within a wide-range of [Ons, 100ns]. while having a high tuning resolution of 10ps.
It is worth mentioning that a Generic DLL is more complicated than a typical DLL, as a Generic DLL needs to be able to lock to an arbitrary delay, instead of just locking to a clock cycle time of the input clock signal. This creates a major difference in their operation: A typical DLL can operate in a closed loop after locking, by making the phase of the output clock signal in line with the input clock signal constantly, while a Generic DLL may operate in an open loop after locking, because there is no reference it can use to calibrate the output clock signal anymore. This poses a challenge for tracking the process, VDD, and temperature variation in a Generic DLL. Even though it has been demonstrated in [6] that the process and VDD condition can be calibrated on the chip by some calibration circuit before the operation of a General DLL, no scheme has been proposed to address the effect of temperature variation. Study shows that a Generic DLL in [6] could experience a phase error as large as 96ps when the temperature elevates from 25°C to 125°C. In light of this observation, we therefore aim to propose a temperature tracking scheme in this work for a Generic DLL, so that it can be used in our programmable phase-shifter to enhance its robustness under temperature variation.
The rest of this paper is organized as follows. Section II reviews the basic architecture of a programmable phase-shifter. Section III discusses the proposed temperature tracking scheme. Section IV presents experimental results, and Section V concludes.
Preliminaries
A. Overview
A basic programmable phase shifter is composed of three parts, (1) coarse-tuning block, (2) fine-tuning block, and (3) a central controller. The coarse-tuning block is responsible for coarse-delay generation with a tuning resolution of 1ns. On the other hand, fine-tuning block is responsible for fine-delay generation of a tuning resolution of 10ps and a tunable range of [1ns, 2ns] under a “fine-code”. The central controller transmits control signals, regulating the locking and operational flow of entire circuit. Fig. 2 shows the major IOs and internal signals:
: A 100MHz input reference clock signal.\Phi_{\text{ref}} : A 7-bit coarse-tuning code, for controlling the coarse-delay.\text{coarse}{\_}{\text{code}}[6:0] : The clock signal produced by the coarse-tuning block. This signal has a desired coarse-delay in reference to the input reference clock.\Phi_{\text{coarse}} : A 8-bit fine-tuning code.\text{fine}{\_}\text{code}[7:0] and\Phi_{\text{new}{\_}{ref}} : Two 10MHz clock signals produced by our programmable phase shifter. The phase difference between\Phi_{\text{shifted}} and\Phi_{\text{new}{\_}{\text{ref}}} is the phase-shift amount defined by\Phi_{\text{shifted}} and\text{coarse}{\_}{\text{code}}[6:0] \text{fine}{\_}{\text{code}}[7:0]
The two-step phase-shift amount (PSA) can be expressed as:\begin{equation*}
\mathbf{PSA} =\mathbf{coarse}{\_}{\mathbf{code}}[6:0]^{\ast}1\mathbf{ns}+\text{fine}{\_}{\text{code}}[7:0]^{\ast}10\mathbf{ps}
\end{equation*}
In other words, the
Illustration of the timing relationship between
As illustrated by the waveforms in Fig. 3, the rising edge of
B. Architecture, Circuit, and Operation
The operation of the coarse-tuning block is relatively PVT-invariant, and thus omitted. Next, we will focus more on how to make the fine-tuning block PVT-invariant.
The micro-architecture of the fine-tuning block is shown in Fig. 4. It can be divided into the following four components - (1) a Generic Delay-Locked Loop (DLL), which will lock to a desired fine-delay after a delay calibration process during a delay locking process, (2) a cell-based All-Digital Phase Locked Loop (ADPLL) (named ADPLL-2) [8], which will be used to create the calibration clock signals,
Conceptually, these components jointly take
Temperature Tracking Scheme
A. Delay Calibration of the Generic DLL
To make a generic DLL locking to an arbitrarily specified delay value, e.g., 1.32ns we use ADPLL-2 to produce a clock signal with a period of 1.32ns to drive the DLL in our design in a so-called calibration stage. Then the DLL goes through a typical locking process. After the DLL is locked, its Tunable Delay Element (TDE) in the DLL will have exactly 1.32ns as desired, and then we can continue to switch the input signal of the DLL to the normal 10MHz input clock signal, i.e.,
B. Temperature Tracking
We modify the Generic DLL as shown in Fig. 5 to assist the temperature tracking process. The goal is to keep the delay across the TDE in the DLL invariant regardless of the temperature.
Major IO signals in this block diagram include:
: A 10MHz clock coming out of the coarse-tuning block as the input to this Generic DLL.\text{DLL}{\_}\text{in} : Final output of the Generic DLL.\Phi_{\text{shifted}} : A high-speed 1GHz clock signal previously generated elsewhere. It is mainly used for “training pulse generation” as will be detailed later.\Phi_{\text{fast}}
This modified Generic DLL can be divided into the following portions:
A basic DLL: which includes a TDE implemented by the architecture proposed in [9], a Phase-Detector (PD), and a controlling for DLL locking operation.
A TDE-delay quantifying circuit: which includes only an inverter and an AND gate. It converts the TDE-delay into a pulse-width in a signal called ‘PW’. We will frequently mention this signal later.
A Time-to-Digital Converter (TDC): which is implemented by only standard cells following the guidelines proposed in [10]. This TDC converts the pulse-width in its incoming signal into a 9-bit digital code, denoted as TDC_code[8:0].
A training clock signals generator: which consists of two counter-based frequency dividers, namely ‘Divider-1’ and ‘Divider-2’. Two training signals are thereby generated, including ‘Clock_PW_1ns' and ‘Clock_PW_1ns'. As their names suggest, the pulse-width of ‘Clock_PW_1ns' is 1ns, and the pulse-width ‘ ’_2ns' is 2ns.
A temperature-tracking controller: which regulates the “control-code”
of the TDE during the normal operation. In the above figure, the control code of the TDE is denoted as{}^{\prime\prime} .\gamma[10:0]
Next, we describe the temperature-tracking operation. We have established one auxiliary feedback path in the new architecture: \begin{gather*}
\mathbf{TDE}-\mathbf{delay}\ \mathbf{quantifying}\ \mathbf{signal} ({}^{\prime}PW{}^{\prime})\rightarrow \mathbf{TDC}\rightarrow\\
\mathbf{Controller}\rightarrow
{}^{\prime}\mathbf{fine}-\mathbf{code}^{\prime}\ \mathbf{of}\ \mathbf{the}\ \mathbf{TDE}
\end{gather*}
Whenever the General DLL starts its normal operation, we can intermittently perform a so-called “delay re-calibration” procedure, non-intrusively in the background. For every re-calibration interval (e.g., 1μs), this procedure fine-tune the “fine-code” of the TDE through the above auxiliary feedback path so that the TDE-delay stays close to its desired value regardless of the temperature. It is notable that since the delay re-calibration performs only very slight adjustments in the “fine-code” of the TDE, so it will not disrupt the General DLL's normal operation.
However, the above principle may have a pitfall: We have assumed that a Time-Digital Converter itself is PVT-invariant. But in reality, it is not. So, how can we make a TDC immune to the PVT variation is another sub-topic we need to revolve first before we can legitimize the above temperature tracking scheme. The above discussions can be now consolidated as a temperature-tracking flow depicted in Fig. 6.
After the DLL is locked, we record the pulse-width at signal
It is worth mentioning that in the above delay re-calibration, the value of
An interpolation process that maps a TDC output code, e.g.,
Example 1
As mentioned previously, we use two training clock signals, i.e., 'Clock_PW_Ins' and 'Clock_PW_2ns' to characterize the transfer curve of the TDC at a particular moment. Since the transfer curve of TDC is quite linear, we can perform linear interpolation to map a derived 9-bit TDC code back to its corresponding pulse-width at its input, as illustrated below in Fig. 7. In this example, a TDC output code, e.g.,y, has been mapped to its corresponding pulse-width, e.g., pw_y
Experimental Results
We have implemented a programmable phase shifter with the proposed temperature tracking scheme using a 90nm CMOS process. Fig. 8 shows the layout. The core area is 570
Fig. 8 shows the simulated Phase-Shift Amounts under various control codes for 400 selected sample points. Fig. 9 shows the phase errors with and without temperature tracking. Since it is not easy to change the temperature settings in our simulation environment dynamically, we convert the temperature effect (e.g., 25°C to 125°C in 300µs) into its equivalent VDD drop effect (e.g., IV to 0.94V in 300µs). The phase error range without the temperature tracking scheme is originally [1ps, 96ps], while reduced to [-7ps, 22ps] when the delay re-calibration interval is
Conclusion
In this work, we have presented a temperature-tracking scheme for a programmable phase shifter (required in a pulsed Radar SoC). It is composed of only standard cells. The key contribution is to make a Generic DLL immune to PVT variation. We have demonstrated that this can be done by an auxiliary feedback path which can provide intermittent non-intrusive delay re-recalibration to ensure that the delay across the DLL conforms to its designated value even when the temperature varies largely. Simulation has demonstrated that the maximum phase error can be reduced from 96ps down to only 12ps.