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} |