4.0
This commit is contained in:
BIN
Bilder/fig_dsp_interrupt.jpg
Normal file
BIN
Bilder/fig_dsp_interrupt.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 59 KiB |
BIN
Bilder/fig_dsp_setup.jpg
Normal file
BIN
Bilder/fig_dsp_setup.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 30 KiB |
@@ -12,6 +12,10 @@
|
|||||||
\newacro{NLMS}[\AC@hyperlink{NLMS}{NLMS}]{Normalized Least Mean Squares}
|
\newacro{NLMS}[\AC@hyperlink{NLMS}{NLMS}]{Normalized Least Mean Squares}
|
||||||
\newacro{RLS}[\AC@hyperlink{RLS}{RLS}]{Recursive Least Squares}
|
\newacro{RLS}[\AC@hyperlink{RLS}{RLS}]{Recursive Least Squares}
|
||||||
\newacro{MAC}[\AC@hyperlink{MAC}{MAC}]{multiply-accumulate}
|
\newacro{MAC}[\AC@hyperlink{MAC}{MAC}]{multiply-accumulate}
|
||||||
|
\newacro{DMA}[\AC@hyperlink{DMA}{DMA}]{Direct Memory Access}
|
||||||
|
\newacro{PCM}[\AC@hyperlink{PCM}{PCM}]{Pulse Code Modulation}
|
||||||
|
\newacro{ARM}[\AC@hyperlink{ARM}{ARM}]{Advanced RISC Machine}
|
||||||
|
\newacro{RISC}[\AC@hyperlink{RISC}{RISC}]{Reduced Instruction Set Computer}
|
||||||
\@setckpt{acronyms}{
|
\@setckpt{acronyms}{
|
||||||
\setcounter{page}{5}
|
\setcounter{page}{5}
|
||||||
\setcounter{equation}{0}
|
\setcounter{equation}{0}
|
||||||
|
|||||||
@@ -13,4 +13,8 @@
|
|||||||
\acro{NLMS}{Normalized Least Mean Squares}
|
\acro{NLMS}{Normalized Least Mean Squares}
|
||||||
\acro{RLS}{Recursive Least Squares}
|
\acro{RLS}{Recursive Least Squares}
|
||||||
\acro{MAC}{multiply-accumulate}
|
\acro{MAC}{multiply-accumulate}
|
||||||
|
\acro{DMA}{Direct Memory Access}
|
||||||
|
\acro{PCM}{Pulse Code Modulation}
|
||||||
|
\acro{ARM}{Advanced RISC Machine}
|
||||||
|
\acro{RISC}{Reduced Instruction Set Computer}
|
||||||
\end{acronym}
|
\end{acronym}
|
||||||
@@ -1,27 +1,59 @@
|
|||||||
\relax
|
\relax
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {4}Hardware setup and low level simulations}{40}{}\protected@file@percent }
|
\@writefile{toc}{\contentsline {section}{\numberline {4}DSP implementation and optimization of the ANR algorithm}{40}{}\protected@file@percent }
|
||||||
\acronymused{ANR}
|
\acronymused{ANR}
|
||||||
\acronymused{ANR}
|
\acronymused{ANR}
|
||||||
\acronymused{DSP}
|
\acronymused{DSP}
|
||||||
\acronymused{ANR}
|
\acronymused{ANR}
|
||||||
\acronymused{ANR}
|
\acronymused{ANR}
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Description of the low-power DSP}{40}{}\protected@file@percent }
|
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Description of the low-power DSP and it´s environment}{40}{}\protected@file@percent }
|
||||||
|
\AC@undonewlabel{acro:ARM}
|
||||||
|
\newlabel{acro:ARM}{{4.1}{40}{}{}{}}
|
||||||
|
\acronymused{ARM}
|
||||||
\acronymused{DSP}
|
\acronymused{DSP}
|
||||||
|
\acronymused{ARM}
|
||||||
|
\acronymused{DSP}
|
||||||
|
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1}Hardware overview}{40}{}\protected@file@percent }
|
||||||
|
\acronymused{ARM}
|
||||||
|
\acronymused{ARM}
|
||||||
|
\acronymused{DSP}
|
||||||
|
\acronymused{DSP}
|
||||||
|
\acronymused{ANR}
|
||||||
\AC@undonewlabel{acro:ALU}
|
\AC@undonewlabel{acro:ALU}
|
||||||
\newlabel{acro:ALU}{{4.1}{40}{}{}{}}
|
\newlabel{acro:ALU}{{4.1.1}{40}{}{}{}}
|
||||||
\acronymused{ALU}
|
\acronymused{ALU}
|
||||||
\acronymused{DSP}
|
\acronymused{DSP}
|
||||||
\acronymused{ALU}
|
\acronymused{ALU}
|
||||||
\AC@undonewlabel{acro:MAC}
|
\AC@undonewlabel{acro:MAC}
|
||||||
\newlabel{acro:MAC}{{4.1}{40}{}{}{}}
|
\newlabel{acro:MAC}{{4.1.1}{41}{}{}{}}
|
||||||
\acronymused{MAC}
|
\acronymused{MAC}
|
||||||
\acronymused{DSP}
|
\acronymused{DSP}
|
||||||
|
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.2}Communication between the ARM core and the DSP}{41}{}\protected@file@percent }
|
||||||
|
\acronymused{ARM}
|
||||||
\acronymused{DSP}
|
\acronymused{DSP}
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Implementation of the ANR algorithm on the DSP}{41}{}\protected@file@percent }
|
\acronymused{ARM}
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}First optimization approach: algorithm implementation}{41}{}\protected@file@percent }
|
\acronymused{DSP}
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.4}Second optimization approach: hybrid ANR algorithm}{41}{}\protected@file@percent }
|
\acronymused{DSP}
|
||||||
|
\acronymused{ARM}
|
||||||
|
\@writefile{lof}{\contentsline {figure}{\numberline {32}{\ignorespaces Simplified visualization of the communication between the \ac {ARM} core and the \ac {DSP} core}}{41}{}\protected@file@percent }
|
||||||
|
\acronymused{ARM}
|
||||||
|
\acronymused{DSP}
|
||||||
|
\newlabel{fig:fig_dsp_setup.jpg}{{32}{41}{}{}{}}
|
||||||
|
\acronymused{ARM}
|
||||||
|
\acronymused{DSP}
|
||||||
|
\acronymused{DSP}
|
||||||
|
\acronymused{ANR}
|
||||||
|
\acronymused{ARM}
|
||||||
|
\acronymused{DSP}
|
||||||
|
\@writefile{lof}{\contentsline {figure}{\numberline {33}{\ignorespaces Simpliefied flowchart of the sample processing between the \ac {ARM} core and the \ac {DSP} core via interrupts and shared memory. For simplification, the registers of the \ac {DSP} core are not visualized.}}{42}{}\protected@file@percent }
|
||||||
|
\acronymused{ARM}
|
||||||
|
\acronymused{DSP}
|
||||||
|
\acronymused{DSP}
|
||||||
|
\newlabel{fig:fig_dsp_interrupt.jpg}{{33}{42}{}{}{}}
|
||||||
|
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Implementation of the ANR algorithm on the DSP}{42}{}\protected@file@percent }
|
||||||
|
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}First optimization approach: algorithm implementation}{42}{}\protected@file@percent }
|
||||||
|
\@writefile{toc}{\contentsline {subsection}{\numberline {4.4}Second optimization approach: hybrid ANR algorithm}{42}{}\protected@file@percent }
|
||||||
\@setckpt{chapter_04}{
|
\@setckpt{chapter_04}{
|
||||||
\setcounter{page}{42}
|
\setcounter{page}{43}
|
||||||
\setcounter{equation}{21}
|
\setcounter{equation}{21}
|
||||||
\setcounter{enumi}{0}
|
\setcounter{enumi}{0}
|
||||||
\setcounter{enumii}{0}
|
\setcounter{enumii}{0}
|
||||||
@@ -35,7 +67,7 @@
|
|||||||
\setcounter{subsubsection}{0}
|
\setcounter{subsubsection}{0}
|
||||||
\setcounter{paragraph}{0}
|
\setcounter{paragraph}{0}
|
||||||
\setcounter{subparagraph}{0}
|
\setcounter{subparagraph}{0}
|
||||||
\setcounter{figure}{31}
|
\setcounter{figure}{33}
|
||||||
\setcounter{table}{0}
|
\setcounter{table}{0}
|
||||||
\setcounter{float@type}{16}
|
\setcounter{float@type}{16}
|
||||||
\setcounter{tabx@nest}{0}
|
\setcounter{tabx@nest}{0}
|
||||||
@@ -156,7 +188,7 @@
|
|||||||
\setcounter{lstnumber}{21}
|
\setcounter{lstnumber}{21}
|
||||||
\setcounter{FancyVerbLine}{0}
|
\setcounter{FancyVerbLine}{0}
|
||||||
\setcounter{linenumber}{1}
|
\setcounter{linenumber}{1}
|
||||||
\setcounter{LN@truepage}{41}
|
\setcounter{LN@truepage}{42}
|
||||||
\setcounter{FancyVerbWriteLine}{0}
|
\setcounter{FancyVerbWriteLine}{0}
|
||||||
\setcounter{FancyVerbBufferLine}{0}
|
\setcounter{FancyVerbBufferLine}{0}
|
||||||
\setcounter{FV@TrueTabGroupLevel}{0}
|
\setcounter{FV@TrueTabGroupLevel}{0}
|
||||||
|
|||||||
@@ -1,15 +1,30 @@
|
|||||||
\section{Hardware setup and low level simulations}
|
\section{DSP implementation and optimization of the ANR algorithm}
|
||||||
This section aims to be the main part of this thesis. The first subchapters describes the hardware, on which the \ac{ANR} algorithm is implemented. The following subchapter describes the basic implementation of the \ac{ANR} algorithm on the hardware itself and shall provide the reader with a basic understanding of its efficiency, which shall serve as a baseline for the following optimiziations.\\
|
This section aims to be the main part of this thesis. The first subchapter describes the hardware, on which the \ac{ANR} algorithm is implemented, including it´s envornment, which serves as a link to the CI system itself. The following subchapter continues with the basic implementation of the \ac{ANR} algorithm on the hardware itself and shall provide the reader with a basic understanding of its efficiency, which shall serve as a baseline for the following optimiziations.\\
|
||||||
During the third chapter, this initial implementation is further optimized in order to achieve an improved real-time performance on the \ac{DSP}. The last subchapter picks the final optimizations of the \ac{ANR} algorithm itself as a central theme, especially with respect to the capabilites of a hybrid \ac{ANR} approach.
|
During the third chapter, this initial implementation is further optimized in order to achieve an improved real-time performance on the \ac{DSP}. The last subchapter picks the final optimizations of the \ac{ANR} algorithm itself as a central theme, especially with respect to the capabilites of a hybrid \ac{ANR} approach.
|
||||||
\subsection{Description of the low-power DSP}
|
\subsection{Description of the low-power DSP and it´s environment}
|
||||||
The \ac{DSP} used for the implementation is a 32-bit fixed-point processor primarily designed for audio signal-processing applications in low-power embedded systems. It is developed using a retargetable processor design methodology and is typically programmed in C. Its highly efficient C compiler produces optimized assembly code that is comparable in performance and quality to hand-written assembly.\\ \\
|
This thesis considers a low-power system-on-chip architecture that integrates a general-purpose \ac{ARM} core with a dedicated \ac{DSP} core. The system combines the flexibility of an \ac{ARM}-based control processor with the computational efficiency of a specialized \ac{DSP}, splitting general computing tasks from real-time signal processing workloads.
|
||||||
|
\subsubsection{Hardware overview}
|
||||||
|
The \ac{ARM} core serves as the primary control unit of the system. It is responsible for high-level application logic, system configuration, peripheral management, and scheduling. Due to its general-purpose instruction set and extensive software ecosystem, the \ac{ARM} core is well suited for handling communication protocols, system state management, and interaction with external interfaces. Time-critical numerical processing is intentionally offloaded to the \ac{DSP} core in order to reduce computational load and power consumption on the control processor.\\ \\
|
||||||
|
The \ac{DSP} used for the implementation is a 32-bit fixed-point processor primarily designed for audio signal-processing applications in low-power embedded systems. It is developed using a retargetable processor design methodology and is typically programmed in C. The used compiler is highly efficient and generates optimized assembler code, which is then translated in machine code to execute the \ac{ANR} algorithm on incoming samples.\\ \\
|
||||||
The processor is equipped with load/store architecture, meaning that, initially all operands need to be moved from the memory to the registers, before any operation can be performed. After this task is performed, the execution units (\ac{ALU} and multiplier) can perform their oeprations on the data and write back the results into the registers. Finally, the results need to be explicitly moved back to the memory.\\ \\
|
The processor is equipped with load/store architecture, meaning that, initially all operands need to be moved from the memory to the registers, before any operation can be performed. After this task is performed, the execution units (\ac{ALU} and multiplier) can perform their oeprations on the data and write back the results into the registers. Finally, the results need to be explicitly moved back to the memory.\\ \\
|
||||||
The \ac{DSP} includes a three stage pipeline consisting of fetch, decode, and execute stages, aloowing for overlapping instruction execution and improved throughput.
|
The \ac{DSP} includes a three stage pipeline consisting of fetch, decode, and execute stages, aloowing for overlapping instruction execution and improved throughput. The architecture is optimized for high cycle efficiency when executing computationally intensive signal-processing workloads. It features a dual Harvard load store architecture and two seperate \ac{ALU}s, which enables the execution of two \ac{MAC} operations, two memory operations (load/store) and two pointer updates in a single prcoessor cycle.\\ \\
|
||||||
The architecture is optimized for high cycle efficiency when executing computationally intensive signal-processing workloads. It features a dual Harvard load store architecture and two seperate \ac{ALU}s, which enables the execution of two \ac{MAC} operations, two memory operations (load/store) and two pointer updates in a single prcoessor cycle.\\ \\
|
|
||||||
The \ac{DSP} includes a set of registers, including
|
The \ac{DSP} includes a set of registers, including
|
||||||
|
\subsubsection{Communication between the ARM core and the DSP}
|
||||||
|
Communication between the \ac{ARM} core and the \ac{DSP} is realized through a shared memory region accessible by both processing units. This shared memory enables the exchange of data without the need for seperate communication protocols. Synchronization between the cores is achieved using interrupt-based signaling: the \ac{ARM} core initiates processing requests by triggering an interrupt on the \ac{DSP}, while the \ac{DSP} notifies the \ac{ARM} core upon completion of a task via a dedicated signaling mechanism. This approach ensures efficient coordination while minimizing active waiting and unnecessary power consumption.
|
||||||
|
\begin{figure}[H]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=1.0\linewidth]{Bilder/fig_dsp_setup.jpg}
|
||||||
|
\caption{Simplified visualization of the communication between the \ac{ARM} core and the \ac{DSP} core}
|
||||||
|
\label{fig:fig_dsp_setup.jpg}
|
||||||
|
\end{figure}
|
||||||
|
\noindent The \ac{ARM} Core recieves the audio data from the CI system via a PCM interface, which offers one input and one output register. An interrupt trigger the integrated DMA controller, which transfers the audio data from the PCM interface to buffer in a predefined memory location. Once the buffer is filled with enough samples, another interrupt is triggered, notifying the \ac{DSP} core to start processing the audio data. The \ac{DSP} core then reads the audio samples from the shared memory, processes them using the implemented \ac{ANR} algorithm, and writes the processed samples back to an output buffer, also located in the shared memory. Finally, the \ac{ARM} core is notified via an interrupt from the \ac{DSP} core, that the processing is complete - the DMA controller then transfers the processed audio samples from the output buffer back to the PCM interface for playback.\\ \\
|
||||||
|
\begin{figure}[H]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.9\linewidth]{Bilder/fig_dsp_interrupt.jpg}
|
||||||
|
\caption{Simpliefied flowchart of the sample processing between the \ac{ARM} core and the \ac{DSP} core via interrupts and shared memory. For simplification, the registers of the \ac{DSP} core are not visualized.}
|
||||||
|
\label{fig:fig_dsp_interrupt.jpg}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
Advanced addressing modes — such as cyclic and bit-reversed addressing — facilitate efficient implementation of common \ac{DSP} algorithms. Additional architectural features include hardware-supported zero-overhead looping, nested loop structures, interrupt handling, power-management mechanisms, and on-chip debugging capabilities such as JTAG, breakpoints, and watchpoints. Overall, the architecture is designed to support both control-flow operations and high-throughput signal-processing tasks within low-power embedded environments.
|
|
||||||
\subsection{Implementation of the ANR algorithm on the DSP}
|
\subsection{Implementation of the ANR algorithm on the DSP}
|
||||||
\subsection{First optimization approach: algorithm implementation}
|
\subsection{First optimization approach: algorithm implementation}
|
||||||
\subsection{Second optimization approach: hybrid ANR algorithm}
|
\subsection{Second optimization approach: hybrid ANR algorithm}
|
||||||
|
|||||||
237
drawio/fig_dsp_interrupt.drawio
Normal file
237
drawio/fig_dsp_interrupt.drawio
Normal file
@@ -0,0 +1,237 @@
|
|||||||
|
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" version="29.2.7">
|
||||||
|
<diagram name="Page-1" id="biPyHR2u_nhwJtU07GTZ">
|
||||||
|
<mxGraphModel dx="133" dy="1695" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||||
|
<root>
|
||||||
|
<mxCell id="0" />
|
||||||
|
<mxCell id="1" parent="0" />
|
||||||
|
<mxCell id="H6R4VGwbr_i7cj5zOMue-17" edge="1" parent="1" source="H6R4VGwbr_i7cj5zOMue-39" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="H6R4VGwbr_i7cj5zOMue-41" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<mxPoint x="1139.58" y="150" as="sourcePoint" />
|
||||||
|
<mxPoint x="1140" y="190" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-7" connectable="0" parent="H6R4VGwbr_i7cj5zOMue-17" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="Register filled" vertex="1">
|
||||||
|
<mxGeometry relative="1" x="-0.1286" as="geometry">
|
||||||
|
<mxPoint as="offset" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="H6R4VGwbr_i7cj5zOMue-39" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" value="<font><font style="font-size: 14px;"><b>PCM Interface</b><br>Input Register</font></font>" vertex="1">
|
||||||
|
<mxGeometry height="70" width="200" x="1040" y="80" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="H6R4VGwbr_i7cj5zOMue-41" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="<font style="font-size: 14px;">Interrupt to DMA Controller</font>" vertex="1">
|
||||||
|
<mxGeometry height="40" width="150" x="1380" y="95" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-3" edge="1" parent="1" source="n_U1TYArYy-J3cMbdSy8-63" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="H6R4VGwbr_i7cj5zOMue-39" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<mxPoint x="1139.71" y="30" as="sourcePoint" />
|
||||||
|
<mxPoint x="1140.13" y="70" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-8" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" value="<font><font style="font-size: 14px;"><b>Shared Memory<br></b>Input Buffer</font></font>" vertex="1">
|
||||||
|
<mxGeometry height="70" width="200" x="1040" y="250" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-9" edge="1" parent="1" source="n_U1TYArYy-J3cMbdSy8-8" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="n_U1TYArYy-J3cMbdSy8-11" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<mxPoint x="1200" y="360" as="sourcePoint" />
|
||||||
|
<mxPoint x="1370" y="285" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-10" connectable="0" parent="n_U1TYArYy-J3cMbdSy8-9" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="Buffer full" vertex="1">
|
||||||
|
<mxGeometry relative="1" x="-0.2357" y="-2" as="geometry">
|
||||||
|
<mxPoint as="offset" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-11" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="<font style="font-size: 14px;">Interrupt to DSP</font>" vertex="1">
|
||||||
|
<mxGeometry height="40" width="150" x="1380" y="265" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-12" edge="1" parent="1" source="H6R4VGwbr_i7cj5zOMue-39" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="n_U1TYArYy-J3cMbdSy8-40" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<Array as="points">
|
||||||
|
<mxPoint x="1140" y="190" />
|
||||||
|
<mxPoint x="965" y="190" />
|
||||||
|
</Array>
|
||||||
|
<mxPoint x="1139.71" y="160" as="sourcePoint" />
|
||||||
|
<mxPoint x="960" y="140" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-37" connectable="0" parent="n_U1TYArYy-J3cMbdSy8-12" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="Register empty" vertex="1">
|
||||||
|
<mxGeometry relative="1" x="-0.9032" y="-1" as="geometry">
|
||||||
|
<mxPoint as="offset" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-16" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" value="<font style="font-size: 14px;">DMA Controller<br>moves sample</font>" vertex="1">
|
||||||
|
<mxGeometry height="40" width="150" x="1380" y="180" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-20" edge="1" parent="1" source="n_U1TYArYy-J3cMbdSy8-16" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="n_U1TYArYy-J3cMbdSy8-8" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<Array as="points">
|
||||||
|
<mxPoint x="1140" y="200" />
|
||||||
|
</Array>
|
||||||
|
<mxPoint x="1139.71" y="215" as="sourcePoint" />
|
||||||
|
<mxPoint x="1120" y="240" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-21" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" value="<font><font style="font-size: 14px;"><b>Shared Memory<br></b>Output Buffer</font></font>" vertex="1">
|
||||||
|
<mxGeometry height="70" width="200" x="1040" y="420" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-22" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="<span style="font-size: 14px;">DSP computes<br>sample</span>" vertex="1">
|
||||||
|
<mxGeometry height="40" width="150" x="1380" y="350" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-24" edge="1" parent="1" source="H6R4VGwbr_i7cj5zOMue-41" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="n_U1TYArYy-J3cMbdSy8-16" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<mxPoint x="1470" y="160" as="sourcePoint" />
|
||||||
|
<mxPoint x="1470.29" y="210" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-25" edge="1" parent="1" source="n_U1TYArYy-J3cMbdSy8-11" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="n_U1TYArYy-J3cMbdSy8-22" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<mxPoint x="1454.71" y="305" as="sourcePoint" />
|
||||||
|
<mxPoint x="1454.71" y="350" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-26" edge="1" parent="1" source="n_U1TYArYy-J3cMbdSy8-22" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="n_U1TYArYy-J3cMbdSy8-21" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<Array as="points">
|
||||||
|
<mxPoint x="1140" y="370" />
|
||||||
|
</Array>
|
||||||
|
<mxPoint x="1370" y="370" as="sourcePoint" />
|
||||||
|
<mxPoint x="1130" y="420" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-29" edge="1" parent="1" source="n_U1TYArYy-J3cMbdSy8-21" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="n_U1TYArYy-J3cMbdSy8-31" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<mxPoint x="1240" y="457.5" as="sourcePoint" />
|
||||||
|
<mxPoint x="1370" y="457.5" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-30" connectable="0" parent="n_U1TYArYy-J3cMbdSy8-29" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="Buffer full" vertex="1">
|
||||||
|
<mxGeometry relative="1" x="-0.2357" y="-2" as="geometry">
|
||||||
|
<mxPoint as="offset" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-31" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="<font style="font-size: 14px;">Interrupt to DMA<br>Controller</font>" vertex="1">
|
||||||
|
<mxGeometry height="40" width="150" x="1380" y="435" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-32" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" value="<b style="font-size: 14px;">PCM Interface</b><br style="font-size: 14px;"><span style="font-size: 14px;">Output Register</span>" vertex="1">
|
||||||
|
<mxGeometry height="70" width="200" x="1040" y="592.5" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-33" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" value="<span style="font-size: 14px;">DMA Controller</span><br style="font-size: 14px;"><span style="font-size: 14px;">moves sample</span>" vertex="1">
|
||||||
|
<mxGeometry height="40" width="150" x="1380" y="522.5" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-34" edge="1" parent="1" source="n_U1TYArYy-J3cMbdSy8-31" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="n_U1TYArYy-J3cMbdSy8-33" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<mxPoint x="1454.71" y="477.5" as="sourcePoint" />
|
||||||
|
<mxPoint x="1454.71" y="522.5" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-35" edge="1" parent="1" source="n_U1TYArYy-J3cMbdSy8-33" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="n_U1TYArYy-J3cMbdSy8-32" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<Array as="points">
|
||||||
|
<mxPoint x="1140" y="542.5" />
|
||||||
|
</Array>
|
||||||
|
<mxPoint x="1370" y="542.5" as="sourcePoint" />
|
||||||
|
<mxPoint x="1130" y="592.5" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-40" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="<font style="font-size: 14px;">sleep</font>" vertex="1">
|
||||||
|
<mxGeometry height="40" width="70" x="930" y="95" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-41" edge="1" parent="1" source="n_U1TYArYy-J3cMbdSy8-40" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="H6R4VGwbr_i7cj5zOMue-39" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<mxPoint x="1130" y="70" as="sourcePoint" />
|
||||||
|
<mxPoint x="1040" y="120" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-44" edge="1" parent="1" source="n_U1TYArYy-J3cMbdSy8-8" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="n_U1TYArYy-J3cMbdSy8-46" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<Array as="points">
|
||||||
|
<mxPoint x="1140" y="360" />
|
||||||
|
<mxPoint x="965" y="360" />
|
||||||
|
</Array>
|
||||||
|
<mxPoint x="1140" y="320" as="sourcePoint" />
|
||||||
|
<mxPoint x="960" y="310" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-45" connectable="0" parent="n_U1TYArYy-J3cMbdSy8-44" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="Buffer not full" vertex="1">
|
||||||
|
<mxGeometry relative="1" x="-0.9032" y="-1" as="geometry">
|
||||||
|
<mxPoint x="1" y="7" as="offset" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-46" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="<font style="font-size: 14px;">sleep</font>" vertex="1">
|
||||||
|
<mxGeometry height="40" width="70" x="930" y="265" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-47" edge="1" parent="1" source="n_U1TYArYy-J3cMbdSy8-46" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="n_U1TYArYy-J3cMbdSy8-8" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<mxPoint x="1130" y="240" as="sourcePoint" />
|
||||||
|
<mxPoint x="1040" y="290" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-52" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="n_U1TYArYy-J3cMbdSy8-54" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<Array as="points">
|
||||||
|
<mxPoint x="1140" y="530" />
|
||||||
|
<mxPoint x="965" y="530" />
|
||||||
|
</Array>
|
||||||
|
<mxPoint x="1140" y="490" as="sourcePoint" />
|
||||||
|
<mxPoint x="960" y="480" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-53" connectable="0" parent="n_U1TYArYy-J3cMbdSy8-52" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="Buffer not full" vertex="1">
|
||||||
|
<mxGeometry relative="1" x="-0.9032" y="-1" as="geometry">
|
||||||
|
<mxPoint x="1" y="7" as="offset" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-54" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="<font style="font-size: 14px;">sleep</font>" vertex="1">
|
||||||
|
<mxGeometry height="40" width="70" x="930" y="435" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-55" edge="1" parent="1" source="n_U1TYArYy-J3cMbdSy8-54" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="n_U1TYArYy-J3cMbdSy8-21" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<mxPoint x="1130" y="410" as="sourcePoint" />
|
||||||
|
<mxPoint x="1040" y="455" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-56" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="n_U1TYArYy-J3cMbdSy8-58" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<Array as="points">
|
||||||
|
<mxPoint x="1140" y="705" />
|
||||||
|
<mxPoint x="965" y="705" />
|
||||||
|
</Array>
|
||||||
|
<mxPoint x="1140" y="665" as="sourcePoint" />
|
||||||
|
<mxPoint x="960" y="655" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-57" connectable="0" parent="n_U1TYArYy-J3cMbdSy8-56" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="Register empty" vertex="1">
|
||||||
|
<mxGeometry relative="1" x="-0.9032" y="-1" as="geometry">
|
||||||
|
<mxPoint as="offset" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-58" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="<font style="font-size: 14px;">sleep</font>" vertex="1">
|
||||||
|
<mxGeometry height="40" width="70" x="930" y="610" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-59" edge="1" parent="1" source="n_U1TYArYy-J3cMbdSy8-58" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<mxPoint x="1130" y="585" as="sourcePoint" />
|
||||||
|
<mxPoint x="1040" y="630" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-60" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="n_U1TYArYy-J3cMbdSy8-62" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<mxPoint x="1240" y="630" as="sourcePoint" />
|
||||||
|
<mxPoint x="1380" y="629.66" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-61" connectable="0" parent="n_U1TYArYy-J3cMbdSy8-60" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="Register filled" vertex="1">
|
||||||
|
<mxGeometry relative="1" x="-0.1286" as="geometry">
|
||||||
|
<mxPoint as="offset" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-62" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" value="<span style="font-size: 14px;"><b>CI System<br></b></span>" vertex="1">
|
||||||
|
<mxGeometry height="70" width="200" x="1355" y="595" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="n_U1TYArYy-J3cMbdSy8-63" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" value="<span style="font-size: 14px;"><b>CI System<br></b></span>" vertex="1">
|
||||||
|
<mxGeometry height="70" width="200" x="1040" y="-30" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
</root>
|
||||||
|
</mxGraphModel>
|
||||||
|
</diagram>
|
||||||
|
</mxfile>
|
||||||
91
drawio/fig_dsp_setup.drawio
Normal file
91
drawio/fig_dsp_setup.drawio
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" version="29.2.7">
|
||||||
|
<diagram name="Page-1" id="biPyHR2u_nhwJtU07GTZ">
|
||||||
|
<mxGraphModel dx="1426" dy="863" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||||
|
<root>
|
||||||
|
<mxCell id="0" />
|
||||||
|
<mxCell id="1" parent="0" />
|
||||||
|
<mxCell id="IjZ5u4x7_LR3Ume5GlYs-10" parent="1" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=default;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="" vertex="1">
|
||||||
|
<mxGeometry height="240" width="410" x="1000" y="100" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="IjZ5u4x7_LR3Ume5GlYs-9" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" value="" vertex="1">
|
||||||
|
<mxGeometry height="190" width="160" x="1040" y="130" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="H6R4VGwbr_i7cj5zOMue-39" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" value="" vertex="1">
|
||||||
|
<mxGeometry height="190" width="160" x="1220" y="130" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="H6R4VGwbr_i7cj5zOMue-42" edge="1" parent="1" source="H6R4VGwbr_i7cj5zOMue-41" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="H6R4VGwbr_i7cj5zOMue-41">
|
||||||
|
<mxGeometry relative="1" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="IjZ5u4x7_LR3Ume5GlYs-1" edge="1" parent="1" source="IjZ5u4x7_LR3Ume5GlYs-24" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0.994;exitY=0.376;exitDx=0;exitDy=0;exitPerimeter=0;" target="H6R4VGwbr_i7cj5zOMue-41" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<mxPoint x="920" y="190" as="sourcePoint" />
|
||||||
|
<mxPoint x="1060" y="170" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="IjZ5u4x7_LR3Ume5GlYs-3" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="<span style="font-size: 14px;"><b>DSP</b></span>" vertex="1">
|
||||||
|
<mxGeometry height="240" width="120" x="1460" y="100" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="H6R4VGwbr_i7cj5zOMue-41" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" value="<font style="font-size: 14px;">Input Register</font>" vertex="1">
|
||||||
|
<mxGeometry height="60" width="120" x="1060" y="160" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="IjZ5u4x7_LR3Ume5GlYs-7" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" value="<font style="font-size: 14px;">Output Register</font>" vertex="1">
|
||||||
|
<mxGeometry height="60" width="120" x="1060" y="230" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="IjZ5u4x7_LR3Ume5GlYs-8" edge="1" parent="1" source="IjZ5u4x7_LR3Ume5GlYs-7" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.987;entryY=0.666;entryDx=0;entryDy=0;entryPerimeter=0;" target="IjZ5u4x7_LR3Ume5GlYs-24" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<mxPoint x="1030" y="340" as="sourcePoint" />
|
||||||
|
<mxPoint x="920" y="260" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="IjZ5u4x7_LR3Ume5GlYs-11" parent="1" style="text;whiteSpace=wrap;html=1;" value="<b style="forced-color-adjust: none; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">PCM Interface</b>" vertex="1">
|
||||||
|
<mxGeometry height="40" width="130" x="1070" y="130" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="IjZ5u4x7_LR3Ume5GlYs-12" parent="1" style="text;whiteSpace=wrap;html=1;" value="<b style="forced-color-adjust: none; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">ARM Core</b>" vertex="1">
|
||||||
|
<mxGeometry height="40" width="130" x="1170" y="100" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="IjZ5u4x7_LR3Ume5GlYs-13" parent="1" style="text;whiteSpace=wrap;html=1;" value="<div style="text-align: center;"><span style="background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); font-size: 14px;"><b>Shared Memory</b></span></div>" vertex="1">
|
||||||
|
<mxGeometry height="30" width="120" x="1245" y="130" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="IjZ5u4x7_LR3Ume5GlYs-14" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" value="<font style="font-size: 14px;">Input Buffer</font>" vertex="1">
|
||||||
|
<mxGeometry height="60" width="120" x="1240" y="160" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="IjZ5u4x7_LR3Ume5GlYs-16" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" value="<font style="font-size: 14px;">Output Buffer</font>" vertex="1">
|
||||||
|
<mxGeometry height="60" width="120" x="1240" y="230" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="IjZ5u4x7_LR3Ume5GlYs-17" edge="1" parent="1" source="H6R4VGwbr_i7cj5zOMue-41" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" target="IjZ5u4x7_LR3Ume5GlYs-14" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<mxPoint x="1320" y="70" as="sourcePoint" />
|
||||||
|
<mxPoint x="1420" y="70" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="IjZ5u4x7_LR3Ume5GlYs-18" edge="1" parent="1" source="IjZ5u4x7_LR3Ume5GlYs-16" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" target="IjZ5u4x7_LR3Ume5GlYs-7" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<mxPoint x="1240" y="340" as="sourcePoint" />
|
||||||
|
<mxPoint x="1300" y="340" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="IjZ5u4x7_LR3Ume5GlYs-19" edge="1" parent="1" source="IjZ5u4x7_LR3Ume5GlYs-14" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=-0.018;entryY=0.376;entryDx=0;entryDy=0;entryPerimeter=0;" target="IjZ5u4x7_LR3Ume5GlYs-3" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<mxPoint x="1610" y="180" as="sourcePoint" />
|
||||||
|
<mxPoint x="1439" y="190" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="IjZ5u4x7_LR3Ume5GlYs-20" edge="1" parent="1" source="IjZ5u4x7_LR3Ume5GlYs-3" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=-0.025;exitY=0.664;exitDx=0;exitDy=0;exitPerimeter=0;" target="IjZ5u4x7_LR3Ume5GlYs-16" value="">
|
||||||
|
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||||
|
<mxPoint x="1440" y="260" as="sourcePoint" />
|
||||||
|
<mxPoint x="1659" y="210" as="targetPoint" />
|
||||||
|
</mxGeometry>
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="IjZ5u4x7_LR3Ume5GlYs-21" parent="1" style="text;whiteSpace=wrap;html=1;" value="<span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Input Data</span>" vertex="1">
|
||||||
|
<mxGeometry height="40" width="110" x="920" y="160" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="IjZ5u4x7_LR3Ume5GlYs-23" parent="1" style="text;whiteSpace=wrap;html=1;" value="<span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">Output Data</span>" vertex="1">
|
||||||
|
<mxGeometry height="40" width="110" x="920" y="230" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
<mxCell id="IjZ5u4x7_LR3Ume5GlYs-24" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" value="<span style="font-size: 14px;"><b>CI System</b></span>" vertex="1">
|
||||||
|
<mxGeometry height="240" width="120" x="790" y="100" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
|
</root>
|
||||||
|
</mxGraphModel>
|
||||||
|
</diagram>
|
||||||
|
</mxfile>
|
||||||
Reference in New Issue
Block a user