mirror of
https://github.com/openhwgroup/cve2.git
synced 2025-04-22 04:57:25 -04:00
Add a basic datasheet for RI5CY
Not very detailed yet, needs a lot of work still
This commit is contained in:
parent
b347299f31
commit
79bce5b31b
12 changed files with 1740 additions and 0 deletions
97
docs/datasheet/Makefile
Normal file
97
docs/datasheet/Makefile
Normal file
|
@ -0,0 +1,97 @@
|
|||
ROOT_DIR = .
|
||||
CONTENT_SRC = content
|
||||
MAIN_SRC = datasheet
|
||||
FIG_DIR = figures
|
||||
FIG_RAW_DIR = figures_raw
|
||||
|
||||
|
||||
# Get only the path to the Tgif source files.
|
||||
TGIF_SRCS = $(wildcard $(ROOT_DIR)/$(FIG_RAW_DIR)/*.obj)
|
||||
TGIF_SRCS_NAMES = $(basename $(TGIF_SRCS))
|
||||
|
||||
# Get only the path to the Tgif destination files.
|
||||
TGIF_DEST = $(wildcard $(ROOT_DIR)/$(FIG_DIR)/*.obj)
|
||||
TGIF_DEST_NAMES = $(basename $(TGIF_SRCS))
|
||||
|
||||
# Derive the file names for the resulting EPS and PDF file names for
|
||||
# the TGIF sources.
|
||||
TGIF_OUTP_NAMES = $(addprefix $(ROOT_DIR)/$(FIG_DIR)/, $(notdir $(TGIF_SRCS_NAMES)))
|
||||
TGIF_OUTP_EPS_NAMES = $(addsuffix .eps, $(TGIF_OUTP_NAMES))
|
||||
TGIF_OUTP_PDF_NAMES = $(addsuffix .pdf, $(TGIF_OUTP_NAMES))
|
||||
|
||||
|
||||
|
||||
######################################################################
|
||||
##### #
|
||||
##### Main Targets #
|
||||
##### #
|
||||
######################################################################
|
||||
do: pdf
|
||||
|
||||
all: figures pdf
|
||||
make -B pdf
|
||||
make -B pdf
|
||||
|
||||
pdf: $(MAIN_SRC).pdf
|
||||
|
||||
%.pdf: %.tex $(CONTENT_SRC) preamble/preamble.tex
|
||||
pdflatex $(MAIN_SRC).tex
|
||||
|
||||
clean: clean-figures
|
||||
@echo "***** Cleaning the LaTeX directory structure."
|
||||
@rm -rf $(ROOT_DIR)/*.acr $(ROOT_DIR)/*.alg $(ROOT_DIR)/*.bbl
|
||||
@rm -rf $(ROOT_DIR)/*.blg $(ROOT_DIR)/*.glg $(ROOT_DIR)/*.gls
|
||||
@rm -rf $(ROOT_DIR)/*.aux $(ROOT_DIR)/*.glo $(ROOT_DIR)/*.ist
|
||||
@rm -rf $(ROOT_DIR)/*.lof $(ROOT_DIR)/*.log $(ROOT_DIR)/*.lot
|
||||
@rm -rf $(ROOT_DIR)/*.toc $(ROOT_DIR)/*.acn $(ROOT_DIR)/*.out
|
||||
@rm -rf $(ROOT_DIR)/*.tex~ $(ROOT_DIR)/*.tex.backup
|
||||
@rm -rf $(ROOT_DIR)/*.fdb_latexmk $(ROOT_DIR)/*.fls
|
||||
@rm -rf $(ROOT_DIR)/Makefile~ $(ROOT_DIR)/pso.conv-*
|
||||
@rm -rf $(ROOT_DIR)/auto
|
||||
@rm -rf $(ROOT_DIR)/content/*.tex~ $(ROOT_DIR)/content/*.aux
|
||||
@rm -rf $(ROOT_DIR)/content/*.log $(ROOT_DIR)/content/auto
|
||||
@rm -rf $(ROOT_DIR)/content/*.tex.backup
|
||||
@rm -rf $(ROOT_DIR)/content/*.fdb_latexmk $(ROOT_DIR)/content/*.fls
|
||||
@rm -rf $(ROOT_DIR)/glossaries/*.tex~ $(ROOT_DIR)/glossaries/auto
|
||||
@rm -rf $(ROOT_DIR)/preamble/auto $(ROOT_DIR)/preamble/*.tex~
|
||||
@rm -rf $(ROOT_DIR)/preamble/*.log
|
||||
@rm -rf $(ROOT_DIR)/bib/auto $(ROOT_DIR)/bib/*.bib~
|
||||
@rm -rf $(ROOT_DIR)/bib/*.bib.backup
|
||||
@rm -rf $(ROOT_DIR)/*.mtc* $(ROOT_DIR)/*.maf
|
||||
|
||||
|
||||
######################################################################
|
||||
##### #
|
||||
##### Sub Targets #
|
||||
##### #
|
||||
######################################################################
|
||||
|
||||
figures: tgif_figures
|
||||
|
||||
tgif_figures: $(TGIF_OUTP_PDF_NAMES)
|
||||
|
||||
|
||||
$(TGIF_OUTP_PDF_NAMES): $(ROOT_DIR)/$(FIG_DIR)/%.pdf : $(ROOT_DIR)/$(FIG_RAW_DIR)/%.obj
|
||||
@echo "*****"
|
||||
@echo "***** Printing Tgif figure:"
|
||||
@echo "***************************"
|
||||
@echo "***** $(ROOT_DIR)/$(FIG_RAW_DIR)/$*.eps"
|
||||
@tgif -print -epsi -color -quiet $(ROOT_DIR)/$(FIG_RAW_DIR)/$*.obj
|
||||
@echo "*****"
|
||||
@echo "***** Converting Tgif EPS to PDF:"
|
||||
@echo "*********************************"
|
||||
@echo "***** $(ROOT_DIR)/$(FIG_RAW_DIR)/$*.eps --> $(ROOT_DIR)/$(FIG_RAW_DIR)/$*.pdf"
|
||||
@epstopdf $(ROOT_DIR)/$(FIG_RAW_DIR)/$*.eps
|
||||
@echo "*****"
|
||||
@echo "***** Moving EPS and PDF figures"
|
||||
@echo "********************************"
|
||||
@echo "***** $(ROOT_DIR)/$(FIG_RAW_DIR)/$*.eps --> $(ROOT_DIR)/$(FIG_DIR)/$*.eps"
|
||||
@echo "***** $(ROOT_DIR)/$(FIG_RAW_DIR)/$*.pdf --> $(ROOT_DIR)/$(FIG_DIR)/$*.pdf"
|
||||
-@mv $(ROOT_DIR)/$(FIG_RAW_DIR)/$*.eps $(ROOT_DIR)/$(FIG_DIR)/
|
||||
-@mv $(ROOT_DIR)/$(FIG_RAW_DIR)/$*.pdf $(ROOT_DIR)/$(FIG_DIR)/
|
||||
@echo "*****"
|
||||
|
||||
clean-tgif-figures:
|
||||
-@rm -f $(TGIF_OUTP_EPS_NAMES) $(TGIF_OUTP_PDF_NAMES)
|
||||
|
||||
clean-figures: clean-tgif-figures
|
7
docs/datasheet/content/csr.tex
Normal file
7
docs/datasheet/content/csr.tex
Normal file
|
@ -0,0 +1,7 @@
|
|||
\chapter{Control and Status Registers}
|
||||
|
||||
\rvcore does not implement all control and status registers specified in the
|
||||
\riscv privileged specifications, but is limited to the registers that were
|
||||
needed for the PULP system.
|
||||
The reason for this is that we wanted to keep the footprint of the core as low
|
||||
as possible and avoid any overhead that we do not explicitely need.
|
37
docs/datasheet/content/if.tex
Normal file
37
docs/datasheet/content/if.tex
Normal file
|
@ -0,0 +1,37 @@
|
|||
\chapter{Instruction Fetch}
|
||||
|
||||
The instruction fetcher of the core is able to supply one instruction to the ID
|
||||
stage per cycle if the instruction cache or the instruction memory is able to
|
||||
deliver an instruction after one cycle.
|
||||
The instruction address must be word-aligned. It is not possible to jump to
|
||||
misaligned memory addresses.
|
||||
|
||||
Branch prediction is used for branches where the branch decision is not yet
|
||||
known, i.e. if the \instr{l.sf*} instruction precedes the \instr{l.bf} or
|
||||
\instr{l.bnf} instruction directly.
|
||||
Branch prediction assumes that backward branches are never taken and forward
|
||||
branches are always taken. If the branch predicition guessed wrong, one fetched
|
||||
instruction is wasted.
|
||||
|
||||
Table~\ref{tab:instr_signals} describes the signals that are used by to fetch
|
||||
instructions.
|
||||
|
||||
|
||||
\begin{table}[H]
|
||||
\caption{Instruction Fetch Signals}
|
||||
\label{tab:instr_signals}
|
||||
\begin{tabularx}{\textwidth}{@{}llX@{}} \toprule
|
||||
\textbf{Signal} & \textbf{Direction} & \textbf{Description} \\ \toprule
|
||||
\signal{instr\_req\_o} & \textbf{output} & Request ready, must stay high until \signal{instr\_gnt\_i} is high for one cycle \\ \hline
|
||||
\signal{instr\_addr\_o[31:0]} & \textbf{output} & Address \\ \hline
|
||||
\signal{instr\_rdata\_i[31:0]} & \textbf{input} & Data read from memory \\ \hline
|
||||
\signal{instr\_rvalid\_i} & \textbf{input} & \signal{instr\_rdata\_i} is valid now for this cycle. When \signal{instr\_rvalid\_i} is high, another request can be sent. \\ \hline
|
||||
\signal{instr\_gnt\_i} & \textbf{input} & The instruction cache accepted the request. The \signal{instr\_addr\_o} may be change in the next cylce. \\ \bottomrule
|
||||
\end{tabularx}
|
||||
\end{table}
|
||||
|
||||
|
||||
\section{Protocol}
|
||||
The protocol used to communicate with the instruction cache or the instruction
|
||||
memory is the same as the protocl used by the LSU. See the description of the
|
||||
LSU in Section~\ref{sec:lsu_protocol} for details about the protocol.
|
126
docs/datasheet/content/lsu.tex
Normal file
126
docs/datasheet/content/lsu.tex
Normal file
|
@ -0,0 +1,126 @@
|
|||
\chapter{Load-Store-Unit (LSU)}
|
||||
|
||||
The LSU of the core takes care of accessing the data memory. Load and stores on
|
||||
words (32 bit), half words (16 bit) and bytes (8 bit) are supported.
|
||||
|
||||
Table~\ref{tab:lsu_signals} describes the signals that are used by the LSU.
|
||||
|
||||
|
||||
\begin{table}[H]
|
||||
\caption{LSU Signals}
|
||||
\label{tab:lsu_signals}
|
||||
\begin{tabularx}{\textwidth}{@{}llX@{}} \toprule
|
||||
\textbf{Signal} & \textbf{Direction} & \textbf{Description} \\ \toprule
|
||||
\signal{data\_req\_o} & \textbf{output} & Request ready, must stay high until \signal{data\_gnt\_i} is high for one cycle \\ \hline
|
||||
\signal{data\_addr\_o[31:0]} & \textbf{output} & Address \\ \hline
|
||||
\signal{data\_we\_o} & \textbf{output} & Write Enable, high if we want to write, low if we want to read \\ \hline
|
||||
\signal{data\_be\_o[3:0]} & \textbf{output} & Byte Enable, is set for the bytes to write/read \\ \hline
|
||||
\signal{data\_wdata\_o[31:0]} & \textbf{output} & Data to be written to memory \\ \hline
|
||||
\signal{data\_rdata\_i[31:0]} & \textbf{input} & Data read from memory \\ \hline
|
||||
\signal{data\_rvalid\_i} & \textbf{input} & \signal{data\_rdata\_i} is valid. This signal must always be identical to \signal{data\_gnt\_i} delayed by one cycle. \\ \hline
|
||||
\signal{data\_gnt\_i} & \textbf{input} & The memory accepted the request and will answer in the next cycle with valid rdata \\ \bottomrule
|
||||
\end{tabularx}
|
||||
\end{table}
|
||||
|
||||
\section{Misaligned Accesses}
|
||||
The LSU is able to perform misaligned accesses, meaning accesses that are not
|
||||
aligned on natural word boundaries. However it needs to perform two separate
|
||||
word-aligned accesses internally.
|
||||
This means that at least two cycles are needed for misaligned loads and stores.
|
||||
|
||||
|
||||
\section{Post-Increment Load and Stores}
|
||||
|
||||
Post-incrementing load and store instructions perform a load/store operation
|
||||
from/to the data memory while at the same time increasing the base address by
|
||||
the specified offset.
|
||||
Post-incrementing load and stores reduce the number of instructions necessary to
|
||||
execute when running in a loop, i.e. the address increment can be embedded in
|
||||
the post-increment instructions.
|
||||
|
||||
|
||||
\section{Protocol}
|
||||
\label{sec:lsu_protocol}
|
||||
|
||||
The protocol that is used by the LSU to communicate with a memory works as
|
||||
follows:
|
||||
The LSU provides a valid address in \signal{data\_addr\_o} and sets
|
||||
\signal{data\_req\_o} high. The memory then answers with a \signal{data\_gnt\_i}
|
||||
set high as soon as it is ready to serve the request. This may happen in the
|
||||
same cycle as the request was sent or any number of cycles later. After a grant
|
||||
was received, the address may be changed by the LSU without impact. Also the
|
||||
\signal{data\_wdata\_o}, \signal{data\_we\_o} and \signal{data\_be\_o} signals
|
||||
may be changed as it is assumed that the memory has already processed that
|
||||
information. In the case of a read, the memory answers with a
|
||||
\signal{data\_rvalid\_i} set high when \signal{data\_rdata\_i} is valid. This
|
||||
may happen one cycle after the grant was received, but may take any number of
|
||||
cycles after the grant was received.
|
||||
Starting from the cycle when \signal{data\_rvalid\_i} was asserted, another
|
||||
request may be sent.
|
||||
|
||||
Figure~\ref{fig:lsu_trans_basic}, Figure~\ref{fig:lsu_trans_b2b} and
|
||||
Figure~\ref{fig:lsu_trans_slow} show timing diagrams of the protocol.
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\begin{tikztimingtable}
|
||||
[timing/d/background/.style={fill=white},
|
||||
timing/lslope=0.1,
|
||||
xscale=3]
|
||||
|
||||
clk & 13{C} \\
|
||||
data\_addr\_o & UUU 4D{Address} UU UU UU \\
|
||||
data\_wdata\_o & UUU 4D{WData} UU UU UU \\
|
||||
data\_req\_o & LLL HH HH LL LL LL \\
|
||||
data\_gnt\_i & LLL LL HH LL LL LL \\
|
||||
data\_rvalid\_i & LLL LL LL HH LL LL \\
|
||||
data\_rdata\_i & UUU UU UU 2D{RData} UU UU \\
|
||||
data\_we\_o & UUU 4D{WE} UU UU UU \\
|
||||
data\_be\_o & UUU 4D{BE} UU UU UU \\
|
||||
\end{tikztimingtable}
|
||||
\caption{Basic Memory Transaction}
|
||||
\label{fig:lsu_trans_basic}
|
||||
\end{figure}
|
||||
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\begin{tikztimingtable}
|
||||
[timing/d/background/.style={fill=white},
|
||||
timing/lslope=0.1,
|
||||
xscale=3]
|
||||
|
||||
clk & 13{C} \\
|
||||
data\_addr\_o & U 2D{Addr1} 2D{Addr2} UU UU UU UU \\
|
||||
data\_wdata\_o & U 2D{WData1} 2D{Wdata2} UU UU UU UU \\
|
||||
data\_req\_o & L HH HH LL LL LL LL \\
|
||||
data\_gnt\_i & L HH HH LL LL LL LL \\
|
||||
data\_rvalid\_i & L LL HH HH LL LL LL \\
|
||||
data\_rdata\_i & U UU 2D{RData1} 2D{RData2} UU UU UU\\
|
||||
data\_we\_o & U 2D{WE1} 2D{WE2} UU UU UU UU \\
|
||||
data\_be\_o & U 2D{BE1} 2D{BE2} UU UU UU UU \\
|
||||
\end{tikztimingtable}
|
||||
\caption{Back to Back Memory Transaction}
|
||||
\label{fig:lsu_trans_b2b}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\begin{tikztimingtable}
|
||||
[timing/d/background/.style={fill=white},
|
||||
timing/lslope=0.1,
|
||||
xscale=3]
|
||||
|
||||
clk & 13{C} \\
|
||||
data\_addr\_o & U 6D{Address} UU UU UU \\
|
||||
data\_wdata\_o & U 6D{WData} UU UU UU \\
|
||||
data\_req\_o & L HH HH HH LL LL LL \\
|
||||
data\_gnt\_i & LLL LL HH LL LL LL \\
|
||||
data\_rvalid\_i & LLL LL LL LL HH UU \\
|
||||
data\_rdata\_i & UUU UU UU UU 2D{RData} UU \\
|
||||
data\_we\_o & U 6D{WE} UU UU UU \\
|
||||
data\_be\_o & U 6D{BE} UU UU UU \\
|
||||
\end{tikztimingtable}
|
||||
\caption{Slow Answer Memory Transaction}
|
||||
\label{fig:lsu_trans_slow}
|
||||
\end{figure}
|
6
docs/datasheet/content/mac.tex
Normal file
6
docs/datasheet/content/mac.tex
Normal file
|
@ -0,0 +1,6 @@
|
|||
\chapter{Multiplier}
|
||||
|
||||
\rvcore uses a single-cycle 32 bit lower result multiplier. Only a subset of the
|
||||
standard M extension is implemented, i.e. the \instr{mul} instruction.
|
||||
Divisions and multiplications that return the upper half of the result are not
|
||||
supported.
|
15
docs/datasheet/content/overview.tex
Normal file
15
docs/datasheet/content/overview.tex
Normal file
|
@ -0,0 +1,15 @@
|
|||
\chapter{Overview}
|
||||
|
||||
\rvcore is a 4-stage in-order \riscv CPU. The ISA of \rvcore was extended to
|
||||
also support multiple additional instructions including hardware loops,
|
||||
post-increment load and store instructions and packed-SIMD instructions that
|
||||
were not part of the standard \riscv ISA.
|
||||
|
||||
Figure~\ref{fig:ri5cy_overview} shows a block diagram of the core.
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.9\textwidth]{./figures/ri5cy_overview}
|
||||
\caption{\rvcore Overview.}
|
||||
\label{fig:ri5cy_overview}
|
||||
\end{figure}
|
132
docs/datasheet/content/perfcounters.tex
Normal file
132
docs/datasheet/content/perfcounters.tex
Normal file
|
@ -0,0 +1,132 @@
|
|||
\chapter{Performance Counters}
|
||||
\label{chap:perf_count}
|
||||
|
||||
Performance Counters in \orion are placed inside the Special-Purpose Registers
|
||||
and can be accessed with \instr{l.mfspr} and \instr{l.mtspr}.
|
||||
Figure~\ref{fig:spr_addr} shows the SPR address format and
|
||||
Table~\ref{tab:pc_spr_addr} shows the respective addresses for configuration and
|
||||
access to the performance counters.
|
||||
|
||||
\begin{table}[H]
|
||||
\caption{PC SPR Addresses}
|
||||
\label{tab:pc_spr_addr}
|
||||
\centering\begin{tabularx}{\textwidth}{@{}ccccX@{}} \toprule
|
||||
\textbf{Group \#} & \textbf{Reg \#} & Reg Name & Access & Description\\ \toprule
|
||||
7 & 0 - 31 & PCCR0-PCCR31 & R/W & Performance Counters Count Registers \\ \hline
|
||||
7 & 32 & PCER & R/W & Performance Counters Event Register \\ \hline
|
||||
7 & 33 & PCMR & R/W & Performance Counters Mode Register \\ \bottomrule
|
||||
\end{tabularx}
|
||||
\end{table}
|
||||
|
||||
|
||||
\section{Performance Counters Mode Register (PCMR)}
|
||||
|
||||
\sprDesc{0x3821}{0x0000\_0003}{PCMR}{
|
||||
\begin{bytefield}[endianness=big,bitheight=60pt]{32}
|
||||
\bitheader{31,1,0} \\
|
||||
\bitbox{30}{ Unused }
|
||||
\bitbox{1}{\rotatebox{90}{\tiny Saturation }}
|
||||
\bitbox{1}{\rotatebox{90}{\tiny Global Enable }}
|
||||
\end{bytefield}
|
||||
}
|
||||
|
||||
The \instr{Global Enable} bit controls all performance counters, i.e. if it is set
|
||||
to \instr{0}, all performance counters are deactivated.
|
||||
After reset, the \instr{Global Enable} bit is set.
|
||||
|
||||
The \instr{Saturation} bit controls saturation behaviour of the performance
|
||||
counters. If it is set, saturating arithmetic is used.
|
||||
After reset, the \instr{Saturation} bit is set.
|
||||
|
||||
\section{Performance Counters Event Register (PCER)}
|
||||
|
||||
\sprDesc{0x3820}{0x0000\_0000}{PCER}{
|
||||
\begin{bytefield}[endianness=big,bitheight=60pt]{32}
|
||||
\bitheader{31,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0} \\
|
||||
\bitbox{1}{\rotatebox{90}{\tiny (ALL) }}
|
||||
\bitbox{14}{ Unused }
|
||||
\bitbox{1}{\rotatebox{90}{\tiny TCDM CONT }}
|
||||
\bitbox{1}{\rotatebox{90}{\tiny ST\_EXT\_CYC }}
|
||||
\bitbox{1}{\rotatebox{90}{\tiny LD\_EXT\_CYC }}
|
||||
\bitbox{1}{\rotatebox{90}{\tiny ST\_EXT }}
|
||||
\bitbox{1}{\rotatebox{90}{\tiny LD\_EXT }}
|
||||
\bitbox{1}{\rotatebox{90}{\tiny DELAY\_SLOT }}
|
||||
\bitbox{1}{\rotatebox{90}{\tiny BRANCH }}
|
||||
\bitbox{1}{\rotatebox{90}{\tiny JUMP }}
|
||||
\bitbox{1}{\rotatebox{90}{\tiny ST }}
|
||||
\bitbox{1}{\rotatebox{90}{\tiny LD }}
|
||||
\bitbox{1}{\rotatebox{90}{\tiny WBRANCH\_CYC }}
|
||||
\bitbox{1}{\rotatebox{90}{\tiny WBRANCH }}
|
||||
\bitbox{1}{\rotatebox{90}{\tiny IMISS }}
|
||||
\bitbox{1}{\rotatebox{90}{\tiny JMP\_STALL }}
|
||||
\bitbox{1}{\rotatebox{90}{\tiny LD\_STALL }}
|
||||
\bitbox{1}{\rotatebox{90}{\tiny INSTR }}
|
||||
\bitbox{1}{\rotatebox{90}{\tiny CYCLES }}
|
||||
\end{bytefield}
|
||||
}
|
||||
|
||||
Each bit in the PCER register controls one performance counter. If the bit is
|
||||
1, the counter is enabled and starts counting events. If it is 0, the counter
|
||||
is disabled and its value won't change.
|
||||
|
||||
In the ASIC there is only one counter register, thus all counter events are
|
||||
masked by PCER are ORed together, i.e. if one of the enabled event happens,
|
||||
the counter will be increased. If multiple non-masked events happen at the same
|
||||
time, the counter will only be increased by one.
|
||||
|
||||
In the FPGA or Simulation version each event has its own counter and can be
|
||||
accesses separately.
|
||||
|
||||
|
||||
\section{Performance Counters Counter Registers (PCCR0-31)}
|
||||
|
||||
\sprDesc{0x3800 - 0x381F}{0x0000\_0000}{PCCR0-31}{
|
||||
\begin{bytefield}[endianness=big]{32}
|
||||
\bitheader{31,0} \\
|
||||
\bitbox{32}{Unsigned integer counter value}
|
||||
\end{bytefield}
|
||||
}
|
||||
|
||||
PCCR registers support both saturating and wrap-around arithmetic. This is
|
||||
controlled by the \instr{saturation} bit in PCMR.
|
||||
|
||||
\begin{table}[H]
|
||||
\begin{tabularx}{\textwidth}{@{}llX@{}} \toprule
|
||||
\textbf{Reg Name} & \textbf{Name} & Description \\ \toprule
|
||||
\textbf{PCCR0} & \textbf{CYCLES} & Count the number of cycles the core was running \\ \hline
|
||||
\textbf{PCCR1} & \textbf{INSTR} & Count the number of instructions executed \\ \hline
|
||||
\textbf{PCCR2} & \textbf{LD\_STALL} & Number of load data hazards \\ \hline
|
||||
\textbf{PCCR3} & \textbf{JMP\_STALL} & Number of jump register data hazards \\ \hline
|
||||
\textbf{PCCR4} & \textbf{IMISS} & Cycles waiting for instruction fetches. i.e. the number of instructions wasted due to non-ideal caches \\ \hline
|
||||
\textbf{PCCR5} & \textbf{WBRANCH} & Number of wrong predicted branches \\ \hline
|
||||
\textbf{PCCR6} & \textbf{WBRANCH\_CYC} & Cycles wasted due to wrong predicted branches \\ \hline
|
||||
\textbf{PCCR7} & \textbf{LD} & Number of memory loads executed. Misaligned accesses are counted twice \\ \hline
|
||||
\textbf{PCCR8} & \textbf{ST} & Number of memory stores executed. Misaligned accesses are counted twice \\ \hline
|
||||
\textbf{PCCR9} & \textbf{JUMP} & Number of jumps (j, jal, jr, jalr)\\ \hline
|
||||
\textbf{PCCR10} & \textbf{BRANCH} & Number of branches (bf, bnf), counts taken and not taken branches\\ \hline
|
||||
\textbf{PCCR11} & \textbf{DELAY\_NOP} & Number of empty (l.nop) delay slots \\ \hline
|
||||
\textbf{PCCR12} & \textbf{LD\_EXT} & Number of memory loads to EXT executed. Misaligned accesses are counted twice. Every non-TCDM access is considered external \\ \hline
|
||||
\textbf{PCCR13} & \textbf{ST\_EXT} & Number of memory stores to EXT executed. Misaligned accesses are counted twice. Every non-TCDM access is considered external \\ \hline
|
||||
\textbf{PCCR14} & \textbf{LD\_EXT\_CYC} & Cycles used for memory loads to EXT. Every non-TCDM access is considered external \\ \hline
|
||||
\textbf{PCCR15} & \textbf{ST\_EXT\_CYC} & Cycles used for memory stores to EXT. Every non-TCDM access is considered external \\ \hline
|
||||
\textbf{PCCR16} & \textbf{TCDM\_CONT} & Cycles wasted due to TCDM/log-interconnect contention \\ \hline
|
||||
\textbf{PCCR31} & \textbf{ALL} & Special Register, a write to this register will set all counters to the supplied value\\ \bottomrule
|
||||
\end{tabularx}
|
||||
\end{table}
|
||||
|
||||
In the FPGA, RTL simulation and Virtual-Platform there are individual counters
|
||||
for each event type, i.e. PCCR0-30 each represent a separate register.
|
||||
To save area in the ASIC, there is only one counter and one counter register.
|
||||
Accessing PCCR0-30 will access the same counter register in the ASIC.
|
||||
Reading/writing from/to PCCR31 in the ASIC will access the same register as
|
||||
PCCR0-30.
|
||||
|
||||
Figure~\ref{fig:events} shows how events are first masked with the PCER register
|
||||
and then ORed together to increase the one performance counter PCCR.
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.5\textwidth]{./figures/events}
|
||||
\caption{Events and PCCR, PCMR and PCER on the ASIC.}
|
||||
\label{fig:events}
|
||||
\end{figure}
|
41
docs/datasheet/datasheet.tex
Normal file
41
docs/datasheet/datasheet.tex
Normal file
|
@ -0,0 +1,41 @@
|
|||
\documentclass[%
|
||||
oneside, % Use the same margins for odd and even pages (cannot
|
||||
% be used with the 'twoside' option).
|
||||
% twoside, % Use different margins for odd and even pages (cannot
|
||||
% be used with the 'oneside' option).
|
||||
openany, % Open chapters on odd and even pages.
|
||||
halfparskip, % Create small spaces for new paragraphs but no indents.
|
||||
]{scrbook}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%%%%% %
|
||||
%%%%% Preamble %
|
||||
%%%%% %
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% Load the preamble from another file.
|
||||
\input{./preamble/preamble}
|
||||
|
||||
|
||||
%%%%% Mandatory title page settings.
|
||||
\title{RI5CY: Datasheet}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%%%%% %
|
||||
%%%%% Document starts here %
|
||||
%%%%% %
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\begin{document}
|
||||
|
||||
\maketitle
|
||||
|
||||
\tableofcontents
|
||||
|
||||
\input{./content/overview.tex}
|
||||
\input{./content/if.tex}
|
||||
\input{./content/lsu.tex}
|
||||
\input{./content/mac.tex}
|
||||
\input{./content/csr.tex}
|
||||
\input{./content/perfcounters.tex}
|
||||
|
||||
|
||||
\end{document}
|
0
docs/datasheet/figures/.gitignore
vendored
Normal file
0
docs/datasheet/figures/.gitignore
vendored
Normal file
477
docs/datasheet/figures_raw/events.obj
Normal file
477
docs/datasheet/figures_raw/events.obj
Normal file
|
@ -0,0 +1,477 @@
|
|||
%TGIF 4.2.5-QPL
|
||||
state(0,37,100.000,0,0,0,64,1,0,2,2,0,0,0,0,1,1,'Courier',0,57600,0,0,0,10,0,0,1,1,0,16,0,0,1,1,1,1,1050,1485,1,0,5760,0).
|
||||
%
|
||||
% @(#)$Header$
|
||||
% %W%
|
||||
%
|
||||
unit("1 pixel/pixel").
|
||||
color_info(51,65535,0,[
|
||||
"black", 0, 0, 0, 0, 0, 0, 1,
|
||||
"white", 65535, 65535, 65535, 65535, 65535, 65535, 1,
|
||||
"#F0F0F0", 61680, 61680, 61680, 61440, 61440, 61440, 1,
|
||||
"#C8C8C8", 51400, 51400, 51400, 51200, 51200, 51200, 1,
|
||||
"#505050", 20560, 20560, 20560, 20480, 20480, 20480, 1,
|
||||
"#282828", 10280, 10280, 10280, 10240, 10240, 10240, 1,
|
||||
"#FF0000", 65535, 0, 0, 65280, 0, 0, 1,
|
||||
"#0000FF", 0, 0, 65535, 0, 0, 65280, 1,
|
||||
"#00FF00", 0, 65535, 0, 0, 65280, 0, 1,
|
||||
"#009000", 0, 37008, 0, 0, 36864, 0, 1,
|
||||
"#1F407A", 7967, 16448, 31354, 7936, 16384, 31232, 1,
|
||||
"#3C5A0F", 15420, 23130, 3855, 15360, 23040, 3840, 1,
|
||||
"#0069B4", 0, 26985, 46260, 0, 26880, 46080, 1,
|
||||
"#71791C", 29041, 31097, 7196, 28928, 30976, 7168, 1,
|
||||
"#91056A", 37265, 1285, 27242, 37120, 1280, 27136, 1,
|
||||
"#6F6F6E", 28527, 28527, 28270, 28416, 28416, 28160, 1,
|
||||
"#A8322D", 43176, 12850, 11565, 43008, 12800, 11520, 1,
|
||||
"#007A92", 0, 31354, 37522, 0, 31232, 37376, 1,
|
||||
"#956013", 38293, 24672, 4883, 38144, 24576, 4864, 1,
|
||||
"#82BE1E", 33410, 48830, 7710, 33280, 48640, 7680, 1,
|
||||
"#758fbd", 30069, 36751, 48573, 29952, 36608, 48384, 1,
|
||||
"#8eab63", 36494, 43947, 25443, 36352, 43776, 25344, 1,
|
||||
"#6cacd9", 27756, 44204, 55769, 27648, 44032, 55552, 1,
|
||||
"#b4ba72", 46260, 47802, 29298, 46080, 47616, 29184, 1,
|
||||
"#c967ae", 51657, 26471, 44718, 51456, 26368, 44544, 1,
|
||||
"#b8b8b6", 47288, 47288, 46774, 47104, 47104, 46592, 1,
|
||||
"#d48985", 54484, 35209, 34181, 54272, 35072, 34048, 1,
|
||||
"#65b9c9", 25957, 47545, 51657, 25856, 47360, 51456, 1,
|
||||
"#c9a571", 51657, 42405, 29041, 51456, 42240, 28928, 1,
|
||||
"#bbde81", 48059, 57054, 33153, 47872, 56832, 33024, 1,
|
||||
"#a5b7d6", 42405, 47031, 54998, 42240, 46848, 54784, 1,
|
||||
"#b8cc99", 47288, 52428, 39321, 47104, 52224, 39168, 1,
|
||||
"#a2cbe8", 41634, 52171, 59624, 41472, 51968, 59392, 1,
|
||||
"#d2d6a5", 53970, 54998, 42405, 53760, 54784, 42240, 1,
|
||||
"#de9ecc", 57054, 40606, 52428, 56832, 40448, 52224, 1,
|
||||
"#d4d4d2", 54484, 54484, 53970, 54272, 54272, 53760, 1,
|
||||
"#e6b5b3", 59110, 46517, 46003, 58880, 46336, 45824, 1,
|
||||
"#9bd3de", 39835, 54227, 57054, 39680, 54016, 56832, 1,
|
||||
"#dec6a4", 57054, 50886, 42148, 56832, 50688, 41984, 1,
|
||||
"#d5ebb0", 54741, 60395, 45232, 54528, 60160, 45056, 1,
|
||||
"#b3cde3", 46003, 52685, 58339, 45824, 52480, 58112, 1,
|
||||
"#bae4bc", 47802, 58596, 48316, 47616, 58368, 48128, 1,
|
||||
"#edf8fb", 60909, 63736, 64507, 60672, 63488, 64256, 1,
|
||||
"#ffffcc", 65535, 65535, 52428, 65280, 65280, 52224, 1,
|
||||
"magenta", 65535, 0, 65535, 65535, 0, 65535, 1,
|
||||
"#f0f9e8", 61680, 63993, 59624, 61440, 63744, 59392, 1,
|
||||
"#feebe2", 65278, 60395, 58082, 65024, 60160, 57856, 1,
|
||||
"cyan", 0, 65535, 65535, 0, 65535, 65535, 1,
|
||||
"#fecc5c", 65278, 52428, 23644, 65024, 52224, 23552, 1,
|
||||
"yellow", 65535, 65535, 0, 65535, 65535, 0, 1,
|
||||
"#CCCCCC", 52428, 52428, 52428, 52224, 52224, 52224, 1
|
||||
]).
|
||||
script_frac("0.6").
|
||||
fg_bg_colors('black','white').
|
||||
dont_reencode("FFDingbests:ZapfDingbats").
|
||||
objshadow_info('#c0c0c0',2,2).
|
||||
rotate_pivot(0,0,0,0).
|
||||
spline_tightness(1).
|
||||
page(1,"",1,'').
|
||||
poly('black','',2,[
|
||||
356,160,356,96],0,1,1,257919,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
box('white','',328,160,368,224,1,1,0,257908,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
440,160,440,96],0,1,1,257755,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
396,160,396,96],0,1,1,257753,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
group([
|
||||
poly('#F0F0F0','',6,[
|
||||
118,74,90,60,150,52,197,53,225,56,256,64],0,1,0,257805,1,1,0,0,0,0,0,'1',0,0,
|
||||
"78","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('#F0F0F0','',11,[
|
||||
366,71,375,64,450,65,481,77,481,93,467,100,450,106,416,114,
|
||||
399,118,352,116,321,109],0,1,0,257804,1,1,0,0,0,0,0,'1',0,0,
|
||||
"7fc","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('#F0F0F0','',5,[
|
||||
321,109,312,122,284,130,225,125,214,111],0,1,0,257803,1,1,0,0,0,0,0,'1',0,0,
|
||||
"70","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('#F0F0F0','',6,[
|
||||
214,111,205,123,150,133,87,124,62,110,109,96],0,1,0,257802,1,1,0,0,0,0,0,'1',0,0,
|
||||
"78","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('#F0F0F0','',5,[
|
||||
113,96,40,94,31,80,62,68,123,74],0,1,0,257801,1,1,0,0,0,0,0,'1',0,0,
|
||||
"70","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('#F0F0F0','',6,[
|
||||
256,64,270,57,298,48,352,48,389,63,366,71],0,1,0,257800,1,1,0,0,0,0,0,'1',0,0,
|
||||
"78","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
box('#F0F0F0','',118,64,312,111,1,1,0,257799,0,0,0,0,0,'1',0,[
|
||||
]),
|
||||
box('#F0F0F0','',109,81,164,101,1,1,0,257798,0,0,0,0,0,'1',0,[
|
||||
]),
|
||||
box('#F0F0F0','',307,65,371,110,1,1,0,257797,0,0,0,0,0,'1',0,[
|
||||
])
|
||||
],
|
||||
257796,0,0,[
|
||||
]).
|
||||
box('white','',408,160,448,224,1,1,0,257762,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
box('white','',368,160,408,224,1,1,0,257756,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
box('black','',64,160,448,224,0,1,1,257660,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
text('black',256,173,1,1,1,92,38,257662,31,7,0,0,0,0,-65534,92,38,0,0,"",0,0,0,0,204,'',[
|
||||
minilines(92,38,0,0,1,0,0,[
|
||||
mini_line(92,31,7,0,0,0,[
|
||||
str_block(0,92,31,7,0,-2,0,0,0,[
|
||||
str_seg('black','Helvetica',0,195840,92,31,7,0,-2,0,0,0,0,0,
|
||||
"PCER")])
|
||||
])
|
||||
])]).
|
||||
text('black',448,145,1,1,1,6,13,257665,11,2,0,0,0,0,-65534,6,13,0,0,"",0,0,0,0,156,'',[
|
||||
minilines(6,13,0,0,1,0,0,[
|
||||
mini_line(6,11,2,0,0,0,[
|
||||
str_block(0,6,11,2,0,-1,0,0,0,[
|
||||
str_seg('black','Helvetica',0,57600,6,11,2,0,-1,0,0,0,0,0,
|
||||
"0")])
|
||||
])
|
||||
])]).
|
||||
poly('black','',2,[
|
||||
408,160,408,224],0,1,1,257669,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
368,160,368,224],0,1,1,257670,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
text('black',64,145,1,1,1,12,13,257675,11,2,0,0,0,0,-65534,12,13,0,0,"",0,0,0,0,156,'',[
|
||||
minilines(12,13,0,0,1,0,0,[
|
||||
mini_line(12,11,2,0,0,0,[
|
||||
str_block(0,12,11,2,0,-3,0,0,0,[
|
||||
str_seg('black','Helvetica',0,57600,12,11,2,0,-3,0,0,0,0,0,
|
||||
"31")])
|
||||
])
|
||||
])]).
|
||||
group([
|
||||
poly('black','',4,[
|
||||
416,256,416,240,448,240,448,256],0,1,1,257731,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',2,[
|
||||
424,240,424,224],0,1,1,257730,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',2,[
|
||||
440,240,440,224],0,1,1,257729,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',2,[
|
||||
432,288,432,272],0,1,1,257728,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
arc('black','',0,1,1,0,416,240,432,256,448,256,416,256,1,32,32,0,-11520,257727,0,0,8,3,0,0,0,'1','8','3',0,[
|
||||
])
|
||||
],
|
||||
257726,0,0,[
|
||||
]).
|
||||
group([
|
||||
poly('black','',4,[
|
||||
372,256,372,240,404,240,404,256],0,1,1,257749,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',2,[
|
||||
380,240,380,224],0,1,1,257748,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',2,[
|
||||
396,240,396,224],0,1,1,257747,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',2,[
|
||||
388,288,388,272],0,1,1,257746,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
arc('black','',0,1,1,0,372,240,388,256,404,256,372,256,1,32,32,0,-11520,257745,0,0,8,3,0,0,0,'1','8','3',0,[
|
||||
])
|
||||
],
|
||||
257744,0,0,[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
380,240,380,224],0,1,1,257750,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
424,240,424,224],0,1,1,257752,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
group([
|
||||
poly('black','',6,[
|
||||
119,74,91,60,149,52,196,53,224,56,256,64],0,1,1,257772,1,0,0,0,0,0,0,'1',0,0,
|
||||
"78","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',11,[
|
||||
367,71,374,64,449,65,481,77,481,93,467,100,449,106,416,114,
|
||||
397,118,353,116,321,109],0,1,1,257771,1,0,0,0,0,0,0,'1',0,0,
|
||||
"7fc","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',5,[
|
||||
321,109,312,122,284,130,224,125,214,111],0,1,1,257770,1,0,0,0,0,0,0,'1',0,0,
|
||||
"70","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',6,[
|
||||
214,111,205,123,149,133,87,124,63,110,110,96],0,1,1,257769,1,0,0,0,0,0,0,'1',0,0,
|
||||
"78","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',5,[
|
||||
115,96,41,94,31,80,63,68,124,74],0,1,1,257768,1,0,0,0,0,0,0,'1',0,0,
|
||||
"70","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',6,[
|
||||
256,64,270,57,298,48,353,48,388,63,367,71],0,1,1,257767,1,0,0,0,0,0,0,'1',0,0,
|
||||
"78","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
])
|
||||
],
|
||||
257766,0,0,[
|
||||
]).
|
||||
text('black',256,71,1,1,1,211,38,257895,31,7,0,0,0,0,-65534,211,38,0,0,"",0,0,0,0,102,'',[
|
||||
minilines(211,38,0,0,1,0,0,[
|
||||
mini_line(211,31,7,0,0,0,[
|
||||
str_block(0,211,31,7,0,-1,0,0,0,[
|
||||
str_seg('black','Helvetica',0,195840,211,31,7,0,-1,0,0,0,0,0,
|
||||
"Event Sources")])
|
||||
])
|
||||
])]).
|
||||
poly('black','',2,[
|
||||
368,160,368,224],0,1,1,257909,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
328,160,328,224],0,1,1,257910,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
group([
|
||||
poly('black','',4,[
|
||||
332,256,332,240,364,240,364,256],0,1,1,257916,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',2,[
|
||||
340,240,340,224],0,1,1,257915,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',2,[
|
||||
356,240,356,224],0,1,1,257914,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',2,[
|
||||
348,288,348,272],0,1,1,257913,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
arc('black','',0,1,1,0,332,240,348,256,364,256,332,256,1,32,32,0,-11520,257912,0,0,8,3,0,0,0,'1','8','3',0,[
|
||||
])
|
||||
],
|
||||
257911,0,0,[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
340,240,340,224],0,1,1,257917,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
388,280,388,303],0,1,1,257970,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
440,224,440,160],0,1,1,257990,0,0,1,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
396,224,396,160],0,1,1,257994,0,0,1,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
356,224,356,160],0,1,1,257996,0,0,1,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
group([
|
||||
poly('black','',2,[
|
||||
256,352,256,336],0,1,1,258015,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',2,[
|
||||
440,300,440,308],0,1,1,258014,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',2,[
|
||||
72,300,72,308],0,1,1,258013,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',3,[
|
||||
440,300,256,312,72,300],0,1,1,258012,1,0,0,0,0,0,0,'1',0,0,
|
||||
"4","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',3,[
|
||||
440,308,440,328,256,336],0,1,1,258011,1,0,0,0,0,0,0,'1',0,0,
|
||||
"4","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',3,[
|
||||
72,308,72,328,256,336],0,1,1,258010,1,0,0,0,0,0,0,'1',0,0,
|
||||
"4","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
])
|
||||
],
|
||||
258033,0,0,[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
432,288,432,300],0,1,1,258063,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
348,288,348,304],0,1,1,258065,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
oval('black','',252,252,256,256,1,1,0,258082,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
oval('black','',236,252,240,256,1,1,0,258087,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
oval('black','',220,252,224,256,1,1,0,258088,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
group([
|
||||
polygon('black','',8,[
|
||||
224,416,272,416,280,428,288,416,336,416,304,464,256,464,224,416],0,1,1,0,258093,0,0,0,0,0,'1',0,
|
||||
"00",[
|
||||
]),
|
||||
group([
|
||||
poly('black','',2,[
|
||||
280,440,280,448],0,1,1,258092,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',2,[
|
||||
276,444,284,444],0,1,1,258091,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
])
|
||||
],
|
||||
258090,0,0,[
|
||||
])
|
||||
],
|
||||
258089,0,0,[
|
||||
]).
|
||||
poly('black','',3,[
|
||||
64,184,80,192,64,200],0,1,1,258094,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
group([
|
||||
box('black','',296,496,328,560,0,1,1,258101,0,0,0,0,0,'1',0,[
|
||||
]),
|
||||
poly('black','',3,[
|
||||
308,560,312,552,316,560],0,1,1,258100,0,2,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
])
|
||||
],
|
||||
258099,0,0,[
|
||||
]).
|
||||
poly('black','',3,[
|
||||
280,464,280,512,296,512],0,1,1,258102,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',5,[
|
||||
328,512,360,512,360,400,312,400,312,416],0,1,1,258103,0,0,0,0,0,0,0,'1',0,0,
|
||||
"00","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
text('black',408,594,1,1,1,17,43,258110,14,3,0,0,0,0,-65534,43,17,0,0,"",0,1,0,0,608,'',[
|
||||
408,594,387,594,430,611,-1.83697e-13,-1000,1000,-1.83697e-13,-104,-66,386,593,431,612],[
|
||||
minilines(43,17,0,0,1,0,0,[
|
||||
mini_line(43,14,3,0,0,0,[
|
||||
str_block(0,43,14,3,0,-1,0,0,0,[
|
||||
str_seg('black','Helvetica-Bold',1,80640,43,14,3,0,-1,0,0,0,0,0,
|
||||
"PCCR")])
|
||||
])
|
||||
])]).
|
||||
group([
|
||||
poly('black','',4,[
|
||||
232,384,232,368,264,368,264,384],0,1,1,258128,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',2,[
|
||||
240,368,240,352],0,1,1,258127,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',2,[
|
||||
256,368,256,352],0,1,1,258126,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',2,[
|
||||
248,416,248,400],0,1,1,258125,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
arc('black','',0,1,1,0,232,368,248,384,264,384,232,384,1,32,32,0,-11520,258124,0,0,8,3,0,0,0,'1','8','3',0,[
|
||||
])
|
||||
],
|
||||
258123,0,0,[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
240,352,192,352],0,1,1,258130,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
text('black',212,339,1,1,1,42,11,258131,9,2,0,0,0,0,-65534,42,11,0,0,"",0,0,0,0,348,'',[
|
||||
minilines(42,11,0,0,1,0,0,[
|
||||
mini_line(42,9,2,0,0,0,[
|
||||
str_block(0,42,9,2,0,-2,0,0,0,[
|
||||
str_seg('black','Courier',0,57600,42,9,2,0,-2,0,0,0,0,0,
|
||||
"PCMR[0]")])
|
||||
])
|
||||
])]).
|
695
docs/datasheet/figures_raw/ri5cy_overview.obj
Normal file
695
docs/datasheet/figures_raw/ri5cy_overview.obj
Normal file
|
@ -0,0 +1,695 @@
|
|||
%TGIF 4.2.5-QPL
|
||||
state(0,37,100.000,0,236,2,4,1,9,2,2,1,0,2,0,1,1,'Courier-Bold',1,138240,0,0,0,10,0,1,1,1,0,16,0,0,1,1,1,1,1088,1408,1,0,5760,0).
|
||||
%
|
||||
% @(#)$Header$
|
||||
% %W%
|
||||
%
|
||||
unit("1 pixel/pixel").
|
||||
color_info(56,65535,0,[
|
||||
"black", 0, 0, 0, 0, 0, 0, 1,
|
||||
"white", 65535, 65535, 65535, 65535, 65535, 65535, 1,
|
||||
"#F0F0F0", 61680, 61680, 61680, 61440, 61440, 61440, 1,
|
||||
"#C8C8C8", 51400, 51400, 51400, 51200, 51200, 51200, 1,
|
||||
"#505050", 20560, 20560, 20560, 20480, 20480, 20480, 1,
|
||||
"#282828", 10280, 10280, 10280, 10240, 10240, 10240, 1,
|
||||
"#FF0000", 65535, 0, 0, 65280, 0, 0, 1,
|
||||
"#0000FF", 0, 0, 65535, 0, 0, 65280, 1,
|
||||
"#00FF00", 0, 65535, 0, 0, 65280, 0, 1,
|
||||
"#009000", 0, 37008, 0, 0, 36864, 0, 1,
|
||||
"#1F407A", 7967, 16448, 31354, 7936, 16384, 31232, 1,
|
||||
"#3C5A0F", 15420, 23130, 3855, 15360, 23040, 3840, 1,
|
||||
"#0069B4", 0, 26985, 46260, 0, 26880, 46080, 1,
|
||||
"#71791C", 29041, 31097, 7196, 28928, 30976, 7168, 1,
|
||||
"#91056A", 37265, 1285, 27242, 37120, 1280, 27136, 1,
|
||||
"#6F6F6E", 28527, 28527, 28270, 28416, 28416, 28160, 1,
|
||||
"#A8322D", 43176, 12850, 11565, 43008, 12800, 11520, 1,
|
||||
"#007A92", 0, 31354, 37522, 0, 31232, 37376, 1,
|
||||
"#956013", 38293, 24672, 4883, 38144, 24576, 4864, 1,
|
||||
"#82BE1E", 33410, 48830, 7710, 33280, 48640, 7680, 1,
|
||||
"#758fbd", 30069, 36751, 48573, 29952, 36608, 48384, 1,
|
||||
"#8eab63", 36494, 43947, 25443, 36352, 43776, 25344, 1,
|
||||
"#6cacd9", 27756, 44204, 55769, 27648, 44032, 55552, 1,
|
||||
"#b4ba72", 46260, 47802, 29298, 46080, 47616, 29184, 1,
|
||||
"#c967ae", 51657, 26471, 44718, 51456, 26368, 44544, 1,
|
||||
"#b8b8b6", 47288, 47288, 46774, 47104, 47104, 46592, 1,
|
||||
"#d48985", 54484, 35209, 34181, 54272, 35072, 34048, 1,
|
||||
"#65b9c9", 25957, 47545, 51657, 25856, 47360, 51456, 1,
|
||||
"#c9a571", 51657, 42405, 29041, 51456, 42240, 28928, 1,
|
||||
"#bbde81", 48059, 57054, 33153, 47872, 56832, 33024, 1,
|
||||
"#a5b7d6", 42405, 47031, 54998, 42240, 46848, 54784, 1,
|
||||
"#b8cc99", 47288, 52428, 39321, 47104, 52224, 39168, 1,
|
||||
"#a2cbe8", 41634, 52171, 59624, 41472, 51968, 59392, 1,
|
||||
"#d2d6a5", 53970, 54998, 42405, 53760, 54784, 42240, 1,
|
||||
"#de9ecc", 57054, 40606, 52428, 56832, 40448, 52224, 1,
|
||||
"#d4d4d2", 54484, 54484, 53970, 54272, 54272, 53760, 1,
|
||||
"#e6b5b3", 59110, 46517, 46003, 58880, 46336, 45824, 1,
|
||||
"#9bd3de", 39835, 54227, 57054, 39680, 54016, 56832, 1,
|
||||
"#dec6a4", 57054, 50886, 42148, 56832, 50688, 41984, 1,
|
||||
"#d5ebb0", 54741, 60395, 45232, 54528, 60160, 45056, 1,
|
||||
"#b3cde3", 46003, 52685, 58339, 45824, 52480, 58112, 1,
|
||||
"#bae4bc", 47802, 58596, 48316, 47616, 58368, 48128, 1,
|
||||
"#edf8fb", 60909, 63736, 64507, 60672, 63488, 64256, 1,
|
||||
"#ffffcc", 65535, 65535, 52428, 65280, 65280, 52224, 1,
|
||||
"magenta", 65535, 0, 65535, 65535, 0, 65535, 1,
|
||||
"#f0f9e8", 61680, 63993, 59624, 61440, 63744, 59392, 1,
|
||||
"#feebe2", 65278, 60395, 58082, 65024, 60160, 57856, 1,
|
||||
"cyan", 0, 65535, 65535, 0, 65535, 65535, 1,
|
||||
"#fecc5c", 65278, 52428, 23644, 65024, 52224, 23552, 1,
|
||||
"yellow", 65535, 65535, 0, 65535, 65535, 0, 1,
|
||||
"red", 65535, 0, 0, 65535, 0, 0, 1,
|
||||
"green", 0, 65535, 0, 0, 65535, 0, 1,
|
||||
"blue", 0, 0, 65535, 0, 0, 65535, 1,
|
||||
"pink", 65535, 49344, 52171, 65535, 49344, 52171, 1,
|
||||
"CadetBlue", 24415, 40606, 41120, 24415, 40606, 41120, 1,
|
||||
"DarkSlateGray", 12079, 20303, 20303, 12079, 20303, 20303, 1
|
||||
]).
|
||||
script_frac("0.6").
|
||||
fg_bg_colors('#009000','white').
|
||||
dont_reencode("FFDingbests:ZapfDingbats").
|
||||
objshadow_info('#c0c0c0',2,2).
|
||||
rotate_pivot(0,0,0,0).
|
||||
spline_tightness(1).
|
||||
page(1,"",1,'').
|
||||
poly('#009000','',3,[
|
||||
944,432,952,420,960,432],0,1,1,287150,0,2,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',5,[
|
||||
416,488,416,400,120,400,120,368,136,368],1,1,1,286660,0,0,0,0,0,0,0,'1',0,0,
|
||||
"00","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
box('#91056A','',560,256,592,608,0,2,1,283031,0,0,0,0,0,'2',0,[
|
||||
]).
|
||||
text('black',566,415,2,0,1,20,34,283032,14,3,0,0,0,0,2,20,34,0,0,"",0,0,0,0,429,'',[
|
||||
minilines(20,34,0,0,0,0,0,[
|
||||
mini_line(20,14,3,0,0,0,[
|
||||
str_block(0,20,14,3,0,-1,0,0,0,[
|
||||
str_seg('#91056A','Courier-Bold',1,97920,20,14,3,0,-1,0,0,0,0,0,
|
||||
"ID")])
|
||||
]),
|
||||
mini_line(20,14,3,0,0,0,[
|
||||
str_block(0,20,14,3,0,0,0,0,0,[
|
||||
str_seg('#91056A','Courier-Bold',1,97920,20,14,3,0,0,0,0,0,0,0,
|
||||
"EX")])
|
||||
])
|
||||
])]).
|
||||
box('#91056A','',224,256,256,608,0,2,1,283037,0,0,0,0,0,'2',0,[
|
||||
]).
|
||||
text('black',230,415,2,0,1,20,34,283038,14,3,0,0,0,0,2,20,34,0,0,"",0,0,0,0,429,'',[
|
||||
minilines(20,34,0,0,0,0,0,[
|
||||
mini_line(20,14,3,0,0,0,[
|
||||
str_block(0,20,14,3,0,-1,0,0,0,[
|
||||
str_seg('#91056A','Courier-Bold',1,97920,20,14,3,0,-1,0,0,0,0,0,
|
||||
"IF")])
|
||||
]),
|
||||
mini_line(20,14,3,0,0,0,[
|
||||
str_block(0,20,14,3,0,-1,0,0,0,[
|
||||
str_seg('#91056A','Courier-Bold',1,97920,20,14,3,0,-1,0,0,0,0,0,
|
||||
"ID")])
|
||||
])
|
||||
])]).
|
||||
box('#91056A','',856,256,888,608,0,2,1,283042,0,0,0,0,0,'2',0,[
|
||||
]).
|
||||
text('black',862,415,2,0,1,20,34,283043,14,3,0,0,0,0,2,20,34,0,0,"",0,0,0,0,429,'',[
|
||||
minilines(20,34,0,0,0,0,0,[
|
||||
mini_line(20,14,3,0,0,0,[
|
||||
str_block(0,20,14,3,0,0,0,0,0,[
|
||||
str_seg('#91056A','Courier-Bold',1,97920,20,14,3,0,0,0,0,0,0,0,
|
||||
"EX")])
|
||||
]),
|
||||
mini_line(20,14,3,0,0,0,[
|
||||
str_block(0,20,14,3,0,-1,0,0,0,[
|
||||
str_seg('#91056A','Courier-Bold',1,97920,20,14,3,0,-1,0,0,0,0,0,
|
||||
"WB")])
|
||||
])
|
||||
])]).
|
||||
poly('#009000','',3,[
|
||||
344,576,352,564,360,576],0,1,1,283046,0,2,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
text('black',352,424,1,1,1,53,29,283047,24,5,0,0,0,0,2,53,29,0,0,"",0,0,0,0,448,'',[
|
||||
minilines(53,29,0,0,1,0,0,[
|
||||
mini_line(53,24,5,0,0,0,[
|
||||
str_block(0,53,24,5,0,-1,0,0,0,[
|
||||
str_seg('#009000','Helvetica-Bold',1,144000,53,24,5,0,-1,0,0,0,0,0,
|
||||
"GPR")])
|
||||
])
|
||||
])]).
|
||||
rcbox('#758fbd','',656,328,752,424,0,2,1,0,10,283054,0,0,0,0,'2',0,[
|
||||
]).
|
||||
text('black',704,346,1,1,1,52,29,283056,24,5,0,0,0,0,2,52,29,0,0,"",0,0,0,0,370,'',[
|
||||
minilines(52,29,0,0,1,0,0,[
|
||||
mini_line(52,24,5,0,0,0,[
|
||||
str_block(0,52,24,5,0,-2,0,0,0,[
|
||||
str_seg('#758fbd','Helvetica-Bold',1,144000,52,24,5,0,-2,0,0,0,0,0,
|
||||
"ALU")])
|
||||
])
|
||||
])]).
|
||||
rcbox('#758fbd','',656,472,752,568,0,2,1,0,10,283062,0,0,0,0,'2',0,[
|
||||
]).
|
||||
text('black',668,483,2,0,1,72,58,283063,24,5,0,0,0,0,2,72,58,0,0,"",0,0,0,0,507,'',[
|
||||
minilines(72,58,0,0,0,0,0,[
|
||||
mini_line(72,24,5,0,0,0,[
|
||||
str_block(0,72,24,5,0,0,0,0,0,[
|
||||
str_seg('#758fbd','Helvetica-Bold',1,144000,72,24,5,0,0,0,0,0,0,0,
|
||||
"MULT")])
|
||||
]),
|
||||
mini_line(59,24,5,0,0,0,[
|
||||
str_block(0,59,24,5,0,-1,0,0,0,[
|
||||
str_seg('#758fbd','Helvetica-Bold',1,144000,59,24,5,0,-1,0,0,0,0,0,
|
||||
"MAC")])
|
||||
])
|
||||
])]).
|
||||
rcbox('#009000','',920,320,984,432,0,2,1,0,10,283068,0,0,0,0,'2',0,[
|
||||
]).
|
||||
text('black',952,326,1,1,1,51,29,283070,24,5,0,0,0,0,2,51,29,0,0,"",0,0,0,0,350,'',[
|
||||
minilines(51,29,0,0,1,0,0,[
|
||||
mini_line(51,24,5,0,0,0,[
|
||||
str_block(0,51,24,5,0,-1,0,0,0,[
|
||||
str_seg('#009000','Helvetica-Bold',1,138240,51,24,5,0,-1,0,0,0,0,0,
|
||||
"SPR")])
|
||||
])
|
||||
])]).
|
||||
poly('#91056A','',3,[
|
||||
868,608,872,597,876,608],0,2,1,286287,0,2,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
poly('#91056A','',3,[
|
||||
572,608,576,597,580,608],0,2,1,286289,0,2,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
poly('#91056A','',3,[
|
||||
236,608,240,597,244,608],0,2,1,286290,0,2,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
poly('black','',3,[
|
||||
108,512,112,504,116,512],0,1,1,286295,0,2,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
text('black',112,456,1,1,1,16,15,286296,12,3,0,0,0,0,2,16,15,0,0,"",0,0,0,0,468,'',[
|
||||
minilines(16,15,0,0,1,0,0,[
|
||||
mini_line(16,12,3,0,0,0,[
|
||||
str_block(0,16,12,3,0,0,0,0,0,[
|
||||
str_seg('black','Helvetica-Bold',1,69120,16,12,3,0,0,0,0,0,0,0,
|
||||
"PC")])
|
||||
])
|
||||
])]).
|
||||
box('black','',96,448,128,512,0,1,1,286297,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
polygon('black','',5,[
|
||||
512,312,528,328,528,376,512,392,512,312],0,1,1,0,286311,0,0,0,0,0,'1',1,
|
||||
"00",[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
592,352,656,352],1,1,1,286322,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
592,376,656,376],1,1,1,286323,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',3,[
|
||||
640,360,640,488,656,488],1,1,1,286324,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',3,[
|
||||
624,376,624,504,656,504],1,1,1,286325,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
oval('black','',622,374,626,378,1,1,1,286326,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
oval('black','',638,350,642,354,1,1,1,286327,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
polygon('black','',5,[
|
||||
848,288,864,304,864,336,848,352,848,288],0,1,1,0,286331,0,0,0,1,0,'1',1,
|
||||
"00",[
|
||||
848,288,848,288,864,352,-1.83697e-13,-1000,1000,-1.83697e-13,-96,-32],[
|
||||
]).
|
||||
poly('black','',4,[
|
||||
640,360,640,304,768,304,768,256],1,1,1,286341,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
784,240,784,192],1,1,1,286345,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
text('black',784,170,1,1,1,40,17,286346,14,3,0,0,0,0,2,40,17,0,0,"",0,0,0,0,184,'',[
|
||||
minilines(40,17,0,0,1,0,0,[
|
||||
mini_line(40,14,3,0,0,0,[
|
||||
str_block(0,40,14,3,0,-1,0,0,0,[
|
||||
str_seg('#0069B4','Courier-Bold',1,97920,40,14,3,0,-1,0,0,0,0,0,
|
||||
"addr")])
|
||||
])
|
||||
])]).
|
||||
polygon('black','',5,[
|
||||
136,320,152,336,152,368,136,384,136,320],0,1,1,0,286351,0,0,0,0,0,'1',1,
|
||||
"00",[
|
||||
]).
|
||||
poly('black','',3,[
|
||||
152,352,168,352,168,192],1,1,1,286352,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
text('black',148,170,1,1,1,40,17,286355,14,3,0,0,0,0,2,40,17,0,0,"",0,0,0,0,184,'',[
|
||||
minilines(40,17,0,0,1,0,0,[
|
||||
mini_line(40,14,3,0,0,0,[
|
||||
str_block(0,40,14,3,0,-1,0,0,0,[
|
||||
str_seg('#0069B4','Courier-Bold',1,97920,40,14,3,0,-1,0,0,0,0,0,
|
||||
"addr")])
|
||||
])
|
||||
])]).
|
||||
polygon('black','',5,[
|
||||
512,408,528,424,528,456,512,472,512,408],0,1,1,0,286360,0,0,0,0,0,'1',1,
|
||||
"00",[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
528,352,560,352],1,1,1,286361,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',4,[
|
||||
560,376,544,376,544,440,528,440],2,1,1,286362,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
528,568,560,568],1,1,1,286374,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',3,[
|
||||
904,192,904,272,920,272],1,1,1,286380,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
888,368,920,368],1,1,1,286382,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',4,[
|
||||
984,352,1000,352,1000,288,1016,288],1,1,1,286383,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',6,[
|
||||
1032,280,1048,280,1048,640,272,640,272,504,304,504],1,1,1,286388,0,0,0,0,0,0,0,'1',0,0,
|
||||
"00","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
polygon('black','',5,[
|
||||
808,592,824,608,824,640,808,656,808,592],0,1,1,0,286390,0,0,0,1,0,'1',1,
|
||||
"00",[
|
||||
808,592,808,592,824,656,6.12323e-14,1000,-1000,6.12323e-14,8,-8],[
|
||||
]).
|
||||
poly('black','',3,[
|
||||
752,504,768,504,768,584],1,1,1,286395,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
800,504,800,584],1,1,1,286396,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
text('black',912,170,1,1,1,50,17,286404,14,3,0,0,0,0,2,50,17,0,0,"",0,0,0,0,184,'',[
|
||||
minilines(50,17,0,0,1,0,0,[
|
||||
mini_line(50,14,3,0,0,0,[
|
||||
str_block(0,50,14,3,0,-1,0,0,0,[
|
||||
str_seg('#0069B4','Courier-Bold',1,97920,50,14,3,0,-1,0,0,0,0,0,
|
||||
"rdata")])
|
||||
])
|
||||
])]).
|
||||
oval('black','',798,366,802,370,1,1,1,286407,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
poly('black','',5,[
|
||||
784,600,784,624,288,624,288,528,304,528],1,1,1,286409,0,0,0,0,0,0,0,'1',0,0,
|
||||
"00","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',4,[
|
||||
400,448,448,448,448,352,512,352],1,1,1,286410,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',4,[
|
||||
400,488,464,488,464,432,512,432],1,1,1,286411,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
400,552,512,552],1,1,1,286412,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
oval('black','',166,350,170,354,1,1,1,286416,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
rcbox('black','',304,320,400,376,0,2,1,0,10,286419,0,0,0,0,'2',0,[
|
||||
]).
|
||||
text('black',352,329,1,1,1,71,23,286420,18,5,0,0,0,0,2,71,23,0,0,"",0,0,0,0,347,'',[
|
||||
minilines(71,23,0,0,1,0,0,[
|
||||
mini_line(71,18,5,0,0,0,[
|
||||
str_block(0,71,18,5,0,-1,0,0,0,[
|
||||
str_seg('black','Helvetica-Bold',1,115200,71,18,5,0,-1,0,0,0,0,0,
|
||||
"Decode")])
|
||||
])
|
||||
])]).
|
||||
poly('DarkSlateGray','',2,[
|
||||
400,336,512,336],1,1,1,286429,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('DarkSlateGray','',4,[
|
||||
400,352,432,352,432,416,512,416],1,1,1,286430,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('CadetBlue','',3,[
|
||||
496,624,496,368,512,368],1,1,1,286450,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('CadetBlue','',2,[
|
||||
496,448,512,448],1,1,1,286451,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('CadetBlue','',2,[
|
||||
496,568,512,568],1,1,1,286452,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('CadetBlue','',3,[
|
||||
480,640,480,384,512,384],1,1,1,286453,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('CadetBlue','',2,[
|
||||
480,464,512,464],1,1,1,286454,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('CadetBlue','',2,[
|
||||
480,584,512,584],1,1,1,286455,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
text('black',840,170,1,1,1,50,17,286468,14,3,0,0,0,0,2,50,17,0,0,"",0,0,0,0,184,'',[
|
||||
minilines(50,17,0,0,1,0,0,[
|
||||
mini_line(50,14,3,0,0,0,[
|
||||
str_block(0,50,14,3,0,-1,0,0,0,[
|
||||
str_seg('#0069B4','Courier-Bold',1,97920,50,14,3,0,-1,0,0,0,0,0,
|
||||
"wdata")])
|
||||
])
|
||||
])]).
|
||||
oval('CadetBlue','',478,462,482,466,1,1,1,286512,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
oval('CadetBlue','',478,582,482,586,1,1,1,286513,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
oval('CadetBlue','',494,446,498,450,1,1,1,286514,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
oval('CadetBlue','',494,566,498,570,1,1,1,286515,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
oval('CadetBlue','',494,622,498,626,1,1,1,286517,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
oval('CadetBlue','',478,638,482,642,1,1,1,286518,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
polygon('black','',5,[
|
||||
512,480,528,496,528,512,512,528,512,480],0,1,1,0,286520,0,0,0,0,0,'1',1,
|
||||
"00",[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
464,488,512,488],1,1,1,286530,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('CadetBlue','',2,[
|
||||
496,504,512,504],1,1,1,286531,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('CadetBlue','',2,[
|
||||
480,520,512,520],1,1,1,286532,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
polygon('black','',5,[
|
||||
512,544,528,560,528,576,512,592,512,544],0,1,1,0,286537,0,0,0,0,0,'1',1,
|
||||
"00",[
|
||||
]).
|
||||
oval('CadetBlue','',494,502,498,506,1,1,1,286539,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
oval('CadetBlue','',478,518,482,522,1,1,1,286540,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
oval('black','',462,486,466,490,1,1,1,286541,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
poly('black','',4,[
|
||||
592,568,624,568,624,520,656,520],1,1,1,286550,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
800,368,800,256],1,1,1,286555,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
800,368,856,368],1,1,1,286559,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',3,[
|
||||
752,368,800,368,800,504],0,1,1,286561,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',3,[
|
||||
192,192,192,344,224,344],1,1,1,286566,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
text('black',216,170,1,1,1,50,17,286569,14,3,0,0,0,0,2,50,17,0,0,"",0,0,0,0,184,'',[
|
||||
minilines(50,17,0,0,1,0,0,[
|
||||
mini_line(50,14,3,0,0,0,[
|
||||
str_block(0,50,14,3,0,-1,0,0,0,[
|
||||
str_seg('#0069B4','Courier-Bold',1,97920,50,14,3,0,-1,0,0,0,0,0,
|
||||
"rdata")])
|
||||
])
|
||||
])]).
|
||||
poly('black','',3,[
|
||||
168,344,168,480,128,480],1,1,1,286574,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',3,[
|
||||
32,480,32,272,224,272],1,1,1,286577,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
256,272,320,272],1,1,1,286578,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
polygon('black','',5,[
|
||||
320,240,336,256,336,272,320,288,320,240],0,1,1,0,286584,0,0,0,0,0,'1',1,
|
||||
"00",[
|
||||
]).
|
||||
poly('black','',4,[
|
||||
336,264,448,264,448,320,512,320],1,1,1,286587,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
oval('black','',206,270,210,274,1,1,1,286591,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
256,344,304,344],1,1,1,286592,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
64,416,52,416],2,1,1,286598,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
text('black',44,408,1,1,1,13,15,286599,12,3,0,0,0,0,2,13,15,0,0,"",0,0,0,0,420,'',[
|
||||
minilines(13,15,0,0,1,0,0,[
|
||||
mini_line(13,12,3,0,0,0,[
|
||||
str_block(0,13,12,3,0,-1,0,0,0,[
|
||||
str_seg('black','Helvetica',0,69120,13,12,3,0,-1,0,0,0,0,0,
|
||||
"'4'")])
|
||||
])
|
||||
])]).
|
||||
group([
|
||||
polygon('black','',8,[
|
||||
88,412,64,424,64,404,72,400,64,396,64,376,88,388,88,412],0,1,1,0,286597,0,0,0,0,0,'1',0,
|
||||
"00",[
|
||||
]),
|
||||
group([
|
||||
poly('black','',2,[
|
||||
80,396,80,404],0,1,1,286596,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',2,[
|
||||
84,400,76,400],0,1,1,286595,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
])
|
||||
],
|
||||
286594,0,0,[
|
||||
])
|
||||
],
|
||||
286624,0,0,[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
88,336,136,336],1,1,1,286629,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
32,384,64,384],1,1,1,286630,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('DarkSlateGray','',5,[
|
||||
432,352,432,304,48,304,48,320,64,320],1,1,1,286661,0,0,0,0,0,0,0,'1',0,0,
|
||||
"00","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
oval('DarkSlateGray','',430,350,434,354,1,1,1,286664,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
oval('black','',414,486,418,490,1,1,1,286668,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
oval('black','',30,382,34,386,1,1,1,286705,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
rcbox('#0069B4','',752,136,960,192,0,1,1,0,16,286710,0,0,0,0,'1',0,[
|
||||
]).
|
||||
rcbox('#0069B4','',56,136,264,192,0,1,1,0,16,286711,0,0,0,0,'1',0,[
|
||||
]).
|
||||
text('black',160,142,1,1,1,181,23,286715,18,5,0,0,0,0,2,181,23,0,0,"",0,0,0,0,160,'',[
|
||||
minilines(181,23,0,0,1,0,0,[
|
||||
mini_line(181,18,5,0,0,0,[
|
||||
str_block(0,181,18,5,0,-1,0,0,0,[
|
||||
str_seg('#0069B4','Helvetica-Bold',1,115200,181,18,5,0,-1,0,0,0,0,0,
|
||||
"Instruction Interface")])
|
||||
])
|
||||
])]).
|
||||
text('black',856,142,1,1,1,127,23,286718,18,5,0,0,0,0,2,127,23,0,0,"",0,0,0,0,160,'',[
|
||||
minilines(127,23,0,0,1,0,0,[
|
||||
mini_line(127,18,5,0,0,0,[
|
||||
str_block(0,127,18,5,0,-1,0,0,0,[
|
||||
str_seg('#0069B4','Helvetica-Bold',1,115200,127,18,5,0,-1,0,0,0,0,0,
|
||||
"Data Interface")])
|
||||
])
|
||||
])]).
|
||||
poly('black','',4,[
|
||||
560,456,544,456,544,504,528,504],2,1,1,286728,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
832,456,856,456],0,1,1,286732,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',4,[
|
||||
888,456,904,456,904,392,920,392],1,1,1,286733,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
oval('black','',830,454,834,458,1,1,1,286735,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
box('black','',16,224,1064,656,0,1,1,286736,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
text('black',32,601,1,0,1,109,38,286739,31,7,0,0,0,0,-65534,109,38,0,0,"",0,0,0,0,632,'',[
|
||||
minilines(109,38,0,0,0,0,0,[
|
||||
mini_line(109,31,7,0,0,0,[
|
||||
str_block(0,109,31,7,0,-3,0,0,0,[
|
||||
str_seg('black','Helvetica-Bold',1,195840,109,31,7,0,-3,0,0,0,0,0,
|
||||
"OR10N")])
|
||||
])
|
||||
])]).
|
||||
rcbox('black','',920,248,984,296,0,2,1,0,10,286743,0,0,0,0,'2',0,[
|
||||
]).
|
||||
text('black',952,256,1,1,1,51,29,286745,24,5,0,0,0,0,2,51,29,0,0,"",0,0,0,0,280,'',[
|
||||
minilines(51,29,0,0,1,0,0,[
|
||||
mini_line(51,24,5,0,0,0,[
|
||||
str_block(0,51,24,5,0,-2,0,0,0,[
|
||||
str_seg('black','Helvetica-Bold',1,138240,51,24,5,0,-2,0,0,0,0,0,
|
||||
"LSU")])
|
||||
])
|
||||
])]).
|
||||
poly('black','',2,[
|
||||
984,272,1016,272],1,1,1,286751,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
polygon('black','',5,[
|
||||
1016,256,1032,272,1032,288,1016,304,1016,256],0,1,1,0,286756,0,0,0,0,0,'1',1,
|
||||
"00",[
|
||||
]).
|
||||
poly('black','',5,[
|
||||
208,272,208,240,272,240,272,256,320,256],1,1,1,286772,0,0,0,0,0,0,0,'1',0,0,
|
||||
"00","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
group([
|
||||
polygon('black','',8,[
|
||||
88,348,64,360,64,340,72,336,64,332,64,312,88,324,88,348],0,1,1,0,286804,0,0,0,0,0,'1',0,
|
||||
"00",[
|
||||
]),
|
||||
group([
|
||||
poly('black','',2,[
|
||||
80,332,80,340],0,1,1,286803,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]),
|
||||
poly('black','',2,[
|
||||
84,336,76,336],0,1,1,286802,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
])
|
||||
],
|
||||
286801,0,0,[
|
||||
])
|
||||
],
|
||||
286800,0,0,[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
32,352,64,352],1,1,1,286807,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
oval('black','',30,350,34,354,1,1,1,286809,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
poly('black','',4,[
|
||||
88,400,104,400,104,352,136,352],1,1,1,286810,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
32,480,96,480],0,1,1,287106,0,1,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',3,[
|
||||
592,456,832,456,832,192],0,1,1,287124,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
rcbox('#009000','',304,416,400,576,0,2,1,0,10,283045,0,0,0,0,'2',0,[
|
||||
]).
|
107
docs/datasheet/preamble/preamble.tex
Normal file
107
docs/datasheet/preamble/preamble.tex
Normal file
|
@ -0,0 +1,107 @@
|
|||
% Determines the input encoding.
|
||||
\usepackage[%
|
||||
utf8,
|
||||
% latin1
|
||||
]{inputenc}
|
||||
|
||||
% ---------------------------------------------------------------------
|
||||
|
||||
% Determines the output encoding.
|
||||
\usepackage[T1]{fontenc}
|
||||
|
||||
% ---------------------------------------------------------------------
|
||||
|
||||
% Determines language settings.
|
||||
\usepackage[%
|
||||
english % You may change this to 'ngerman' in order to write a
|
||||
% german report.
|
||||
]{babel}
|
||||
|
||||
% Provides stretchable tables.
|
||||
\usepackage{tabularx}
|
||||
|
||||
% Provides image loading.
|
||||
\usepackage{graphicx}
|
||||
|
||||
% ---------------------------------------------------------------------
|
||||
|
||||
% Provides the algorithm environment
|
||||
\usepackage[ruled,%
|
||||
linesnumbered]{algorithm2e}
|
||||
|
||||
% ---------------------------------------------------------------------
|
||||
|
||||
% Provides simple line spacings.
|
||||
\usepackage{setspace}
|
||||
|
||||
% ---------------------------------------------------------------------
|
||||
|
||||
% Provides colors in LaTeX.
|
||||
\usepackage{xcolor}
|
||||
|
||||
% ---------------------------------------------------------------------
|
||||
|
||||
% Provides nicer tables than the standard tables.
|
||||
\usepackage{booktabs}
|
||||
|
||||
\usepackage{float}
|
||||
\usepackage{listings}
|
||||
\usepackage{amsmath}
|
||||
|
||||
%\usepackage{caption}
|
||||
\usepackage{bytefield}
|
||||
|
||||
\usepackage{fullpage}
|
||||
|
||||
\usepackage{enumitem}
|
||||
|
||||
|
||||
\usepackage{tikz-timing}[2009/05/15]
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%%%%% %
|
||||
%%%%% Custom Macros %
|
||||
%%%%% %
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% Create an inline command for shell commands.
|
||||
\newcommand{\shell}[1]{\texttt{#1}}
|
||||
|
||||
% Create an enviroment for a shell commands.
|
||||
\newenvironment{shellenv}%
|
||||
{\VerbatimEnvironment%
|
||||
\begin{Sbox}\begin{minipage}{0.97\textwidth}\begin{Verbatim}%
|
||||
}%
|
||||
{\end{Verbatim}\end{minipage}\end{Sbox}%
|
||||
\setlength{\fboxsep}{6pt}\shadowbox{\TheSbox}}%
|
||||
|
||||
% Create an inline command for files.
|
||||
\newcommand{\file}[1]{\texttt{#1}}
|
||||
|
||||
% Create a command for command parameters.
|
||||
\newcommand{\parameter}[1]{$<$#1$>$}
|
||||
|
||||
\newcommand{\instr}[1]{\texttt{#1}}
|
||||
|
||||
|
||||
\definecolor{lightGray}{RGB}{240,240,240}
|
||||
|
||||
\lstnewenvironment{instrenv}{\lstset{backgroundcolor=\color{lightGray},frame=single,basicstyle=\ttfamily}}{}
|
||||
|
||||
\newcommand{\orion}{\textsc{Or10n}\xspace}
|
||||
\newcommand{\riscv}{\mbox{RISC-V}\xspace}
|
||||
\newcommand{\rvcore}{\textsc{RI5CY}\xspace}
|
||||
\newcommand{\pulpino}{\textsc{PULPino}\xspace}
|
||||
\newcommand{\pulp}{\textsc{PULP}\xspace}
|
||||
|
||||
\newcommand\signal[1]{{\ttfamily\bfseries #1}}
|
||||
|
||||
\newcommand\sprDesc[4]{%
|
||||
\textbf{SPR Address:} \texttt{#1}\\%
|
||||
\textbf{Reset Value:} \texttt{#2}\\%
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
#4
|
||||
\caption{#3}
|
||||
\end{figure}}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue