Commit 365465b1b586da014bd0c9a31a91139045fdef9b
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\\ |