Compare View
Commits (3)
Diff
Showing 12 changed files Side-by-side Diff
ifcs2018_journal.tex
... | ... | @@ -120,10 +120,10 @@ processing (as opposed to First-In, First-Out FIFO memory batch processing) of r |
120 | 120 | signals, High Level Synthesis (HLS) languages \cite{kasbah2008multigrid} are not considered but |
121 | 121 | the problem is tackled at the Very-high-speed-integrated-circuit Hardware Description Language |
122 | 122 | (VHDL) level. |
123 | -{\color{red}Since latency is not an issue in a openloop phase noise characterization instrument, | |
123 | +Since latency is not an issue in a openloop phase noise characterization instrument, | |
124 | 124 | the large |
125 | 125 | numbre of taps in the FIR, as opposed to the shorter Infinite Impulse Response (IIR) filter, |
126 | -is not considered as an issue as would be in a closed loop system.} % r2.4 | |
126 | +is not considered as an issue as would be in a closed loop system. | |
127 | 127 | |
128 | 128 | The coefficients are classically expressed as floating point values. However, this binary |
129 | 129 | number representation is not efficient for fast arithmetic computation by an FPGA. Instead, |
... | ... | @@ -144,9 +144,9 @@ integer operations is not trivial. As an illustration of the issue related to th |
144 | 144 | relation between number of fiter taps and quantization, Fig. \ref{float_vs_int} exhibits |
145 | 145 | a 128-coefficient FIR bandpass filter designed using floating point numbers (blue). Upon |
146 | 146 | quantization on 6~bit integers, 60 of the 128~coefficients in the beginning and end of the |
147 | -taps become null, {\color{red}making the large number of coefficients irrelevant: processing | |
148 | -resources % r1.1 | |
149 | -are hence saved by shrinking the filter length.} This tradeoff aimed at minimizing resources | |
147 | +taps become null, making the large number of coefficients irrelevant: processing | |
148 | +resources | |
149 | +are hence saved by shrinking the filter length. This tradeoff aimed at minimizing resources | |
150 | 150 | to reach a given rejection level, or maximizing out of band rejection for a given computational |
151 | 151 | resource, will drive the investigation on cascading filters designed with varying tap resolution |
152 | 152 | and tap length, as will be shown in the next section. Indeed, our development strategy closely |
... | ... | @@ -163,11 +163,11 @@ moment. |
163 | 163 | Our objective is to develop a new methodology applicable to any Digital Signal Processing (DSP) |
164 | 164 | chain obtained by assembling basic processing blocks, with hardware and manufacturer independence. |
165 | 165 | Achieving such a target requires defining an abstract model to represent some basic properties |
166 | -of DSP blocks such as perfomance (i.e. rejection or ripples in the bandpass for filters) and | |
166 | +of DSP blocks such as performance (i.e. rejection or ripples in the bandpass for filters) and | |
167 | 167 | resource occupation. These abstract properties, not necessarily related to the detailed hardware |
168 | 168 | implementation of a given platform, will feed a scheduler solver aimed at assembling the optimum |
169 | 169 | target, whether in terms of maximizing performance for a given arbitrary resource occupation, or |
170 | -minimizing resource occupation for a given perfomance. In our approach, the solution of the | |
170 | +minimizing resource occupation for a given performance. In our approach, the solution of the | |
171 | 171 | solver is then synthesized using the dedicated tool provided by each platform manufacturer |
172 | 172 | to assess the validity of our abstract resource occupation indicator, and the result of running |
173 | 173 | the DSP chain on the FPGA allows for assessing the performance of the scheduler. We emphasize |
... | ... | @@ -184,24 +184,23 @@ time and frequency transfer or characterization \cite{carolina1,carolina2,rsi}. |
184 | 184 | |
185 | 185 | Addressing only two operations allows for demonstrating the methodology but should not be |
186 | 186 | considered as a limitation of the framework which can be extended to assembling any number |
187 | -of skeleton blocks as long as perfomance and resource occupation can be determined. {\color{red} | |
187 | +of skeleton blocks as long as performance and resource occupation can be determined. | |
188 | 188 | Hence, |
189 | -in this paper we will apply our methodology on simple DSP chains: a white noise input signal % r1.2 | |
189 | +in this paper we will apply our methodology on simple DSP chains: a white noise input signal | |
190 | 190 | is generated using a Pseudo-Random Number (PRN) generator or by sampling a wideband (125~MS/s) |
191 | -14-bit Analog to Digital Converter (ADC) loaded by a 50~$\Omega$ resistor.} Once samples have been | |
191 | +14-bit Analog to Digital Converter (ADC) loaded by a 50~$\Omega$ resistor. Once samples have been | |
192 | 192 | digitized at a rate of 125~MS/s, filtering is applied to qualify the processing block performance -- |
193 | 193 | practically meeting the radiofrequency frontend requirement of noise and bandwidth reduction |
194 | 194 | by filtering and decimating. Finally, bursts of filtered samples are stored for post-processing, |
195 | 195 | allowing to assess either filter rejection for a given resource usage, or validating the rejection |
196 | 196 | when implementing a solution minimizing resource occupation. |
197 | 197 | |
198 | -{\color{red} | |
199 | -The first step of our approach is to model the DSP chain. Since we aim at only optimizing % r1.3 | |
198 | +The first step of our approach is to model the DSP chain. Since we aim at only optimizing | |
200 | 199 | the filtering part of the signal processing chain, we have not included the PRN generator or the |
201 | 200 | ADC in the model: the input data size and rate are considered fixed and defined by the hardware. |
202 | 201 | The filtering can be done in two ways, either by considering a single monolithic FIR filter |
203 | 202 | requiring many coefficients to reach the targeted noise rejection ratio, or by |
204 | -cascading multiple FIR filters, each with fewer coefficients than found in the monolithic filter.} | |
203 | +cascading multiple FIR filters, each with fewer coefficients than found in the monolithic filter. | |
205 | 204 | |
206 | 205 | After each filter we leave the possibility of shifting the filtered data to consume |
207 | 206 | less resources. Hence in the case of cascaded filter, we define a stage as a filter |
... | ... | @@ -245,12 +244,12 @@ With these coefficients, the \texttt{freqz} function is used to estimate the mag |
245 | 244 | transfer function. |
246 | 245 | Comparing the performance between FIRs requires however defining a unique criterion. As shown in figure~\ref{fig:fir_mag}, |
247 | 246 | the FIR magnitude exhibits two parts: we focus here on the transitions width and the rejection rather than on the |
248 | -bandpass ripples as emphasized in \cite{lim_1988,lim_1996}. {\color{red}Throughout this demonstration, | |
247 | +bandpass ripples as emphasized in \cite{lim_1988,lim_1996}. Throughout this demonstration, | |
249 | 248 | we arbitrarily set a bandpass of 40\% of the Nyquist frequency and a bandstop from 60\% |
250 | 249 | of the Nyquist frequency to the end of the band, as would be typically selected to prevent |
251 | 250 | aliasing before decimating the dataflow by 2. The method is however generalized to any filter |
252 | -shape as long as it is defined from the initial modelling steps: Fig. \ref{fig:rejection_pyramid} | |
253 | -as described below is indeed unique for each filter shape.} | |
251 | +shape as long as it is defined from the initial modeling steps: Fig. \ref{fig:rejection_pyramid} | |
252 | +as described below is indeed unique for each filter shape. | |
254 | 253 | |
255 | 254 | \begin{figure} |
256 | 255 | \begin{center} |
... | ... | @@ -290,18 +289,29 @@ the stopband the last 40\%, allowing 20\% transition width.} |
290 | 289 | \label{fig:fir_mag} |
291 | 290 | \end{figure} |
292 | 291 | |
293 | -In the transition band, the behavior of the filter is left free, we only {\color{red}define} the passband and the stopband characteristics. | |
292 | +In the transition band, the behavior of the filter is left free, we only define the passband and the stopband characteristics. | |
294 | 293 | % r2.7 |
295 | -{\color{red}Initial considered criteria include the mean value of the stopband rejection which yields unacceptable results since notches | |
296 | -overestimate the rejection capability of the filter.} | |
294 | +Initial considered criteria include the mean value of the stopband rejection which yields unacceptable results since notches | |
295 | +overestimate the rejection capability of the filter. | |
297 | 296 | % Furthermore, the losses within |
298 | 297 | % the passband are not considered and might be excessive for excessively wide transitions widths introduced for filters with few coefficients. |
299 | -Our final criterion to compute the filter rejection considers | |
300 | -% r2.8 et r2.2 r2.3 | |
301 | -the {\color{red}minimal} rejection within the stopband, to which the {\color{red}sum of the absolute values | |
298 | +{\color{red} In intermediate criterion considered the minimal rejection within the stopband, to which the sum of the absolute values | |
302 | 299 | within the passband is subtracted to avoid filters with excessive ripples, normalized to the |
303 | -bin width to remain consistent with the passband criterion (dBc/Hz units in all cases)}. With this | |
300 | +bin width to remain consistent with the passband criterion (dBc/Hz units in all cases). | |
301 | +In this case, when we cascaded too filters with a excessive deviation in passband ($>$ 1~dB), | |
302 | +the final deviation in passband may be too considerable ($>$ 10~dB). Hence our final | |
303 | +criterion always take the minimal rejection in stopband but we substract the maximal | |
304 | +amplitude in passband (maximum value minus the minimum value). If this amplitude is | |
305 | +greater than 1~dB, we discard the filter.} | |
306 | +% Our final criterion to compute the filter rejection considers | |
307 | +% % r2.8 et r2.2 r2.3 | |
308 | +% the minimal rejection within the stopband, to which the sum of the absolute values | |
309 | +% within the passband is subtracted to avoid filters with excessive ripples, normalized to the | |
310 | +% bin width to remain consistent with the passband criterion (dBc/Hz units in all cases). | |
311 | +With this | |
304 | 312 | criterion, we meet the expected rejection capability of low pass filters as shown in figure~\ref{fig:custom_criterion}. |
313 | +{\color{red} The best filter has a correct rejection estimation and the worst filter | |
314 | +is discarded.} % AH 20191609: Utile ? | |
305 | 315 | |
306 | 316 | % \begin{figure} |
307 | 317 | % \centering |
... | ... | @@ -312,9 +322,9 @@ criterion, we meet the expected rejection capability of low pass filters as show |
312 | 322 | |
313 | 323 | \begin{figure} |
314 | 324 | \centering |
315 | -\includegraphics[width=\linewidth]{images/colored_custom_criterion} | |
316 | -\caption{Custom criterion (maximum rejection in the stopband minus the {\color{red} sum of the | |
317 | -absolute values of the passband rejection normalized to the bandwidth}) | |
325 | +\includegraphics[width=\linewidth]{images/custom_criterion} | |
326 | +\caption{\color{red}Custom criterion (maximum rejection in the stopband minus the maximal | |
327 | +amplitude in passband (if $>$ 1~dB the filter is discarded) rejection normalized to the bandwidth) | |
318 | 328 | comparison between monolithic filter and cascaded filters} |
319 | 329 | \label{fig:custom_criterion} |
320 | 330 | \end{figure} |
... | ... | @@ -330,9 +340,9 @@ the rejection. Hence the best coefficient set are on the vertex of the pyramid. |
330 | 340 | \begin{figure} |
331 | 341 | \centering |
332 | 342 | \includegraphics[width=\linewidth]{images/rejection_pyramid} |
333 | -\caption{{\color{red}{Filter}} rejection as a function of number of coefficients and number of bits | |
334 | -{\color{red}: this lookup table will be used to identify which filter parameters -- number of bits | |
335 | -representing coefficients and number of coefficients -- best match the targeted transfer function.}} | |
343 | +\caption{\color{red}Filter rejection as a function of number of coefficients and number of bits | |
344 | +: this lookup table will be used to identify which filter parameters -- number of bits | |
345 | +representing coefficients and number of coefficients -- best match the targeted transfer function.} | |
336 | 346 | \label{fig:rejection_pyramid} |
337 | 347 | \end{figure} |
338 | 348 | |
... | ... | @@ -346,32 +356,30 @@ are two different filters with maximums and notches not located at the same freq |
346 | 356 | Hence when summing the transfer functions, the resulting rejection shown as the dashed yellow line is improved |
347 | 357 | with respect to a basic sum of the rejection criteria shown as a the dotted yellow line. |
348 | 358 | % r2.9 |
349 | -Thus, estimating the rejection of filter cascades is more complex than {\color{red}taking} the sum of all the rejection | |
350 | -criteria of each filter. However since the {\color{red}individual filter rejection} sum underestimates the rejection capability of the cascade, | |
359 | +Thus, estimating the rejection of filter cascades is more complex than taking the sum of all the rejection | |
360 | +criteria of each filter. However since the individual filter rejection sum underestimates the rejection capability of the cascade, | |
351 | 361 | % r2.10 |
352 | -this upper bound is considered as a {\color{red}conservative} and acceptable criterion for deciding on the suitability | |
362 | +this upper bound is considered as a conservative and acceptable criterion for deciding on the suitability | |
353 | 363 | of the filter cascade to meet design criteria. |
354 | 364 | |
355 | 365 | \begin{figure} |
356 | 366 | \centering |
357 | 367 | \includegraphics[width=\linewidth]{images/cascaded_criterion} |
358 | -\caption{{\color{red}Transfer function of individual filters and after cascading} the two filters, | |
359 | -{\color{red}demonstrating that the selected criterion of maximum rejection in the bandstop (horizontal | |
368 | +\caption{Transfer function of individual filters and after cascading the two filters, | |
369 | +demonstrating that the selected criterion of maximum rejection in the bandstop (horizontal | |
360 | 370 | lines) is met. Notice that the cascaded filter has better rejection than summing the bandstop |
361 | -maximum of each individual filter.} | |
371 | +maximum of each individual filter. | |
362 | 372 | } |
363 | 373 | \label{fig:sum_rejection} |
364 | 374 | \end{figure} |
365 | 375 | |
366 | -% r2.6 | |
367 | -{\color{red} | |
368 | 376 | Finally in our case, we consider that the input signal are fully known. The |
369 | 377 | resolution of the input data stream are fixed and still the same for all experiments |
370 | -in this paper.} | |
378 | +in this paper. | |
371 | 379 | |
372 | 380 | Based on this analysis, we address the estimate of resource consumption (called |
373 | 381 | % r2.11 |
374 | -silicon area -- in the case of FPGAs {\color{red}this means} processing cells) as a function of | |
382 | +silicon area -- in the case of FPGAs this means processing cells) as a function of | |
375 | 383 | filter characteristics. As a reminder, we do not aim at matching actual hardware |
376 | 384 | configuration but consider an arbitrary silicon area occupied by each processing function, |
377 | 385 | and will assess after synthesis the adequation of this arbitrary unit with actual |
... | ... | @@ -415,7 +423,6 @@ shift bit would cause an additional 6~dB rejection rise. A totally equivalent eq |
415 | 423 | $\pi_i^S \leq \pi_i^- + \pi_i^C - 1 - \sum_{k=1}^{i} \left(1 + \frac{r_j}{6}\right)$. |
416 | 424 | Finally, equation~\ref{eq:init} gives the number of bits of the global input. |
417 | 425 | |
418 | -{\color{red} | |
419 | 426 | This model is non-linear since we multiply some variable with another variable |
420 | 427 | and it is even non-quadratic, as the cost function $F$ does not have a known |
421 | 428 | linear or quadratic expression. To linearize this problem, we introduce $p$ FIR configurations. |
... | ... | @@ -437,7 +444,6 @@ we define $1 \leq j \leq p$ so that the function $F$ can be estimated (Look Up T |
437 | 444 | for each configurations thanks to the rejection criterion. We also define the binary |
438 | 445 | variable $\delta_{ij}$ that has value 1 if stage~$i$ is in configuration~$j$ |
439 | 446 | and 0 otherwise. The new equations are as follows: |
440 | -} | |
441 | 447 | |
442 | 448 | \begin{align} |
443 | 449 | a_i & = \sum_{j=1}^p \delta_{ij} \times C_{ij} \times (\pi_{ij}^C + \pi_i^-), & \forall i \in [1, n] \label{eq:areadef2} \\ |
... | ... | @@ -450,7 +456,6 @@ Equations \ref{eq:areadef2}, \ref{eq:rejectiondef2} and \ref{eq:bits2} replace |
450 | 456 | respectively equations \ref{eq:areadef}, \ref{eq:rejectiondef} and \ref{eq:bits}. |
451 | 457 | Equation~\ref{eq:config} states that for each stage, a single configuration is chosen at most. |
452 | 458 | |
453 | -{\color{red} | |
454 | 459 | % JM: conflict merge |
455 | 460 | % However the problem remains quadratic at this stage since in the constraint~\ref{eq:areadef2} |
456 | 461 | % we multiply |
... | ... | @@ -464,7 +469,7 @@ Equation~\ref{eq:config} states that for each stage, a single configuration is c |
464 | 469 | The problem remains quadratic at this stage since in the constraint~\ref{eq:areadef2} |
465 | 470 | we multiply |
466 | 471 | $\delta_{ij}$ and $\pi_i^-$. However, since $\delta_{ij}$ is a binary variable we can |
467 | -linearise linearize this multiplication. The following formula shows how to linearize | |
472 | +linearize this multiplication. The following formula shows how to linearize | |
468 | 473 | this situation in general case with $y$ a binary variable and $x$ a real variable ($0 \leq x \leq X^{max}$): |
469 | 474 | \begin{equation*} |
470 | 475 | m = x \times y \implies |
... | ... | @@ -481,7 +486,7 @@ So if we bound up $\pi_i^-$ by 128~bits which is the maximum data size whose est |
481 | 486 | assumed on hardware characteristics, |
482 | 487 | the Gurobi (\url{www.gurobi.com}) optimization software will be able to linearize |
483 | 488 | for us the quadratic problem so the model is left as is. This model |
484 | -has $O(np)$ variables and $O(n)$ constraints.} | |
489 | +has $O(np)$ variables and $O(n)$ constraints. | |
485 | 490 | |
486 | 491 | % This model is non-linear and even non-quadratic, as $F$ does not have a known |
487 | 492 | % linear or quadratic expression. We introduce $p$ FIR configurations |
... | ... | @@ -515,7 +520,7 @@ has $O(np)$ variables and $O(n)$ constraints.} |
515 | 520 | |
516 | 521 | Two problems will be addressed using the workflow described in the next section: on the one |
517 | 522 | hand maximizing the rejection capability of a set of cascaded filters occupying a fixed arbitrary |
518 | -silcon area (section~\ref{sec:fixed_area}) and on the second hand the dual problem of minimizing the silicon area | |
523 | +silicon area (section~\ref{sec:fixed_area}) and on the second hand the dual problem of minimizing the silicon area | |
519 | 524 | for a fixed rejection criterion (section~\ref{sec:fixed_rej}). In the latter case, the |
520 | 525 | objective function is replaced with: |
521 | 526 | \begin{align} |
... | ... | @@ -560,8 +565,8 @@ in the computation of the results. |
560 | 565 | \draw[->] (Deploy) edge node [left] { (5) } (Postproc) ; |
561 | 566 | \draw[->] (Postproc) -- (Results) ; |
562 | 567 | \end{tikzpicture} |
563 | - \caption{Design workflow from the input parameters to the results {\color{red} allowing for | |
564 | -a fully automated optimal solution search.}} | |
568 | + \caption{Design workflow from the input parameters to the results allowing for | |
569 | +a fully automated optimal solution search.} | |
565 | 570 | \label{fig:workflow} |
566 | 571 | \end{figure} |
567 | 572 | |
... | ... | @@ -616,7 +621,7 @@ The experimental setup is composed of three cases. The raw input is generated |
616 | 621 | by a Pseudo Random Number (PRN) generator, which fixes the input data size $\Pi^I$. |
617 | 622 | Then the total silicon area $\mathcal{A}$ has been fixed to either 500, 1000 or 1500 |
618 | 623 | arbitrary units. Hence, the three cases have been named: MAX/500, MAX/1000, MAX/1500. |
619 | -The number of configurations $p$ is 1827, with $C_i$ ranging from 3 to 60 and $\pi^C$ | |
624 | +The number of configurations $p$ is \color{1133}, with $C_i$ ranging from 3 to 60 and $\pi^C$ | |
620 | 625 | ranging from 2 to 22. In each case, the quadratic program has been able to give a |
621 | 626 | result up to five stages ($n = 5$) in the cascaded filter. |
622 | 627 | |
... | ... | @@ -630,16 +635,17 @@ Table~\ref{tbl:gurobi_max_1500} shows the results obtained by the filter solver |
630 | 635 | \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MAX/500} |
631 | 636 | \label{tbl:gurobi_max_500} |
632 | 637 | \centering |
633 | - {\scalefont{0.77} | |
638 | + {\color{red} | |
639 | + \scalefont{0.77} | |
634 | 640 | \begin{tabular}{|c|ccccc|c|c|} |
635 | 641 | \hline |
636 | 642 | $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\ |
637 | 643 | \hline |
638 | 644 | 1 & (21, 7, 0) & - & - & - & - & 32~dB & 483 \\ |
639 | - 2 & (3, 3, 15) & (31, 9, 0) & - & - & - & 58~dB & 460 \\ | |
640 | - 3 & (3, 3, 15) & (27, 9, 0) & (5, 3, 0) & - & - & 66~dB & 488 \\ | |
641 | - 4 & (3, 3, 15) & (19, 7, 0) & (11, 5, 0) & (3, 3, 0) & - & 74~dB & 499 \\ | |
642 | - 5 & (3, 3, 15) & (23, 8, 0) & (3, 3, 1) & (3, 3, 0) & (3, 3, 0) & 78~dB & 489 \\ | |
645 | + 2 & (3, 5, 18) & (33, 10, 0) & - & - & - & 48~dB & 492 \\ | |
646 | + 3 & (3, 5, 18) & (19, 7, 1) & (15, 7, 0) & - & - & 56~dB & 493 \\ | |
647 | + 4 & (3, 5, 18) & (19, 7, 1) & (15, 7, 0) & - & - & 56~dB & 493 \\ | |
648 | + 5 & (3, 5, 18) & (19, 7, 1) & (15, 7, 0) & - & - & 56~dB & 493 \\ | |
643 | 649 | \hline |
644 | 650 | \end{tabular} |
645 | 651 | } |
... | ... | @@ -649,16 +655,16 @@ Table~\ref{tbl:gurobi_max_1500} shows the results obtained by the filter solver |
649 | 655 | \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MAX/1000} |
650 | 656 | \label{tbl:gurobi_max_1000} |
651 | 657 | \centering |
652 | - {\scalefont{0.77} | |
658 | + {\color{red}\scalefont{0.77} | |
653 | 659 | \begin{tabular}{|c|ccccc|c|c|} |
654 | 660 | \hline |
655 | 661 | $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\ |
656 | 662 | \hline |
657 | 663 | 1 & (37, 11, 0) & - & - & - & - & 56~dB & 999 \\ |
658 | - 2 & (3, 3, 15) & (51, 14, 0) & - & - & - & 87~dB & 975 \\ | |
659 | - 3 & (3, 3, 15) & (35, 11, 0) & (19, 7, 0) & - & - & 99~dB & 1000 \\ | |
660 | - 4 & (3, 4, 16) & (27, 8, 0) & (19, 7, 1) & (11, 5, 0) & - & 103~dB & 998 \\ | |
661 | - 5 & (3, 3, 15) & (31, 9, 0) & (19, 7, 0) & (3, 3, 1) & (3, 3, 0) & 111~dB & 984 \\ | |
664 | + 2 & (15, 8, 17) & (35, 11, 0) & - & - & - & 80~dB & 990 \\ | |
665 | + 3 & (3, 13, 26) & (31, 9, 1) & (27, 9, 0) & - & - & 92~dB & 999 \\ | |
666 | + 4 & (3, 5, 18) & (19, 7, 1) & (19, 7, 0) & (19, 7, 0) & - & 98~dB & 994 \\ | |
667 | + 5 & (3, 5, 18) & (19, 7, 1) & (19, 7, 0) & (19, 7, 0) & - & 98~dB & 994 \\ | |
662 | 668 | \hline |
663 | 669 | \end{tabular} |
664 | 670 | } |
... | ... | @@ -668,16 +674,16 @@ Table~\ref{tbl:gurobi_max_1500} shows the results obtained by the filter solver |
668 | 674 | \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MAX/1500} |
669 | 675 | \label{tbl:gurobi_max_1500} |
670 | 676 | \centering |
671 | - {\scalefont{0.77} | |
677 | + {\color{red}\scalefont{0.77} | |
672 | 678 | \begin{tabular}{|c|ccccc|c|c|} |
673 | 679 | \hline |
674 | 680 | $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\ |
675 | 681 | \hline |
676 | 682 | 1 & (47, 15, 0) & - & - & - & - & 71~dB & 1457 \\ |
677 | - 2 & (19, 6, 15) & (51, 14, 0) & - & - & - & 103~dB & 1489 \\ | |
678 | - 3 & (3, 3, 15) & (35, 11, 0) & (35, 11, 0) & - & - & 122~dB & 1492 \\ | |
679 | - 4 & (3, 3, 15) & (27, 8, 0) & (19, 7, 0) & (27, 9, 0) & - & 129~dB & 1498 \\ | |
680 | - 5 & (3, 3, 15) & (23, 9, 2) & (27, 9, 0) & (19, 7, 0) & (3, 3, 0) & 136~dB & 1499 \\ | |
683 | + 2 & (19, 6, 15) & (51, 14, 0) & - & - & - & 102~dB & 1489 \\ | |
684 | + 3 & (15, 9, 18) & (31, 8, 0) & (27, 9, 0) & - & - & 116~dB & 1488 \\ | |
685 | + 4 & (3, 9, 22) & (31, 9, 1) & (27, 9, 0) & (19, 7, 0) & - & 125~dB & 1500 \\ | |
686 | + 5 & (3, 9, 22) & (31, 9, 1) & (27, 9, 0) & (19, 7, 0) & - & 125~dB & 1500 \\ | |
681 | 687 | \hline |
682 | 688 | \end{tabular} |
683 | 689 | } |
... | ... | @@ -685,8 +691,12 @@ Table~\ref{tbl:gurobi_max_1500} shows the results obtained by the filter solver |
685 | 691 | |
686 | 692 | \renewcommand{\arraystretch}{1} |
687 | 693 | |
688 | -From these tables, we can first state that the more stages are used to define | |
689 | -the cascaded FIR filters, the better the rejection. It was an expected result as it has | |
694 | +% From these tables, we can first state that the more stages are used to define | |
695 | +% the cascaded FIR filters, the better the rejection. | |
696 | +{\color{red} From these tables, we can first state that we reach an optimal solution | |
697 | +for each case : $n = 3$ for MAX/500 and $n = 4$ for MAX/1000 and MAX/1500. Moreover | |
698 | +the cascade filters always are better than monolithic solution.} | |
699 | +It was an expected result as it has | |
690 | 700 | been previously observed that many small filters are better than |
691 | 701 | a single large filter \cite{lim_1988, lim_1996, young_1992}, despite such conclusions |
692 | 702 | being hardly used in practice due to the lack of tools for identifying individual filter |
... | ... | @@ -782,9 +792,10 @@ the FIR filters and remove additional processing blocks including FIFO and Progr |
782 | 792 | Logic (PL -- FPGA) to Processing System (PS -- general purpose processor) communication. |
783 | 793 | |
784 | 794 | \begin{table}[h!tb] |
785 | - \caption{Resource occupation {\color{red}following synthesis of the solutions found for | |
786 | -the problem of maximizing rejection for a given resource allocation}. The last column refers to available resources on a Zynq-7010 as found on the Redpitaya.} | |
795 | + \caption{Resource occupation following synthesis of the solutions found for | |
796 | +the problem of maximizing rejection for a given resource allocation. The last column refers to available resources on a Zynq-7010 as found on the Redpitaya.} | |
787 | 797 | \label{tbl:resources_usage} |
798 | + \color{red} | |
788 | 799 | \centering |
789 | 800 | \begin{tabular}{|c|c|ccc|c|} |
790 | 801 | \hline |
... | ... | @@ -792,22 +803,22 @@ the problem of maximizing rejection for a given resource allocation}. The last c |
792 | 803 | & LUT & 249 & 453 & 627 & \emph{17600} \\ |
793 | 804 | 1 & BRAM & 1 & 1 & 1 & \emph{120} \\ |
794 | 805 | & DSP & 21 & 37 & 47 & \emph{80} \\ \hline |
795 | - & LUT & 2374 & 5494 & 691 & \emph{17600} \ | |
806 | + & LUT & 2253 & 474 & 691 & \emph{17600} \ | |
796 | 807 | 2 & BRAM & 2 & 2 & 2 & \emph{120} \\ |
797 | - & DSP & 0 & 0 & 70 & \emph{80} \\ \hline | |
798 | - & LUT & 2443 & 3304 & 3521 & \emph{17600} \\ | |
808 | + & DSP & 0 & 50 & 70 & \emph{80} \\ \hline | |
809 | + & LUT & 1329 & 2006 & 3158 & \emph{17600} \\ | |
799 | 810 | 3 & BRAM & 3 & 3 & 3 & \emph{120} \\ |
800 | - & DSP & 0 & 19 & 35 & \emph{80} \\ \hline | |
801 | - & LUT & 2634 & 3753 & 2557 & \emph{17600} \\ | |
802 | - 4 & BRAM & 4 & 4 & 4 & \emph{120} \\ | |
803 | - & DPS & 0 & 19 & 46 & \emph{80} \\ \hline | |
804 | - & LUT & 2423 & 3047 & 2847 & \emph{17600} \\ | |
805 | - 5 & BRAM & 5 & 5 & 5 & \emph{120} \\ | |
806 | - & DPS & 0 & 22 & 46 & \emph{80} \\ \hline | |
811 | + & DSP & 15 & 30 & 42 & \emph{80} \\ \hline | |
812 | + & LUT & 1329 & 1600 & 2260 & \emph{17600} \\ | |
813 | + 4 & BRAM & 3 & 4 & 4 & \emph{120} \\ | |
814 | + & DPS & 15 & 38 & 49 & \emph{80} \\ \hline | |
815 | + & LUT & 1329 & 1600 & 2260 & \emph{17600} \\ | |
816 | + 5 & BRAM & 3 & 4 & 4 & \emph{120} \\ | |
817 | + & DPS & 15 & 38 & 49 & \emph{80} \\ \hline | |
807 | 818 | \end{tabular} |
808 | 819 | \end{table} |
809 | 820 | |
810 | -In some cases, Vivado replaces the DSPs by Look Up Tables (LUTs). We assume that, | |
821 | +{\color{red} In case $n = 2$ for MAX/500}, Vivado replaces the DSPs by Look Up Tables (LUTs). We assume that, | |
811 | 822 | when the filter coefficients are small enough, or when the input size is small |
812 | 823 | enough, Vivado optimizes resource consumption by selecting multiplexers to |
813 | 824 | implement the multiplications instead of a DSP. In this case, it is quite difficult |
... | ... | @@ -816,7 +827,7 @@ to compare the whole silicon budget. |
816 | 827 | However, a rough estimation can be made with a simple equivalence: looking at |
817 | 828 | the first column (MAX/500), where the number of LUTs is quite stable for $n \geq 2$, |
818 | 829 | we can deduce that a DSP is roughly equivalent to 100~LUTs in terms of silicon |
819 | -area use. With this equivalence, our 500 arbitraty units correspond to 2500 LUTs, | |
830 | +area use. With this equivalence, our 500 arbitrary units correspond to 2500 LUTs, | |
820 | 831 | 1000 arbitrary units correspond to 5000 LUTs and 1500 arbitrary units correspond |
821 | 832 | to 7300 LUTs. The conclusion is that the orders of magnitude of our arbitrary |
822 | 833 | unit map well to actual hardware resources. The relatively small differences can probably be explained |
... | ... | @@ -832,19 +843,24 @@ problem when the maximal area is fixed to 500, 1000 and 1500 arbitrary units. |
832 | 843 | \caption{Time needed to solve the quadratic program with Gurobi} |
833 | 844 | \label{tbl:area_time} |
834 | 845 | \centering |
846 | +\color{red} | |
835 | 847 | \begin{tabular}{|c|c|c|c|}\hline |
836 | 848 | $n$ & Time (MAX/500) & Time (MAX/1000) & Time (MAX/1500) \\\hline\hline |
837 | -1 & 0.1~s & 0.1~s & 0.3~s \\ | |
838 | -2 & 1.1~s & 2.2~s & 12~s \\ | |
839 | -3 & 17~s & 137~s ($\approx$ 2~min) & 275~s ($\approx$ 4~min) \\ | |
840 | -4 & 52~s & 5448~s ($\approx$ 90~min) & 5505~s ($\approx$ 17~h) \\ | |
841 | -5 & 286~s ($\approx$ 4~min) & 4119~s ($\approx$ 68~min) & 235479~s ($\approx$ 3~days) \\\hline | |
849 | +1 & 0.01~s & 0.02~s & 0.03~s \\ | |
850 | +2 & 0.1~s & 1~s & 2~s \\ | |
851 | +3 & 5~s & 27~s & 351~s ($\approx$ 6~min) \\ | |
852 | +4 & 4~s & 141~s ($\approx$ 3~min) & 1134~s ($\approx$ 18~min) \\ | |
853 | +5 & 6~s & 630~s ($\approx$ 10~min) & 49400~s ($\approx$ 13~h) \\\hline | |
842 | 854 | \end{tabular} |
843 | 855 | \end{table} |
844 | 856 | |
845 | -As expected, the computation time seems to rise exponentially with the number of stages. % TODO: exponentiel ? | |
857 | +As expected, the computation time seems to rise exponentially with the number of stages. | |
846 | 858 | When the area is limited, the design exploration space is more limited and the solver is able to |
847 | 859 | find an optimal solution faster. |
860 | +{\color{red} We can also notice that the solution with $n$ greater than the optimal $n$ | |
861 | +take more time than the optimal one. This can be explain since the search space is | |
862 | +more important and we need more time to ensure that the previous solution (from the | |
863 | +smaller value of $n$) still the optimal solution.} | |
848 | 864 | |
849 | 865 | \subsection{Minimizing resource occupation at fixed rejection}\label{sec:fixed_rej} |
850 | 866 | |
... | ... | @@ -868,15 +884,16 @@ Table~\ref{tbl:gurobi_min_100} shows the results obtained by the filter solver f |
868 | 884 | \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MIN/40} |
869 | 885 | \label{tbl:gurobi_min_40} |
870 | 886 | \centering |
871 | - {\scalefont{0.77} | |
887 | + {\scalefont{0.77}\color{red} | |
872 | 888 | \begin{tabular}{|c|ccccc|c|c|} |
873 | 889 | \hline |
874 | 890 | $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\ |
875 | 891 | \hline |
876 | 892 | 1 & (27, 8, 0) & - & - & - & - & 41~dB & 648 \\ |
877 | - 2 & (3, 2, 14) & (19, 7, 0) & - & - & - & 40~dB & 263 \\ | |
878 | - 3 & (3, 3, 15) & (11, 5, 0) & (3, 3, 0) & - & - & 41~dB & 192 \\ | |
879 | - 4 & (3, 3, 15) & (3, 3, 0) & (3, 3, 0) & (3, 3, 0) & - & 42~dB & 147 \\ | |
893 | + 2 & (3, 5, 18) & (27, 8, 0) & - & - & - & 42~dB & 360 \\ | |
894 | + 3 & (3, 5, 18) & (27, 8, 0) & - & - & - & 42~dB & 360 \\ | |
895 | + 4 & (3, 5, 18) & (27, 8, 0) & - & - & - & 42~dB & 360 \\ | |
896 | + 5 & (3, 5, 18) & (27, 8, 0) & - & - & - & 42~dB & 360 \\ | |
880 | 897 | \hline |
881 | 898 | \end{tabular} |
882 | 899 | } |
... | ... | @@ -886,16 +903,16 @@ Table~\ref{tbl:gurobi_min_100} shows the results obtained by the filter solver f |
886 | 903 | \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MIN/60} |
887 | 904 | \label{tbl:gurobi_min_60} |
888 | 905 | \centering |
889 | - {\scalefont{0.77} | |
906 | + {\scalefont{0.77}\color{red} | |
890 | 907 | \begin{tabular}{|c|ccccc|c|c|} |
891 | 908 | \hline |
892 | 909 | $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\ |
893 | 910 | \hline |
894 | 911 | 1 & (39, 13, 0) & - & - & - & - & 60~dB & 1131 \\ |
895 | - 2 & (3, 3, 15) & (35, 10, 0) & - & - & - & 60~dB & 547 \\ | |
896 | - 3 & (3, 3, 15) & (27, 8, 0) & (3, 3, 0) & - & - & 62~dB & 426 \\ | |
897 | - 4 & (3, 2, 14) & (11, 5, 1) & (11, 5, 0) & (3, 3, 0) & - & 60~dB & 344 \\ | |
898 | - 5 & (3, 2, 14) & (3, 3, 1) & (3, 3, 0) & (3, 3, 0) & (3, 3, 0) & 60~dB & 279 \\ | |
912 | + 2 & (15, 6, 16) & (23, 9, 0) & - & - & - & 60~dB & 675 \\ | |
913 | + 3 & (3, 5, 18) & (15, 6, 2) & (23, 8, 0) & - & - & 60~dB & 543 \\ | |
914 | + 4 & (3, 5, 18) & (15, 6, 2) & (23, 8, 0) & - & - & 60~dB & 543 \\ | |
915 | + 5 & (3, 5, 18) & (15, 6, 2) & (23, 8, 0) & - & - & 60~dB & 543 \\ | |
899 | 916 | \hline |
900 | 917 | \end{tabular} |
901 | 918 | } |
... | ... | @@ -905,16 +922,16 @@ Table~\ref{tbl:gurobi_min_100} shows the results obtained by the filter solver f |
905 | 922 | \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MIN/80} |
906 | 923 | \label{tbl:gurobi_min_80} |
907 | 924 | \centering |
908 | - {\scalefont{0.77} | |
925 | + {\scalefont{0.77}\color{red} | |
909 | 926 | \begin{tabular}{|c|ccccc|c|c|} |
910 | 927 | \hline |
911 | 928 | $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\ |
912 | 929 | \hline |
913 | 930 | 1 & (55, 16, 0) & - & - & - & - & 81~dB & 1760 \\ |
914 | - 2 & (3, 3, 15) & (47, 14, 0) & - & - & - & 80~dB & 903 \\ | |
915 | - 3 & (3, 3, 15) & (23, 9, 0) & (19, 7, 0) & - & - & 80~dB & 698 \\ | |
916 | - 4 & (3, 3, 15) & (27, 9, 0) & (7, 7, 4) & (3, 3, 0) & - & 80~dB & 605 \\ | |
917 | - 5 & (3, 2, 14) & (27, 8, 0) & (3, 3, 1) & (3, 3, 0) & (3, 3, 0) & 81~dB & 534 \\ | |
931 | + 2 & (15, 8, 17) & (35, 11, 0) & - & - & - & 80~dB & 990 \\ | |
932 | + 3 & (3, 7, 20) & (31, 9, 1) & (19, 7, 0) & - & - & 80~dB & 783 \\ | |
933 | + 4 & (3, 7, 20) & (31, 9, 1) & (19, 7, 0) & - & - & 80~dB & 783 \\ | |
934 | + 5 & (3, 7, 20) & (31, 9, 1) & (19, 7, 0) & - & - & 80~dB & 783 \\ | |
918 | 935 | \hline |
919 | 936 | \end{tabular} |
920 | 937 | } |
... | ... | @@ -924,16 +941,16 @@ Table~\ref{tbl:gurobi_min_100} shows the results obtained by the filter solver f |
924 | 941 | \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MIN/100} |
925 | 942 | \label{tbl:gurobi_min_100} |
926 | 943 | \centering |
927 | - {\scalefont{0.77} | |
944 | + {\scalefont{0.77}\color{red} | |
928 | 945 | \begin{tabular}{|c|ccccc|c|c|} |
929 | 946 | \hline |
930 | 947 | $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\ |
931 | 948 | \hline |
932 | 949 | 1 & - & - & - & - & - & - & - \\ |
933 | - 2 & (15, 7, 17) & (51, 14, 0) & - & - & - & 100~dB & 1365 \\ | |
934 | - 3 & (3, 3, 15) & (27, 9, 0) & (27, 9, 0) & - & - & 100~dB & 1002 \\ | |
935 | - 4 & (3, 3, 15) & (31, 9, 0) & (19, 7, 0) & (3, 3, 0) & - & 101~dB & 909 \\ | |
936 | - 5 & (3, 3, 15) & (23, 8, 1) & (19, 7, 0) & (3, 3, 0) & (3, 3, 0) & 101~dB & 810 \\ | |
950 | + 2 & (27, 9, 15) & (35, 11, 0) & - & - & - & 100~dB & 1410 \\ | |
951 | + 3 & (3, 5, 18) & (35, 11, 1) & (27, 9, 0) & - & - & 100~dB & 1147 \\ | |
952 | + 4 & (3, 5, 18) & (15, 6, 2) & (27, 9, 0) & (19, 7, 0) & - & 100~dB & 1067 \\ | |
953 | + 5 & (3, 5, 18) & (15, 6, 2) & (27, 9, 0) & (19, 7, 0) & - & 100~dB & 1067 \\ | |
937 | 954 | \hline |
938 | 955 | \end{tabular} |
939 | 956 | } |
... | ... | @@ -944,8 +961,8 @@ From these tables, we can first state that almost all configurations reach the t |
944 | 961 | level or even better thanks to our underestimate of the cascade rejection as the sum of the |
945 | 962 | individual filter rejection. The only exception is for the monolithic case ($n = 1$) in |
946 | 963 | MIN/100: no solution is found for a single monolithic filter reach a 100~dB rejection. |
947 | -Futhermore, the area of the monolithic filter is twice as big as the two cascaded filters | |
948 | -(1131 and 1760 arbitrary units v.s 547 and 903 arbitrary units for 60 and 80~dB rejection | |
964 | +Furthermore, the area of the monolithic filter is twice as big as the two cascaded filters | |
965 | +{\color{red}(675 and 1131 arbitrary units v.s 990 and 1760 arbitrary units for 60 and 80~dB rejection} | |
949 | 966 | respectively). More generally, the more filters are cascaded, the lower the occupied area. |
950 | 967 | |
951 | 968 | Like in previous section, the solver chooses always a little filter as first |
... | ... | @@ -954,9 +971,12 @@ as in the previous section, with the solver using just enough bits not to degrad |
954 | 971 | signal and in the second filter selecting a better filter to improve rejection without |
955 | 972 | having too many bits in the output data. |
956 | 973 | |
957 | -For the specific case of MIN/40 for $n = 5$ the solver has determined that the optimal | |
958 | -number of filters is 4 so it did not chose any configuration for the last filter. Hence this | |
959 | -solution is equivalent to the result for $n = 4$. | |
974 | +{\color{red} For each case, we found an optimal solution with $n < 5$: for MIN/40 $n=2$, | |
975 | +for MIN/60 and MIN/80 $n = 3$ and for MIN/100 $n = 4$. In all cases, the solutions | |
976 | +when $n$ is greater than the optimal $n$ they remain identical to the optimal one.} | |
977 | +% For the specific case of MIN/40 for $n = 5$ the solver has determined that the optimal | |
978 | +% number of filters is 4 so it did not chose any configuration for the last filter. Hence this | |
979 | +% solution is equivalent to the result for $n = 4$. | |
960 | 980 | |
961 | 981 | The following graphs present the rejection for real data on the FPGA. In all the following |
962 | 982 | figures, the solid line represents the actual rejection of the filtered |
... | ... | @@ -1047,25 +1067,25 @@ PS communication. |
1047 | 1067 | \caption{Resource occupation. The last column refers to available resources on a Zynq-7010 as found on the Redpitaya.} |
1048 | 1068 | \label{tbl:resources_usage_comp} |
1049 | 1069 | \centering |
1050 | - {\scalefont{0.90} | |
1070 | + {\scalefont{0.90}\color{red} | |
1051 | 1071 | \begin{tabular}{|c|c|cccc|c|} |
1052 | 1072 | \hline |
1053 | 1073 | $n$ & & MIN/40 & MIN/60 & MIN/80 & MIN/100 & \emph{Zynq 7010} \\ \hline\hline |
1054 | 1074 | & LUT & 343 & 334 & 772 & - & \emph{17600} \\ |
1055 | 1075 | 1 & BRAM & 1 & 1 & 1 & - & \emph{120} \\ |
1056 | 1076 | & DSP & 27 & 39 & 55 & - & \emph{80} \\ \hline |
1057 | - & LUT & 1252 & 2862 & 5099 & 640 & \emph{17600} \ | |
1077 | + & LUT & 1664 & 2329 & 474 & 620 & \emph{17600} \ | |
1058 | 1078 | 2 & BRAM & 2 & 2 & 2 & 2 & \emph{120} \\ |
1059 | - & DSP & 0 & 0 & 0 & 66 & \emph{80} \\ \hline | |
1060 | - & LUT & 891 & 2148 & 2023 & 2448 & \emph{17600} \\ | |
1061 | - 3 & BRAM & 3 & 3 & 3 & 3 & \emph{120} \\ | |
1062 | - & DSP & 0 & 0 & 19 & 27 & \emph{80} \\ \hline | |
1063 | - & LUT & 662 & 1729 & 2451 & 2893 & \emph{17600} \\ | |
1064 | - 4 & BRAM & 4 & 4 & 4 & 4 & \emph{120} \\ | |
1065 | - & DPS & 0 & 0 & 7 & 19 & \emph{80} \\ \hline | |
1066 | - & LUT & - & 1259 & 2602 & 2505 & \emph{17600} \\ | |
1067 | - 5 & BRAM & - & 5 & 5 & 5 & \emph{120} \\ | |
1068 | - & DPS & - & 0 & 0 & 19 & \emph{80} \\ \hline | |
1079 | + & DSP & 0 & 15 & 50 & 62 & \emph{80} \\ \hline | |
1080 | + & LUT & 1664 & 3114 & 1884 & 2873 & \emph{17600} \\ | |
1081 | + 3 & BRAM & 2 & 3 & 3 & 3 & \emph{120} \\ | |
1082 | + & DSP & 0 & 0 & 22 & 27 & \emph{80} \\ \hline | |
1083 | + & LUT & 1664 & 3114 & 2570 & 4318 & \emph{17600} \\ | |
1084 | + 4 & BRAM & 2 & 3 & 4 & 4 & \emph{120} \\ | |
1085 | + & DPS & 0 & 15 & 19 & 19 & \emph{80} \\ \hline | |
1086 | + & LUT & 1664 & 3114 & 2570 & 4318 & \emph{17600} \\ | |
1087 | + 5 & BRAM & 2 & 3 & 4 & 4 & \emph{120} \\ | |
1088 | + & DPS & 0 & 0 & 19 & 19 & \emph{80} \\ \hline | |
1069 | 1089 | \end{tabular} |
1070 | 1090 | } |
1071 | 1091 | \end{table} |
... | ... | @@ -1086,25 +1106,24 @@ the quadratic program. |
1086 | 1106 | \caption{Time to solve the quadratic program with Gurobi} |
1087 | 1107 | \label{tbl:area_time_comp} |
1088 | 1108 | \centering |
1089 | -{\scalefont{0.90} | |
1109 | +{\scalefont{0.90}\color{red} | |
1090 | 1110 | \begin{tabular}{|c|c|c|c|c|}\hline |
1091 | 1111 | $n$ & Time (MIN/40) & Time (MIN/60) & Time (MIN/80) & Time (MIN/100) \\\hline\hline |
1092 | -1 & 0.07~s & 0.02~s & 0.01~s & - \\ | |
1093 | -2 & 7.8~s & 16~s & 14~s & 1.8~s \\ | |
1094 | -3 & 4.7~s & 14~s & 28~s & 39~s \\ | |
1095 | -4 & 39~s & 20~s & 193~s & 522~s ($\approx$ 9~min) \\ | |
1096 | -5 & - & 12~s & 170~s & 1048~s ($\approx$ 17~min) \\\hline | |
1112 | +1 & 0.04~s & 0.01~s & 0.01~s & - \\ | |
1113 | +2 & 2.7~s & 2.4~s & 2.4~s & 0.8~s \\ | |
1114 | +3 & 4.6~s & 7~s & 7~s & 18~s \\ | |
1115 | +4 & 3~s & 22~s & 70~s & 220~s ($\approx$ 3~min) \\ | |
1116 | +5 & 5~s & 122~s & 200~s & 384~s ($\approx$ 5~min) \\\hline | |
1097 | 1117 | \end{tabular} |
1098 | 1118 | } |
1099 | 1119 | \end{table} |
1100 | 1120 | \renewcommand{\arraystretch}{1} |
1101 | 1121 | |
1102 | 1122 | The time needed to solve this configuration is significantly shorter than the time |
1103 | -needed in the previous section. Indeed the worst time in this case is only 17~minutes, | |
1104 | -compared to 3~days in the previous section: this problem is more easily solved than the | |
1123 | +needed in the previous section. Indeed the worst time in this case is only {\color{red}5~minutes, | |
1124 | +compared to 13~hours} in the previous section: this problem is more easily solved than the | |
1105 | 1125 | previous one. |
1106 | 1126 | |
1107 | -{\color{red} % r1.4 | |
1108 | 1127 | To conclude, we compare our monolithic filters with the FIR Compiler provided by |
1109 | 1128 | Xilinx in the Vivado software suite (v.2018.2). For each experiment we use the |
1110 | 1129 | same coefficient set and we compare the resource consumption, having checked that |
... | ... | @@ -1137,11 +1156,10 @@ MIN/80 & 482 & 0 & 55 & 772 & 1 & 55 |
1137 | 1156 | \end{tabular} |
1138 | 1157 | \end{table} |
1139 | 1158 | \renewcommand{\arraystretch}{1} |
1140 | -} | |
1141 | 1159 | |
1142 | 1160 | \section{Conclusion} |
1143 | 1161 | |
1144 | -We have proposed a new approach to schedule a set of signal processing blocks whose performances | |
1162 | +We have proposed a new approach to optimize a set of signal processing blocks whose performances | |
1145 | 1163 | and resource consumption has been tabulated, and applied this methodology to the practical |
1146 | 1164 | case of implementing cascaded FIR filters inside a FPGA. |
1147 | 1165 | This method aims to be hardware independent and focuses an a high-level of abstraction. |
ifcs2018_journal_reponse2.tex
... | ... | @@ -0,0 +1,47 @@ |
1 | +% MANUSCRIPT NO. TUFFC-09469-2019.R1 | |
2 | +% MANUSCRIPT TYPE: Papers | |
3 | +% TITLE: Filter optimization for real time digital processing of radiofrequency signals: application to oscillator metrology | |
4 | +% AUTHOR(S): HUGEAT, Arthur; BERNARD, Julien; Goavec-Mérou, Gwenhaël; Bourgeois, Pierre-Yves; Friedt, Jean-Michel | |
5 | + | |
6 | +\documentclass[a4paper]{article} | |
7 | +\usepackage[english]{babel} | |
8 | +\usepackage{fullpage,graphicx,amsmath, subcaption} | |
9 | +\begin{document} | |
10 | +\begin{center} | |
11 | +{\bf\Large | |
12 | +Rebuttal letter to the review #2 of the manuscript entitled | |
13 | + | |
14 | +``Filter optimization for real time digital processing of radiofrequency | |
15 | +signals: application to oscillator metrology'' | |
16 | +} | |
17 | + | |
18 | +by A. Hugeat \& al. | |
19 | +\end{center} | |
20 | + | |
21 | +% | |
22 | +% REVIEWERS' COMMENTS: | |
23 | +% Reviewer: 1 | |
24 | +% | |
25 | +% Comments to the Author | |
26 | +% The Authors have implemented all Reviewers’ remarks except the one related to the criterion that, in my opinion, is the most important one. By considering ``the minimal rejection within the stopband, to which the sum of the absolute values within the passband is subtracted to avoid filters with excessive ripples, normalized to the bin width to remain consistent with the passband criterion (dBc/Hz units in all cases)'' (please, find a way to state criterions more clearly), the Authors get filters with very different behaviors in pass band and, consequently, their comparison loses its meaning. | |
27 | +% In practice, the Authors use a good method based on a bad criterion, and this point weakens a lot the results they present. | |
28 | +% In phase noise metrology, the target is an uncertainty of 1 dB, even less. In this regard, I would personally use a maximum ripple in pass band of 1 dB (or less), while, in some cases, the filters presented in the Manuscript exceed 10 dB of ripple, which is definitely too much. | |
29 | +% The Authors seem to be reactive in redoing the measures and it does not seem a big problem for them to re-run the analysis with a better criterion. The article would gain a lot, because, in addition to the methodology, the reader could understand if it is actually better to put a cascade of small filters rather than a single large filter that is an interesting point. | |
30 | +% To help the Authors in finding a better criterion (``…finding a better criterion to avoid the ripples in the passband is challenging...''), in addition to the minimum rejection in stop band, I suggest to specify also the maximum ripple in pass band as it is done, for example, in fig. 4.10, pg. 146 of Crochierie R. E. and Rabiner L. R. (1983) ``Multirate Digital Signal Processing'', Prentice-Hall (see attach). This suggestion, in practice, specify the maximum allowed deviation from the transfer function modulus of an ideal filter: 1 in pass band and 0 in stop band. As a result, it should solve one of the Authors’ concerns: ``Selecting a strong constraint such as the sum of absolute values in the passband is too selective because it considers all frequency bins in the passband while the stopband criterion is limited to a single bin at which rejection is poorest…'' since both pass and stop bands are considered in the same way. | |
31 | +% | |
32 | +% I understand that the Manuscript is devoted to present a methodology (``In this article we focus on the methodology, so even if our criterion could be improved, our methodology still remains and works independently of rejection criterion.''). Please, remember that a methodology is a solution to a class of problems and the example chosen to present the methodology plays a key role in showing to the reader if the method is valid or not. Here the example problem is represented by the synthesis of a decimation filter to be used in phase noise metrology. Many of the filters presented by the Authors in figures 9 and 10 as the output of this methodology are not suitable to be used in this context, since, for example, some of them have an attenuation as high as 50 dB in DC (!) that poses severe problems in interpreting the phase noise power spectral densities. What is the cause of this fail? The methodology or the criterion? | |
33 | + | |
34 | +{\bf | |
35 | +In my opinion, it is mandatory to correct the criterion and to re-run the analysis for checking if the methodology works properly or not. | |
36 | +In the end, I suggest to publish the Manuscript After Minor Revisions. | |
37 | +} | |
38 | + | |
39 | +We have change our criterion to be more selective in passband. Now, when the filter response | |
40 | +exceed 1~dB in the passband, we discard the filter. We have re-run all experimentation | |
41 | +and we have updated the dataset and our conclusion. The methodology provide the | |
42 | +same results but since we have less filters we found the optimal solution earlier. | |
43 | +Our argumentation about the needed time to compute the optimal solution is not so | |
44 | +valid anymore since we need less time but we can also see that for biggest cases | |
45 | +we need more time. | |
46 | + | |
47 | +\end{document} |
images/custom_criterion.pdf
No preview for this file type
images/letter_pondered_criterion.pdf
No preview for this file type
images/max_1000.pdf
No preview for this file type
images/max_1500.pdf
No preview for this file type
images/max_500.pdf
No preview for this file type
images/min_100.pdf
No preview for this file type
images/min_40.pdf
No preview for this file type
images/min_60.pdf
No preview for this file type
images/min_80.pdf
No preview for this file type
images/rejection_pyramid.pdf
No preview for this file type