Commit b5ace9bdc3b73d0123350361c72a861700b35ba7

Authored by Arthur HUGEAT
1 parent 7c951bd35e
Exists in master

Revision 2.

Showing 12 changed files with 139 additions and 96 deletions Side-by-side Diff

ifcs2018_journal.tex
... ... @@ -295,12 +295,23 @@
295 295 overestimate the rejection capability of the filter.
296 296 % Furthermore, the losses within
297 297 % the passband are not considered and might be excessive for excessively wide transitions widths introduced for filters with few coefficients.
298   -Our final criterion to compute the filter rejection considers
299   -% r2.8 et r2.2 r2.3
300   -the minimal rejection within the stopband, to which the 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
301 299 within the passband is subtracted to avoid filters with excessive ripples, normalized to the
302   -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
303 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 ?
304 315  
305 316 % \begin{figure}
306 317 % \centering
... ... @@ -311,9 +322,9 @@
311 322  
312 323 \begin{figure}
313 324 \centering
314   -\includegraphics[width=\linewidth]{images/colored_custom_criterion}
315   -\caption{Custom criterion (maximum rejection in the stopband minus the sum of the
316   -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)
317 328 comparison between monolithic filter and cascaded filters}
318 329 \label{fig:custom_criterion}
319 330 \end{figure}
... ... @@ -329,7 +340,7 @@
329 340 \begin{figure}
330 341 \centering
331 342 \includegraphics[width=\linewidth]{images/rejection_pyramid}
332   -\caption{Filter rejection as a function of number of coefficients and number of bits
  343 +\caption{\color{red}Filter rejection as a function of number of coefficients and number of bits
333 344 : this lookup table will be used to identify which filter parameters -- number of bits
334 345 representing coefficients and number of coefficients -- best match the targeted transfer function.}
335 346 \label{fig:rejection_pyramid}
... ... @@ -610,7 +621,7 @@
610 621 by a Pseudo Random Number (PRN) generator, which fixes the input data size $\Pi^I$.
611 622 Then the total silicon area $\mathcal{A}$ has been fixed to either 500, 1000 or 1500
612 623 arbitrary units. Hence, the three cases have been named: MAX/500, MAX/1000, MAX/1500.
613   -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$
614 625 ranging from 2 to 22. In each case, the quadratic program has been able to give a
615 626 result up to five stages ($n = 5$) in the cascaded filter.
616 627  
617 628  
... ... @@ -624,16 +635,17 @@
624 635 \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MAX/500}
625 636 \label{tbl:gurobi_max_500}
626 637 \centering
627   - {\scalefont{0.77}
  638 + {\color{red}
  639 + \scalefont{0.77}
628 640 \begin{tabular}{|c|ccccc|c|c|}
629 641 \hline
630 642 $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\
631 643 \hline
632 644 1 & (21, 7, 0) & - & - & - & - & 32~dB & 483 \\
633   - 2 & (3, 3, 15) & (31, 9, 0) & - & - & - & 58~dB & 460 \\
634   - 3 & (3, 3, 15) & (27, 9, 0) & (5, 3, 0) & - & - & 66~dB & 488 \\
635   - 4 & (3, 3, 15) & (19, 7, 0) & (11, 5, 0) & (3, 3, 0) & - & 74~dB & 499 \\
636   - 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 \\
637 649 \hline
638 650 \end{tabular}
639 651 }
640 652  
... ... @@ -643,16 +655,16 @@
643 655 \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MAX/1000}
644 656 \label{tbl:gurobi_max_1000}
645 657 \centering
646   - {\scalefont{0.77}
  658 + {\color{red}\scalefont{0.77}
647 659 \begin{tabular}{|c|ccccc|c|c|}
648 660 \hline
649 661 $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\
650 662 \hline
651 663 1 & (37, 11, 0) & - & - & - & - & 56~dB & 999 \\
652   - 2 & (3, 3, 15) & (51, 14, 0) & - & - & - & 87~dB & 975 \\
653   - 3 & (3, 3, 15) & (35, 11, 0) & (19, 7, 0) & - & - & 99~dB & 1000 \\
654   - 4 & (3, 4, 16) & (27, 8, 0) & (19, 7, 1) & (11, 5, 0) & - & 103~dB & 998 \\
655   - 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 \\
656 668 \hline
657 669 \end{tabular}
658 670 }
659 671  
... ... @@ -662,16 +674,16 @@
662 674 \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MAX/1500}
663 675 \label{tbl:gurobi_max_1500}
664 676 \centering
665   - {\scalefont{0.77}
  677 + {\color{red}\scalefont{0.77}
666 678 \begin{tabular}{|c|ccccc|c|c|}
667 679 \hline
668 680 $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\
669 681 \hline
670 682 1 & (47, 15, 0) & - & - & - & - & 71~dB & 1457 \\
671   - 2 & (19, 6, 15) & (51, 14, 0) & - & - & - & 103~dB & 1489 \\
672   - 3 & (3, 3, 15) & (35, 11, 0) & (35, 11, 0) & - & - & 122~dB & 1492 \\
673   - 4 & (3, 3, 15) & (27, 8, 0) & (19, 7, 0) & (27, 9, 0) & - & 129~dB & 1498 \\
674   - 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 \\
675 687 \hline
676 688 \end{tabular}
677 689 }
... ... @@ -679,8 +691,12 @@
679 691  
680 692 \renewcommand{\arraystretch}{1}
681 693  
682   -From these tables, we can first state that the more stages are used to define
683   -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
684 700 been previously observed that many small filters are better than
685 701 a single large filter \cite{lim_1988, lim_1996, young_1992}, despite such conclusions
686 702 being hardly used in practice due to the lack of tools for identifying individual filter
687 703  
688 704  
689 705  
... ... @@ -733,25 +749,25 @@
733 749 \centering
734 750 \begin{subfigure}{\linewidth}
735 751 \includegraphics[width=\linewidth]{images/max_500}
736   - \caption{Filter transfer functions for varying number of cascaded filters solving
  752 + \caption{\color{red}Filter transfer functions for varying number of cascaded filters solving
737 753 the MAX/500 problem of maximizing rejection for a given resource allocation (500~arbitrary units).}
738 754 \label{fig:max_500_result}
739 755 \end{subfigure}
740 756  
741 757 \begin{subfigure}{\linewidth}
742 758 \includegraphics[width=\linewidth]{images/max_1000}
743   - \caption{Filter transfer functions for varying number of cascaded filters solving
  759 + \caption{\color{red}Filter transfer functions for varying number of cascaded filters solving
744 760 the MAX/1000 problem of maximizing rejection for a given resource allocation (1000~arbitrary units).}
745 761 \label{fig:max_1000_result}
746 762 \end{subfigure}
747 763  
748 764 \begin{subfigure}{\linewidth}
749 765 \includegraphics[width=\linewidth]{images/max_1500}
750   - \caption{Filter transfer functions for varying number of cascaded filters solving
  766 + \caption{\color{red}Filter transfer functions for varying number of cascaded filters solving
751 767 the MAX/1500 problem of maximizing rejection for a given resource allocation (1500~arbitrary units).}
752 768 \label{fig:max_1500_result}
753 769 \end{subfigure}
754   - \caption{Solutions for the MAX/500, MAX/1000 and MAX/1500 problems of maximizing
  770 + \caption{\color{red}Solutions for the MAX/500, MAX/1000 and MAX/1500 problems of maximizing
755 771 rejection for a given resource allocation.
756 772 The filter shape constraint (bandpass and bandstop) is shown as thick
757 773 horizontal lines on each chart.}
... ... @@ -779,6 +795,7 @@
779 795 \caption{Resource occupation following synthesis of the solutions found for
780 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.}
781 797 \label{tbl:resources_usage}
  798 + \color{red}
782 799 \centering
783 800 \begin{tabular}{|c|c|ccc|c|}
784 801 \hline
785 802  
786 803  
787 804  
... ... @@ -786,22 +803,22 @@
786 803 & LUT & 249 & 453 & 627 & \emph{17600} \\
787 804 1 & BRAM & 1 & 1 & 1 & \emph{120} \\
788 805 & DSP & 21 & 37 & 47 & \emph{80} \\ \hline
789   - & LUT & 2374 & 5494 & 691 & \emph{17600} \
  806 + & LUT & 2253 & 474 & 691 & \emph{17600} \
790 807 2 & BRAM & 2 & 2 & 2 & \emph{120} \\
791   - & DSP & 0 & 0 & 70 & \emph{80} \\ \hline
792   - & LUT & 2443 & 3304 & 3521 & \emph{17600} \\
  808 + & DSP & 0 & 50 & 70 & \emph{80} \\ \hline
  809 + & LUT & 1329 & 2006 & 3158 & \emph{17600} \\
793 810 3 & BRAM & 3 & 3 & 3 & \emph{120} \\
794   - & DSP & 0 & 19 & 35 & \emph{80} \\ \hline
795   - & LUT & 2634 & 3753 & 2557 & \emph{17600} \\
796   - 4 & BRAM & 4 & 4 & 4 & \emph{120} \\
797   - & DPS & 0 & 19 & 46 & \emph{80} \\ \hline
798   - & LUT & 2423 & 3047 & 2847 & \emph{17600} \\
799   - 5 & BRAM & 5 & 5 & 5 & \emph{120} \\
800   - & 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
801 818 \end{tabular}
802 819 \end{table}
803 820  
804   -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,
805 822 when the filter coefficients are small enough, or when the input size is small
806 823 enough, Vivado optimizes resource consumption by selecting multiplexers to
807 824 implement the multiplications instead of a DSP. In this case, it is quite difficult
808 825  
809 826  
810 827  
... ... @@ -826,19 +843,24 @@
826 843 \caption{Time needed to solve the quadratic program with Gurobi}
827 844 \label{tbl:area_time}
828 845 \centering
  846 +\color{red}
829 847 \begin{tabular}{|c|c|c|c|}\hline
830 848 $n$ & Time (MAX/500) & Time (MAX/1000) & Time (MAX/1500) \\\hline\hline
831   -1 & 0.1~s & 0.1~s & 0.3~s \\
832   -2 & 1.1~s & 2.2~s & 12~s \\
833   -3 & 17~s & 137~s ($\approx$ 2~min) & 275~s ($\approx$ 4~min) \\
834   -4 & 52~s & 5448~s ($\approx$ 90~min) & 5505~s ($\approx$ 17~h) \\
835   -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
836 854 \end{tabular}
837 855 \end{table}
838 856  
839   -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.
840 858 When the area is limited, the design exploration space is more limited and the solver is able to
841 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.}
842 864  
843 865 \subsection{Minimizing resource occupation at fixed rejection}\label{sec:fixed_rej}
844 866  
845 867  
... ... @@ -862,15 +884,16 @@
862 884 \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MIN/40}
863 885 \label{tbl:gurobi_min_40}
864 886 \centering
865   - {\scalefont{0.77}
  887 + {\scalefont{0.77}\color{red}
866 888 \begin{tabular}{|c|ccccc|c|c|}
867 889 \hline
868 890 $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\
869 891 \hline
870 892 1 & (27, 8, 0) & - & - & - & - & 41~dB & 648 \\
871   - 2 & (3, 2, 14) & (19, 7, 0) & - & - & - & 40~dB & 263 \\
872   - 3 & (3, 3, 15) & (11, 5, 0) & (3, 3, 0) & - & - & 41~dB & 192 \\
873   - 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 \\
874 897 \hline
875 898 \end{tabular}
876 899 }
877 900  
... ... @@ -880,16 +903,16 @@
880 903 \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MIN/60}
881 904 \label{tbl:gurobi_min_60}
882 905 \centering
883   - {\scalefont{0.77}
  906 + {\scalefont{0.77}\color{red}
884 907 \begin{tabular}{|c|ccccc|c|c|}
885 908 \hline
886 909 $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\
887 910 \hline
888 911 1 & (39, 13, 0) & - & - & - & - & 60~dB & 1131 \\
889   - 2 & (3, 3, 15) & (35, 10, 0) & - & - & - & 60~dB & 547 \\
890   - 3 & (3, 3, 15) & (27, 8, 0) & (3, 3, 0) & - & - & 62~dB & 426 \\
891   - 4 & (3, 2, 14) & (11, 5, 1) & (11, 5, 0) & (3, 3, 0) & - & 60~dB & 344 \\
892   - 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 \\
893 916 \hline
894 917 \end{tabular}
895 918 }
896 919  
... ... @@ -899,16 +922,16 @@
899 922 \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MIN/80}
900 923 \label{tbl:gurobi_min_80}
901 924 \centering
902   - {\scalefont{0.77}
  925 + {\scalefont{0.77}\color{red}
903 926 \begin{tabular}{|c|ccccc|c|c|}
904 927 \hline
905 928 $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\
906 929 \hline
907 930 1 & (55, 16, 0) & - & - & - & - & 81~dB & 1760 \\
908   - 2 & (3, 3, 15) & (47, 14, 0) & - & - & - & 80~dB & 903 \\
909   - 3 & (3, 3, 15) & (23, 9, 0) & (19, 7, 0) & - & - & 80~dB & 698 \\
910   - 4 & (3, 3, 15) & (27, 9, 0) & (7, 7, 4) & (3, 3, 0) & - & 80~dB & 605 \\
911   - 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 \\
912 935 \hline
913 936 \end{tabular}
914 937 }
915 938  
... ... @@ -918,16 +941,16 @@
918 941 \caption{Configurations $(C_i, \pi_i^C, \pi_i^S)$, rejections and areas (in arbitrary units) for MIN/100}
919 942 \label{tbl:gurobi_min_100}
920 943 \centering
921   - {\scalefont{0.77}
  944 + {\scalefont{0.77}\color{red}
922 945 \begin{tabular}{|c|ccccc|c|c|}
923 946 \hline
924 947 $n$ & $i = 1$ & $i = 2$ & $i = 3$ & $i = 4$ & $i = 5$ & Rejection & Area \\
925 948 \hline
926 949 1 & - & - & - & - & - & - & - \\
927   - 2 & (15, 7, 17) & (51, 14, 0) & - & - & - & 100~dB & 1365 \\
928   - 3 & (3, 3, 15) & (27, 9, 0) & (27, 9, 0) & - & - & 100~dB & 1002 \\
929   - 4 & (3, 3, 15) & (31, 9, 0) & (19, 7, 0) & (3, 3, 0) & - & 101~dB & 909 \\
930   - 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 \\
931 954 \hline
932 955 \end{tabular}
933 956 }
... ... @@ -939,7 +962,7 @@
939 962 individual filter rejection. The only exception is for the monolithic case ($n = 1$) in
940 963 MIN/100: no solution is found for a single monolithic filter reach a 100~dB rejection.
941 964 Furthermore, the area of the monolithic filter is twice as big as the two cascaded filters
942   -(1131 and 1760 arbitrary units v.s 547 and 903 arbitrary units for 60 and 80~dB rejection
  965 +{\color{red}(675 and 1131 arbitrary units v.s 990 and 1760 arbitrary units for 60 and 80~dB rejection}
943 966 respectively). More generally, the more filters are cascaded, the lower the occupied area.
944 967  
945 968 Like in previous section, the solver chooses always a little filter as first
... ... @@ -948,9 +971,12 @@
948 971 signal and in the second filter selecting a better filter to improve rejection without
949 972 having too many bits in the output data.
950 973  
951   -For the specific case of MIN/40 for $n = 5$ the solver has determined that the optimal
952   -number of filters is 4 so it did not chose any configuration for the last filter. Hence this
953   -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$.
954 980  
955 981 The following graphs present the rejection for real data on the FPGA. In all the following
956 982 figures, the solid line represents the actual rejection of the filtered
957 983  
958 984  
959 985  
960 986  
... ... @@ -995,32 +1021,32 @@
995 1021 \centering
996 1022 \begin{subfigure}{\linewidth}
997 1023 \includegraphics[width=.91\linewidth]{images/min_40}
998   - \caption{Filter transfer functions for varying number of cascaded filters solving
  1024 + \caption{\color{red}Filter transfer functions for varying number of cascaded filters solving
999 1025 the MIN/40 problem of minimizing resource allocation for reaching a 40~dB rejection.}
1000 1026 \label{fig:min_40}
1001 1027 \end{subfigure}
1002 1028  
1003 1029 \begin{subfigure}{\linewidth}
1004 1030 \includegraphics[width=.91\linewidth]{images/min_60}
1005   - \caption{Filter transfer functions for varying number of cascaded filters solving
  1031 + \caption{\color{red}Filter transfer functions for varying number of cascaded filters solving
1006 1032 the MIN/60 problem of minimizing resource allocation for reaching a 60~dB rejection.}
1007 1033 \label{fig:min_60}
1008 1034 \end{subfigure}
1009 1035  
1010 1036 \begin{subfigure}{\linewidth}
1011 1037 \includegraphics[width=.91\linewidth]{images/min_80}
1012   - \caption{Filter transfer functions for varying number of cascaded filters solving
  1038 + \caption{\color{red}Filter transfer functions for varying number of cascaded filters solving
1013 1039 the MIN/80 problem of minimizing resource allocation for reaching a 80~dB rejection.}
1014 1040 \label{fig:min_80}
1015 1041 \end{subfigure}
1016 1042  
1017 1043 \begin{subfigure}{\linewidth}
1018 1044 \includegraphics[width=.91\linewidth]{images/min_100}
1019   - \caption{Filter transfer functions for varying number of cascaded filters solving
  1045 + \caption{\color{red}Filter transfer functions for varying number of cascaded filters solving
1020 1046 the MIN/100 problem of minimizing resource allocation for reaching a 100~dB rejection.}
1021 1047 \label{fig:min_100}
1022 1048 \end{subfigure}
1023   - \caption{Solutions for the MIN/40, MIN/60, MIN/80 and MIN/100 problems of reaching a
  1049 + \caption{\color{red}Solutions for the MIN/40, MIN/60, MIN/80 and MIN/100 problems of reaching a
1024 1050 given rejection while minimizing resource allocation. The filter shape constraint (bandpass and
1025 1051 bandstop) is shown as thick
1026 1052 horizontal lines on each chart.}
1027 1053  
1028 1054  
... ... @@ -1041,25 +1067,25 @@
1041 1067 \caption{Resource occupation. The last column refers to available resources on a Zynq-7010 as found on the Redpitaya.}
1042 1068 \label{tbl:resources_usage_comp}
1043 1069 \centering
1044   - {\scalefont{0.90}
  1070 + {\scalefont{0.90}\color{red}
1045 1071 \begin{tabular}{|c|c|cccc|c|}
1046 1072 \hline
1047 1073 $n$ & & MIN/40 & MIN/60 & MIN/80 & MIN/100 & \emph{Zynq 7010} \\ \hline\hline
1048 1074 & LUT & 343 & 334 & 772 & - & \emph{17600} \\
1049 1075 1 & BRAM & 1 & 1 & 1 & - & \emph{120} \\
1050 1076 & DSP & 27 & 39 & 55 & - & \emph{80} \\ \hline
1051   - & LUT & 1252 & 2862 & 5099 & 640 & \emph{17600} \
  1077 + & LUT & 1664 & 2329 & 474 & 620 & \emph{17600} \
1052 1078 2 & BRAM & 2 & 2 & 2 & 2 & \emph{120} \\
1053   - & DSP & 0 & 0 & 0 & 66 & \emph{80} \\ \hline
1054   - & LUT & 891 & 2148 & 2023 & 2448 & \emph{17600} \\
1055   - 3 & BRAM & 3 & 3 & 3 & 3 & \emph{120} \\
1056   - & DSP & 0 & 0 & 19 & 27 & \emph{80} \\ \hline
1057   - & LUT & 662 & 1729 & 2451 & 2893 & \emph{17600} \\
1058   - 4 & BRAM & 4 & 4 & 4 & 4 & \emph{120} \\
1059   - & DPS & 0 & 0 & 7 & 19 & \emph{80} \\ \hline
1060   - & LUT & - & 1259 & 2602 & 2505 & \emph{17600} \\
1061   - 5 & BRAM & - & 5 & 5 & 5 & \emph{120} \\
1062   - & 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
1063 1089 \end{tabular}
1064 1090 }
1065 1091 \end{table}
1066 1092  
1067 1093  
... ... @@ -1080,22 +1106,22 @@
1080 1106 \caption{Time to solve the quadratic program with Gurobi}
1081 1107 \label{tbl:area_time_comp}
1082 1108 \centering
1083   -{\scalefont{0.90}
  1109 +{\scalefont{0.90}\color{red}
1084 1110 \begin{tabular}{|c|c|c|c|c|}\hline
1085 1111 $n$ & Time (MIN/40) & Time (MIN/60) & Time (MIN/80) & Time (MIN/100) \\\hline\hline
1086   -1 & 0.07~s & 0.02~s & 0.01~s & - \\
1087   -2 & 7.8~s & 16~s & 14~s & 1.8~s \\
1088   -3 & 4.7~s & 14~s & 28~s & 39~s \\
1089   -4 & 39~s & 20~s & 193~s & 522~s ($\approx$ 9~min) \\
1090   -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
1091 1117 \end{tabular}
1092 1118 }
1093 1119 \end{table}
1094 1120 \renewcommand{\arraystretch}{1}
1095 1121  
1096 1122 The time needed to solve this configuration is significantly shorter than the time
1097   -needed in the previous section. Indeed the worst time in this case is only 17~minutes,
1098   -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
1099 1125 previous one.
1100 1126  
1101 1127 To conclude, we compare our monolithic filters with the FIR Compiler provided by
... ... @@ -1133,7 +1159,7 @@
1133 1159  
1134 1160 \section{Conclusion}
1135 1161  
1136   -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
1137 1163 and resource consumption has been tabulated, and applied this methodology to the practical
1138 1164 case of implementing cascaded FIR filters inside a FPGA.
1139 1165 This method aims to be hardware independent and focuses an a high-level of abstraction.
ifcs2018_journal_reponse2.tex
  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 +% REVIEWERS' COMMENTS:
  7 +% Reviewer: 1
  8 +%
  9 +% Comments to the Author
  10 +% 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.
  11 +% In practice, the Authors use a good method based on a bad criterion, and this point weakens a lot the results they present.
  12 +% 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.
  13 +% 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.
  14 +% 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.
  15 +% 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?
  16 +% 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.
  17 +% In the end, I suggest to publish the Manuscript After Minor Revisions.
images/custom_criterion.pdf
No preview for this file type
images/letter_pondered_criterion.pdf
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
images/rejection_pyramid.pdf
No preview for this file type