From c7f6afba76c29c0cb1a35331d7070f935be7fffc Mon Sep 17 00:00:00 2001 From: Arthur HUGEAT Date: Thu, 26 Sep 2019 15:33:12 +0200 Subject: [PATCH] =?UTF-8?q?Derni=C3=A8re=20correction.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ifcs2018_journal.tex | 233 +++++++++++---------------------------------------- 1 file changed, 47 insertions(+), 186 deletions(-) diff --git a/ifcs2018_journal.tex b/ifcs2018_journal.tex index 201eb34..a0722c1 100644 --- a/ifcs2018_journal.tex +++ b/ifcs2018_journal.tex @@ -1,15 +1,3 @@ -% fusionner max rejection a surface donnee v.s minimiser surface a rejection donnee -% demontrer comment la quantification rejette du bruit vers les hautes frequences => 6 dB de -% rejection par bit et perte si moins de bits que rejection/6 -% developper programme lineaire en incluant le decalage de bits -% insister que avant on etait synthetisable mais pas implementable, alors que maintenant on -% implemente et on demontre que ca tourne -% gwen : pourquoi le FIR est desormais implementable et ne l'etait pas meme sur zedboard->new FIR ? -% Gwen : peut-on faire un vrai banc de bruit de phase avec ce FIR, ie ajouter ADC, NCO et mixer -% (zedboard ou redpit) - -% label schema : verifier que "argumenter de la cascade de FIR" est fait - \documentclass[a4paper,journal]{IEEEtran/IEEEtran} \usepackage{graphicx,color,hyperref} \usepackage{amsfonts} @@ -26,7 +14,7 @@ \usepackage{caption} \usepackage{subcaption} -% correct bad hyphenation here + \hyphenation{op-tical net-works semi-conduc-tor} \textheight=26cm \setlength{\footskip}{30pt} @@ -290,42 +278,25 @@ the stopband the last 40\%, allowing 20\% transition width.} \end{figure} In the transition band, the behavior of the filter is left free, we only define the passband and the stopband characteristics. -% r2.7 Initial considered criteria include the mean value of the stopband rejection which yields unacceptable results since notches overestimate the rejection capability of the filter. -% Furthermore, the losses within -% the passband are not considered and might be excessive for excessively wide transitions widths introduced for filters with few coefficients. -{\color{red} An intermediate criterion considered the maximal rejection within the stopband, to which the sum of the absolute values -% JMF : je fais le choix de remplacer minimal par maximal rejection pour etre coherent avec caption de Fig custom_criterion mais surtout parceque -% rejection me semble plus convaincant si on la maximise (il me semble que -120 dB de S21 signifie 120 dB de rejection donc on veut maximiser) +An intermediate criterion considered the maximal 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). -In this case, cascading too many filters with individual excessive ($>$ 1~dB) passband ripples -led to unacceptable ($>$ 10~dB) final ripple levels, especially close to the transition band. +In this case, cascading too many filters with individual excessive ($>$ 1~dB) passband ripples +led to unacceptable ($>$ 10~dB) final ripple levels, especially close to the transition band. Hence, the final criterion considers the minimal rejection in the stopband to which the the maximal amplitude in the passband (maximum value minus the minimum value) is substracted, with -a 1~dB threshold on the latter quantity over which the filter is discarded.} -% Our final criterion to compute the filter rejection considers -% % r2.8 et r2.2 r2.3 -% 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). +a 1~dB threshold on the latter quantity over which the filter is discarded. With this criterion, we meet the expected rejection capability of low pass filters as shown in figure~\ref{fig:custom_criterion}. -{\color{red} The best filter has a correct rejection estimation and the worst filter -is discarded based on the excessive passband ripple criterion.} - -% \begin{figure} -% \centering -% \includegraphics[width=\linewidth]{images/colored_mean_criterion} -% \caption{Mean stopband rejection criterion comparison between monolithic filter and cascaded filters} -% \label{fig:mean_criterion} -% \end{figure} +The best filter has a correct rejection estimation and the worst filter +is discarded based on the excessive passband ripple criterion. \begin{figure} \centering \includegraphics[width=\linewidth]{images/custom_criterion} -\caption{\color{red}Selected filter qualification criterion computed as the maximum rejection in the stopband +\caption{Selected filter qualification criterion computed as the maximum rejection in the stopband minus the maximal ripple amplitude in the passband with a $>$ 1~dB threshold above which the filter is discarded: comparison between monolithic filter (blue, rejected in this case) and cascaded filters (red).} \label{fig:custom_criterion} @@ -337,19 +308,19 @@ rejection as a function of the number of coefficients and the number of bits rep The curve shaped as a pyramid exhibits optimum configurations sets at the vertex where both edges meet. Indeed for a given number of coefficients, increasing the number of bits over the edge will not improve the rejection. Conversely when setting the a given number of bits, increasing the number of coefficients will not improve -the rejection. Hence the best coefficient set are on the vertex of the pyramid. {\color{red} Notice that the word length +the rejection. Hence the best coefficient set are on the vertex of the pyramid. Notice that the word length and number of coefficients do not start at 1: filters with too few coefficients or too little tap word size are rejected by the excessive ripple constraint of the criterion. Hence, the size of the pyramid is significantly reduced by discarding -these filters and so is the solution search space.} % ajout JMF +these filters and so is the solution search space. \begin{figure} \centering \includegraphics[width=\linewidth]{images/rejection_pyramid} -\caption{\color{red}Filter rejection as a function of number of coefficients and number of bits +\caption{Filter rejection as a function of number of coefficients and number of bits : this lookup table will be used to identify which filter parameters -- number of bits -representing coefficients and number of coefficients -- best match the targeted transfer function. {\color{red}Filters +representing coefficients and number of coefficients -- best match the targeted transfer function. Filters with fewer than 10~taps or with coefficients coded on fewer than 5~bits are discarded due to excessive -ripples in the passband.}} % ajout JMF +ripples in the passband.} \label{fig:rejection_pyramid} \end{figure} @@ -362,10 +333,8 @@ the previous relation is no longer valid as illustrated on figure~\ref{fig:sum_r are two different filters with maximums and notches not located at the same frequency offsets. Hence when summing the transfer functions, the resulting rejection shown as the dashed yellow line is improved with respect to a basic sum of the rejection criteria shown as a the dotted yellow line. -% r2.9 Thus, estimating the rejection of filter cascades is more complex than taking the sum of all the rejection criteria of each filter. However since the individual filter rejection sum underestimates the rejection capability of the cascade, -% r2.10 this upper bound is considered as a conservative and acceptable criterion for deciding on the suitability of the filter cascade to meet design criteria. @@ -385,7 +354,6 @@ resolution of the input data stream are fixed and still the same for all experim in this paper. Based on this analysis, we address the estimate of resource consumption (called -% r2.11 silicon area -- in the case of FPGAs this means processing cells) as a function of filter characteristics. As a reminder, we do not aim at matching actual hardware configuration but consider an arbitrary silicon area occupied by each processing function, @@ -433,15 +401,6 @@ Finally, equation~\ref{eq:init} gives the number of bits of the global input. This model is non-linear since we multiply some variable with another variable and it is even non-quadratic, as the cost function $F$ does not have a known linear or quadratic expression. To linearize this problem, we introduce $p$ FIR configurations. -% AH: conflit merge -% This variable must be defined by the user, it represent the number of different -% set of coefficients generated (for memory, we use \texttt{firls} and \texttt{fir1} -% functions from GNU Octave). To choose this value, we consider a subset of the figure~\ref{fig:rejection_pyramid} -% to restrict the number of configurations. Indeed, it is useless to have too many coefficients or -% too many bits, hence we take the configurations close to edge of pyramid. Thank to theses -% configurations $C_{ij}$ and $\pi_{ij}^C$ ($1 \leq j \leq p$) become constant -% and the function $F$ can be estimate for each configurations -% thanks our rejection criterion. We also defined binary This variable $p$ is defined by the user, and represents the number of different set of coefficients generated (remember, we use \texttt{firls} and \texttt{fir1} functions from GNU Octave) based on the targeted filter characteristics and implementation @@ -463,16 +422,6 @@ Equations \ref{eq:areadef2}, \ref{eq:rejectiondef2} and \ref{eq:bits2} replace respectively equations \ref{eq:areadef}, \ref{eq:rejectiondef} and \ref{eq:bits}. Equation~\ref{eq:config} states that for each stage, a single configuration is chosen at most. -% JM: conflict merge -% However the problem remains quadratic at this stage since in the constraint~\ref{eq:areadef2} -% we multiply -% $\delta_{ij}$ and $\pi_i^-$. However, since $\delta_{ij}$ is a binary variable we can -% linearise this multiplication if we can bound $\pi_i^-$. As $\pi_i^-$ is the data size, -% we define $0 < \pi_i^- \leq 128$ which is the maximum data size whose estimation is -% assumed on hardware characteristics. -% The Gurobi (\url{www.gurobi.com}) optimization software used to solve this quadratic -% model is able to linearize the model provided as is. This model -% has $O(np)$ variables and $O(n)$ constraints.} The problem remains quadratic at this stage since in the constraint~\ref{eq:areadef2} we multiply $\delta_{ij}$ and $\pi_i^-$. However, since $\delta_{ij}$ is a binary variable we can @@ -495,36 +444,6 @@ the Gurobi (\url{www.gurobi.com}) optimization software will be able to lineariz for us the quadratic problem so the model is left as is. This model has $O(np)$ variables and $O(n)$ constraints. -% This model is non-linear and even non-quadratic, as $F$ does not have a known -% linear or quadratic expression. We introduce $p$ FIR configurations -% $(C_{ij}, \pi_{ij}^C), 1 \leq j \leq p$ that are constants. -% % r2.12 -% This variable must be defined by the user, it represent the number of different -% set of coefficients generated (for memory, we use \texttt{firls} and \texttt{fir1} -% functions from GNU Octave). -% We define binary -% variable $\delta_{ij}$ that has value 1 if stage~$i$ is in configuration~$j$ -% and 0 otherwise. The new equations are as follows: -% -% \begin{align} -% 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} \\ -% r_i & = \sum_{j=1}^p \delta_{ij} \times F(C_{ij}, \pi_{ij}^C), & \forall i \in [1, n] \label{eq:rejectiondef2} \\ -% \pi_i^+ & = \pi_i^- + \left(\sum_{j=1}^p \delta_{ij} \pi_{ij}^C\right) - \pi_i^S, & \forall i \in [1, n] \label{eq:bits2} \\ -% \sum_{j=1}^p \delta_{ij} & \leq 1, & \forall i \in [1, n] \label{eq:config} -% \end{align} -% -% Equations \ref{eq:areadef2}, \ref{eq:rejectiondef2} and \ref{eq:bits2} replace -% respectively equations \ref{eq:areadef}, \ref{eq:rejectiondef} and \ref{eq:bits}. -% Equation~\ref{eq:config} states that for each stage, a single configuration is chosen at most. -% -% % r2.13 -% This modified model is quadratic since we multiply two variables in the -% equation~\ref{eq:areadef2} ($\delta_{ij}$ by $\pi_{ij}^-$) but it can be linearised if necessary. -% The Gurobi -% (\url{www.gurobi.com}) optimization software is used to solve this quadratic -% model, and since Gurobi is able to linearize, the model is left as is. This model -% has $O(np)$ variables and $O(n)$ constraints. - Two problems will be addressed using the workflow described in the next section: on the one hand maximizing the rejection capability of a set of cascaded filters occupying a fixed arbitrary silicon area (section~\ref{sec:fixed_area}) and on the second hand the dual problem of minimizing the silicon area @@ -628,7 +547,7 @@ The experimental setup is composed of three cases. The raw input is generated by a Pseudo Random Number (PRN) generator, which fixes the input data size $\Pi^I$. Then the total silicon area $\mathcal{A}$ has been fixed to either 500, 1000 or 1500 arbitrary units. Hence, the three cases have been named: MAX/500, MAX/1000, MAX/1500. -The number of configurations $p$ is {\color{red}1133}, with $C_i$ ranging from 3 to 60 and $\pi^C$ +The number of configurations $p$ is 1133, with $C_i$ ranging from 3 to 60 and $\pi^C$ ranging from 2 to 22. In each case, the quadratic program has been able to give a result up to five stages ($n = 5$) in the cascaded filter. @@ -642,8 +561,7 @@ Table~\ref{tbl:gurobi_max_1500} shows the results obtained by the filter solver \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MAX/500} \label{tbl:gurobi_max_500} \centering - {\color{red} - \scalefont{0.77} + {\scalefont{0.77} \begin{tabular}{|c|ccccc|c|c|} \hline $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\ @@ -662,7 +580,7 @@ Table~\ref{tbl:gurobi_max_1500} shows the results obtained by the filter solver \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MAX/1000} \label{tbl:gurobi_max_1000} \centering - {\color{red}\scalefont{0.77} + {\scalefont{0.77} \begin{tabular}{|c|ccccc|c|c|} \hline $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\ @@ -681,7 +599,7 @@ Table~\ref{tbl:gurobi_max_1500} shows the results obtained by the filter solver \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MAX/1500} \label{tbl:gurobi_max_1500} \centering - {\color{red}\scalefont{0.77} + {\scalefont{0.77} \begin{tabular}{|c|ccccc|c|c|} \hline $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\ @@ -698,11 +616,9 @@ Table~\ref{tbl:gurobi_max_1500} shows the results obtained by the filter solver \renewcommand{\arraystretch}{1} -% From these tables, we can first state that the more stages are used to define -% the cascaded FIR filters, the better the rejection. -{\color{red} By analyzing these tables, we can first state that we reach an optimal solution +By analyzing these tables, we can first state that we reach an optimal solution for each case : $n = 3$ for MAX/500, and $n = 4$ for MAX/1000 and MAX/1500. Moreover -the cascaded filters always exhibit better performance than the monolithic solution.} +the cascaded filters always exhibit better performance than the monolithic solution. It was an expected result as it has been previously observed that many small filters are better than a single large filter \cite{lim_1988, lim_1996, young_1992}, despite such conclusions @@ -730,51 +646,29 @@ Figure~\ref{fig:max_500_result} shows the rejection of the different configurati Figure~\ref{fig:max_1000_result} shows the rejection of the different configurations in the case of MAX/1000. Figure~\ref{fig:max_1500_result} shows the rejection of the different configurations in the case of MAX/1500. -% \begin{figure} -% \centering -% \includegraphics[width=\linewidth]{images/max_500} -% \caption{Signal spectrum for MAX/500} -% \label{fig:max_500_result} -% \end{figure} -% -% \begin{figure} -% \centering -% \includegraphics[width=\linewidth]{images/max_1000} -% \caption{Signal spectrum for MAX/1000} -% \label{fig:max_1000_result} -% \end{figure} -% -% \begin{figure} -% \centering -% \includegraphics[width=\linewidth]{images/max_1500} -% \caption{Signal spectrum for MAX/1500} -% \label{fig:max_1500_result} -% \end{figure} - -% r2.14 et r2.15 et r2.16 \begin{figure} \centering \begin{subfigure}{\linewidth} \includegraphics[width=\linewidth]{images/max_500} - \caption{\color{red}Filter transfer functions for varying number of cascaded filters solving + \caption{Filter transfer functions for varying number of cascaded filters solving the MAX/500 problem of maximizing rejection for a given resource allocation (500~arbitrary units).} \label{fig:max_500_result} \end{subfigure} \begin{subfigure}{\linewidth} \includegraphics[width=\linewidth]{images/max_1000} - \caption{\color{red}Filter transfer functions for varying number of cascaded filters solving + \caption{Filter transfer functions for varying number of cascaded filters solving the MAX/1000 problem of maximizing rejection for a given resource allocation (1000~arbitrary units).} \label{fig:max_1000_result} \end{subfigure} \begin{subfigure}{\linewidth} \includegraphics[width=\linewidth]{images/max_1500} - \caption{\color{red}Filter transfer functions for varying number of cascaded filters solving + \caption{Filter transfer functions for varying number of cascaded filters solving the MAX/1500 problem of maximizing rejection for a given resource allocation (1500~arbitrary units).} \label{fig:max_1500_result} \end{subfigure} - \caption{\color{red}Solutions for the MAX/500, MAX/1000 and MAX/1500 problems of maximizing + \caption{Solutions for the MAX/500, MAX/1000 and MAX/1500 problems of maximizing rejection for a given resource allocation. The filter shape constraint (bandpass and bandstop) is shown as thick horizontal lines on each chart.} @@ -802,7 +696,6 @@ Logic (PL -- FPGA) to Processing System (PS -- general purpose processor) commun \caption{Resource occupation following synthesis of the solutions found for 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.} \label{tbl:resources_usage} - \color{red} \centering \begin{tabular}{|c|c|ccc|c|} \hline @@ -825,7 +718,7 @@ the problem of maximizing rejection for a given resource allocation. The last co \end{tabular} \end{table} -{\color{red} In case $n = 2$ for MAX/500}, Vivado replaces the DSPs by Look Up Tables (LUTs). We assume that, +In case $n = 2$ for MAX/500, Vivado replaces the DSPs by Look Up Tables (LUTs). We assume that, when the filter coefficients are small enough, or when the input size is small enough, Vivado optimizes resource consumption by selecting multiplexers to implement the multiplications instead of a DSP. In this case, it is quite difficult @@ -850,7 +743,6 @@ problem when the maximal area is fixed to 500, 1000 and 1500 arbitrary units. \caption{Time needed to solve the quadratic program with Gurobi} \label{tbl:area_time} \centering -\color{red} \begin{tabular}{|c|c|c|c|}\hline $n$ & Time (MAX/500) & Time (MAX/1000) & Time (MAX/1500) \\\hline\hline 1 & 0.01~s & 0.02~s & 0.03~s \\ @@ -864,12 +756,13 @@ $n$ & Time (MAX/500) & Time (MAX/1000) & Time (MAX/1500) As expected, the computation time seems to rise exponentially with the number of stages. When the area is limited, the design exploration space is more limited and the solver is able to find an optimal solution faster. -{\color{red} We also notice that the solution with $n$ greater than the optimal value +We also notice that the solution with $n$ greater than the optimal value takes more time to be found than the optimal one. This can be explained since the search space is larger and we need more time to ensure that the previous solution (from the -smaller value of $n$) still remains the optimal solution.} +smaller value of $n$) still remains the optimal solution. -\subsection{Minimizing resource occupation at fixed rejection}\label{sec:fixed_rej} +\subsection{Minimizing resource occupation at fixed rejection} +\label{sec:fixed_rej} This section presents the results of the complementary quadratic program aimed at minimizing the area occupation for a targeted rejection level. @@ -891,7 +784,7 @@ Table~\ref{tbl:gurobi_min_100} shows the results obtained by the filter solver f \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MIN/40} \label{tbl:gurobi_min_40} \centering - {\scalefont{0.77}\color{red} + {\scalefont{0.77} \begin{tabular}{|c|ccccc|c|c|} \hline $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\ @@ -910,7 +803,7 @@ Table~\ref{tbl:gurobi_min_100} shows the results obtained by the filter solver f \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MIN/60} \label{tbl:gurobi_min_60} \centering - {\scalefont{0.77}\color{red} + {\scalefont{0.77} \begin{tabular}{|c|ccccc|c|c|} \hline $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\ @@ -929,7 +822,7 @@ Table~\ref{tbl:gurobi_min_100} shows the results obtained by the filter solver f \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MIN/80} \label{tbl:gurobi_min_80} \centering - {\scalefont{0.77}\color{red} + {\scalefont{0.77} \begin{tabular}{|c|ccccc|c|c|} \hline $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\ @@ -948,7 +841,7 @@ Table~\ref{tbl:gurobi_min_100} shows the results obtained by the filter solver f \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MIN/100} \label{tbl:gurobi_min_100} \centering - {\scalefont{0.77}\color{red} + {\scalefont{0.77} \begin{tabular}{|c|ccccc|c|c|} \hline $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\ @@ -969,7 +862,7 @@ level or even better thanks to our underestimate of the cascade rejection as the individual filter rejection. The only exception is for the monolithic case ($n = 1$) in MIN/100: no solution is found for a single monolithic filter reach a 100~dB rejection. Furthermore, the area of the monolithic filter is twice as big as the two cascaded filters -{\color{red}(675 and 1131 arbitrary units v.s 990 and 1760 arbitrary units for 60 and 80~dB rejection} +(675 and 1131 arbitrary units v.s 990 and 1760 arbitrary units for 60 and 80~dB rejection respectively). More generally, the more filters are cascaded, the lower the occupied area. Like in previous section, the solver chooses always a little filter as first @@ -978,12 +871,9 @@ as in the previous section, with the solver using just enough bits not to degrad signal and in the second filter selecting a better filter to improve rejection without having too many bits in the output data. -{\color{red} For each case, we found an optimal solution with $n < 5$: for MIN/40 $n=2$, +For each case, we found an optimal solution with $n < 5$: for MIN/40 $n=2$, for MIN/60 and MIN/80 $n = 3$ and for MIN/100 $n = 4$. In all cases, the solutions -when $n$ is greater than this optimal $n$ remain identical to the optimal one.} -% For the specific case of MIN/40 for $n = 5$ the solver has determined that the optimal -% number of filters is 4 so it did not chose any configuration for the last filter. Hence this -% solution is equivalent to the result for $n = 4$. +when $n$ is greater than this optimal $n$ remain identical to the optimal one. The following graphs present the rejection for real data on the FPGA. In all the following figures, the solid line represents the actual rejection of the filtered @@ -995,65 +885,36 @@ Figure~\ref{fig:min_60} shows the rejection of the different configurations in t Figure~\ref{fig:min_80} shows the rejection of the different configurations in the case of MIN/80. Figure~\ref{fig:min_100} shows the rejection of the different configurations in the case of MIN/100. -% \begin{figure} -% \centering -% \includegraphics[width=\linewidth]{images/min_40} -% \caption{Signal spectrum for MIN/40} -% \label{fig:min_40} -% \end{figure} -% -% \begin{figure} -% \centering -% \includegraphics[width=\linewidth]{images/min_60} -% \caption{Signal spectrum for MIN/60} -% \label{fig:min_60} -% \end{figure} -% -% \begin{figure} -% \centering -% \includegraphics[width=\linewidth]{images/min_80} -% \caption{Signal spectrum for MIN/80} -% \label{fig:min_80} -% \end{figure} -% -% \begin{figure} -% \centering -% \includegraphics[width=\linewidth]{images/min_100} -% \caption{Signal spectrum for MIN/100} -% \label{fig:min_100} -% \end{figure} - -% r2.14 et r2.15 et r2.16 \begin{figure} \centering \begin{subfigure}{\linewidth} \includegraphics[width=.91\linewidth]{images/min_40} - \caption{\color{red}Filter transfer functions for varying number of cascaded filters solving + \caption{Filter transfer functions for varying number of cascaded filters solving the MIN/40 problem of minimizing resource allocation for reaching a 40~dB rejection.} \label{fig:min_40} \end{subfigure} \begin{subfigure}{\linewidth} \includegraphics[width=.91\linewidth]{images/min_60} - \caption{\color{red}Filter transfer functions for varying number of cascaded filters solving + \caption{Filter transfer functions for varying number of cascaded filters solving the MIN/60 problem of minimizing resource allocation for reaching a 60~dB rejection.} \label{fig:min_60} \end{subfigure} \begin{subfigure}{\linewidth} \includegraphics[width=.91\linewidth]{images/min_80} - \caption{\color{red}Filter transfer functions for varying number of cascaded filters solving + \caption{Filter transfer functions for varying number of cascaded filters solving the MIN/80 problem of minimizing resource allocation for reaching a 80~dB rejection.} \label{fig:min_80} \end{subfigure} \begin{subfigure}{\linewidth} \includegraphics[width=.91\linewidth]{images/min_100} - \caption{\color{red}Filter transfer functions for varying number of cascaded filters solving + \caption{Filter transfer functions for varying number of cascaded filters solving the MIN/100 problem of minimizing resource allocation for reaching a 100~dB rejection.} \label{fig:min_100} \end{subfigure} - \caption{\color{red}Solutions for the MIN/40, MIN/60, MIN/80 and MIN/100 problems of reaching a + \caption{Solutions for the MIN/40, MIN/60, MIN/80 and MIN/100 problems of reaching a given rejection while minimizing resource allocation. The filter shape constraint (bandpass and bandstop) is shown as thick horizontal lines on each chart.} @@ -1074,7 +935,7 @@ PS communication. \caption{Resource occupation. The last column refers to available resources on a Zynq-7010 as found on the Redpitaya.} \label{tbl:resources_usage_comp} \centering - {\scalefont{0.90}\color{red} + {\scalefont{0.90} \begin{tabular}{|c|c|cccc|c|} \hline $n$ & & MIN/40 & MIN/60 & MIN/80 & MIN/100 & \emph{Zynq 7010} \\ \hline\hline @@ -1113,7 +974,7 @@ the quadratic program. \caption{Time to solve the quadratic program with Gurobi} \label{tbl:area_time_comp} \centering -{\scalefont{0.90}\color{red} +{\scalefont{0.90} \begin{tabular}{|c|c|c|c|c|}\hline $n$ & Time (MIN/40) & Time (MIN/60) & Time (MIN/80) & Time (MIN/100) \\\hline\hline 1 & 0.04~s & 0.01~s & 0.01~s & - \\ @@ -1127,9 +988,9 @@ $n$ & Time (MIN/40) & Time (MIN/60) & Time (MIN/80) & Ti \renewcommand{\arraystretch}{1} The time needed to solve this configuration is significantly shorter than the time -needed in the previous section. Indeed the worst time in this case is only {\color{red}5~minutes, -compared to 13~hours} in the previous section: this problem is more easily solved than the -previous one. +needed in the previous section. Indeed the worst time in this case is only 5~minutes, +compared to 13~hours in the previous section: this problem is more easily solved than the +previous one. To conclude, we compare our monolithic filters with the FIR Compiler provided by Xilinx in the Vivado software suite (v.2018.2). For each experiment we use the @@ -1181,10 +1042,10 @@ such filters. The FPGA design that is produced automatically by the proposed workflow is able to filter an input signal as expected, validating experimentally our model and our approach. The quadratic program can be adapted it to an other problem based on assembling skeleton blocks. -{\color{red}Considering that all area and rejection considerations could be explored within a reasonable +Considering that all area and rejection considerations could be explored within a reasonable computation duration, and that no improvement is observed when cascading more than four filters, we consider that this particular problem has been exhaustively investigated and optimal solutions found -in all cases.} % JMF +in all cases. A perspective is to model and add the decimators to the processing chain to have a classical FIR filter and decimator. The impact of the decimator is not trivial, especially in terms of silicon -- 2.16.4