From 365465b1b586da014bd0c9a31a91139045fdef9b Mon Sep 17 00:00:00 2001 From: jmfriedt Date: Mon, 21 May 2018 08:20:45 +0200 Subject: [PATCH] notations --- ifcs2018_proceeding.tex | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/ifcs2018_proceeding.tex b/ifcs2018_proceeding.tex index c751d14..deb6bb6 100644 --- a/ifcs2018_proceeding.tex +++ b/ifcs2018_proceeding.tex @@ -174,8 +174,12 @@ Specifically the degrees of freedom when addressing the problem of replacing the FIR with a cascade of optimized filters are the number of coefficients $N_i$ of each filter $i$ and the number of bits $C_i$ representing the coefficients. Because each FIR in the chain is fed the output of the previous stage, the optimization of the complete processing chain within a constrained resource environment is not -trivial. The resource occupation of a FIR filter is considered as $C_i \times N_i$ which is -the number of bits needed in a worst case condition to represent the output of the FIR. Such an +trivial. The resource occupation of a FIR filter is considered as $C_i \times N_i$ which aims +at approximating the number of bits needed in a worst case condition to represent the output of the +FIR. Indeed, the number of bits generated by the FIR is $(C_i+D_i)\times\log_2(N_i)$ with $D_i$ +the number of bits needed to represent the data $x_k$ generated by the previous stage, but the +$\log$ function is avoided for its incompatibility with a linear programming description, and +the simple product is approximated as the number of gates needed to perform the calculation. Such an occupied area estimate assumes that the number of gates scales as the number of bits and the number of coefficients, but does not account for the detailed implementation of the hardware. Indeed, various FPGA implementations will provide different hardware functionalities, and we shall consider @@ -203,12 +207,12 @@ Following these considerations, the model is expressed as: \begin{align} \begin{cases} \mathcal{R}_i &= \mathcal{F}(N_i, C_i)\\ - \mathcal{A}_i &= N_i * C_i\\ + \mathcal{A}_i &= N_i \times C_i\\ \Delta_i &= \Delta _{i-1} + \mathcal{P}_i \end{cases} \label{model-FIR} \end{align} -To explain the system \ref{model-FIR}, $\mathcal{R}_i$ represents the stopband rejection dependence with $N_i$ and $C_i$, $\mathcal{A}$ +To explain the system \ref{model-FIR}, $\mathcal{R}_i$ represents the stopband rejection dependence with $N_i$ and $C_i$, $\mathcal{A}_i$ is a theoretical area occupation of the processing block on the FPGA as discussed earlier, and $\Delta_i$ is the total rejection for the current stage $i$. Since the function $\mathcal{F}$ cannot be explictly expressed, we run simulations to determine the rejection depending on $N_i$ and $C_i$. However, selecting the right filter requires a clear definition of the rejection criterion. Selecting an @@ -227,10 +231,10 @@ rejection capability. Weighing these two criteria allows designing the linear pr \label{noise-rejection} \end{figure} -The objective function maximizes the noise rejection ($\max(\Delta_{i_{\max}})$) while keeping resource occupation below -a user-defined threshold, or aims at minimizing the area needed to reach a given rejection ($\min(S_q)$ in -the forthcoming discussion, Eqs. \ref{cstr_size} and \ref{cstr_rejection}). -The MILP solver is allowed to choose the number of successive +The objective function maximizes the noise rejection ($\max(\Delta_{i_{\max}})$) while keeping resource +occupation below a user-defined threshold, or as will be discussed here, aims at minimizing the area +needed to reach a given rejection ($\min(S_q)$ in the forthcoming discussion, Eqs. \ref{cstr_size} +and \ref{cstr_rejection}). The MILP solver is allowed to choose the number of successive filters, within an upper bound. The last problem is to model the noise rejection. Since filter noise rejection capability is not modeled with linear equations, a look-up-table is generated for multiple filter configurations in which the $C_i$, $D_i$ and $N_i$ parameters are varied: for each @@ -271,7 +275,7 @@ x_{i,j} \in \lbrace 0,1 \rbrace & \text{ $i$ is a given filter} \\ \forall j, \mathlarger{\sum_{i}} x_{i,j} = 1 & \text{ At most one filter by stage} \nonumber\\ \mathcal{S}_0 = 0 & \text{ initial occupation} \nonumber\\ \forall j, \mathcal{S}_j = \mathcal{S}_{j-1} + \mathlarger{\sum_i (x_{i,j} \times \mathcal{A}_i)} \label{cstr_size} \\ -\mathcal{S} \leq \mathcal{S}_{\max}\nonumber \\ +\mathcal{S}_j \leq \mathcal{S}_{\max}\nonumber \\ \mathcal{N}_0 = 0 & \text{ initial rejection}\nonumber\\ \forall j, \mathcal{N}_j = \mathcal{N}_{j-1} + \mathlarger{\sum_i (x_{i,j} \times \mathcal{R}_i)} \label{cstr_rejection} \\ \mathcal{N}_q \geqslant 160 & \text{ an user defined bound}\nonumber\\ -- 2.16.4