Commit b5ace9bdc3b73d0123350361c72a861700b35ba7
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
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