Commit 5c78fa3b0c427bb9d3953e1a435170fa7065e8ed

Authored by jfriedt
1 parent 6dfba800f9
Exists in master

FIFO et HLS

Showing 1 changed file with 13 additions and 56 deletions Inline Diff

ifcs2018_proceeding.tex
\documentclass[a4paper,conference]{IEEEtran/IEEEtran} 1 1 \documentclass[a4paper,conference]{IEEEtran/IEEEtran}
\usepackage{graphicx,color,hyperref} 2 2 \usepackage{graphicx,color,hyperref}
\usepackage{amsfonts} 3 3 \usepackage{amsfonts}
\usepackage{amsthm} 4 4 \usepackage{amsthm}
\usepackage{amssymb} 5 5 \usepackage{amssymb}
\usepackage{amsmath} 6 6 \usepackage{amsmath}
\usepackage{url} 7 7 \usepackage{url}
\usepackage[normalem]{ulem} 8 8 \usepackage[normalem]{ulem}
\graphicspath{{/home/jmfriedt/gpr/170324_avalanche/}{/home/jmfriedt/gpr/1705_homemade/}} 9 9 \graphicspath{{/home/jmfriedt/gpr/170324_avalanche/}{/home/jmfriedt/gpr/1705_homemade/}}
% correct bad hyphenation here 10 10 % correct bad hyphenation here
\hyphenation{op-tical net-works semi-conduc-tor} 11 11 \hyphenation{op-tical net-works semi-conduc-tor}
\textheight=26cm 12 12 \textheight=26cm
\setlength{\footskip}{30pt} 13 13 \setlength{\footskip}{30pt}
\pagenumbering{gobble} 14 14 \pagenumbering{gobble}
\begin{document} 15 15 \begin{document}
\title{Filter optimization for real time digital processing of radiofrequency signals: application 16 16 \title{Filter optimization for real time digital processing of radiofrequency signals: application
to oscillator metrology} 17 17 to oscillator metrology}
18 18
\author{\IEEEauthorblockN{A. Hugeat\IEEEauthorrefmark{1}\IEEEauthorrefmark{2}, J. Bernard\IEEEauthorrefmark{2}, 19 19 \author{\IEEEauthorblockN{A. Hugeat\IEEEauthorrefmark{1}\IEEEauthorrefmark{2}, J. Bernard\IEEEauthorrefmark{2},
G. Goavec-M\'erou\IEEEauthorrefmark{1}, 20 20 G. Goavec-M\'erou\IEEEauthorrefmark{1},
P.-Y. Bourgeois\IEEEauthorrefmark{1}, J.-M. Friedt\IEEEauthorrefmark{1}} 21 21 P.-Y. Bourgeois\IEEEauthorrefmark{1}, J.-M. Friedt\IEEEauthorrefmark{1}}
\IEEEauthorblockA{\IEEEauthorrefmark{1}FEMTO-ST, Time \& Frequency department, Besan\c con, France } 22 22 \IEEEauthorblockA{\IEEEauthorrefmark{1}FEMTO-ST, Time \& Frequency department, Besan\c con, France }
\IEEEauthorblockA{\IEEEauthorrefmark{2}FEMTO-ST, Computer Science department DISC, Besan\c con, France \\ 23 23 \IEEEauthorblockA{\IEEEauthorrefmark{2}FEMTO-ST, Computer Science department DISC, Besan\c con, France \\
Email: \{pyb2,jmfriedt\}@femto-st.fr} 24 24 Email: \{pyb2,jmfriedt\}@femto-st.fr}
} 25 25 }
\maketitle 26 26 \maketitle
\thispagestyle{plain} 27 27 \thispagestyle{plain}
\pagestyle{plain} 28 28 \pagestyle{plain}
\newtheorem{definition}{Definition} 29 29 \newtheorem{definition}{Definition}
30 30
\begin{abstract} 31 31 \begin{abstract}
Software Defined Radio (SDR) provides stability, flexibility and reconfigurability to 32 32 Software Defined Radio (SDR) provides stability, flexibility and reconfigurability to
radiofrequency signal processing. Applied to oscillator characterization in the context 33 33 radiofrequency signal processing. Applied to oscillator characterization in the context
of ultrastable clocks, stringent filtering requirements are defined by spurious signal or 34 34 of ultrastable clocks, stringent filtering requirements are defined by spurious signal or
noise rejection needs. Since real time radiofrequency processing must be performed in a 35 35 noise rejection needs. Since real time radiofrequency processing must be performed in a
Field Programmable Array to meet timing constraints, we investigate optimization strategies 36 36 Field Programmable Array to meet timing constraints, we investigate optimization strategies
to design filters meeting rejection characteristics while limiting the hardware resources 37 37 to design filters meeting rejection characteristics while limiting the hardware resources
required and keeping timing constraints within the targeted measurement bandwidths. 38 38 required and keeping timing constraints within the targeted measurement bandwidths.
\end{abstract} 39 39 \end{abstract}
40 40
\begin{IEEEkeywords} 41 41 \begin{IEEEkeywords}
Software Defined Radio, Mixed-Integer Linear Programming, Finite Impulse Response filter 42 42 Software Defined Radio, Mixed-Integer Linear Programming, Finite Impulse Response filter
\end{IEEEkeywords} 43 43 \end{IEEEkeywords}
44 44
\section{Digital signal processing of ultrastable clock signals} 45 45 \section{Digital signal processing of ultrastable clock signals}
46 46
Analog oscillator phase noise characteristics are classically performed by downconverting 47 47 Analog oscillator phase noise characteristics are classically performed by downconverting
the radiofrequency signal using a saturated mixer to bring the radiofrequency signal to baseband, 48 48 the radiofrequency signal using a saturated mixer to bring the radiofrequency signal to baseband,
followed by a Fourier analysis of the beat signal to analyze phase fluctuations close to carrier. In 49 49 followed by a Fourier analysis of the beat signal to analyze phase fluctuations close to carrier. In
a fully digital approach, the radiofrequency signal is digitized and numerically downconverted by 50 50 a fully digital approach, the radiofrequency signal is digitized and numerically downconverted by
multiplying the samples with a local numerically controlled oscillator (Fig. \ref{schema}) \cite{rsi}. 51 51 multiplying the samples with a local numerically controlled oscillator (Fig. \ref{schema}) \cite{rsi}.
52 52
\begin{figure}[h!tb] 53 53 \begin{figure}[h!tb]
\begin{center} 54 54 \begin{center}
\includegraphics[width=.8\linewidth]{images/schema} 55 55 \includegraphics[width=.8\linewidth]{images/schema}
\end{center} 56 56 \end{center}
\caption{Fully digital oscillator phase noise characterization: the Device Under Test 57 57 \caption{Fully digital oscillator phase noise characterization: the Device Under Test
(DUT) signal is sampled by the radiofrequency grade Analog to Digital Converter (ADC) and 58 58 (DUT) signal is sampled by the radiofrequency grade Analog to Digital Converter (ADC) and
downconverted by mixing with a Numerically Controlled Oscillator (NCO). Unwanted signals 59 59 downconverted by mixing with a Numerically Controlled Oscillator (NCO). Unwanted signals
and noise aliases are rejected by a Low Pass Filter (LPF) implemented as a cascade of Finite 60 60 and noise aliases are rejected by a Low Pass Filter (LPF) implemented as a cascade of Finite
Impulse Response (FIR) filters. The signal is then decimated before a Fourier analysis displays 61 61 Impulse Response (FIR) filters. The signal is then decimated before a Fourier analysis displays
the spectral characteristics of the phase fluctuations.} 62 62 the spectral characteristics of the phase fluctuations.}
\label{schema} 63 63 \label{schema}
\end{figure} 64 64 \end{figure}
65 65
As with the analog mixer, 66 66 As with the analog mixer,
the non-linear behavior of the downconverter introduces noise or spurious signal aliasing as 67 67 the non-linear behavior of the downconverter introduces noise or spurious signal aliasing as
well as the generation of the frequency sum signal in addition to the frequency difference. 68 68 well as the generation of the frequency sum signal in addition to the frequency difference.
These unwanted spectral characteristics must be rejected before decimating the data stream 69 69 These unwanted spectral characteristics must be rejected before decimating the data stream
for the phase noise spectral characterization. The characteristics introduced between the downconverter 70 70 for the phase noise spectral characterization. The characteristics introduced between the
71 downconverter
and the decimation processing blocks are core characteristics of an oscillator characterization 71 72 and the decimation processing blocks are core characteristics of an oscillator characterization
system, and must reject out-of-band signals below the targeted phase noise -- typically in the 72 73 system, and must reject out-of-band signals below the targeted phase noise -- typically in the
sub -170~dBc/Hz for ultrastable oscillator we aim at characterizing. The filter blocks will 73 74 sub -170~dBc/Hz for ultrastable oscillator we aim at characterizing. The filter blocks will
use most resources of the Field Programmable Gate Array (FPGA) used to process the radiofrequency 74 75 use most resources of the Field Programmable Gate Array (FPGA) used to process the radiofrequency
datastream: optimizing the performance of the filter while reducing the needed resources is 75 76 datastream: optimizing the performance of the filter while reducing the needed resources is
hence tackled in a systematic approach using optimization techniques. Most significantly, we 76 77 hence tackled in a systematic approach using optimization techniques. Most significantly, we
tackle the issue by attempting to cascade multiple Finite Impulse Response (FIR) filters with 77 78 tackle the issue by attempting to cascade multiple Finite Impulse Response (FIR) filters with
tunable number of coefficients and tunable number of bits representing the coefficients and the 78 79 tunable number of coefficients and tunable number of bits representing the coefficients and the
data being processed. 79 80 data being processed.
80 81
\section{Finite impulse response filter} 81 82 \section{Finite impulse response filter}
82 83
We select FIR filter for their unconditional stability and ease of design. A FIR filter is defined 83 84 We select FIR filter for their unconditional stability and ease of design. A FIR filter is defined
by a set of weights $b_k$ applied to the inputs $x_k$ through a convolution to generate the outputs $y_k$ 84 85 by a set of weights $b_k$ applied to the inputs $x_k$ through a convolution to generate the
86 outputs $y_k$
$$y_n=\sum_{k=0}^N b_k x_{n-k}$$ 85 87 $$y_n=\sum_{k=0}^N b_k x_{n-k}$$
86 88
As opposed to an implementation on a general purpose processor in which word size is defined by the 87 89 As opposed to an implementation on a general purpose processor in which word size is defined by the
processor architecture, implementing such a filter on an FPGA offer more degrees of freedom since 88 90 processor architecture, implementing such a filter on an FPGA offer more degrees of freedom since
not only the coefficient values and number of taps must be defined, but also the number of bits defining 89 91 not only the coefficient values and number of taps must be defined, but also the number of bits
the coefficients and the sample size. 90 92 defining the coefficients and the sample size. For this reason, and because we consider pipeline
93 processing (as opposed to First-In, First-Out memory batch processing) of radiofrequency
94 signals, High Level Synthesis (HLS) languages \cite{kasbah2008multigrid} are not considered but
95 the problem is tackled at the Very-high-speed-integrated-circuit Hardware Description Language (VHDL).
96 Since latency is not an issue in a openloop phase noise characterization instrument, the large
97 numbre of taps in the FIR, as opposed to the shorter Infinite Impulse Response (IIR) filter,
98 is not considered as an issue as would be in a closed loop system.
91 99
The coefficients are classically expressed as floating point values. However, this binary 92 100 The coefficients are classically expressed as floating point values. However, this binary
number representation is not efficient for fast arithmetic computation by an FPGA. Instead, 93 101 number representation is not efficient for fast arithmetic computation by an FPGA. Instead,
we select to quantify these floating point values into integer values. This quantization 94 102 we select to quantify these floating point values into integer values. This quantization
will result in some precision loss. 95 103 will result in some precision loss.
96 104
%As illustrated in Fig. \ref{float_vs_int}, we see that we aren't 97 105 %As illustrated in Fig. \ref{float_vs_int}, we see that we aren't
%need too coefficients or too sample size. If we have lot of coefficients but a small sample size, 98 106 %need too coefficients or too sample size. If we have lot of coefficients but a small sample size,
%the first and last are equal to zero. But if we have too sample size for few coefficients that not improve the quality. 99 107 %the first and last are equal to zero. But if we have too sample size for few coefficients that not improve the quality.
100 108
% JMF je ne comprends pas la derniere phrase ci-dessus ni la figure ci dessous 101 109 % JMF je ne comprends pas la derniere phrase ci-dessus ni la figure ci dessous
%\begin{figure}[h!tb] 102 110 %\begin{figure}[h!tb]
%\includegraphics[width=\linewidth]{images/float-vs-integer.pdf} 103 111 %\includegraphics[width=\linewidth]{images/float-vs-integer.pdf}
%\caption{Impact of the quantization resolution of the coefficients} 104 112 %\caption{Impact of the quantization resolution of the coefficients}
%\label{float_vs_int} 105 113 %\label{float_vs_int}
%\end{figure} 106 114 %\end{figure}
107 115
The tradeoff between quantization resolution and number of coefficients when considering 108 116 The tradeoff between quantization resolution and number of coefficients when considering
integer operations is not trivial. As an illustration of the issue related to the 109 117 integer operations is not trivial. As an illustration of the issue related to the
relation between number of fiter taps and quantization, Fig. \ref{float_vs_int} exhibits 110 118 relation between number of fiter taps and quantization, Fig. \ref{float_vs_int} exhibits
a 128-coefficient FIR bandpass filter designed using floating point numbers (blue). Upon 111 119 a 128-coefficient FIR bandpass filter designed using floating point numbers (blue). Upon
quantization on 6~bit integers, 60 of the 128~coefficients in the beginning and end of the 112 120 quantization on 6~bit integers, 60 of the 128~coefficients in the beginning and end of the
taps become null, making the large number of coefficients irrelevant and allowing to save 113 121 taps become null, making the large number of coefficients irrelevant and allowing to save
processing resource by shrinking the filter length. This tradeoff aimed at minimizing resources 114 122 processing resource by shrinking the filter length. This tradeoff aimed at minimizing resources
to reach a given rejection level, or maximizing out of band rejection for a given computational 115 123 to reach a given rejection level, or maximizing out of band rejection for a given computational
resource, will drive the investigation on cascading filters designed with varying tap resolution 116 124 resource, will drive the investigation on cascading filters designed with varying tap resolution
and tap length, as will be shown in the next section. 117 125 and tap length, as will be shown in the next section.
118 126
\begin{figure}[h!tb] 119 127 \begin{figure}[h!tb]
\includegraphics[width=\linewidth]{images/demo_filtre} 120 128 \includegraphics[width=\linewidth]{images/demo_filtre}
\caption{Impact of the quantization resolution of the coefficients: the quantization is 121 129 \caption{Impact of the quantization resolution of the coefficients: the quantization is
set to 6~bits, setting the 30~first and 30~last coefficients out of the initial 128~band-pass 122 130 set to 6~bits, setting the 30~first and 30~last coefficients out of the initial 128~band-pass
filter coefficients to 0.} 123 131 filter coefficients to 0.}
\label{float_vs_int} 124 132 \label{float_vs_int}
\end{figure} 125 133 \end{figure}
126 134
\section{Filter optimization} 127 135 \section{Filter optimization}
128 136
A basic approach for implementing the FIR filter is to compute the transfer function of 129 137 A basic approach for implementing the FIR filter is to compute the transfer function of
a monolithic filter: this single filter defines all coefficients with the same resolution 130 138 a monolithic filter: this single filter defines all coefficients with the same resolution
(number of bits) and processes data represented with their own resolution. Meeting the 131 139 (number of bits) and processes data represented with their own resolution. Meeting the
filter shape requires a large number of coefficients, limited by resources of the FPGA since 132 140 filter shape requires a large number of coefficients, limited by resources of the FPGA since
this filter must process data stream at the radiofrequency sampling rate after the mixer. 133 141 this filter must process data stream at the radiofrequency sampling rate after the mixer.
134 142
An optimization problem \cite{leung2004handbook} aims at improving one or many 135 143 An optimization problem \cite{leung2004handbook} aims at improving one or many
performance criteria within a constrained resource environment. Amongst the tools 136 144 performance criteria within a constrained resource environment. Amongst the tools
developed to meet this aim, Mixed-Integer Linear Programming (MILP) provides the framework to 137 145 developed to meet this aim, Mixed-Integer Linear Programming (MILP) provides the framework to
provide a formal definition of the stated problem and search for an optimal use of available 138 146 provide a formal definition of the stated problem and search for an optimal use of available
resources \cite{yu2007design, kodek1980design}. 139 147 resources \cite{yu2007design, kodek1980design}.
140 148
The degrees of freedom when addressing the problem of replacing the single monolithic 141 149 The degrees of freedom when addressing the problem of replacing the single monolithic
FIR with a cascade of optimized filters are the number of coefficients $N_i$ of each filter $i$, 142 150 FIR with a cascade of optimized filters are the number of coefficients $N_i$ of each filter $i$,
the number of bits $c_i$ representing the coefficients and the number of bits $d_i$ representing 143 151 the number of bits $c_i$ representing the coefficients and the number of bits $d_i$ representing
the data fed to the filter. Because each FIR in the chain is fed the output of the previous stage, 144 152 the data fed to the filter. Because each FIR in the chain is fed the output of the previous stage,
the optimization of the complete processing chain within a constrained resource environment is not 145 153 the optimization of the complete processing chain within a constrained resource environment is not
trivial. The resource occupation of a FIR filter is considered as $c_i+d_i+\log_2(N_i)$ which is 146 154 trivial. The resource occupation of a FIR filter is considered as $c_i+d_i+\log_2(N_i)$ which is
the number of bits needed in a worst case condition to represent the output of the FIR. 147 155 the number of bits needed in a worst case condition to represent the output of the FIR.
148 156
\begin{figure}[h!tb] 149 157 \begin{figure}[h!tb]
\includegraphics[width=\linewidth]{images/noise-rejection.pdf} 150 158 \includegraphics[width=\linewidth]{images/noise-rejection.pdf}
\caption{Rejection as a function of number of coefficients and number of bits} 151 159 \caption{Rejection as a function of number of coefficients and number of bits}
\label{noise-rejection} 152 160 \label{noise-rejection}
\end{figure} 153 161 \end{figure}
154 162
The objective function maximizes the noise rejection while keeping resource occupation below 155 163 The objective function maximizes the noise rejection while keeping resource occupation below
a user-defined threshold. The MILP solver is allowed to choose the number of successive 156 164 a user-defined threshold. The MILP solver is allowed to choose the number of successive
filters, within an upper bound. The last problem is to model the noise rejection. Since filter 157 165 filters, within an upper bound. The last problem is to model the noise rejection. Since filter
noise rejection capability is not modeled with linear equation, a look-up-table is generated 158 166 noise rejection capability is not modeled with linear equation, a look-up-table is generated
for multiple filter configurations in which the $c_i$, $d_i$ and $N_i$ parameters are varied: for each 159 167 for multiple filter configurations in which the $c_i$, $d_i$ and $N_i$ parameters are varied: for each
one of these conditions, the low-pass filter rejection defined as the mean power between 160 168 one of these conditions, the low-pass filter rejection defined as the mean power between
half the Nyquist frequency and the Nyquist frequency is stored as computed by the frequency response 161 169 half the Nyquist frequency and the Nyquist frequency is stored as computed by the frequency response
of the digital filter (Fig. \ref{noise-rejection}). 162 170 of the digital filter (Fig. \ref{noise-rejection}).
163 171
Linear program formalism for solving the problem is well documented: an objective function is 164 172 Linear program formalism for solving the problem is well documented: an objective function is
defined which is linearly dependent on the parameters to be optimized. Constraints are expressed 165 173 defined which is linearly dependent on the parameters to be optimized. Constraints are expressed
as linear equation and solved using one of the available solvers, in our case GLPK\cite{glpk}. 166 174 as linear equation and solved using one of the available solvers, in our case GLPK\cite{glpk}.
167 175
The MILP solver provides a solution to the problem by selecting a series of small FIR with 168 176 The MILP solver provides a solution to the problem by selecting a series of small FIR with
increasing number of bits representing data and coefficients as well as an increasing number 169 177 increasing number of bits representing data and coefficients as well as an increasing number
of coefficients, instead of a single monolithic filter. Fig. \ref{compare-fir} exhibits the 170 178 of coefficients, instead of a single monolithic filter. Fig. \ref{compare-fir} exhibits the
performance comparison between one solution and a monolithic FIR when selecting a cutoff 171 179 performance comparison between one solution and a monolithic FIR when selecting a cutoff
frequency of half the Nyquist frequency: a series of 5 FIR and a series of 10 FIR with the 172 180 frequency of half the Nyquist frequency: a series of 5 FIR and a series of 10 FIR with the
same space usage are provided as selected by the MILP solver. The FIR cascade provides improved 173 181 same space usage are provided as selected by the MILP solver. The FIR cascade provides improved
rejection than the monolithic FIR at the expense of a lower cutoff frequency which remains to 174 182 rejection than the monolithic FIR at the expense of a lower cutoff frequency which remains to
be tuned or compensated for. 175 183 be tuned or compensated for.
176 184
\begin{figure}[h!tb] 177 185 \begin{figure}[h!tb]
% \includegraphics[width=\linewidth]{images/compare-fir.pdf} 178 186 % \includegraphics[width=\linewidth]{images/compare-fir.pdf}
\includegraphics[width=\linewidth]{images/fir-mono-vs-fir-series-200dB.pdf} 179 187 \includegraphics[width=\linewidth]{images/fir-mono-vs-fir-series-200dB.pdf}
\caption{Comparison of the rejection capability between a series of FIR and a monolithic FIR 180 188 \caption{Comparison of the rejection capability between a series of FIR and a monolithic FIR
with a cutoff frequency set at half the Nyquist frequency.} 181 189 with a cutoff frequency set at half the Nyquist frequency.}
\label{compare-fir} 182 190 \label{compare-fir}
\end{figure} 183 191 \end{figure}
184 192
The resource occupation when synthesizing such FIR on a Xilinx FPGA is summarized as Tab. \ref{t1}. 185 193 The resource occupation when synthesizing such FIR on a Xilinx FPGA is summarized as Tab. \ref{t1}.
186 194
\begin{table}[h!tb] 187 195 \begin{table}[h!tb]
\caption{Resource occupation on a Xilinx Zynq-7000 series FPGA when synthesizing the FIR cascade 188 196 \caption{Resource occupation on a Xilinx Zynq-7000 series FPGA when synthesizing the FIR cascade
identified as optimal by the MILP solver within a finite resource criterion. The last line refers 189 197 identified as optimal by the MILP solver within a finite resource criterion. The last line refers
to available resources on a Zynq-7010 as found on the Redpitaya board. The rejection is the mean 190 198 to available resources on a Zynq-7010 as found on the Redpitaya board. The rejection is the mean
value from 0.6 to 1 Nyquist frequency.} 191 199 value from 0.6 to 1 Nyquist frequency.}
\begin{center} 192 200 \begin{center}
\begin{tabular}{|c|cccc|}\hline 193 201 \begin{tabular}{|c|cccc|}\hline
FIR & BlockRAM & LookUpTables & DSP & rejection (dB)\\\hline\hline 194 202 FIR & BlockRAM & LookUpTables & DSP & rejection (dB)\\\hline\hline
1 (monolithic) & 1 & 4064 & 40 & -72 \\ 195 203 1 (monolithic) & 1 & 4064 & 40 & -72 \\
5 & 5 & 12332 & 0 & -217 \\ 196 204 5 & 5 & 12332 & 0 & -217 \\
10 & 10 & 12717 & 0 & -251 \\\hline\hline 197 205 10 & 10 & 12717 & 0 & -251 \\\hline\hline
Zynq 7010 & 60 & 17600 & 80 & \\\hline 198 206 Zynq 7010 & 60 & 17600 & 80 & \\\hline
\end{tabular} 199 207 \end{tabular}
\end{center} 200 208 \end{center}
%\vspace{-0.7cm} 201 209 %\vspace{-0.7cm}
\label{t1} 202 210 \label{t1}
\end{table} 203 211 \end{table}
204 212
\section{Filter coefficient selection} 205 213 \section{Filter coefficient selection}
206 214
The coefficients of a single monolithic filter are computed as the impulse response 207 215 The coefficients of a single monolithic filter are computed as the impulse response
of the filter transfer function, and practically approximated by a multitude of methods 208 216 of the filter transfer function, and practically approximated by a multitude of methods
including least square optimization (Matlab's {\tt firls} function), Hamming or Kaiser windowing 209 217 including least square optimization (Matlab's {\tt firls} function), Hamming or Kaiser windowing
(Matlab's {\tt fir1} function). Cascading filters opens a new optimization opportunity by 210 218 (Matlab's {\tt fir1} function). Cascading filters opens a new optimization opportunity by
selecting various coefficient sets depending on the number of coefficients. Fig. \ref{2} 211 219 selecting various coefficient sets depending on the number of coefficients. Fig. \ref{2}
illustrates that for a number of coefficients ranging from 8 to 47, {\tt fir1} provides a better 212 220 illustrates that for a number of coefficients ranging from 8 to 47, {\tt fir1} provides a better
rejection than {\tt firls}: since the linear solver increases the number of coefficients along 213 221 rejection than {\tt firls}: since the linear solver increases the number of coefficients along
the processing chain, the type of selected filter also changes depending on the number of coefficients 214 222 the processing chain, the type of selected filter also changes depending on the number of coefficients
and evolves along the processing chain. 215 223 and evolves along the processing chain.
216 224
\begin{figure}[h!tb] 217 225 \begin{figure}[h!tb]
\includegraphics[width=\linewidth]{images/fir1-vs-firls} 218 226 \includegraphics[width=\linewidth]{images/fir1-vs-firls}
\caption{Evolution of the rejection capability of least-square optimized filters and Hamming 219 227 \caption{Evolution of the rejection capability of least-square optimized filters and Hamming
FIR filters as a function of the number of coefficients, for floating point numbers and 8-bit 220 228 FIR filters as a function of the number of coefficients, for floating point numbers and 8-bit
encoded integers.} 221 229 encoded integers.}
\label{2} 222 230 \label{2}
\end{figure} 223 231 \end{figure}
224 232
\section{Conclusion} 225 233 \section{Conclusion}
226 234
We address the optimization problem of designing a low-pass filter chain in a Field Programmable Gate 227 235 We address the optimization problem of designing a low-pass filter chain in a Field Programmable Gate
Array for improved noise rejection within constrained resource occupation, as needed for 228 236 Array for improved noise rejection within constrained resource occupation, as needed for
real time processing of radiofrequency signal when characterizing spectral phase noise 229 237 real time processing of radiofrequency signal when characterizing spectral phase noise
characteristics of stable oscillators. The flexibility of the digital approach makes the result 230 238 characteristics of stable oscillators. The flexibility of the digital approach makes the result
best suited for closing the loop and using the measurement output in a feedback loop for 231 239 best suited for closing the loop and using the measurement output in a feedback loop for
controlling clocks, e.g. in a quartz-stabilized high performance clock whose long term behavior 232 240 controlling clocks, e.g. in a quartz-stabilized high performance clock whose long term behavior
is controlled by non-piezoelectric resonator (sapphire resonator, microwave or optical 233 241 is controlled by non-piezoelectric resonator (sapphire resonator, microwave or optical
atomic transition). 234 242 atomic transition).
235 243
\section*{Acknowledgement} 236 244 \section*{Acknowledgement}
237 245
This work is supported by the ANR Programme d'Investissement d'Avenir in 238 246 This work is supported by the ANR Programme d'Investissement d'Avenir in
progress at the Time and Frequency Departments of the FEMTO-ST Institute 239 247 progress at the Time and Frequency Departments of the FEMTO-ST Institute
(Oscillator IMP, First-TF and Refimeve+), and by R\'egion de Franche-Comt\'e. 240 248 (Oscillator IMP, First-TF and Refimeve+), and by R\'egion de Franche-Comt\'e.
The authors would like to thank E. Rubiola, F. Vernotte, G. Cabodevila for support and 241 249 The authors would like to thank E. Rubiola, F. Vernotte, G. Cabodevila for support and
fruitful discussions. 242 250 fruitful discussions.
243 251
244 252
253 XXX
245 254
\subsubsection{Contraintes} 246 255 \subsubsection{Contraintes}
\label{def-contraintes} 247
Maintenant que nous avons d\'efini ce qu'\'etait une chaine de traitement, nous allons voir 248
quelles sont les contraintes li\'ees à celles-ci. 249
250 256
Le temps d'ex\'ecution des t\^aches se compte en front montant d'horloge souvent appel\'e 251
coup d'horloge. On a donc une unit\'e de temps discr\'etis\'ee car un coup d'horloge est indivisible. 252
les dates sont donc cadenc\'ees par l'horloge du FPGA. 253
254
Chaque t\^ache doit pouvoir traiter chaque donn\'ee qui arrive, ce qui impose une contrainte 255
forte de d\'ebit d'entr\'ee. En effet, dans le cadre du traitement du signal, il est primordial 256
d'avoir toutes les donn\'ees de manière cons\'ecutive. Si la moindre donn\'ee est perdue, le r\'esultat 257
obtenu n'est plus valide. Cette contrainte se traduit la plupart du temps par de m\'ecanisme de 258
FIFO qui bufferise les donn\'ees entrantes (dans le cas où la t\^ache n\'ecessite en tableau de donn\'ees, 259
par exemple). Ou cela peut aussi se mettre en place par un m\'ecanisme de pipeline ou de parall\'elisme 260
à l'int\'erieur du bloc. Mais cela relève de l'impl\'ementation bas niveau du bloc. 261
262
Le temps d'ex\'ecution d'une t\^ache correspond à la latence d'un bloc. Il s'agit donc du 263
temps que passe une donn\'ee brute dans le bloc avant de ressortir trait\'ee. Dans notre contexte 264
la latence n'est pas importante. En effet, puisqu'on a un flux de donn\'ees continu, après un court laps 265
de temps toutes les t\^aches ont d\'epass\'e leur temps de latence et elles produisent les donn\'ees 266
r\'egulièrement. 267
268
Il y a tout de même une exception à cela, c'est lors d'un traitement parallèle. Dans l'exemple de la 269
figure \ref{exemple-chaine-traitement}, on voit un bloc qui divise le flux en deux branches. Dans le 270
cas où on resynchronise le flux, il est imp\'eratif que la somme des latences des deux branches soit la 271
même. Cela peut donc imposer la pr\'esence de blocs qui ajoutent de la latence sans faire de traitements utiles. 272
273
En revanche, une t\^ache se caract\'erise par un d\'ebit de sortie et celui-ci doit rester fixe. 274
Cela s'explique par la contrainte du d\'ebit d'entr\'ee du bloc de traitement suivant. Si un bloc a un d\'ebit de sortie 275
fluctuant, il est \'evident que la contrainte d'entr\'ee ne sera pas possible à formaliser. 276
277
Une autre contrainte li\'ee de manière plus globale est la consommation de ressources. Comme nous l'avons 278
dit dans la section \ref{def-fpga}, le FPGA dispose d'un nombre de portes logiques limit\'e. 279
Il faut donc que la chaine de traitement ne d\'epasse pas le nombre de ressources dont dispose la puce 280
FPGA. 281
282
La consommation de ressources est influenc\'ee par les blocs de traitement. En effet, pour pouvoir 283
tenir les d\'ebits d'entr\'ee \'elev\'ees, cela consomme \'enorm\'ement de ressources. Plus le d\'ebit est rapide, plus 284
la consommation de ressources sera grande. 285
286
\subsection{Travaux traitant du sujet} 287
Nous avons commenc\'e notre recherche en lisant des articles traitant de l'optimisation dans un FPGA. 288
Dans sa thèse, S. Mirzaei \cite{these-dsp-fpga} donne surtout des bonnes pratiques pour d\'evelopper 289
des composants FPGA bas niveau. Ce n'est pas exactement ce que nous cherchions. 290
291
Dans les r\'ef\'erences \cite{zhuo2007scalable, olariu1993computing, pan1999improved}, les auteurs 292 257 Dans les r\'ef\'erences \cite{zhuo2007scalable, olariu1993computing, pan1999improved}, les auteurs
proposent tous des optimisations hardware uniquement. Cependant ces articles sont focalis\'es sur des optimisations mat\'erielles 293 258 proposent tous des optimisations hardware uniquement. Cependant ces articles sont focalis\'es sur des optimisations mat\'erielles
or notre objectif est de trouver une formalisation math\'ematique d'un FPGA. 294 259 or notre objectif est de trouver une formalisation math\'ematique d'un FPGA.
295 260
Une autre approche est propos\'ee par S. Kasbah et al. dans leur article \cite{kasbah2008multigrid}. 296
En effet, ils utilisent une approche HLS de leur problème. Ils ont utilis\'e un synth\'etiseur optimis\'e et 297
un langage d\'eriv\'e du C++ pour d\'ecrire leur algorithme. Bien qu'ils obtiennent de bons r\'esultats, 298
leur m\'ethode n'est pas exploitable dans notre cas, car ils n'ont pas les mêmes contraintes de d\'ebit et 299
de temps r\'eel que nous. 300
301
Une dernière approche que nous avons \'etudi\'ee est l'utilisation de \emph{skeletons}. D. Crookes et A. Benkrid 302 261 Une dernière approche que nous avons \'etudi\'ee est l'utilisation de \emph{skeletons}. D. Crookes et A. Benkrid
ont beaucoup parl\'e de cette m\'ethode dans leur articles \cite{crookes1998environment, crookes2000design, benkrid2002towards}. 303 262 ont beaucoup parl\'e de cette m\'ethode dans leur articles \cite{crookes1998environment, crookes2000design, benkrid2002towards}.
L'id\'ee essentielle est qu'ils r\'ealisent des composants très optimis\'es et param\'etrables. Ainsi lorsqu'ils 304 263 L'id\'ee essentielle est qu'ils r\'ealisent des composants très optimis\'es et param\'etrables. Ainsi lorsqu'ils
veulent faire un d\'eveloppement, ils utilisent les blocs d\'ejà faits. 305 264 veulent faire un d\'eveloppement, ils utilisent les blocs d\'ejà faits.
306 265
Ces blocs repr\'esentent une \'etape de calcul (une d\'ecimation, un filtrage, une modulation, une 307 266 Ces blocs repr\'esentent une \'etape de calcul (une d\'ecimation, un filtrage, une modulation, une
d\'emodulation etc...). En prenant le cas du FIR, on rend param\'etrables les valeurs des coefficients 308 267 d\'emodulation etc...). En prenant le cas du FIR, on rend param\'etrables les valeurs des coefficients
utilis\'es pour le produit de convolutions ainsi que leur nombre. Le facteur de d\'ecimation est 309 268 utilis\'es pour le produit de convolutions ainsi que leur nombre. Le facteur de d\'ecimation est
lui aussi param\'etrable. 310 269 lui aussi param\'etrable.
311 270
On gagne ainsi beaucoup de temps de d\'eveloppement car on r\'eutilise des composants d\'ejà \'eprouv\'es et optimis\'es. 312 271 On gagne ainsi beaucoup de temps de d\'eveloppement car on r\'eutilise des composants d\'ejà \'eprouv\'es et optimis\'es.
De plus, au fil des projets, on constitue une bibliothèque de composants nous 313 272 De plus, au fil des projets, on constitue une bibliothèque de composants nous
permettant de faire une chaine complète très simplement. 314 273 permettant de faire une chaine complète très simplement.
315 274
K. Benkrid, S. Belkacemi et A. Benkrid dans leur article\cite{hide} caract\'erisent 316 275 K. Benkrid, S. Belkacemi et A. Benkrid dans leur article\cite{hide} caract\'erisent
ces blocs en Prolog pour faire un langage descriptif permettant d'assembler les blocs de manière 317 276 ces blocs en Prolog pour faire un langage descriptif permettant d'assembler les blocs de manière
optimale. En partant de cette description, ils arrivent à g\'en\'erer directement le code VHDL. 318 277 optimale. En partant de cette description, ils arrivent à g\'en\'erer directement le code VHDL.
319 278
G. Goavec-Merou, dans sa thèse\cite{gwen-cogen}, pr\'esente un outil, CoGen, bas\'e sur l'approche en skeletons. Son id\'ee 320
est de caract\'eriser des blocs \'ecrits en VHDL, en donnant diff\'erents caract\'eristiques : 321
\begin{itemize} 322 279 \begin{itemize}
\item la latence du bloc repr\'esente, en coups d'horloge, le temps entre l'entr\'ee de la donn\'ee 323 280 \item la latence du bloc repr\'esente, en coups d'horloge, le temps entre l'entr\'ee de la donn\'ee
et le temps où la même donn\'ee ressort du bloc. 324 281 et le temps où la même donn\'ee ressort du bloc.
\item l'acceptance repr\'esente le nombre de donn\'ees par coup d'horloge que le bloc est capable 325 282 \item l'acceptance repr\'esente le nombre de donn\'ees par coup d'horloge que le bloc est capable
de traiter. 326 283 de traiter.
\item la sortance repr\'esente le nombre de donn\'ees qui sortent par coup d'horloge. 327 284 \item la sortance repr\'esente le nombre de donn\'ees qui sortent par coup d'horloge.
\end{itemize} 328 285 \end{itemize}
329 286
Gr\^ace à cela, le logiciel est capable de donner une impl\'ementation optimale d'un problème qu'on lui 330 287 Gr\^ace à cela, le logiciel est capable de donner une impl\'ementation optimale d'un problème qu'on lui
soumet. Le problème ne se d\'efinit pas uniquement par un r\'esultat attendu mais aussi par des 331 288 soumet. Le problème ne se d\'efinit pas uniquement par un r\'esultat attendu mais aussi par des
contraintes de d\'ebit et/ou de pr\'ecision. 332 289 contraintes de d\'ebit et/ou de pr\'ecision.
333 290
Dans une second temps, nous nous sommes aussi int\'eress\'es à des articles d'ordonnancement. 334 291 Dans une second temps, nous nous sommes aussi int\'eress\'es à des articles d'ordonnancement.
Nous avons notamment lu des documents parlant des cas des micro-usines. 335 292 Nous avons notamment lu des documents parlant des cas des micro-usines.
336 293
Les micro-usines ressemblent un peu à des FPGA dans le sens où on connait à l'avance les 337 294 Les micro-usines ressemblent un peu à des FPGA dans le sens où on connait à l'avance les
t\^aches à effectuer et leurs caract\'eristiques. Nous allons donc nous inspirer 338 295 t\^aches à effectuer et leurs caract\'eristiques. Nous allons donc nous inspirer
de leur modèle pour essayer de construire le notre. 339 296 de leur modèle pour essayer de construire le notre.
340 297
Dans sa thèse A. Dobrila \cite{these-alex} traite d'un problème de tol\'erance aux pannes 341 298 Dans sa thèse A. Dobrila \cite{these-alex} traite d'un problème de tol\'erance aux pannes
dans le contextes des mirco-usines. Mais les FPGA ne sont pas concern\'es dans la mesure 342 299 dans le contextes des mirco-usines. Mais les FPGA ne sont pas concern\'es dans la mesure
où si le composant tombe en panne, tout le traitement est paralys\'e. Cette thèse nous a n\'eanmoins 343 300 où si le composant tombe en panne, tout le traitement est paralys\'e. Cette thèse nous a n\'eanmoins
permis d'avoir un exemple de formalisation de problème. 344 301 permis d'avoir un exemple de formalisation de problème.
345 302
Pour finir nous avons lu la thèse de M. Coqblin \cite{these-mathias} qui elle aussi traite du sujet 346 303 Pour finir nous avons lu la thèse de M. Coqblin \cite{these-mathias} qui elle aussi traite du sujet
des micro-usines. Le travail de M. Coqblin porte surtout sur une chaine de traitement 347 304 des micro-usines. Le travail de M. Coqblin porte surtout sur une chaine de traitement
reconfigurable, il tient compte dans ses travaux du surcoût engendr\'e par la reconfiguration d'une machine. 348 305 reconfigurable, il tient compte dans ses travaux du surcoût engendr\'e par la reconfiguration d'une machine.
Cela n'est pas tout à fait exploitable dans notre contexte puisqu'une 349 306 Cela n'est pas tout à fait exploitable dans notre contexte puisqu'une
puce FPGA d\'es qu'elle est programm\'ee n'a pas la possibilit\'e de reconfigurer une partie de sa chaine de 350 307 puce FPGA d\'es qu'elle est programm\'ee n'a pas la possibilit\'e de reconfigurer une partie de sa chaine de
traitement. Là encore, nous avions un exemple de formalisation d'un problème. 351 308 traitement. Là encore, nous avions un exemple de formalisation d'un problème.
352 309
Pour conclure, nous avons vu deux approches li\'ees à deux domaines diff\'erents. La première est le 353 310 Pour conclure, nous avons vu deux approches li\'ees à deux domaines diff\'erents. La première est le
point de vue \'electronique qui se focalise principalement sur des optimisations mat\'erielles ou algorithmiques. 354 311 point de vue \'electronique qui se focalise principalement sur des optimisations mat\'erielles ou algorithmiques.
La seconde est le point de vue informatique : les modèles sont très g\'en\'eriques et ne sont pas 355 312 La seconde est le point de vue informatique : les modèles sont très g\'en\'eriques et ne sont pas
adapt\'es au cas des FPGA. La suite de ce rapport se concentrera donc sur la recherche d'un compromis 356 313 adapt\'es au cas des FPGA. La suite de ce rapport se concentrera donc sur la recherche d'un compromis
entre ces deux points de vue. 357 314 entre ces deux points de vue.
358 315
\section{Contexte d'ordonnancement} 359 316 \section{Contexte d'ordonnancement}
Dans cette partie, nous donnerons des d\'efinitions de termes rattach\'es au domaine de l'ordonnancement 360 317 Dans cette partie, nous donnerons des d\'efinitions de termes rattach\'es au domaine de l'ordonnancement
et nous verrons que le sujet trait\'e se rapproche beaucoup d'un problème d'ordonnancement. De ce fait 361 318 et nous verrons que le sujet trait\'e se rapproche beaucoup d'un problème d'ordonnancement. De ce fait
nous pourrons aller plus loin que les travaux vus pr\'ec\'edemment et nous tenterons des approches d'ordonnancement 362 319 nous pourrons aller plus loin que les travaux vus pr\'ec\'edemment et nous tenterons des approches d'ordonnancement
et d'optimisation. 363 320 et d'optimisation.
364 321
\subsection{D\'efinition du vocabulaire} 365 322 \subsection{D\'efinition du vocabulaire}
Avant tout, il faut d\'efinir ce qu'est un problème d'optimisation. Il y a deux d\'efinitions 366 323 Avant tout, il faut d\'efinir ce qu'est un problème d'optimisation. Il y a deux d\'efinitions
importantes à donner. La première est propos\'ee par Legrand et Robert dans leur livre \cite{def1-ordo} : 367 324 importantes à donner. La première est propos\'ee par Legrand et Robert dans leur livre \cite{def1-ordo} :
\begin{definition} 368 325 \begin{definition}
\label{def-ordo1} 369 326 \label{def-ordo1}
Un ordonnancement d'un système de t\^aches $G\ =\ (V,\ E,\ w)$ est une fonction $\sigma$ : 370 327 Un ordonnancement d'un système de t\^aches $G\ =\ (V,\ E,\ w)$ est une fonction $\sigma$ :
$V \rightarrow \mathbb{N}$ telle que $\sigma(u) + w(u) \leq \sigma(v)$ pour toute arête $(u,\ v) \in E$. 371 328 $V \rightarrow \mathbb{N}$ telle que $\sigma(u) + w(u) \leq \sigma(v)$ pour toute arête $(u,\ v) \in E$.
\end{definition} 372 329 \end{definition}
373 330
Dit plus simplement, l'ensemble $V$ repr\'esente les t\^aches à ex\'ecuter, l'ensemble $E$ repr\'esente les d\'ependances 374 331 Dit plus simplement, l'ensemble $V$ repr\'esente les t\^aches à ex\'ecuter, l'ensemble $E$ repr\'esente les d\'ependances
des t\^aches et $w$ les temps d'ex\'ecution de la t\^ache. La fonction $\sigma$ donne donc l'heure de d\'ebut de 375 332 des t\^aches et $w$ les temps d'ex\'ecution de la t\^ache. La fonction $\sigma$ donne donc l'heure de d\'ebut de
chacune des t\^aches. La d\'efinition dit que si une t\^ache $v$ d\'epend d'une t\^ache $u$ alors 376 333 chacune des t\^aches. La d\'efinition dit que si une t\^ache $v$ d\'epend d'une t\^ache $u$ alors
la date de d\'ebut de $v$ sera plus grande ou \'egale au d\'ebut de l'ex\'ecution de la t\^ache $u$ plus son 377 334 la date de d\'ebut de $v$ sera plus grande ou \'egale au d\'ebut de l'ex\'ecution de la t\^ache $u$ plus son
temps d'ex\'ecution. 378 335 temps d'ex\'ecution.
379 336
Une autre d\'efinition importante qui est propos\'ee par Leung et al. \cite{def2-ordo} est : 380 337 Une autre d\'efinition importante qui est propos\'ee par Leung et al. \cite{def2-ordo} est :
\begin{definition} 381 338 \begin{definition}
\label{def-ordo2} 382 339 \label{def-ordo2}
L'ordonnancement traite de l'allocation de ressources rares à des activit\'es avec 383 340 L'ordonnancement traite de l'allocation de ressources rares à des activit\'es avec
l'objectif d'optimiser un ou plusieurs critères de performance. 384 341 l'objectif d'optimiser un ou plusieurs critères de performance.
\end{definition} 385 342 \end{definition}
386 343
Cette d\'efinition est plus g\'en\'erique mais elle nous int\'eresse d'avantage que la d\'efinition \ref{def-ordo1}. 387 344 Cette d\'efinition est plus g\'en\'erique mais elle nous int\'eresse d'avantage que la d\'efinition \ref{def-ordo1}.
En effet, la partie qui nous int\'eresse dans cette première d\'efinition est le respect de la pr\'ec\'edance des t\^aches. 388 345 En effet, la partie qui nous int\'eresse dans cette première d\'efinition est le respect de la pr\'ec\'edance des t\^aches.
Dans les faits les dates de d\'ebut ne nous int\'eressent pas r\'eellement. 389 346 Dans les faits les dates de d\'ebut ne nous int\'eressent pas r\'eellement.
390 347
En revanche la d\'efinition \ref{def-ordo2} sera au c\oe{}ur du projet. Pour se convaincre de cela, 391 348 En revanche la d\'efinition \ref{def-ordo2} sera au c\oe{}ur du projet. Pour se convaincre de cela,
il nous faut d'abord d\'efinir quel est le type de problème d'ordonnancement qu'on traite et quelles 392 349 il nous faut d'abord d\'efinir quel est le type de problème d'ordonnancement qu'on traite et quelles
sont les m\'ethodes qu'on peut appliquer. 393 350 sont les m\'ethodes qu'on peut appliquer.
394 351
Les problèmes d'ordonnancement peuvent être class\'es en diff\'erentes cat\'egories : 395 352 Les problèmes d'ordonnancement peuvent être class\'es en diff\'erentes cat\'egories :
\begin{itemize} 396 353 \begin{itemize}
\item T\^aches ind\'ependantes : dans cette cat\'egorie de problèmes, les t\^aches sont complètement ind\'ependantes 397 354 \item T\^aches ind\'ependantes : dans cette cat\'egorie de problèmes, les t\^aches sont complètement ind\'ependantes
les unes des autres. Dans notre cas, ce n'est pas le plus adapt\'e. 398 355 les unes des autres. Dans notre cas, ce n'est pas le plus adapt\'e.
\item Graphe de t\^aches : la d\'efinition \ref{def-ordo1} d\'ecrit cette cat\'egorie. La plupart du temps, 399 356 \item Graphe de t\^aches : la d\'efinition \ref{def-ordo1} d\'ecrit cette cat\'egorie. La plupart du temps,
les t\^aches sont repr\'esent\'ees par une DAG. Cette cat\'egorie est très proche de notre cas puisque nous devons \'egalement ex\'ecuter 400 357 les t\^aches sont repr\'esent\'ees par une DAG. Cette cat\'egorie est très proche de notre cas puisque nous devons \'egalement ex\'ecuter
des t\^aches qui ont un certain nombre de d\'ependances. On pourra même dire que dans certain cas, 401 358 des t\^aches qui ont un certain nombre de d\'ependances. On pourra même dire que dans certain cas,
on a des anti-arbres, c'est à dire que nous avons une multitude de t\^aches d'entr\'ees qui convergent vers une 402 359 on a des anti-arbres, c'est à dire que nous avons une multitude de t\^aches d'entr\'ees qui convergent vers une
t\^ache de fin. 403 360 t\^ache de fin.
\item Workflow : cette cat\'egorie est une sous cat\'egorie des graphes de t\^aches dans le sens où 404 361 \item Workflow : cette cat\'egorie est une sous cat\'egorie des graphes de t\^aches dans le sens où
il s'agit d'un graphe de t\^aches r\'ep\'et\'e de nombreuses de fois. C'est exactement ce type de problème 405 362 il s'agit d'un graphe de t\^aches r\'ep\'et\'e de nombreuses de fois. C'est exactement ce type de problème
que nous traitons ici. 406 363 que nous traitons ici.
\end{itemize} 407 364 \end{itemize}
408 365
Bien entendu, cette liste n'est pas exhaustive et il existe de nombreuses autres classifications et sous-classifications 409 366 Bien entendu, cette liste n'est pas exhaustive et il existe de nombreuses autres classifications et sous-classifications
de ces problèmes. Nous n'avons parl\'e ici que des cat\'egories les plus communes. 410 367 de ces problèmes. Nous n'avons parl\'e ici que des cat\'egories les plus communes.
411 368
Un autre point à d\'efinir, est le critère d'optimisation. Il y a là encore un grand nombre de 412 369 Un autre point à d\'efinir, est le critère d'optimisation. Il y a là encore un grand nombre de
critères possibles. Nous allons donc parler des principaux : 413 370 critères possibles. Nous allons donc parler des principaux :
\begin{itemize} 414 371 \begin{itemize}
\item Temps de compl\'etion total (ou Makespan en anglais) : ce critère est l'un des critères d'optimisation 415 372 \item Temps de compl\'etion total (ou Makespan en anglais) : ce critère est l'un des critères d'optimisation
les plus courant. Il s'agit donc de minimiser la date de fin de la dernière t\^ache de l'ensemble des 416 373 les plus courant. Il s'agit donc de minimiser la date de fin de la dernière t\^ache de l'ensemble des
t\^aches à ex\'ecuter. L'enjeu de cette optimisation est donc de trouver l'ordonnancement optimal permettant 417 374 t\^aches à ex\'ecuter. L'enjeu de cette optimisation est donc de trouver l'ordonnancement optimal permettant
la fin d'ex\'ecution au plus tôt. 418 375 la fin d'ex\'ecution au plus tôt.
\item Somme des temps d'ex\'ecution (Flowtime en anglais) : il s'agit de faire la somme des temps d'ex\'ecution de toutes les t\^aches 419 376 \item Somme des temps d'ex\'ecution (Flowtime en anglais) : il s'agit de faire la somme des temps d'ex\'ecution de toutes les t\^aches
et d'optimiser ce r\'esultat. 420 377 et d'optimiser ce r\'esultat.
\item Le d\'ebit : ce critère quant à lui, vise à augmenter au maximum le d\'ebit de traitement des donn\'ees. 421 378 \item Le d\'ebit : ce critère quant à lui, vise à augmenter au maximum le d\'ebit de traitement des donn\'ees.
\end{itemize} 422 379 \end{itemize}
423 380
En plus de cela, on peut avoir besoin de plusieurs critères d'optimisation. Il s'agit dans ce cas d'une optimisation 424 381 En plus de cela, on peut avoir besoin de plusieurs critères d'optimisation. Il s'agit dans ce cas d'une optimisation
multi-critères. Bien entendu, cela complexifie d'autant plus le problème car la solution la plus optimale pour un 425 382 multi-critères. Bien entendu, cela complexifie d'autant plus le problème car la solution la plus optimale pour un
des critères peut être très mauvaise pour un autre critère. De ce cas, il s'agira de trouver une solution qui permet 426 383 des critères peut être très mauvaise pour un autre critère. De ce cas, il s'agira de trouver une solution qui permet
de faire le meilleur compromis entre tous les critères. 427 384 de faire le meilleur compromis entre tous les critères.
428 385
429 386
\subsection{Formalisation du problème} 430 387 \subsection{Formalisation du problème}
\label{formalisation} 431 388 \label{formalisation}
Maintenant que nous avons donn\'e le vocabulaire li\'e à l'ordonnancement, nous allons pouvoir essayer caract\'eriser 432 389 Maintenant que nous avons donn\'e le vocabulaire li\'e à l'ordonnancement, nous allons pouvoir essayer caract\'eriser
formellement notre problème. En effet, nous allons reprendre les contraintes \'enonc\'ees dans la sections \ref{def-contraintes} 433 390 formellement notre problème. En effet, nous allons reprendre les contraintes \'enonc\'ees dans la sections \ref{def-contraintes}
et nous essayerons de les formaliser le plus finement possible. 434 391 et nous essayerons de les formaliser le plus finement possible.
435 392
Comme nous l'avons dit, une t\^ache est un bloc de traitement. Chaque t\^ache $i$ dispose d'un ensemble de paramètres 436 393 Comme nous l'avons dit, une t\^ache est un bloc de traitement. Chaque t\^ache $i$ dispose d'un ensemble de paramètres
que nous nommerons $\mathcal{P}_{i}$. Cet ensemble $\mathcal{P}_i$ est propre à chaque t\^ache et il variera d'une 437 394 que nous nommerons $\mathcal{P}_{i}$. Cet ensemble $\mathcal{P}_i$ est propre à chaque t\^ache et il variera d'une
t\^ache à l'autre. Nous reviendrons plus tard sur les paramètres qui peuvent composer cet ensemble. 438 395 t\^ache à l'autre. Nous reviendrons plus tard sur les paramètres qui peuvent composer cet ensemble.
439 396
Outre cet ensemble $\mathcal{P}_i$, chaque t\^ache dispose de paramètres communs : 440 397 Outre cet ensemble $\mathcal{P}_i$, chaque t\^ache dispose de paramètres communs :
\begin{itemize} 441 398 \begin{itemize}
\item Dur\'ee de la t\^ache : Comme nous l'avons dit auparavant, dans le cadre d'un FPGA le temps est compt\'e en nombre de coup d'horloge. 442 399 \item Dur\'ee de la t\^ache : Comme nous l'avons dit auparavant, dans le cadre d'un FPGA le temps est compt\'e en nombre de coup d'horloge.
En outre, les blocs sont toujours sollicit\'es, certains même sont capables de lire et de renvoyer une r\'esultat à chaque coups d'horloge. 443 400 En outre, les blocs sont toujours sollicit\'es, certains même sont capables de lire et de renvoyer une r\'esultat à chaque coups d'horloge.
Donc la dur\'ee d'une t\^ache ne peut être le laps de temps entre l'entr\'ee d'une donn\'ee et la sortie d'une autre. Nous d\'efinirons la 444 401 Donc la dur\'ee d'une t\^ache ne peut être le laps de temps entre l'entr\'ee d'une donn\'ee et la sortie d'une autre. Nous d\'efinirons la
dur\'ee comme le temps de traitement d'une donn\'ee, c'est à dire la diff\'erence de temps entre la date de sortie d'une donn\'ee 445 402 dur\'ee comme le temps de traitement d'une donn\'ee, c'est à dire la diff\'erence de temps entre la date de sortie d'une donn\'ee
et de sa date d'entr\'ee. Nous nommerons cette dur\'ee $\delta_i$. % Je devrais la nomm\'ee w comme dans la def2 446 403 et de sa date d'entr\'ee. Nous nommerons cette dur\'ee $\delta_i$. % Je devrais la nomm\'ee w comme dans la def2
\item La pr\'ecision : La pr\'ecision d'une donn\'ee est le nombre de bits significatifs qu'elle compte. En effet, au fil des traitements 447 404 \item La pr\'ecision : La pr\'ecision d'une donn\'ee est le nombre de bits significatifs qu'elle compte. En effet, au fil des traitements
les pr\'ecisions peuvent varier. On nomme donc la pr\'ecision d'entr\'ee d'une t\^ache $i$ comme $\pi_i^-$ et la pr\'ecision en sortie $\pi_i^+$. 448 405 les pr\'ecisions peuvent varier. On nomme donc la pr\'ecision d'entr\'ee d'une t\^ache $i$ comme $\pi_i^-$ et la pr\'ecision en sortie $\pi_i^+$.
\item La fr\'equence du flux en entr\'ee (ou sortie) : Cette fr\'equence repr\'esente la fr\'equence des donn\'ees qui arrivent (resp. sortent). 449 406 \item La fr\'equence du flux en entr\'ee (ou sortie) : Cette fr\'equence repr\'esente la fr\'equence des donn\'ees qui arrivent (resp. sortent).
Selon les t\^aches, les fr\'equences varieront. En effet, certains blocs ralentissent le flux c'est pourquoi on distingue la fr\'equence du 450 407 Selon les t\^aches, les fr\'equences varieront. En effet, certains blocs ralentissent le flux c'est pourquoi on distingue la fr\'equence du
flux en entr\'ee et la fr\'equence en sortie. Nous nommerons donc la fr\'equence du flux en entr\'ee $f_i^-$ et la fr\'equence en sortie $f_i^+$. 451 408 flux en entr\'ee et la fr\'equence en sortie. Nous nommerons donc la fr\'equence du flux en entr\'ee $f_i^-$ et la fr\'equence en sortie $f_i^+$.
\item La quantit\'e de donn\'ees en entr\'ee (ou en sortie) : Il s'agit de la quantit\'e de donn\'ees que le bloc s'attend à traiter (resp. 452 409 \item La quantit\'e de donn\'ees en entr\'ee (ou en sortie) : Il s'agit de la quantit\'e de donn\'ees que le bloc s'attend à traiter (resp.
est capable de produire). Les t\^aches peuvent avoir à traiter des gros volumes de donn\'ees et n'en ressortir qu'une partie. Cette 453 410 est capable de produire). Les t\^aches peuvent avoir à traiter des gros volumes de donn\'ees et n'en ressortir qu'une partie. Cette
fois encore, il nous faut donc diff\'erencier l'entr\'ee et la sortie. Nous nommerons donc la quantit\'e de donn\'ees entrantes $q_i^-$ 454 411 fois encore, il nous faut donc diff\'erencier l'entr\'ee et la sortie. Nous nommerons donc la quantit\'e de donn\'ees entrantes $q_i^-$
et la quantit\'e de donn\'ees sortantes $q_i^+$ pour une t\^ache $i$. 455 412 et la quantit\'e de donn\'ees sortantes $q_i^+$ pour une t\^ache $i$.
\item Le d\'ebit d'entr\'ee (ou de sortie) : Ce paramètre correspond au d\'ebit de donn\'ees que la t\^ache est capable de traiter ou qu'elle 456 413 \item Le d\'ebit d'entr\'ee (ou de sortie) : Ce paramètre correspond au d\'ebit de donn\'ees que la t\^ache est capable de traiter ou qu'elle
fournit en sortie. Il s'agit simplement de l'expression des deux pr\'ec\'edents paramètres. Nous d\'efinirons donc la d\'ebit entrant de la 457 414 fournit en sortie. Il s'agit simplement de l'expression des deux pr\'ec\'edents paramètres. Nous d\'efinirons donc la d\'ebit entrant de la
t\^ache $i$ comme $d_i^-\ =\ q_i^-\ *\ f_i^-$ et le d\'ebit sortant comme $d_i^+\ =\ q_i^+\ *\ f_i^+$. 458 415 t\^ache $i$ comme $d_i^-\ =\ q_i^-\ *\ f_i^-$ et le d\'ebit sortant comme $d_i^+\ =\ q_i^+\ *\ f_i^+$.
\item La taille de la t\^ache : La taille dans les FPGA \'etant limit\'ee, ce paramètre exprime donc la place qu'occupe la t\^ache au sein du bloc. 459 416 \item La taille de la t\^ache : La taille dans les FPGA \'etant limit\'ee, ce paramètre exprime donc la place qu'occupe la t\^ache au sein du bloc.
Nous nommerons $\mathcal{A}_i$ cette taille. 460 417 Nous nommerons $\mathcal{A}_i$ cette taille.
\item Les pr\'ed\'ecesseurs et successeurs d'une t\^ache : cela nous permet de connaître les t\^aches requises pour pouvoir traiter 461 418 \item Les pr\'ed\'ecesseurs et successeurs d'une t\^ache : cela nous permet de connaître les t\^aches requises pour pouvoir traiter
la t\^ache $i$ ainsi que les t\^aches qui en d\'ependent. Ces ensemble sont not\'es $\Gamma _i ^-$ et $ \Gamma _i ^+$ \\ 462 419 la t\^ache $i$ ainsi que les t\^aches qui en d\'ependent. Ces ensemble sont not\'es $\Gamma _i ^-$ et $ \Gamma _i ^+$ \\
%TODO Est-ce vraiment un paramètre ? 463 420 %TODO Est-ce vraiment un paramètre ?
\end{itemize} 464 421 \end{itemize}
465 422
Ces diff\'erents paramètres communs sont fortement li\'es aux \'el\'ements de $\mathcal{P}_i$. Voici quelques exemples de relations 466 423 Ces diff\'erents paramètres communs sont fortement li\'es aux \'el\'ements de $\mathcal{P}_i$. Voici quelques exemples de relations
que nous avons identifi\'ees : 467 424 que nous avons identifi\'ees :
\begin{itemize} 468 425 \begin{itemize}
\item $ \delta _i ^+ \ = \ \mathcal{F}_{\delta}(\pi_i^-,\ \pi_i^+,\ d_i^-,\ d_i^+,\ \mathcal{P}_i) $ donne le temps d'ex\'ecution 469 426 \item $ \delta _i ^+ \ = \ \mathcal{F}_{\delta}(\pi_i^-,\ \pi_i^+,\ d_i^-,\ d_i^+,\ \mathcal{P}_i) $ donne le temps d'ex\'ecution
de la t\^ache en fonction de la pr\'ecision voulue, du d\'ebit et des paramètres internes. 470 427 de la t\^ache en fonction de la pr\'ecision voulue, du d\'ebit et des paramètres internes.
\item $ \pi _i ^+ \ = \ \mathcal{F}_{p}(\pi_i^-,\ \mathcal{P}_i) $, la fonction $F_p$ donne la pr\'ecision en sortie selon la pr\'ecision de d\'epart 471 428 \item $ \pi _i ^+ \ = \ \mathcal{F}_{p}(\pi_i^-,\ \mathcal{P}_i) $, la fonction $F_p$ donne la pr\'ecision en sortie selon la pr\'ecision de d\'epart
et les paramètres internes de la t\^ache. 472 429 et les paramètres internes de la t\^ache.
\item $d_i^+\ =\ \mathcal{F}_d(d_i^-, \mathcal{P}_i)$, la fonction $F_d$ donne le d\'ebit sortant de la t\^ache en fonction du d\'ebit 473 430 \item $d_i^+\ =\ \mathcal{F}_d(d_i^-, \mathcal{P}_i)$, la fonction $F_d$ donne le d\'ebit sortant de la t\^ache en fonction du d\'ebit
sortant et des variables internes de la t\^ache. 474 431 sortant et des variables internes de la t\^ache.
\item $A_i^+\ =\ \mathcal{F}_A(\pi_i^-,\ \pi_i^+,\ d_i^-,\ d_i^+, \mathcal{P}_i)$ 475 432 \item $A_i^+\ =\ \mathcal{F}_A(\pi_i^-,\ \pi_i^+,\ d_i^-,\ d_i^+, \mathcal{P}_i)$
\end{itemize} 476 433 \end{itemize}
Pour le moment, nous ne sommes pas capables de donner une d\'efinition g\'en\'erale de ces fonctions. Mais en revanche, 477 434 Pour le moment, nous ne sommes pas capables de donner une d\'efinition g\'en\'erale de ces fonctions. Mais en revanche,
sur quelques exemples simples (cf. \ref{def-contraintes}), nous parvenons à donner une \'evaluation de ces fonctions. 478 435 sur quelques exemples simples (cf. \ref{def-contraintes}), nous parvenons à donner une \'evaluation de ces fonctions.
479 436
Maintenant que nous avons donn\'e toutes les notations utiles, nous allons \'enoncer des contraintes relatives à notre problème. Soit 480 437 Maintenant que nous avons donn\'e toutes les notations utiles, nous allons \'enoncer des contraintes relatives à notre problème. Soit
un DGA $G(V,\ E)$, on a pour toutes arêtes $(i, j)\ \in\ E$ les in\'equations suivantes : 481 438 un DGA $G(V,\ E)$, on a pour toutes arêtes $(i, j)\ \in\ E$ les in\'equations suivantes :
482 439
\paragraph{Contrainte de pr\'ecision :} 483 440 \paragraph{Contrainte de pr\'ecision :}
Cette in\'equation traduit la contrainte de pr\'ecision d'une t\^ache à l'autre : 484 441 Cette in\'equation traduit la contrainte de pr\'ecision d'une t\^ache à l'autre :
\begin{align*} 485 442 \begin{align*}
\pi _i ^+ \geq \pi _j ^- 486 443 \pi _i ^+ \geq \pi _j ^-
\end{align*} 487 444 \end{align*}
488 445
\paragraph{Contrainte de d\'ebit :} 489 446 \paragraph{Contrainte de d\'ebit :}
Cette in\'equation traduit la contrainte de d\'ebit d'une t\^ache à l'autre : 490 447 Cette in\'equation traduit la contrainte de d\'ebit d'une t\^ache à l'autre :
\begin{align*} 491 448 \begin{align*}
d _i ^+ = q _j ^- * (f_i + (1 / s_j) ) & \text{ où } s_j \text{ est une valeur positive de temporisation de la t\^ache} 492 449 d _i ^+ = q _j ^- * (f_i + (1 / s_j) ) & \text{ où } s_j \text{ est une valeur positive de temporisation de la t\^ache}
\end{align*} 493 450 \end{align*}
494 451
\paragraph{Contrainte de synchronisation :} 495 452 \paragraph{Contrainte de synchronisation :}
Il s'agit de la contrainte qui impose que si à un moment du traitement, le DAG se s\'epare en plusieurs branches parallèles 496 453 Il s'agit de la contrainte qui impose que si à un moment du traitement, le DAG se s\'epare en plusieurs branches parallèles
et qu'elles se rejoignent plus tard, la somme des latences sur chacune des branches soit la même. 497 454 et qu'elles se rejoignent plus tard, la somme des latences sur chacune des branches soit la même.
Plus formellement, s'il existe plusieurs chemins disjoints, partant de la t\^ache $s$ et allant à la t\^ache de $f$ alors : 498 455 Plus formellement, s'il existe plusieurs chemins disjoints, partant de la t\^ache $s$ et allant à la t\^ache de $f$ alors :
\begin{align*} 499 456 \begin{align*}
\forall \text{ chemin } \mathcal{C}1(s, .., f), 500 457 \forall \text{ chemin } \mathcal{C}1(s, .., f),
\forall \text{ chemin } \mathcal{C}2(s, .., f) 501 458 \forall \text{ chemin } \mathcal{C}2(s, .., f)
\text{ tel que } \mathcal{C}1 \neq \mathcal{C}2 502 459 \text{ tel que } \mathcal{C}1 \neq \mathcal{C}2
\Rightarrow 503 460 \Rightarrow
\sum _{i} ^{i \in \mathcal{C}1} \delta_i = \sum _{i} ^{i \in \mathcal{C}2} \delta_i 504 461 \sum _{i} ^{i \in \mathcal{C}1} \delta_i = \sum _{i} ^{i \in \mathcal{C}2} \delta_i
\end{align*} 505 462 \end{align*}
506 463
\paragraph{Contrainte de place :} 507 464 \paragraph{Contrainte de place :}