Commit 365465b1b586da014bd0c9a31a91139045fdef9b

Authored by jfriedt
1 parent 9db1d56ab9
Exists in master

notations

Showing 1 changed file with 13 additions and 9 deletions Side-by-side Diff

ifcs2018_proceeding.tex
... ... @@ -174,8 +174,12 @@
174 174 FIR with a cascade of optimized filters are the number of coefficients $N_i$ of each filter $i$ and
175 175 the number of bits $C_i$ representing the coefficients. Because each FIR in the chain is fed the output of the previous stage,
176 176 the optimization of the complete processing chain within a constrained resource environment is not
177   -trivial. The resource occupation of a FIR filter is considered as $C_i \times N_i$ which is
178   -the number of bits needed in a worst case condition to represent the output of the FIR. Such an
  177 +trivial. The resource occupation of a FIR filter is considered as $C_i \times N_i$ which aims
  178 +at approximating the number of bits needed in a worst case condition to represent the output of the
  179 +FIR. Indeed, the number of bits generated by the FIR is $(C_i+D_i)\times\log_2(N_i)$ with $D_i$
  180 +the number of bits needed to represent the data $x_k$ generated by the previous stage, but the
  181 +$\log$ function is avoided for its incompatibility with a linear programming description, and
  182 +the simple product is approximated as the number of gates needed to perform the calculation. Such an
179 183 occupied area estimate assumes that the number of gates scales as the number of bits and the number
180 184 of coefficients, but does not account for the detailed implementation of the hardware. Indeed,
181 185 various FPGA implementations will provide different hardware functionalities, and we shall consider
182 186  
... ... @@ -203,12 +207,12 @@
203 207 \begin{align}
204 208 \begin{cases}
205 209 \mathcal{R}_i &= \mathcal{F}(N_i, C_i)\\
206   - \mathcal{A}_i &= N_i * C_i\
  210 + \mathcal{A}_i &= N_i \times C_i\
207 211 \Delta_i &= \Delta _{i-1} + \mathcal{P}_i
208 212 \end{cases}
209 213 \label{model-FIR}
210 214 \end{align}
211   -To explain the system \ref{model-FIR}, $\mathcal{R}_i$ represents the stopband rejection dependence with $N_i$ and $C_i$, $\mathcal{A}$
  215 +To explain the system \ref{model-FIR}, $\mathcal{R}_i$ represents the stopband rejection dependence with $N_i$ and $C_i$, $\mathcal{A}_i$
212 216 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$.
213 217 Since the function $\mathcal{F}$ cannot be explictly expressed, we run simulations to determine the rejection depending
214 218 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 @@
227 231 \label{noise-rejection}
228 232 \end{figure}
229 233  
230   -The objective function maximizes the noise rejection ($\max(\Delta_{i_{\max}})$) while keeping resource occupation below
231   -a user-defined threshold, or aims at minimizing the area needed to reach a given rejection ($\min(S_q)$ in
232   -the forthcoming discussion, Eqs. \ref{cstr_size} and \ref{cstr_rejection}).
233   -The MILP solver is allowed to choose the number of successive
  234 +The objective function maximizes the noise rejection ($\max(\Delta_{i_{\max}})$) while keeping resource
  235 +occupation below a user-defined threshold, or as will be discussed here, aims at minimizing the area
  236 +needed to reach a given rejection ($\min(S_q)$ in the forthcoming discussion, Eqs. \ref{cstr_size}
  237 +and \ref{cstr_rejection}). The MILP solver is allowed to choose the number of successive
234 238 filters, within an upper bound. The last problem is to model the noise rejection. Since filter
235 239 noise rejection capability is not modeled with linear equations, a look-up-table is generated
236 240 for multiple filter configurations in which the $C_i$, $D_i$ and $N_i$ parameters are varied: for each
... ... @@ -271,7 +275,7 @@
271 275 \forall j, \mathlarger{\sum_{i}} x_{i,j} = 1 & \text{ At most one filter by stage} \nonumber\\
272 276 \mathcal{S}_0 = 0 & \text{ initial occupation} \nonumber\\
273 277 \forall j, \mathcal{S}_j = \mathcal{S}_{j-1} + \mathlarger{\sum_i (x_{i,j} \times \mathcal{A}_i)} \label{cstr_size} \\
274   -\mathcal{S} \leq \mathcal{S}_{\max}\nonumber \
  278 +\mathcal{S}_j \leq \mathcal{S}_{\max}\nonumber \
275 279 \mathcal{N}_0 = 0 & \text{ initial rejection}\nonumber\\
276 280 \forall j, \mathcal{N}_j = \mathcal{N}_{j-1} + \mathlarger{\sum_i (x_{i,j} \times \mathcal{R}_i)} \label{cstr_rejection} \\
277 281 \mathcal{N}_q \geqslant 160 & \text{ an user defined bound}\nonumber\\