This commit is contained in:
2026-05-16 13:18:32 +02:00
parent 37728f813f
commit fb1cc9ae89
9 changed files with 116 additions and 117 deletions
+27 -27
View File
@@ -6,10 +6,10 @@
\acronymused{ANR}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Low-power system architecture and integration}{41}{}\protected@file@percent }
\AC@undonewlabel{acro:SOC}
\newlabel{acro:SOC}{{4.1}{41}{}{}{}}
\newlabel{acro:SOC}{{4.1}{41}{}{subsection.4.1}{}}
\acronymused{SOC}
\AC@undonewlabel{acro:ARM}
\newlabel{acro:ARM}{{4.1}{41}{}{}{}}
\newlabel{acro:ARM}{{4.1}{41}{}{subsection.4.1}{}}
\acronymused{ARM}
\acronymused{DSP}
\acronymused{ARM}
@@ -21,7 +21,7 @@
\acronymused{DSP}
\acronymused{DSP}
\AC@undonewlabel{acro:MAC}
\newlabel{acro:MAC}{{4.1.1}{41}{}{}{}}
\newlabel{acro:MAC}{{4.1.1}{41}{}{subsubsection.4.1.1}{}}
\acronymused{MAC}
\acronymused{ARM}
\acronymused{ANR}
@@ -36,10 +36,10 @@
\acronymused{ARM}
\acronymused{DSP}
\AC@undonewlabel{acro:DMA}
\newlabel{acro:DMA}{{4.1.1}{42}{}{}{}}
\newlabel{acro:DMA}{{4.1.1}{42}{}{subsubsection.4.1.1}{}}
\acronymused{DMA}
\AC@undonewlabel{acro:PCM}
\newlabel{acro:PCM}{{4.1.1}{42}{}{}{}}
\newlabel{acro:PCM}{{4.1.1}{42}{}{subsubsection.4.1.1}{}}
\acronymused{PCM}
\acronymused{DSP}
\acronymused{PCM}
@@ -50,7 +50,7 @@
\acronymused{DSP}
\acronymused{DSP}
\AC@undonewlabel{acro:ALU}
\newlabel{acro:ALU}{{4.1.1}{42}{}{}{}}
\newlabel{acro:ALU}{{4.1.1}{42}{}{subsubsection.4.1.1}{}}
\acronymused{ALU}
\acronymused{DSP}
\acronymused{MAC}
@@ -69,7 +69,7 @@
\acronymused{ARM}
\acronymused{DSP}
\acronymused{PCM}
\newlabel{fig:fig_dsp_setup.jpg}{{31}{43}{}{}{}}
\newlabel{fig:fig_dsp_setup.jpg}{{31}{43}{}{figure.31}{}}
\acronymused{ARM}
\acronymused{PCM}
\acronymused{DMA}
@@ -84,7 +84,7 @@
\@writefile{lof}{\contentsline {figure}{\numberline {32}{\ignorespaces Simplified flowchart of the sample processing between the \ac {ARM} core and the \ac {DSP} core via interrupts and shared memory.}}{44}{}\protected@file@percent }
\acronymused{ARM}
\acronymused{DSP}
\newlabel{fig:fig_dsp_comm.jpg}{{32}{44}{}{}{}}
\newlabel{fig:fig_dsp_comm.jpg}{{32}{44}{}{figure.32}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Software architecture and execution flow}{44}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}ARMDSP communication and data exchange details}{44}{}\protected@file@percent }
\acronymused{ANR}
@@ -120,7 +120,7 @@
\acronymused{DMA}
\acronymused{DSP}
\acronymused{ARM}
\newlabel{fig:fig_dsp_dma.jpg}{{33}{46}{}{}{}}
\newlabel{fig:fig_dsp_dma.jpg}{{33}{46}{}{figure.33}{}}
\acronymused{DMA}
\acronymused{DMA}
\acronymused{PCM}
@@ -138,9 +138,9 @@
\acronymused{PCM}
\acronymused{DSP}
\@writefile{lol}{\contentsline {listing}{\numberline {2}{\ignorespaces Low-level implementation: Memory initialization and mapping}}{47}{}\protected@file@percent }
\newlabel{lst:lst_dsp_code_memory}{{2}{47}{}{}{}}
\newlabel{lst:lst_dsp_code_memory}{{2}{47}{}{listing.2}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {34}{\ignorespaces Exemplary memory map of the 4-element input buffer array. As it is initialized as a 16-bit integer array, each element occupies 2 bytes of memory, resulting in a total size of 8 bytes for the entire array. As the DSP architecture works in 32-bit double-words, the bytewise addressing is a result of the compiler abstraction.}}{47}{}\protected@file@percent }
\newlabel{fig:fig_compiler.jpg}{{34}{47}{}{}{}}
\newlabel{fig:fig_compiler.jpg}{{34}{47}{}{figure.34}{}}
\@writefile{toc}{\contentsline {paragraph}{Main loop and interrupt handling}{47}{}\protected@file@percent }
\acronymused{DSP}
\acronymused{ANR}
@@ -150,10 +150,10 @@
\acronymused{ARM}
\acronymused{DSP}
\@writefile{lol}{\contentsline {listing}{\numberline {3}{\ignorespaces Low-level implementation: Main loop and interrupt handling}}{48}{}\protected@file@percent }
\newlabel{lst:lst_dsp_code_mainloop}{{3}{48}{}{}{}}
\newlabel{lst:lst_dsp_code_mainloop}{{3}{48}{}{listing.3}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {35}{\ignorespaces Flow diagram of the code implementation of the main loop and interrupt handling on the \ac {DSP} core.}}{49}{}\protected@file@percent }
\acronymused{DSP}
\newlabel{fig:fig_dsp_logic.jpg}{{35}{49}{}{}{}}
\newlabel{fig:fig_dsp_logic.jpg}{{35}{49}{}{figure.35}{}}
\@writefile{toc}{\contentsline {paragraph}{calculate\_output()-function}{49}{}\protected@file@percent }
\acronymused{DSP}
\acronymused{ANR}
@@ -167,11 +167,11 @@
\acronymused{DSP}
\acronymused{DSP}
\@writefile{lol}{\contentsline {listing}{\numberline {4}{\ignorespaces Manual implementation of a max-function, returning the maximum of two integer values, taking 12 cycles to execute. The intrinsic functions of the DSP compiler allow a 4-cycle implementation of such an operation.}}{50}{}\protected@file@percent }
\newlabel{lst:lst_dsp_code_find_max}{{4}{50}{}{}{}}
\newlabel{lst:lst_dsp_code_find_max}{{4}{50}{}{listing.4}{}}
\@writefile{toc}{\contentsline {paragraph}{Cyclic array iteration}{50}{}\protected@file@percent }
\acronymused{ANR}
\@writefile{lol}{\contentsline {listing}{\numberline {5}{\ignorespaces Manual implementation of a cyclic array iteration function in C, taking the core 20 cycles to execute a pointer inremen of 1. The intrinsic functions of the DSP compiler allows a single-cycle implementation of such cyclic additions.}}{51}{}\protected@file@percent }
\newlabel{lst:lst_dsp_code_cyclic_add}{{5}{51}{}{}{}}
\newlabel{lst:lst_dsp_code_cyclic_add}{{5}{51}{}{listing.5}{}}
\acronymused{DSP}
\acronymused{DSP}
\@writefile{toc}{\contentsline {paragraph}{Fractional fixed-point arithmetic}{51}{}\protected@file@percent }
@@ -193,32 +193,32 @@
\acronymused{DSP}
\acronymused{DSP}
\@writefile{lol}{\contentsline {listing}{\numberline {6}{\ignorespaces Code snippet of the $apply\_fir\_filter()$-function, showing the use of the dual \ac {MAC} architecture of the \ac {DSP} and the fractional multiplication function. The loop iterates through the filter coefficients and reference noise signal samples, performing two multiplications and two additions in each cycle.}}{53}{}\protected@file@percent }
\newlabel{lst:lst_dsp_code_apply_fir_filter}{{6}{53}{}{}{}}
\newlabel{lst:lst_dsp_code_apply_fir_filter}{{6}{53}{}{listing.6}{}}
\acronymused{MAC}
\acronymused{DSP}
\@writefile{lof}{\contentsline {figure}{\numberline {36}{\ignorespaces Visualization of the FIR filter calculation in the $apply\_fir\_filter()$-function during the 2nd cyclce of a calculation loop. The reference noise signal samples are stored in the sample line, while the filter coefficients are stored in a separate memory section (filter line).}}{53}{}\protected@file@percent }
\newlabel{fig:fig_dsp_fir_cycle.jpg}{{36}{53}{}{}{}}
\newlabel{fig:fig_dsp_fir_cycle.jpg}{{36}{53}{}{figure.36}{}}
\@writefile{toc}{\contentsline {paragraph}{update\_output()}{54}{}\protected@file@percent }
\@writefile{toc}{\contentsline {paragraph}{update\_filter\_coefficient()}{54}{}\protected@file@percent }
\acronymused{DSP}
\acronymused{MAC}
\@writefile{lol}{\contentsline {listing}{\numberline {7}{\ignorespaces Code snippet of the $update\_filter\_coefficient()$-function, again making use of the dual \ac {MAC} architecture of the \ac {DSP} and the fractional multiplication function. Additionaly, 32-bit values are loaded and stored as 64-bit values, using two also intrinisc functions, allowing to update two filter coefficients in a single cycle.}}{54}{}\protected@file@percent }
\newlabel{lst:lst_dsp_code_update_filter_coefficients}{{7}{54}{}{}{}}
\newlabel{lst:lst_dsp_code_update_filter_coefficients}{{7}{54}{}{listing.7}{}}
\acronymused{MAC}
\acronymused{DSP}
\@writefile{lof}{\contentsline {figure}{\numberline {37}{\ignorespaces Visualization of the coefficient calculation in the $update\_filter\_coefficient()$-function during the 2nd cyclce of a calculation loop. The output is multiplied with the step size and the corresponding sample from the sample line, before being added to the current filter coefficient.}}{55}{}\protected@file@percent }
\newlabel{fig:fig_dsp_coefficient_cycle.jpg}{{37}{55}{}{}{}}
\newlabel{fig:fig_dsp_coefficient_cycle.jpg}{{37}{55}{}{figure.37}{}}
\@writefile{toc}{\contentsline {paragraph}{update\_output()}{55}{}\protected@file@percent }
\newlabel{equation_computing}{{24}{55}{}{}{}}
\newlabel{equation_c_1}{{25}{55}{}{}{}}
\newlabel{equation_c_2}{{26}{55}{}{}{}}
\newlabel{equation_c_3}{{27}{55}{}{}{}}
\newlabel{equation_c_4}{{28}{55}{}{}{}}
\newlabel{equation_c_5}{{29}{55}{}{}{}}
\newlabel{equation_computing_final}{{31}{56}{}{}{}}
\newlabel{equation_computing}{{24}{55}{}{equation.24}{}}
\newlabel{equation_c_1}{{25}{55}{}{equation.25}{}}
\newlabel{equation_c_2}{{26}{55}{}{equation.26}{}}
\newlabel{equation_c_3}{{27}{55}{}{equation.27}{}}
\newlabel{equation_c_4}{{28}{55}{}{equation.28}{}}
\newlabel{equation_c_5}{{29}{55}{}{equation.29}{}}
\newlabel{equation_computing_final}{{31}{56}{}{equation.31}{}}
\acronymused{DSP}
\@writefile{lof}{\contentsline {figure}{\numberline {38}{\ignorespaces Dependence of the total computing effort on the filter length $\text {N}$ and update rate $\text {1/U}$.}}{56}{}\protected@file@percent }
\newlabel{fig:fig_c_total.png}{{38}{56}{}{}{}}
\newlabel{fig:fig_c_total.png}{{38}{56}{}{figure.38}{}}
\@setckpt{chapter_04}{
\setcounter{page}{57}
\setcounter{equation}{31}