Commit 6f7c0de29f4a9bfb5fc2e3c753de4ed02e56264a
Exists in
master
biblio en majuscules et description moyenne/median
Showing 1 changed file Side-by-side Diff
ifcs2018_proceeding.tex
... | ... | @@ -138,7 +138,7 @@ |
138 | 138 | follows the skeleton approach \cite{crookes1998environment, crookes2000design, benkrid2002towards} |
139 | 139 | in which basic blocks are defined and characterized before being assembled \cite{hide} |
140 | 140 | in a complete processing chain. In our case, assembling the filter blocks is a simpler block |
141 | -combination process since we assume a single value to be processed and a single value to be | |
141 | +combination process since we assume a single value to be processed and a single value to be | |
142 | 142 | generated at each clock cycle. The FIR filters will not be considered to decimate in the |
143 | 143 | current implementation: the decimation is assumed to be located after the FIR cascade at the |
144 | 144 | moment. |
... | ... | @@ -170,7 +170,7 @@ |
170 | 170 | the number of bits $C_i$ representing the coefficients and the number of bits $D_i$ representing |
171 | 171 | the data fed to the filter. Because each FIR in the chain is fed the output of the previous stage, |
172 | 172 | the optimization of the complete processing chain within a constrained resource environment is not |
173 | -trivial. The resource occupation of a FIR filter is considered as $D_i+C_i \times N_i)$ which is | |
173 | +trivial. The resource occupation of a FIR filter is considered as $(D_i+C_i) \times N_i$ which is | |
174 | 174 | the number of bits needed in a worst case condition to represent the output of the FIR. Such an |
175 | 175 | occupied area estimate assumes that the number of gates scales as the number of bits and the number |
176 | 176 | of coefficients, but does not account for the detailed implementation of the hardware. Indeed, |
... | ... | @@ -205,7 +205,7 @@ |
205 | 205 | \label{model-FIR} |
206 | 206 | \end{align} |
207 | 207 | To explain the system \ref{model-FIR}, $\mathcal{R}_i$ represents the rejection of depending on $N_i$ and $C_i$, $\mathcal{A}$ |
208 | -is a theoretical area occupation of the processing block on the FPGA, and $\Delta_i$ is the total rejection for the current stage $i$. | |
208 | +is a theoretical area occupation of the processing block on the FPGA, and $\Delta_i$ is the total rejection for the current stage $i$. | |
209 | 209 | Since the function $\mathcal{F}$ cannot be explictly expressed, we run simulations to determine the rejection depending |
210 | 210 | on $N_i$ and $C_i$. However, selecting the right filter requires a clear definition of the rejection criterion. Selecting an |
211 | 211 | incorrect criterion will lead the linear program solver to produce a solution which might not meet the user requirements. |
212 | 212 | |
... | ... | @@ -248,11 +248,11 @@ |
248 | 248 | \begin{align*} |
249 | 249 | \mathcal{F} = \lbrace F_1 ... F_p \rbrace & \text{ All possible filters}\\ |
250 | 250 | & \text{ $p$ is the number of different filters} \\ |
251 | -C(i) & \text{ % Constant to let the | |
252 | -number of coefficients %} \\ & \text{ | |
251 | +C(i) & \text{ % Constant to let the | |
252 | +number of coefficients %} \\ & \text{ | |
253 | 253 | for filter $i$}\\ |
254 | -\pi_C(i) & \text{ % Constant to let the | |
255 | -number of bits of %}\\ & \text{ | |
254 | +\pi_C(i) & \text{ % Constant to let the | |
255 | +number of bits of %}\\ & \text{ | |
256 | 256 | each coefficient for filter $i$}\\ |
257 | 257 | \mathcal{A}_{\max} & \text{ Total space available inside the FPGA} |
258 | 258 | \end{align*} |
259 | 259 | |
... | ... | @@ -262,11 +262,11 @@ |
262 | 262 | 1 \leq j \leq q & \text{ $q$ is the max of filter stage} \nonumber \\ |
263 | 263 | \forall j, \mathlarger{\sum_{i}} x_{i,j} = 1 & \text{ At most one filter by stage} \nonumber\\ |
264 | 264 | \mathcal{S}_0 = 0 & \text{ initial occupation} \nonumber\\ |
265 | -\forall j, \mathcal{S}_j = \mathcal{S}_{j-1} + \forall i, x_{i,j} \times \mathcal{A}_i \label{cstr_size} \ | |
265 | +\forall j, \mathcal{S}_j = \mathcal{S}_{j-1} + \mathlarger{\sum_i (x_{i,j} \times \mathcal{A}_i)} \label{cstr_size} \ | |
266 | 266 | \mathcal{S} \leq \mathcal{S}_{\max}\nonumber \\ |
267 | 267 | \mathcal{N}_0 = 0 & \text{ initial rejection}\nonumber\\ |
268 | -\forall j, \mathcal{N}_j = \mathcal{N}_{j-1} + \forall i, x_{i,j} \times \mathcal{R}_i \label{cstr_rejection} \\ | |
269 | -\mathcal{N}_q \geqslant 160 & \text{ an user defined bound}\nonumber\\ | |
268 | +\forall j, \mathcal{N}_j = \mathcal{N}_{j-1} + \mathlarger{\sum_i (x_{i,j} \times \mathcal{R}_i)} \label{cstr_rejection} \\ | |
269 | +\mathcal{N}_q \geqslant 160 & \text{ an user defined bound}\nonumber\\ | |
270 | 270 | & \text{ (e.g. 160~dB here)}\nonumber\\\nonumber |
271 | 271 | \end{align} |
272 | 272 | \paragraph{Goal} |
... | ... | @@ -274,7 +274,6 @@ |
274 | 274 | \min \mathcal{S}_q |
275 | 275 | \end{align*} |
276 | 276 | |
277 | -% AH j'aimerai mettre deux equations avec un label mais je ne sais pas comment faire | |
278 | 277 | The constraint \ref{cstr_size} means the occupation for the current stage $j$ depends on |
279 | 278 | the previous occupation and the occupation of current selected filter (it is possible |
280 | 279 | that no filter is selected for this stage). And the second one \ref{cstr_rejection} |
... | ... | @@ -359,7 +358,7 @@ |
359 | 358 | The coefficients of a single monolithic filter are computed as the impulse response |
360 | 359 | of the filter transfer function, and practically approximated by a multitude of methods |
361 | 360 | including least square optimization (Matlab's {\tt firls} function), Hamming or Kaiser windowing |
362 | -(Matlab's {\tt fir1} function). | |
361 | +(Matlab's {\tt fir1} function). | |
363 | 362 | |
364 | 363 | \begin{figure}[h!tb] |
365 | 364 | \includegraphics[width=\linewidth]{images/fir1-vs-firls} |