Remove latex template from repository

This commit is contained in:
Matt Guthaus 2016-11-28 16:09:33 -08:00
parent 58b8bac845
commit 155abb991d
51 changed files with 0 additions and 15661 deletions

View File

@ -1,10 +0,0 @@
.DS_Store
*.bak
openram.pdf
main.aux
main.bbl
main.blg
main.log
main.out
main.pdf
main.synctex.gz

Binary file not shown.

View File

@ -1,11 +0,0 @@
#To create a PDF version of the paper, named: openram.pdf,
#use this command: ./t.sh
#
#This script is used to correctly setup the references/bib
#for the paper and uses pdflatex to create the PDF.
#
#DEBUGGING:
#If the generation of the PDF failed, read the error messages
#and line numbers and use these keyboard commands to get out
#of the current error messages: Ctrl+D

View File

@ -1,14 +0,0 @@
\begin{abstract}
Computer systems research is often inhibited by the availability of
memory designs. Existing Process Design Kits (PDKs) frequently lack
memory compilers, while expensive commercial solutions only provide
memory models with immutable cells, limited configurations, and
restrictive licenses. Manually creating memories can be time consuming
and tedious and the designs are usually inflexible. This paper
introduces OpenRAM, an open-source memory compiler, that provides a
platform for the generation, characterization, and verification of
fabricable memory designs across various technologies, sizes, and
configurations. It enables research in computer architecture,
system-on-chip design, memory circuit and device research, and
computer-\allowbreak aided design.
\end{abstract}

View File

@ -1,7 +0,0 @@
\section{Acknowledgments}
\label{sec:acknowledgements}
This material is based upon work supported by the National Science
Foundation under Grant No. CNS-1205685 and CNS-1205493. Many students
have contributed to the project throughout their studies including
Jeff Butera, Tom Golubev, Seokjoong Kim, Matthew Gaalswyk, and Son
Bui.

File diff suppressed because it is too large Load Diff

View File

@ -1,221 +0,0 @@
%%
%% This is file `acmcopyright.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% acmcopyright.dtx (with options: `style')
%%
%% IMPORTANT NOTICE:
%%
%% For the copyright see the source file.
%%
%% Any modified versions of this file must be renamed
%% with new filenames distinct from acmcopyright.sty.
%%
%% For distribution of the original source see the terms
%% for copying and modification in the file acmcopyright.dtx.
%%
%% This generated file may be distributed as long as the
%% original source files, as listed above, are part of the
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%% Digits \0\1\2\3\4\5\6\7\8\9
%% Exclamation \! Double quote \" Hash (number) \#
%% Dollar \$ Percent \% Ampersand \&
%% Acute accent \' Left paren \( Right paren \)
%% Asterisk \* Plus \+ Comma \,
%% Minus \- Point \. Solidus \/
%% Colon \: Semicolon \; Less than \<
%% Equals \= Greater than \> Question mark \?
%% Commercial at \@ Left bracket \[ Backslash \\
%% Right bracket \] Circumflex \^ Underscore \_
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{acmcopyright}
[2014/06/29 v1.2 Copyright statemens for ACM classes]
\newif\if@printcopyright
\@printcopyrighttrue
\newif\if@printpermission
\@printpermissiontrue
\newif\if@acmowned
\@acmownedtrue
\RequirePackage{xkeyval}
\define@choicekey*{ACM@}{acmcopyrightmode}[%
\acm@copyrightinput\acm@copyrightmode]{none,acmcopyright,acmlicensed,%
rightsretained,usgov,usgovmixed,cagov,cagovmixed,%
licensedusgovmixed,licensedcagovmixed,othergov,licensedothergov}{%
\@printpermissiontrue
\@printcopyrighttrue
\@acmownedtrue
\ifnum\acm@copyrightmode=0\relax % none
\@printpermissionfalse
\@printcopyrightfalse
\@acmownedfalse
\fi
\ifnum\acm@copyrightmode=2\relax % acmlicensed
\@acmownedfalse
\fi
\ifnum\acm@copyrightmode=3\relax % rightsretained
\@acmownedfalse
\fi
\ifnum\acm@copyrightmode=4\relax % usgov
\@printpermissiontrue
\@printcopyrightfalse
\@acmownedfalse
\fi
\ifnum\acm@copyrightmode=6\relax % cagov
\@acmownedfalse
\fi
\ifnum\acm@copyrightmode=8\relax % licensedusgovmixed
\@acmownedfalse
\fi
\ifnum\acm@copyrightmode=9\relax % licensedcagovmixed
\@acmownedfalse
\fi
\ifnum\acm@copyrightmode=10\relax % othergov
\@acmownedtrue
\fi
\ifnum\acm@copyrightmode=11\relax % licensedothergov
\@acmownedfalse
\@printcopyrightfalse
\fi}
\def\setcopyright#1{\setkeys{ACM@}{acmcopyrightmode=#1}}
\setcopyright{acmcopyright}
\def\@copyrightowner{%
\ifcase\acm@copyrightmode\relax % none
\or % acmcopyright
ACM.
\or % acmlicensed
Copyright held by the owner/author(s). Publication rights licensed to
ACM.
\or % rightsretained
Copyright held by the owner/author(s).
\or % usgov
\or % usgovmixed
ACM.
\or % cagov
Crown in Right of Canada.
\or %cagovmixed
ACM.
\or %licensedusgovmixed
Copyright held by the owner/author(s). Publication rights licensed to
ACM.
\or %licensedcagovmixed
Copyright held by the owner/author(s). Publication rights licensed to
ACM.
\or % othergov
ACM.
\or % licensedothergov
\fi}
\def\@copyrightpermission{%
\ifcase\acm@copyrightmode\relax % none
\or % acmcopyright
Permission to make digital or hard copies of all or part of this
work for personal or classroom use is granted without fee provided
that copies are not made or distributed for profit or commercial
advantage and that copies bear this notice and the full citation on
the first page. Copyrights for components of this work owned by
others than ACM must be honored. Abstracting with credit is
permitted. To copy otherwise, or republish, to post on servers or to
redistribute to lists, requires prior specific permission
and\hspace*{.5pt}/or a fee. Request permissions from
permissions@acm.org.
\or % acmlicensed
Permission to make digital or hard copies of all or part of this
work for personal or classroom use is granted without fee provided
that copies are not made or distributed for profit or commercial
advantage and that copies bear this notice and the full citation on
the first page. Copyrights for components of this work owned by
others than the author(s) must be honored. Abstracting with credit
is permitted. To copy otherwise, or republish, to post on servers
or to redistribute to lists, requires prior specific permission
and\hspace*{.5pt}/or a fee. Request permissions from
permissions@acm.org.
\or % rightsretained
Permission to make digital or hard copies of part or all of this work
for personal or classroom use is granted without fee provided that
copies are not made or distributed for profit or commercial advantage
and that copies bear this notice and the full citation on the first
page. Copyrights for third-party components of this work must be
honored. For all other uses, contact the
owner\hspace*{.5pt}/author(s).
\or % usgov
This paper is authored by an employee(s) of the United States
Government and is in the public domain. Non-exclusive copying or
redistribution is allowed, provided that the article citation is
given and the authors and agency are clearly identified as its
source.
\or % usgovmixed
ACM acknowledges that this contribution was authored or co-authored
by an employee, or contractor of the national government. As such,
the Government retains a nonexclusive, royalty-free right to
publish or reproduce this article, or to allow others to do so, for
Government purposes only. Permission to make digital or hard copies
for personal or classroom use is granted. Copies must bear this
notice and the full citation on the first page. Copyrights for
components of this work owned by others than ACM must be
honored. To copy otherwise, distribute, republish, or post,
requires prior specific permission and\hspace*{.5pt}/or a
fee. Request permissions from permissions@acm.org.
\or % cagov
This article was authored by employees of the Government of Canada.
As such, the Canadian government retains all interest in the
copyright to this work and grants to ACM a nonexclusive,
royalty-free right to publish or reproduce this article, or to allow
others to do so, provided that clear attribution is given both to
the authors and the Canadian government agency employing them.
Permission to make digital or hard copies for personal or classroom
use is granted. Copies must bear this notice and the full citation
on the first page. Copyrights for components of this work owned by
others than the Canadain Government must be honored. To copy
otherwise, distribute, republish, or post, requires prior specific
permission and\hspace*{.5pt}/or a fee. Request permissions from
permissions@acm.org.
\or % cagovmixed
ACM acknowledges that this contribution was co-authored by an
affiliate of the national government of Canada. As such, the Crown
in Right of Canada retains an equal interest in the copyright.
Reprints must include clear attribution to ACM and the author's
government agency affiliation. Permission to make digital or hard
copies for personal or classroom use is granted. Copies must bear
this notice and the full citation on the first page. Copyrights for
components of this work owned by others than ACM must be honored.
To copy otherwise, distribute, republish, or post, requires prior
specific permission and\hspace*{.5pt}/or a fee. Request permissions
from permissions@acm.org.
\or % licensedusgovmixed
Publication rights licensed to ACM. ACM acknowledges that this
contribution was authored or co-authored by an employee, contractor
or affiliate of the United States government. As such, the
Government retains a nonexclusive, royalty-free right to publish or
reproduce this article, or to allow others to do so, for Government
purposes only.
\or % licensedcagovmixed
Publication rights licensed to ACM. ACM acknowledges that this
contribution was authored or co-authored by an employee, contractor
or affiliate of the national government of Canada. As such, the
Government retains a nonexclusive, royalty-free right to publish or
reproduce this article, or to allow others to do so, for Government
purposes only.
\or % othergov
ACM acknowledges that this contribution was authored or co-authored
by an employee, contractor or affiliate of a national government. As
such, the Government retains a nonexclusive, royalty-free right to
publish or reproduce this article, or to allow others to do so, for
Government purposes only.
\or % licensedothergov
Publication rights licensed to ACM. ACM acknowledges that this
contribution was authored or co-authored by an employee, contractor
or affiliate of a national government. As such, the Government
retains a nonexclusive, royalty-free right to publish or reproduce
this article, or to allow others to do so, for Government purposes
only.
\fi}
\endinput
%%
%% End of file `acmcopyright.sty'.

View File

@ -1 +0,0 @@
\appendix

View File

@ -1,200 +0,0 @@
\section{Architecture}
\label{sec:architecture}
% Overview of SRAM blocks
The OpenRAM SRAM architecture is based on a bank of memory cells
with peripheral circuits and control logic as illustrated in
Figure~\ref{fig:structure}. These are further refined into eight major
blocks: the bit-cell array, the address decoder, the word-line drivers,
the column multiplexer, the pre-charge circuitry, the sense amplifier,
the write drivers, and the control logic.
\begin{figure}[tb]
\centering
\includegraphics[width=8cm]{./figs/sram_structure.pdf}
\caption{An OpenRAM SRAM consists of a bit-cell array along with decoder,
reading and writing circuitry and control logic timed with a replica
bit-line.
\label{fig:structure}}
\end{figure}
% we don't implement these yet, so don't give a tutorial on them
%% General memories and Register Files (RF) are both examples of what an
%% memory compiler can generate. General memories usually have shared
%% read/write ports whereas RFs typically have separate ports. All of
%% these options are permitted through the use of different types of
%% memory cells such as 6, 8, and 12 transistor (T) cells which contains
%% 1-4 access transistor pairs and their associated bit-lines. Some basic
%% memory array options are available below:
%% \begin{itemize}
%% \setlength{\itemsep}{0pt} \setlength{\parskip}{0pt}
%% \item Standard 6T cell for single-port memory
%% \item Dual-port 8T cell for dual-port memory or separate read/write ports
%% \item Four-port 12T cell for dual separate read/write ports
%% \item Custom sense amplifier designs for different performances
%% \item Different types of address decoders for different performances
%% \end{itemize}
\begin{figure*}[tb]
\centering
\subfigure[Read operation timing]{
\includegraphics[width = 8cm]{figs/timing_read.pdf}
\label{fig:timing_read}}
\subfigure[Write operation timing]{
\includegraphics[width = 8cm]{figs/timing_write.pdf}
\label{fig:timing_write}}
\caption{OpenRAM uses a synchronous SRAM interface using a system
clock (clk) along with control signals: output enable (OEb), chip
select (CSb) and write enable (WEb).}
\label{fig:timing}
\end{figure*}
{\bf Bit-cell Array:} In the initial release of OpenRAM, the $6$T cell
is the default memory cell because it is the most commonly used cell
in SRAM devices. $6$T cells are tiled together with abutting word- and
bit-lines to make up the memory array. The bit-cell array's aspect
ratio is made as square as possible using multiple columns of data
words. The memory cell is a custom designed library cell for each technology.
Other types of memory cells, such as $7$T, $8$T, and $10$T cells, can be used
as alternatives to the $6$T cell.
{\bf Address Decoder:} The address decoder takes the row address bits
as inputs and asserts the appropriate word-line so that the correct
memory cells can be read from or written to. The address decoder is
placed to the left of the memory array and spans the array's vertical
length. Different types of decoders can be used such as an included
dynamic NAND decoder, but OpenRAM's default option is a hierarchical CMOS
decoder.
{\bf Word-Line Driver:} Word-line drivers are inserted between the
address decoder and the memory array as buffers. The word-line drivers
are sized based on the width of the memory array so that they can drive
the row select signal across the bit-cell array.
{\bf Column Multiplexer:} The column multiplexer is an optional block
that uses the lower address bits to select the associated word in a
row. The column mux is dynamically generated and can be omitted or can
have 2 or 4 inputs. Larger column muxes are possible, but are not
frequently used in memories. There are options for a multi-level tree
mux as well.
{\bf Bit-line Precharge:} This circuitry pre-charges
the bit-lines during the first phase of the clock for read
operations. The precharge circuit is placed on top of every column in
the memory array and equalizes the bit-line voltages so that the
sense amplifier can sense the voltage difference between the two
bit-lines.
{\bf Sense Amplifier:} A differential sense amplifier is used to sense
the voltage difference between the bit-lines of a memory cell while a
read operation is performed. The sense amplifier uses a bit-line
isolation technique to increase performance. The sense amplifier
circuitry is placed below the column multiplexer or the memory
array if no column multiplexer is used. There is one sense amplifier for
each output bit.
{\bf Write Driver:} The write drivers send the input data signals onto the
bit-lines for a write operation. The write drivers are tri-stated
so that they can be placed between the column multiplexer/memory array
and the sense amplifiers. There is one write driver for each input
data bit.
%% \subsubsection{Bit-cell and Bit-cell Array}
%% A bit-cell class is provided to instantiate the custom designed memory
%% cell located in the technology directory. Then the bit-cell array class
%% will take the single bit-cell instance to dynamically generate the
%% memory array. Using the functionality of GdsMill, we can rotate and/or
%% mirror an instance. Doing so, will allow us to abut the power rails.
%% \subsubsection{Address Decoder}
%% The hierarchical decoder is the default row address decoder that is
%% used in OpenRAM. The hierarchical decoder is dynamically generated
%% using the inverter and NAND gates with the help of basic shapes. The
%% height of each decoder row will match the height of the memory cell so
%% that the power rails can be abutted. OpenRAM also provides a NAND
%% decoder as an alternative. NAND decoder uses NMOS and PMOS transistors
%% created by ptx class. User can define type of the decoder in the
%% configuration file.
%% \subsubsection{Word-line Driver}
%% The word-line driver will be a column of alternating "mirrored"
%% inverters instances that is used to drive the signal to access the
%% memory cells in the row. The inverters will be sized accordingly
%% depending on the size of the memory array.
%% \subsubsection{Column Multiplexer}
%% The column multiplexer is an optional block that is used depending on
%% the size of the memory array. By generating an instance of a 1-1
%% multiplexer, we can then tile them to create bigger multiplexers such
%% as 2-1, 4-1, etc. OpenRAM has two options for column multiplexing.
%% Single-level-column-mux is the default column multiplexer but user can
%% choose Tree-Column-Mux in configuration file. Both multiplexers use
%% transistors created by ptx class.
%% \subsubsection{Precharge and Precharge Array}
%% The precharge circuitry is dynamically generated using the transistor
%% instances and various basic shapes. The precharge class dynamically
%% generates an instance for a single column. The precharge array class
%% takes that instance and tiles them horizontally to match the number of
%% columns in the memory array. The width of the precharge cell is
%% determined by the width of the user-created memory cell.
%% \subsubsection{Sense Amplifier and Sense Amplifier Array}
%% The sense amplifier is user-designed analog circuit that is placed in
%% the technology directory. The sense amplifier class instantiates the
%% library cell and the sense amplifier array takes that instance to
%% create a horizontal array matching the number of output bits for the
%% memory. When designing this library cell, the user should match this
%% cell's width and bit-lines to the memory cell's.
%% \subsubsection{Write Driver and Write Driver Array}
%% Similar to the precharge classes, the write driver class will generate
%% an instance for a single bit and the write driver array will tile them
%% horizontally to match the number of input bits for the memory. The
%% write drivers will be dynamically sized accordingly based on the size
%% of the memory array.
%% \subsubsection{Control Logic}
%% There will be a control logic module that will arrange the
%% master-slave flip-flops and the logic associated with the control
%% signals into a single design. Flip-flops are used to drive the control
%% signals and standard library cells such as NAND and NOR gates will be
%% used for the logic. A RBL is also generated using parameterized gates
%% and Replica Cell (RC). RC is a 6T SRAM memory cell which is hard-wired
%% to store a zero in order to discharge the RBL and generate the sense
%% amplifier enable signal in read mode.
%% \subsubsection{Additional Arrays}
%% In addition to the eight main blocks, there are helper modules that
%% help simplify the designs in the eight main blocks. We have a
%% flip-flop array class that takes the custom designed master-slave
%% flip-flop library cell to create a tiled array. We also have the
%% tri-state array class that will generate the array of tri-states for
%% the DATA bus.
% Overview of signal inputs and timing
{\bf Control Logic:} The OpenRAM SRAM architecture incorporates a
standard synchronous memory interface using a system clock (clk). The
control logic uses an externally provided, active-low output enable
(OEb), chip select (CSb), and write enable (WEb) to combine multiple
SRAMs into a larger structure. Internally, the OpenRAM compiler can
have $1$, $2$, or $4$ memory banks to amortize the area/power cost of
control logic and peripheral circuitry.
All of the input control signals are stored using master-slave (MS)
flip-flops (FF) to ensure that the signals are valid for the entire
clock cycle. During a read operation, data is available after the
negative clock edge (second half of cycle) as shown in
Figure~\ref{fig:timing_read}. To avoid dead cycles which degrade
performance, a Zero Bus Turn-around (ZBT) technique is used in OpenRAM
timing. The ZBT enables higher memory throughput since there are no
wait states. During ZBT writes, data is set up before the negative
clock edge and is captured on the negative edge. Figure~\ref{fig:timing_write}
shows the timing for input signals during the write operation.
The internal control signals are generated using a replica bit-line (RBL)
structure for the timing of the sense amplifier enable and output
data storage~\cite{RBL:1998}. The RBL turns on the sense amplifiers
at the exact time in presence of process variability in sub-$100$nm
technologies.

View File

@ -1,93 +0,0 @@
\section{Background}
\label{sec:background}
% brief origin/background of memory compilers
% Existence of memory compilers from the beginning
Memory compilers have been used in Electronic Design Automation (EDA)
design flows to reduce the design
time long before contemporary
compilers~\cite{broderson:sicompiler,johannsen:blocks}.
However, these compilers were generally not portable as they were
nothing more
than quick scripts to aid designers. Porting to a new technology
essentially required rewriting the scripts. However, the increase in
design productivity when porting designs between technologies has led to
more research on memory array
compilers~\cite{cabe:flexible,huang:array,poechmueller:array,Xu:2007}.
% Reason why compilers evolved to today's current version
As technology entered the Deep Sub-Micron (DSM) era, memory designs
became one of the most challenging parts of circuit design
due to decreasing static noise margins (SNM), increasing fabrication
variability, and increasing leakage power consumption.
This increased the complexity of memory compilers dramatically as they had to
adapt to the ever-changing technologies. Simultaneously, design
methodologies shifted from silicon compilers to standard cell place
and route methods which required large optimized libraries. During
this time, industry began using third-party suppliers of standard cell
libraries and memory compilers that allowed their reuse to amortize
development costs. These next-generation memory compilers provided
silicon-verification that allowed designers to focus on their new
design contribution rather than time-consuming tasks such as memory
generation.
% Commercial industry memory compilers' description and cost
Contemporary memory compilers have been widely used by industry, but
the internal operation is typically hidden. Several prominent
companies and foundries have provided memory compilers to their
customers. These memory compilers usually allow customers to view
front-end simulation, timing/power values, and pin locations after a
license agreement is signed. Back-end features such as layout are
normally supplied directly to the fab and are only given to the user
for a licensing fee.
% Examples of commercial compilers' drawbacks
Specifically, Global Foundries offers front-end PDKs for free, but not
back-end detailed views~\cite{globalfoundries:2015}. Faraday
Technologies provides a \enquote{black box} design kit where users do
not know the details of the internal memory
design~\cite{faraday:2015}. Dolphin Technology offers closed-source
compilers which can create RAMs, ROMs, and CAMs for a variety of
technologies~\cite{dolphin:2015}. The majority of these commercial
compilers do not allow the customer to alter the base design, are
restricted by the company's license, and usually require a fee. This
makes them virtually unavailable and not useful for many academic
research projects.
% Describe the problem (no free open-source that is widely distributed)
In addition to memory compilers provided by industry, various research
groups have released scripts to generate memories. However, these
designs are not silicon verified and are usually only composed of
simple structures. For example, FabMem is able to
create small arrays, but it is highly dependent on the Cadence design
tools~\cite{fabmem:2010}. The scripts do not provide any characterization capability
and cannot easily integrate with commercial place and route tools.
% Industry's attempt to provide academia a memory compiler
Another recent, promising solution for academia is the Synopsys
Generic Memory Compiler (GMC)~\cite{Goldman:2014}. The software is
provided with sample generic libraries such as Synopsys' $32$/$28$nm and
$90$nm abstract technologies and can generate the entire SRAM for these
technologies. The GMC generates GDSII layout data, SPICE netlists,
Verilog and VHDL models, timing/power libraries, and DRC/LVS
verification reports. GMC, however, is not recommended for
fabrication since the technologies it supports are not real. Its sole
purpose is to aid students in VLSI courses to learn about using
memories in design flows.
% Academia's' attempts at a memory compiler
There have been multiple attempts by academia to implement a memory
compiler that is not restricted: the Institute of
Microelectronics' SRAM IP Compiler~\cite{Xu:2007}, School of
Electronic Science and Engineering at Southeast University's Memory IP
Compiler~\cite{Chen:2012}, and Tsinghua University's Low Power SRAM
Compiler~\cite{Wu:2010}. These are all methodologies and design flows
for a memory compiler, but there are no public releases.
% State what we are looking for in academia. -- duplicate from introduction
%% With all these attempts, there still isn't a complete solution for
%% academia's research needs. Researchers need a memory compiler that is
%% open-source, platform- and tool-portable, technology independent, and
%% can generate fabricable memory designs.

View File

@ -1,21 +0,0 @@
\section{Conclusions}
\label{sec:conclusions}
This paper introduced OpenRAM, an open-source and portable memory
compiler. OpenRAM generates the circuit, functional model, and layout
of variable-sized SRAMs. In addition, a memory characterizer
provides synthesis timing/power models.
The main motivation behind OpenRAM is to promote and simplify
memory-related research in academia. Since OpenRAM is open-sourced,
flexible, and portable, this memory compiler can be adapted to various
technologies and is easily modified to address specific design
requirements. Therefore, OpenRAM provides a platform to implement and test
new memory designs.
Designs are currently being fabricated to test designs using the
OpenRAM framework in SCMOS. We are also continuously introducing new
features, such as non-6T memories, variability characterization,
word-line segmenting, characterization speed-up, and a graphical user
interface (GUI). We hope to engage an active community in the future
development of OpenRAM.

View File

@ -1,5 +0,0 @@
#!/bin/bash
psfile=${1%.pdf}.ps
gs -dSAFER -dNOPLATFONTS -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sPAPERSIZE=letter -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer -dCompatibilityLevel=1.4 -dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true -sOutputFile=temp.pdf -f $1
mv temp.pdf $1
pdf2ps $1 $psfile

File diff suppressed because it is too large Load Diff

View File

@ -1,55 +0,0 @@
clc;
X = [ 2 , 8 , 32, 128];
Y1_Freepdk =[0.0048413475625; 0.0135007585125;0.051075243575; 0.283865472];
Y2_Freepdk=[0.0048094391125; 0.0135007585125; 0.0435568917; 0.2118510735];
Y3_Freepdk=[0.0047775306625; 0.0129289229375; 0.0419903161125; 0.156997489175];
Y4_Freepdk=[0.0052897701375; 0.0128789376875; 0.0419019176625; 0.1512635205];
Y1_SCN3ME =[0.75276018; 2.08835631; 7.89312366; 40.6931238];
Y2_SCN3ME =[0.74817639; 2.0216187; 6.804401625; 31.6371744];
Y3_SCN3ME =[0.7435926; 2.01449475; 6.62959215; 24.64420014];
Y4_SCN3ME =[0.83660283; 2.0073708; 6.61707036; 23.839544025];
Y1_T_Freepdk =[0.861; 1.32; 1.8; 2.2];
Y2_T_Freepdk =[1.02; 1.33; 1.83; 2.6];
Y3_T_Freepdk =[0.86; 1.5; 1.9; 6.75];
Y4_T_Freepdk =[1.076; 1.34; 2.01; 9.86];
Y1_T_SCN3ME =[9.42; 8.25; 11.69; 12.7];
Y2_T_SCN3ME =[11.82; 16.04; 14.7; 18.21];
Y3_T_SCN3ME =[14.81; 19.24; 23.82; 30.25];
Y4_T_SCN3ME =[22.9; 23.12; 30.75; 44.95];
subplot(4,1,1)
plot (X, Y1_Freepdk, X, Y2_Freepdk, X, Y3_Freepdk, X, Y4_Freepdk,'LineWidth',2);
grid on;
ylabel('Area (mm^2)','FontSize',12, 'Color','k');
xlabel('Total Size (Kbits)','FontSize',12, 'Color','k');
subplot(4,1,2)
plot (X, Y1_SCN3ME, X, Y2_SCN3ME, X, Y3_SCN3ME, X, Y4_SCN3ME,'LineWidth',2);
grid on;
ylabel('Area (mm^2)','FontSize',12, 'Color','k');
xlabel('Total Size (Kbits)','FontSize',12, 'Color','k');
subplot(4,1,3)
plot (X, Y1_T_Freepdk, X, Y2_T_Freepdk, X, Y3_T_Freepdk, X, Y4_T_Freepdk,'LineWidth',2);
grid on;
ylabel('Access time (ns)','FontSize',12, 'Color','k');
xlabel('Total Size (Kbits)','FontSize',12, 'Color','k');
subplot(4,1,4)
plot (X, Y1_T_SCN3ME, X, Y2_T_SCN3ME, X, Y3_T_SCN3ME, X, Y4_T_SCN3ME,'LineWidth',2);
ylabel('Access time (ns)','FontSize',12, 'Color','k');
xlabel('Total Size (Kbits)','FontSize',12, 'Color','k');
grid on;
legend({'16-bit word size', '32-bit word size','64-bit word size', '128-bit word size'},'Location','northwest','orientation', 'vertical' , 'FontSize',12, 'LineWidth',1.2);

View File

@ -1,14 +0,0 @@
set terminal pdf dashed
set output "../Freepdk_Area.pdf"
set palette color
set xlabel "Total Size (Kbit)"
set ylabel "Area (mm^2)"
set key below
plot 'freepdk45_size.dat' using ($1/1024):($2/1e6) with line title '16-bit word' lt 0 lw 5 lc 0 ,\
'freepdk45_size.dat' using ($1/1024):($2/1e6) with points title '' lt 0 lw 5 lc 0 ,\
'freepdk45_size.dat' using ($1/1024):($3/1e6) with line title '32-bit word' lt 1 lw 5 lc 1 ,\
'freepdk45_size.dat' using ($1/1024):($3/1e6) with points title '' lt 1 lw 5 lc 1 ,\
'freepdk45_size.dat' using ($1/1024):($4/1e6) with line title '64-bit word' lt 2 lw 5 lc 2 ,\
'freepdk45_size.dat' using ($1/1024):($4/1e6) with points title '' lt 2 lw 5 lc 2 ,\
'freepdk45_size.dat' using ($1/1024):($5/1e6) with line title '128-bit word' lt 3 lw 5 lc 3 ,\
'freepdk45_size.dat' using ($1/1024):($5/1e6) with points title '' lt 3 lw 5 lc 3

View File

@ -1,7 +0,0 @@
2048 4841.3475625 4809.4391125 4777.5306625 5289.7701375
8192 13500.7585125 12978.9081875 12928.9229375 12878.9376875
#16384 25605.7869 22997.2777125 22908.8792625 22820.4808125
32768 51075.243575 43556.8917 41990.3161125 41901.9176625
#65536 142381.5903 86382.658775 79459.1013 79292.00325
131072 283865.472 211851.0735 156997.489175 151263.5205

View File

@ -1,14 +0,0 @@
set terminal pdf dashed
set output "../Scn3me_Area.pdf"
set palette color
set xlabel "Total Size (Kbit)"
set ylabel "Area (mm^2)"
set key below
plot 'scn3me_size.dat' using ($1/1024):($2/1e6) with line title '16-bit word' lt 0 lw 5 lc 0 ,\
'scn3me_size.dat' using ($1/1024):($2/1e6) with points title '' lt 0 lw 5 lc 0 ,\
'scn3me_size.dat' using ($1/1024):($3/1e6) with line title '32-bit word' lt 1 lw 5 lc 1 ,\
'scn3me_size.dat' using ($1/1024):($3/1e6) with points title '' lt 1 lw 5 lc 1 ,\
'scn3me_size.dat' using ($1/1024):($4/1e6) with line title '64-bit word' lt 2 lw 5 lc 2 ,\
'scn3me_size.dat' using ($1/1024):($4/1e6) with points title '' lt 2 lw 5 lc 2 ,\
'scn3me_size.dat' using ($1/1024):($5/1e6) with line title '128-bit word' lt 3 lw 5 lc 3 ,\
'scn3me_size.dat' using ($1/1024):($5/1e6) with points title '' lt 3 lw 5 lc 3

View File

@ -1,5 +0,0 @@
2048 752760.18 748176.39 743592.6 836602.83
8192 2088356.31 2021618.7 2014494.75 2007370.8
32768 7893123.66 6804401.625 6629592.15 6617070.36
131072 40693123.8 31637174.4 24644200.14 23839544.025

View File

@ -1,100 +0,0 @@
#!/usr/bin/gnuplot
#
# Demonstration of a common use scenario of the multiplot environment.
#
# AUTHOR: Hagen Wierstorf
#
reset
set terminal pdf dashed size 8cm,12cm
set output "Results.pdf"
set palette color
unset key
# Enable the use of macros
set macros
# MACROS
# Margins for each row resp. column
# top of top fig, bottom of top fig
TMARGIN = "set tmargin at screen 0.9; set bmargin at screen 0.575"
# top of lower fig, bottom of lower fig
BMARGIN = "set tmargin at screen 0.525; set bmargin at screen 0.15"
# left of left fig, right of left fig
LMARGIN = "set lmargin at screen 0.1; set rmargin at screen 0.48"
# left point of right fig ,right most
RMARGIN = "set lmargin at screen 0.52; set rmargin at screen 0.9"
# Placement of the a,b,c,d labels in the graphs
POSA = "at graph 0.6,0.2 font ',5'"
POSB = "at graph 0.5,0.2 font ',5'"
### Start multiplot (2x2 layout)
set multiplot layout 4,1
# --- GRAPH a
set key outside center vertical top box 3
set lmargin at screen 0.2; set rmargin at screen 0.9
set tmargin at screen 0.88; set bmargin at screen 0.68
#@TMARGIN; @LMARGIN
#@NOXTICS; @YTICS
set label 1 '45nm Area' @POSA
set ylabel "mm^2"
plot 'density_data/freepdk45_size.dat' using ($1/1024):($2/1e6) with line axis x1y1 title '16-bit word size' lt 0 lw 5 lc 0 ,\
'density_data/freepdk45_size.dat' using ($1/1024):($2/1e6) with points axis x1y1 title '' lt 0 lw 5 lc 0 ,\
'density_data/freepdk45_size.dat' using ($1/1024):($3/1e6) with line axis x1y1 title '32-bit word size' lt 1 lw 5 lc 1 ,\
'density_data/freepdk45_size.dat' using ($1/1024):($3/1e6) with points axis x1y1 title '' lt 1 lw 5 lc 1 ,\
'density_data/freepdk45_size.dat' using ($1/1024):($4/1e6) with line axis x1y1 title '64-bit word size' lt 2 lw 5 lc 2 ,\
'density_data/freepdk45_size.dat' using ($1/1024):($4/1e6) with points axis x1y1 title '' lt 2 lw 5 lc 2 ,\
'density_data/freepdk45_size.dat' using ($1/1024):($5/1e6) with line axis x1y1 title '128-bit word size' lt 3 lw 5 lc 3 ,\
'density_data/freepdk45_size.dat' using ($1/1024):($5/1e6) with points axis x1y1 title '' lt 3 lw 5 lc 3
# --- GRAPH b
unset key
set tmargin at screen 0.68; set bmargin at screen 0.48
#@TMARGIN; @RMARGIN
#@NOXTICS; @NOYTICS
set label 1 '180nm Area' @POSA
set ylabel "mm^2"
plot 'density_data/scn3me_size.dat' using ($1/1024):($2/1e6) with line axis x1y1 title '16-bit word size' lt 0 lw 5 lc 0 ,\
'density_data/scn3me_size.dat' using ($1/1024):($2/1e6) with points axis x1y1 title '' lt 0 lw 5 lc 0 ,\
'density_data/scn3me_size.dat' using ($1/1024):($3/1e6) with line axis x1y1 title '32-bit word size' lt 1 lw 5 lc 1 ,\
'density_data/scn3me_size.dat' using ($1/1024):($3/1e6) with points axis x1y1 title '' lt 1 lw 5 lc 1 ,\
'density_data/scn3me_size.dat' using ($1/1024):($4/1e6) with line axis x1y1 title '64-bit word size' lt 2 lw 5 lc 2 ,\
'density_data/scn3me_size.dat' using ($1/1024):($4/1e6) with points axis x1y1 title '' lt 2 lw 5 lc 2 ,\
'density_data/scn3me_size.dat' using ($1/1024):($5/1e6) with line axis x1y1 title '128-bit word size' lt 3 lw 5 lc 3 ,\
'density_data/scn3me_size.dat' using ($1/1024):($5/1e6) with points axis x1y1 title '' lt 3 lw 5 lc 3
# --- GRAPH c
set tmargin at screen 0.48; set bmargin at screen 0.28
#@BMARGIN; @LMARGIN
#@XTICS; @YTICS
set label 1 '45nm Access time' @POSB
set ylabel "ns"
plot 'timing_data/freepdk45_timing.dat' using ($1/1024):2 with line axis x1y2 title '16-bit word' lt 0 lw 5 lc 0 ,\
'timing_data/freepdk45_timing.dat' using ($1/1024):2 with points axis x1y2 title '' lt 0 lw 5 lc 0 ,\
'timing_data/freepdk45_timing.dat' using ($1/1024):3 with line axis x1y2 title '32-bit word' lt 1 lw 5 lc 1 ,\
'timing_data/freepdk45_timing.dat' using ($1/1024):3 with points axis x1y2 title '' lt 1 lw 5 lc 1 ,\
'timing_data/freepdk45_timing.dat' using ($1/1024):4 with line axis x1y2 title '64-bit word' lt 2 lw 5 lc 2 ,\
'timing_data/freepdk45_timing.dat' using ($1/1024):4 with points axis x1y2 title '' lt 2 lw 5 lc 2 ,\
'timing_data/freepdk45_timing.dat' using ($1/1024):5 with line axis x1y2 title '128-bit word' lt 3 lw 5 lc 3 ,\
'timing_data/freepdk45_timing.dat' using ($1/1024):5 with points axis x1y2 title '' lt 3 lw 5 lc 3
# --- GRAPH d
set tmargin at screen 0.28; set bmargin at screen 0.08
#@BMARGIN; @RMARGIN
#@XTICS; @NOYTICS
set ylabel "ns"
set xlabel "Total Size (Kbits)"
set label 1 '180nm Access time' @POSB
plot 'timing_data/scn3me_timing.dat' using ($1/1024):2 with line axis x1y2 title '16-bit word' lt 0 lw 5 lc 0 ,\
'timing_data/scn3me_timing.dat' using ($1/1024):2 with points axis x1y2 title '' lt 0 lw 5 lc 0 ,\
'timing_data/scn3me_timing.dat' using ($1/1024):3 with line axis x1y2 title '32-bit word' lt 1 lw 5 lc 1 ,\
'timing_data/scn3me_timing.dat' using ($1/1024):3 with points axis x1y2 title '' lt 1 lw 5 lc 1 ,\
'timing_data/scn3me_timing.dat' using ($1/1024):4 with line axis x1y2 title '64-bit word' lt 2 lw 5 lc 2 ,\
'timing_data/scn3me_timing.dat' using ($1/1024):4 with points axis x1y2 title '' lt 2 lw 5 lc 2 ,\
'timing_data/scn3me_timing.dat' using ($1/1024):5 with line axis x1y2 title '128-bit word' lt 3 lw 5 lc 3 ,\
'timing_data/scn3me_timing.dat' using ($1/1024):5 with points axis x1y2 title '' lt 3 lw 5 lc 3
unset multiplot
### End multiplot

View File

@ -1,866 +0,0 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: cairo 1.8.8 (http://cairographics.org)
%%CreationDate: Mon Oct 17 14:59:32 2011
%%Pages: 1
%%BoundingBox: 0 0 630 399
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%%EndComments
%%BeginProlog
/cairo_eps_state save def
/dict_count countdictstack def
/op_count count 1 sub def
userdict begin
/q { gsave } bind def
/Q { grestore } bind def
/cm { 6 array astore concat } bind def
/w { setlinewidth } bind def
/J { setlinecap } bind def
/j { setlinejoin } bind def
/M { setmiterlimit } bind def
/d { setdash } bind def
/m { moveto } bind def
/l { lineto } bind def
/c { curveto } bind def
/h { closepath } bind def
/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto
0 exch rlineto 0 rlineto closepath } bind def
/S { stroke } bind def
/f { fill } bind def
/f* { eofill } bind def
/B { fill stroke } bind def
/B* { eofill stroke } bind def
/n { newpath } bind def
/W { clip } bind def
/W* { eoclip } bind def
/BT { } bind def
/ET { } bind def
/pdfmark where { pop globaldict /?pdfmark /exec load put }
{ globaldict begin /?pdfmark /pop load def /pdfmark
/cleartomark load def end } ifelse
/BDC { mark 3 1 roll /BDC pdfmark } bind def
/EMC { mark /EMC pdfmark } bind def
/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def
/Tj { show currentpoint cairo_store_point } bind def
/TJ {
{
dup
type /stringtype eq
{ show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse
} forall
currentpoint cairo_store_point
} bind def
/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore
cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def
/Tf { pop /cairo_font exch def /cairo_font_matrix where
{ pop cairo_selectfont } if } bind def
/Td { matrix translate cairo_font_matrix matrix concatmatrix dup
/cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point
/cairo_font where { pop cairo_selectfont } if } bind def
/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def
cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def
/g { setgray } bind def
/rg { setrgbcolor } bind def
/d1 { setcachedevice } bind def
%%EndProlog
11 dict begin
/FontType 42 def
/FontName /f-0-0 def
/PaintType 0 def
/FontMatrix [ 1 0 0 1 0 0 ] def
/FontBBox [ 0 0 0 0 ] def
/Encoding 256 array def
0 1 255 { Encoding exch /.notdef put } for
Encoding 1 /uni004D put
Encoding 2 /uni0065 put
Encoding 3 /uni006D put
Encoding 4 /uni006F put
Encoding 5 /uni0072 put
Encoding 6 /uni0079 put
Encoding 7 /uni0020 put
Encoding 8 /uni0043 put
Encoding 9 /uni0070 put
Encoding 10 /uni0069 put
Encoding 11 /uni006C put
Encoding 12 /uni0028 put
Encoding 13 /uni0050 put
Encoding 14 /uni0074 put
Encoding 15 /uni0068 put
Encoding 16 /uni006E put
Encoding 17 /uni0029 put
Encoding 18 /uni004C put
Encoding 19 /uni0067 put
Encoding 20 /uni0063 put
Encoding 21 /uni0061 put
Encoding 22 /uni0045 put
Encoding 23 /uni0046 put
Encoding 24 /uni002F put
Encoding 25 /uni0052 put
Encoding 26 /uni0041 put
Encoding 27 /uni0047 put
Encoding 28 /uni0044 put
Encoding 29 /uni0053 put
Encoding 30 /uni0049 put
Encoding 31 /uni0062 put
Encoding 32 /uni002E put
Encoding 33 /uni0056 put
Encoding 34 /uni002D put
Encoding 35 /uni0064 put
Encoding 36 /uni0073 put
Encoding 37 /uni0054 put
Encoding 38 /uni0077 put
Encoding 39 /uni007A put
Encoding 40 /uni0075 put
Encoding 41 /uni002C put
Encoding 42 /uni0078 put
Encoding 43 /uni0042 put
Encoding 44 /uni006B put
Encoding 45 /uni0055 put
Encoding 46 /uni0066 put
/CharStrings 47 dict dup begin
/.notdef 0 def
/uni004D 1 def
/uni0065 2 def
/uni006D 3 def
/uni006F 4 def
/uni0072 5 def
/uni0079 6 def
/uni0020 7 def
/uni0043 8 def
/uni0070 9 def
/uni0069 10 def
/uni006C 11 def
/uni0028 12 def
/uni0050 13 def
/uni0074 14 def
/uni0068 15 def
/uni006E 16 def
/uni0029 17 def
/uni004C 18 def
/uni0067 19 def
/uni0063 20 def
/uni0061 21 def
/uni0045 22 def
/uni0046 23 def
/uni002F 24 def
/uni0052 25 def
/uni0041 26 def
/uni0047 27 def
/uni0044 28 def
/uni0053 29 def
/uni0049 30 def
/uni0062 31 def
/uni002E 32 def
/uni0056 33 def
/uni002D 34 def
/uni0064 35 def
/uni0073 36 def
/uni0054 37 def
/uni0077 38 def
/uni007A 39 def
/uni0075 40 def
/uni002C 41 def
/uni0078 42 def
/uni0042 43 def
/uni006B 44 def
/uni0055 45 def
/uni0066 46 def
end readonly def
/sfnts [
<00010000000a008000030020636d61700252f32d00001fd00000009c63767420ffd31d390000
206c000001fc6670676de7b4f1c4000022680000008b676c79661cacd2b0000000ac00001f24
68656164dd84a2d0000022f40000003668686561104507920000232c00000024686d7478d559
18d200002350000000bc6c6f6361aa82b2fc0000240c000000606d617870046a063a0000246c
00000020707265703b07f1000000248c0000056800020066fe96046605a400030007001a400c
04fb0006fb0108057f0204002fc4d4ec310010d4ecd4ec301311211125211121660400fc7303
1bfce5fe96070ef8f2720629000100c90000061f05d5000c00bf403403110708070211010208
080702110302090a0901110a0a09420a070203080300af080b050908030201050a061c043e0a
1c00040d10fcecfcec11173931002f3cc4ec32111739304b5358071005ed071008ed071008ed
071005ed5922b2700e01015d405603070f080f09020a15021407130a260226072007260a200a
3407350a69027c027b07790a80028207820a90021604010b0313011b0323012c032708280934
013c035608590965086a097608790981018d0395019b03145d005d1321090121112311012301
1123c9012d017d017f012dc5fe7fcbfe7fc405d5fc0803f8fa2b051ffc000400fae100000002
0071ffe3047f047b0014001b00704024001501098608880515a90105b90c01bb18b912b80c8c
1c1b1502081508004b02120f451c10fcecf4ecc4111239310010e4f4ece410ee10ee10f4ee11
12393040293f1d701da01dd01df01d053f003f013f023f153f1b052c072f082f092c0a6f006f
016f026f156f1b095d71015d0115211e0133323637150e01232000111000333200072e012322
0607047ffcb20ccdb76ac76263d06bfef4fec70129fce20107b802a5889ab90e025e5abec734
34ae2a2c0138010a01130143feddc497b4ae9e00000100ba0000071d047b0022005a40260612
09180f00061d07150c871d2003b81bbc19100700110f0808065011080f501c18081a462310fc
ec32fcfcfcec11123931002f3c3ce4f43cc4ec32111217393040133024502470249024a024a0
24bf24df24ff2409015d013e0133321615112311342623220615112311342623220615112311
33153e01333216042945c082afbeb972758fa6b972778da6b9b93fb0797aab03897c76f5e2fd
5c029ea19cbea4fd87029ea29bbfa3fd870460ae67627c00000000020071ffe30475047b000b
0017004a401306b91200b90cb8128c1809120f51031215451810fcecf4ec310010e4f4ec10ee
3040233f197b007b067f077f087f097f0a7f0b7b0c7f0d7f0e7f0f7f107f117b12a019f01911
015d012206151416333236353426273200111000232200111000027394acab9593acac93f001
12feeef0f1feef011103dfe7c9c9e7e8c8c7e99cfec8feecfeedfec701390113011401380000
000100ba0000034a047b001100304014060b0700110b03870eb809bc070a06080008461210fc
c4ec3231002fe4f4ecc4d4cc11123930b450139f1302015d012e012322061511231133153e01
33321617034a1f492c9ca7b9b93aba85132e1c03b41211cbbefdb20460ae6663050500000001
003dfe56047f0460000f01a240430708020911000f0a110b0a00000f0e110f000f0d110c0d00
000f0d110e0d0a0b0a0c110b0b0a420d0b0910000b058703bd0e0bbc100e0d0c0a0906030008
0f040f0b1010d4c4c4111739310010e432f4ec113911391239304b5358071005ed071008ed07
1008ed071005ed071008ed0705ed17325922014bb00a544bb008545b58bd0010ffc000010010
001000403811373859014bb0145458bd00100040000100100010ffc0381137385940f0060005
080609030d160a170d100d230d350d490a4f0a4e0d5a095a0a6a0a870d800d930d120a000a09
060b050c0b0e0b0f1701150210041005170a140b140c1a0e1a0f270024012402200420052908
2809250a240b240c270d2a0e2a0f201137003501350230043005380a360b360c380d390e390f
30114100400140024003400440054006400740084209450a470d490e490f4011540051015102
5503500450055606550756085709570a550b550c590e590f501166016602680a690e690f6011
7b08780e780f89008a09850b850c890d890e890f9909950b950c9a0e9a0fa40ba40cab0eab0f
b011cf11df11ff11655d005d050e012b01353332363f01013309013302934e947c936c4c5433
21fe3bc3015e015ec368c87a9a488654044efc94036c00010073ffe3052705f000190036401a
0da10eae0a951101a100ae04951791118c1a07190d003014101a10fcec32ec310010e4f4ecf4
ec10eef6ee30b40f1b1f1b02015d01152e0123200011100021323637150e0123200011100021
3216052766e782ff00fef00110010082e7666aed84feadfe7a0186015386ed0562d55f5efec7
fed8fed9fec75e5fd34848019f01670168019f470000000200bafe5604a4047b0010001c003e
401b1ab9000e14b90508b80e8c01bd03bc1d11120b471704000802461d10fcec3232f4ec3100
10e4e4e4f4c4ec10c4ee304009601e801ea01ee01e04015d2511231133153e01333212111002
2322260134262322061514163332360173b9b93ab17bccffffcc7bb10238a79292a7a79292a7
a8fdae060aaa6461febcfef8fef8febc6101ebcbe7e7cbcbe7e7000200c10000017906140003
0007002b400e06be04b100bc020501080400460810fc3cec3231002fe4fcec30400b10094009
50096009700905015d1333112311331523c1b8b8b8b80460fba00614e900000100c100000179
061400030022b7009702010800460410fcec31002fec30400d10054005500560057005f00506
015d13331123c1b8b80614f9ec00000100b0fef2027b0612000d004f400f069800970e0d0700
03120600130a0e10dce432ec113939310010fcec30014bb0135458bd000e00400001000e000e
ffc03811373859014bb00f5458bd000effc00001000e000e0040381137385901060215141217
23260235341237027b86828385a0969594970612e6fe3ee7e7fe3be5eb01c6e0df01c4ec0002
00c90000048d05d500080013003a40180195100095098112100a0802040005190d3f11001c09
041410fcec32fcec11173931002ff4ecd4ec30400b0f151f153f155f15af1505015d01113332
3635342623252132041514042b0111230193fe8d9a9a8dfe3801c8fb0101fefffbfeca052ffd
cf92878692a6e3dbdde2fda800010037000002f2059e0013003840190e05080f03a9001101bc
08870a0b08090204000810120e461410fc3cc4fc3cc432393931002fecf43cc4ec3211393930
b2af1501015d01112115211114163b01152322263511233533110177017bfe854b73bdbdd5a2
8787059efec28ffda0894e9a9fd202608f013e000000000100ba000004640614001300344019
030900030e0106870e11b80c970a010208004e0d09080b461410fcec32f4ec31002f3cecf4c4
ec1112173930b2601501015d0111231134262322061511231133113e013332160464b87c7c95
acb9b942b375c1c602a4fd5c029e9f9ebea4fd870614fd9e6564ef00000100ba00000464047b
001300364019030900030e0106870e11b80cbc0a010208004e0d09080b461410fcec32f4ec31
002f3ce4f4c4ec1112173930b46015cf1502015d0111231134262322061511231133153e0133
32160464b87c7c95acb9b942b375c1c602a4fd5c029e9f9ebea4fd870460ae6564ef000100a4
fef2026f0612000d001f400f079800970e0701000b12041308000e10dc3cf4ec113939310010
fcec301333161215140207233612353402a4a096959596a08583830612ecfe3cdfe0fe3aebe5
01c5e7e701c20000000100c90000046a05d500050025400c0295008104011c033a00040610fc
ecec31002fe4ec304009300750078003800404015d133311211521c9ca02d7fc5f05d5fad5aa
00020071fe56045a047b000b0028004a4023190c1d0912861316b90f03b92623b827bc09b90f
bd1a1d261900080c4706121220452910fcc4ecf4ec323231002fc4e4ece4f4c4ec10fed5ee11
12393930b6602a802aa02a03015d01342623220615141633323617100221222627351e013332
363d010e0123220211101233321617353303a2a59594a5a59495a5b8fefefa61ac51519e52b5
b439b27ccefcfcce7cb239b8023dc8dcdcc8c7dcdcebfee2fee91d1eb32c2abdbf5b6362013a
01030104013a6263aa0000010071ffe303e7047b0019003f401b00860188040e860d880ab911
04b917b8118c1a07120d004814451a10fce432ec310010e4f4ec10fef4ee10f5ee30400b0f1b
101b801b901ba01b05015d01152e0123220615141633323637150e0123220011100021321603
e74e9d50b3c6c6b3509d4e4da55dfdfed6012d010655a20435ac2b2be3cdcde32b2baa242401
3e010e0112013a2300000002007bffe3042d047b000a002500bc4027191f0b17090e00a91706
b90e1120861fba1cb923b8118c170c001703180d09080b1f030814452610fcecccd4ec323211
393931002fc4e4f4fcf4ec10c6ee10ee11391139123930406e301d301e301f3020302130223f
27401d401e401f402040214022501d501e501f50205021502250277027851d871e871f872087
2185229027a027f0271e301e301f30203021401e401f40204021501e501f50205021601e601f
60206021701e701f70207021801e801f80208021185d015d0122061514163332363d01371123
350e01232226353436332135342623220607353e0133321602bedfac816f99b9b8b83fbc88ac
cbfdfb0102a79760b65465be5af3f00233667b6273d9b4294cfd81aa6661c1a2bdc0127f8b2e
2eaa2727fc00000100c90000048b05d5000b002e401506950402950081089504ad0a05010907
031c00040c10fcec32d4c4c431002fececf4ec10ee30b21f0d01015d13211521112115211121
1521c903b0fd1a02c7fd3902f8fc3e05d5aafe46aafde3aa0000000100c90000042305d50009
002940120695040295008104ad08050107031c00040a10fcec32d4c431002fecf4ec10ee30b2
0f0b01015d13211521112115211123c9035afd700250fdb0ca05d5aafe48aafd370000010000
ff4202b205d50003002d4014001a010201021a03000342029f008104020001032fc439393100
10f4ec304b5358071005ed071005ed5922013301230208aafdf8aa05d5f96d000000000200c9
0000055405d50013001c00b14035090807030a06110304030511040403420604001503041595
0914950d810b040506031109001c160e050a191904113f140a1c0c041d10fcec32fcc4ec1117
391139393931002f3cf4ecd4ec123912391239304b5358071005ed071005ed1117395922b240
1e01015d40427a13010500050105020603070415001501140216031704250025012502260327
06260726082609201e3601360246014602680575047505771388068807980698071f5d005d01
1e01171323032e012b01112311212016151406011133323635342623038d417b3ecdd9bf4a8b
78dcca01c80100fc83fd89fe9295959202bc16907efe68017f9662fd8905d5d6d88dba024ffd
ee8783838500000200100000056805d50002000a00ba40410011010004050402110505040111
0a030a0011020003030a0711050406110505040911030a08110a030a42000307950103810905
09080706040302010009050a0b10d4c4173931002f3ce4d4ec1239304b5358071005ed0705ed
071005ed0705ed071008ed071005ed071005ed071008ed5922b2200c01015d403a0f00580076
0070008c000507010802060309041601190256015802500c67016802780176027c0372047707
780887018802800c980299039604175d005d090121013301230321032302bcfeee0225fe7be5
0239d288fd5f88d5050efd1903aefa2b017ffe81000000010073ffe3058b05f0001d00394020
00051b0195031b950812a111ae15950e91088c1e02001c1134043318190b101e10fcecfce4fc
c4310010e4f4ecf4ec10fed4ee11393930251121352111060423200011100021320417152626
23200011100021323604c3feb6021275fee6a0fea2fe75018b015e9201076f70fc8bfeeefeed
011301126ba8d50191a6fd7f53550199016d016e01994846d75f60fecefed1fed2fece250000
000200c9000005b005d500080011002e4015009509810195100802100a0005190d32001c0904
1210fcecf4ec113939393931002fecf4ec30b2601301015d0111332000111000212521200011
100029010193f40135011ffee1fecbfe42019f01b20196fe68fe50fe61052ffb770118012e01
2c0117a6fe97fe80fe7efe96000000010087ffe304a205f00027007e403c0d0c020e0b021e1f
1e080902070a021f1f1e420a0b1e1f0415010015a11494189511049500942591118c281e0a0b
1f1b0700221b190e2d071914222810dcc4ecfcece4111239393939310010e4f4e4ec10eef6ee
10c6111739304b535807100eed11173907100eed1117395922b20f2901015db61f292f294f29
035d01152e012322061514161f011e0115140421222627351e013332363534262f012e013534
24333216044873cc5fa5b377a67ae2d7feddfee76aef807bec72adbc879a7be2ca0117f569da
05a4c53736807663651f192bd9b6d9e0302fd04546887e6e7c1f182dc0abc6e42600000100c9
0000019305d500030039b700af02011c00040410fcec31002fec30014bb0105458bd0004ffc0
00010004000400403811373859400d30054005500560058f059f05065d13331123c9caca05d5
fa2b0000000200baffe304a40614000b001c0038401903b90c0f09b918158c0fb81b97190012
1247180c06081a461d10fcec3232f4ec31002fece4f4c4ec10c6ee30b6601e801ea01e03015d
013426232206151416333236013e01333212111002232226271523113303e5a79292a7a79292
a7fd8e3ab17bccffffcc7bb13ab9b9022fcbe7e7cbcbe7e702526461febcfef8fef8febc6164
a8061400000100db000001ae00fe00030011b7008302011900180410fcec31002fec30373315
23dbd3d3fefe000100100000056805d5000600b7402704110506050311020306060503110403
000100021101010042030401af0006040302000505010710d4c4173931002fec3239304b5358
071005ed071008ed071008ed071005ed5922b2500801015d406200032a03470447055a037d03
8303070600070208040906150114021a041a052a002601260229042905250620083800330133
023c043c053706480045014502490449054706590056066602690469057a0076017602790479
057506800898009706295d005d21013309013301024afdc6d301d901dad2fdc705d5fb1704e9
fa2b0001006401df027f028300030011b6009c020401000410dccc310010d4ec301321152164
021bfde50283a40000020071ffe3045a06140010001c003840191ab9000e14b905088c0eb801
970317040008024711120b451d10fcecf4ec323231002fece4f4c4ec10c4ee30b6601e801ea0
1e03015d0111331123350e0123220211101233321601141633323635342623220603a2b8b83a
b17ccbffffcb7cb1fdc7a79292a8a89292a703b6025ef9eca86461014401080108014461fe15
cbe7e7cbcbe7e7000001006fffe303c7047b002700e7403c0d0c020e0b531f1e080902070a53
1e1f1e420a0b1e1f041500860189041486158918b91104b925b8118c281e0a0b1f1b0700521b
080e07081422452810fcc4ecd4ece4111239393939310010e4f4ec10fef5ee10f5ee12173930
4b535807100eed111739070eed1117395922b2002701015d406d1c0a1c0b1c0c2e092c0a2c0b
2c0c3b093b0a3b0b3b0c0b200020012402280a280b2a132f142f152a16281e281f2920292124
27860a860b860c860d12000000010202060a060b030c030d030e030f03100319031a031b031c
041d09272f293f295f297f2980299029a029f029185d005d7101152e012322061514161f011e
0115140623222627351e013332363534262f012e01353436333216038b4ea85a898962943fc4
a5f7d85ac36c66c661828c65ab40ab98e0ce66b4043fae282854544049210e2a99899cb62323
be353559514b50250f2495829eac1e0000000001fffa000004e905d50007004a400e06029500
81040140031c0040050810d4e4fce431002ff4ec3230014bb00a5458bd000800400001000800
08ffc03811373859401300091f00100110021f071009400970099f09095d0321152111231121
0604effdeecbfdee05d5aafad5052b0000010056000006350460000c0201404905550605090a
0904550a0903550a0b0a025501020b0b0a061107080705110405080807021103020c000c0111
00000c420a050203060300bf0b080c0b0a09080605040302010b07000d10d4cc173931002f3c
ec32321739304b5358071005ed071008ed071008ed071005ed071008ed071005ed0705ed0710
08ed5922014bb00a544bb011545b4bb012545b4bb013545b4bb00b545b58bd000dffc0000100
0d000d00403811373859014bb00c544bb00d545b4bb010545b58bd000d00400001000d000dff
c0381137385940ff050216021605220a350a49024905460a400a5b025b05550a500a6e026e05
660a79027f0279057f05870299029805940abc02bc05ce02c703cf051d0502090306040b050a
080b09040b050c1502190316041a051b081b09140b150c250025012302270321042505220622
0725082709240a210b230c390336043608390c300e4602480346044004420540064007400844
09440a440b400e400e560056015602500451055206520750085309540a550b6300640165026a
0365046a056a066a076e09610b670c6f0e7500750179027d0378047d057a067f067a077f0778
0879097f097b0a760b7d0c870288058f0e97009701940293039c049b05980698079908402f96
0c9f0ea600a601a402a403ab04ab05a906a907ab08a40caf0eb502b103bd04bb05b809bf0ec4
02c303cc04ca05795d005d13331b01331b013301230b012356b8e6e5d9e6e5b8fedbd9f1f2d9
0460fc96036afc96036afba00396fc6a000000010058000003db0460000900b4401a08110203
0203110708074208a900bc03a905080301000401060a10dcc432c411393931002fecf4ec304b
5358071005ed071005ed5922014bb00b544bb00c545b58bd000a00400001000a000affc03811
373859014bb0135458bd000affc00001000a000a004038113738594042050216022602470249
07050b080f0b18031b082b08200b36033908300b400140024503400440054308570359085f0b
6001600266036004600562087f0b800baf0b1b5d005d1321150121152135012171036afd4c02
b4fc7d02b4fd650460a8fcdb93a803250000000100aeffe30458046000130036401903090003
0e0106870e118c0a01bc0c0d09080b4e020800461410fcecf4ec3231002fe432f4c4ec111217
3930b46015cf1502015d1311331114163332363511331123350e01232226aeb87c7c95adb8b8
43b175c1c801ba02a6fd619f9fbea4027bfba0ac6663f0000001009eff1201c300fe00050019
400c039e0083060304011900180610fcecd4cc310010fcec30373315032313f0d3a48152feac
fec001400001003b000004790460000b015a4046051106070604110304070706041105040102
0103110202010b110001000a11090a0101000a110b0a0708070911080807420a070401040800
bf05020a0704010408000208060c10d4c4d4c411173931002f3cec321739304b5358071005ed
071008ed071008ed071005ed071005ed071008ed071008ed071005ed5922014bb00a544bb00f
545b4bb010545b4bb011545b58bd000cffc00001000c000c00403811373859014bb0145458bd
000c00400001000c000cffc0381137385940980a04040a1a04150a260a3d04310a5504570758
0a660a76017a047607740a8d04820a99049f049707920a900aa601a904af04a507a30aa00a1c
0a03040505090a0b1a03150515091a0b2903260525092a0b200d3a013903370534073609390b
300d4903460545094a0b400d590056015902590357055606590756085609590b500d6f0d7801
7f0d9b019407ab01a407b00dcf0ddf0dff0d2f5d005d09022309012309013309010464fe6b01
aad9febafebad901b3fe72d9012901290460fddffdc101b8fe48024a0216fe71018f00000003
00c9000004ec05d5000800110020004340231900950a0995128101950aad1f110b080213191f
05000e1c1605191c2e09001c12042110fcec32fcecd4ec111739393931002fececf4ec10ee39
30b20f2201015d01112132363534262301112132363534262325213216151406071e01151404
232101930144a39d9da3febc012b94919194fe0b0204e7fa807c95a5fef0fbfde802c9fddd87
8b8c850266fe3e6f727170a6c0b189a21420cb98c8da000100ba0000049c0614000a00bc4029
0811050605071106060503110405040211050504420805020303bc0097090605010406080108
00460b10fcec32d4c4113931002f3cece41739304b5358071004ed071005ed071005ed071004
ed5922b2100c01015d405f04020a081602270229052b0856026602670873027705820289058e
08930296059708a3021209050906020b030a072803270428052b062b07400c6803600c890385
0489058d068f079a039707aa03a705b607c507d607f703f003f704f0041a5d71005d13331101
33090123011123bab90225ebfdae026bf0fdc7b90614fc6901e3fdf4fdac0223fddd000100b2
ffe3052905d50011004b40160802110b0005950e8c09008112081c0a38011c00411210fcecfc
ec310010e432f4ec113939393930014bb0105458bd00120040000100120012ffc03811373859
b61f138f139f13035d133311141633323635113311100021200011b2cbaec3c2aecbfedffee6
fee5fedf05d5fc75f0d3d3f0038bfc5cfedcfed6012a012400000001002f000002f806140013
0070401c0510010c08a906018700970e06bc0a02130700070905080d0f0b4c1410fc3cc4fc3c
c4c412393931002fe432fcec10ee3212393930014bb00a5458bd0014ffc00001001400140040
3811373859014bb00e5458bd00140040000100140014ffc03811373859b640155015a015035d
01152322061d012115211123112335333534363302f8b0634d012ffed1b9b0b0aebd06149950
68638ffc2f03d18f4ebbab000000000200030000000000140001000000000034000400200000
0004000400010000f02effff0000f000ffff10000001000000000006006800000000002f0000
000100020003000400050006000700080009000a000b000c000d000e000f0010001100120013
001400150016001700180019001a001b001c001d001e001f0020002100220023002400250026
002700280029002a002b002c002d002e013500b800cb00cb00c100aa009c01a600b800660000
007100cb00a002b20085007500b800c301cb0189022d00cb00a600f000d300aa008700cb03aa
0400014a003300cb000000d9050200f4015400b4009c01390114013907060400044e04b40452
04b804e704cd0037047304cd04600473013303a2055605a60556053903c5021200c9001f00b8
01df007300ba03e9033303bc0444040e00df03cd03aa00e503aa0404000000cb008f00a4007b
00b80014016f007f027b0252008f00c705cd009a009a006f00cb00cd019e01d300f000ba0183
00d5009803040248009e01d500c100cb00f600830354027f00000333026600d300c700a400cd
008f009a0073040005d5010a00fe022b00a400b4009c00000062009c0000001d032d05d505d5
05d505f0007f007b005400a406b80614072301d300b800cb00a601c301ec069300a000d3035c
037103db0185042304a80448008f0139011401390360008f05d5019a06140723066601790460
04600460047b009c00000277046001aa00e904600762007b00c5007f027b000000b4025205cd
006600bc00660077061000cd013b01850389008f007b0000001d00cd074a042f009c009c0000
077d006f0000006f0335006a006f007b00ae00b2002d0396008f027b00f600830354063705f6
008f009c04e10266008f018d02f600cd03440029006604ee007300001400b606050403020100
2c2010b002254964b040515820c859212d2cb002254964b040515820c859212d2c20100720b0
0050b00d7920b8ffff5058041b0559b0051cb0032508b0042523e120b00050b00d7920b8ffff
5058041b0559b0051cb0032508e12d2c4b505820b0fd454459212d2cb002254560442d2c4b53
58b00225b0022545445921212d2c45442d000001000000020000322394a85f0f3cf5001f0800
00000000bab9f0b800000000bac26791fe89fe1d0a4c076d0000000800010000000000000001
0000076dfe1d00000abcfe89fe890a4c00010000000000000000000000000000002f04cd0066
06e700c904ec007107cb00ba04e50071034a00ba04bc003d028b000005960073051400ba0239
00c1023900c1031f00b004d300c903230037051200ba051200ba031f00a4047500c905140071
0466007104e7007b050e00c9049a00c902b20000058f00c90579001006330073062900c90514
0087025c00c9051400ba028b00db0579001002e3006405140071042b006f04e3fffa068b0056
04330058051200ae028b009e04bc003b057d00c904a200ba05db00b202d1002f0000002200a0
010a016c01be01f602e602e60332038003a803c6040a044a048804c40500052c054e05b205fe
069406c406ee0714079e0818086c08ac09280952099e09b20a220a380a840b340b6c0c8a0cfc
0d380d540e220e7a0ef20f3a0f9200010000002f004d00070042000400020010004000070000
0415056800030001b8028040fffbfe03fa1403f92503f83203f79603f60e03f5fe03f4fe03f3
2503f20e03f19603f02503ef8a4105effe03ee9603ed9603ecfa03ebfa03eafe03e93a03e842
03e7fe03e63203e5e45305e59603e48a4105e45303e3e22f05e3fa03e22f03e1fe03e0fe03df
3203de1403dd9603dcfe03db1203da7d03d9bb03d8fe03d68a4105d67d03d5d44705d57d03d4
4703d3d21b05d3fe03d21b03d1fe03d0fe03cffe03cefe03cd9603cccb1e05ccfe03cb1e03ca
3203c9fe03c6851105c61c03c51603c4fe03c3fe03c2fe03c1fe03c0fe03bffe03befe03bdfe
03bcfe03bbfe03ba1103b9862505b9fe03b8b7bb05b8fe03b7b65d05b7bb03b78004b6b52505
b65d40ff03b64004b52503b4fe03b39603b2fe03b1fe03b0fe03affe03ae6403ad0e03acab25
05ac6403abaa1205ab2503aa1203a98a4105a9fa03a8fe03a7fe03a6fe03a51203a4fe03a3a2
0e05a33203a20e03a16403a08a4105a096039ffe039e9d0c059efe039d0c039c9b19059c6403
9b9a10059b19039a1003990a0398fe0397960d0597fe03960d03958a410595960394930e0594
2803930e0392fa039190bb0591fe03908f5d0590bb039080048f8e25058f5d038f40048e2503
8dfe038c8b2e058cfe038b2e038a8625058a410389880b05891403880b038786250587640386
85110586250385110384fe038382110583fe0382110381fe0380fe037ffe0340ff7e7d7d057e
fe037d7d037c64037b5415057b25037afe0379fe03780e03770c03760a0375fe0374fa0373fa
0372fa0371fa0370fe036ffe036efe036c21036bfe036a1142056a530369fe03687d03671142
0566fe0365fe0364fe0363fe0362fe03613a0360fa035e0c035dfe035bfe035afe0359580a05
59fa03580a035716190557320356fe035554150555420354150353011005531803521403514a
130551fe03500b034ffe034e4d10054efe034d10034cfe034b4a13054bfe034a4910054a1303
491d0d05491003480d0347fe0346960345960344fe0343022d0543fa0342bb03414b0340fe03
3ffe033e3d12053e14033d3c0f053d12033c3b0d053c40ff0f033b0d033afe0339fe03383714
0538fa033736100537140336350b05361003350b03341e03330d0332310b0532fe03310b0330
2f0b05300d032f0b032e2d09052e10032d09032c32032b2a25052b64032a2912052a25032912
032827250528410327250326250b05260f03250b0324fe0323fe03220f032101100521120320
64031ffa031e1d0d051e64031d0d031c1142051cfe031bfa031a42031911420519fe03186403
1716190517fe031601100516190315fe0314fe0313fe031211420512fe0311022d0511420310
7d030f64030efe030d0c16050dfe030c0110050c16030bfe030a100309fe0308022d0508fe03
0714030664030401100504fe03401503022d0503fe0302011005022d0301100300fe0301b801
64858d012b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b002b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b1d00>
] def
FontName currentdict end definefont pop
%%Page: 1 1
%%BeginPageSetup
%%PageBoundingBox: 0 0 630 399
%%EndPageSetup
q
0 g
1.005231 w
0 J
0 j
[] 0.0 d
4 M q 1 0 0 -1 0 398.268463 cm
220.387 54.336 m 351.496 54.336 l 351.496 88.773 l 220.387 88.773 l
220.387 54.336 l h
220.387 54.336 m S Q
BT
9.6 0 0 9.6 240.400003 325.596368 Tm
/f-0-0 1 Tf
[<01>1<02>2<03>2<0405>-1<060708>-1<0403>2<090a0b>1<02>2<05>]TJ
0 -1.25 Td
[<0c0d>-1<060e0f>-1<0410>-1<11>]TJ
ET
1.60016 w
q 1 0 0 -1 0 398.268463 cm
175.582 163.477 m 175.582 168.566 160.82 172.695 142.613 172.695 c
124.402 172.695 109.645 168.566 109.645 163.477 c 109.645 158.383
124.402 154.254 142.613 154.254 c 160.82 154.254 175.582 158.383
175.582 163.477 c h
175.582 163.477 m S Q
q 1 0 0 -1 0 398.268463 cm
175.504 212.371 m 175.504 217.461 160.742 221.59 142.535 221.59 c
124.328 221.59 109.566 217.461 109.566 212.371 c 109.566 207.277
124.328 203.148 142.535 203.148 c 160.742 203.148 175.504 207.277
175.504 212.371 c h
175.504 212.371 m S Q
1.6 w
q 1 0 0 -1 0 398.268463 cm
175.023 163.754 m 175.023 212.371 l S Q
q 1 0 0 -1 0 398.268463 cm
109.645 163.477 m 109.645 212.09 l S Q
1.60016 w
q 1 0 0 -1 0 398.268463 cm
311.406 163.895 m 311.406 168.988 296.645 173.113 278.438 173.113 c
260.227 173.113 245.469 168.988 245.469 163.895 c 245.469 158.801
260.227 154.676 278.438 154.676 c 296.645 154.676 311.406 158.801
311.406 163.895 c h
311.406 163.895 m S Q
q 1 0 0 -1 0 398.268463 cm
311.328 212.789 m 311.328 217.879 296.566 222.008 278.359 222.008 c
260.152 222.008 245.391 217.879 245.391 212.789 c 245.391 207.695
260.152 203.57 278.359 203.57 c 296.566 203.57 311.328 207.695 311.328
212.789 c h
311.328 212.789 m S Q
1.6 w
q 1 0 0 -1 0 398.268463 cm
310.844 164.176 m 310.844 212.789 l S Q
q 1 0 0 -1 0 398.268463 cm
245.469 163.895 m 245.469 212.508 l S Q
1.60016 w
q 1 0 0 -1 0 398.268463 cm
439.926 166.688 m 439.926 171.781 425.164 175.91 406.957 175.91 c
388.75 175.91 373.988 171.781 373.988 166.688 c 373.988 161.598 388.75
157.469 406.957 157.469 c 425.164 157.469 439.926 161.598 439.926
166.688 c h
439.926 166.688 m S Q
q 1 0 0 -1 0 398.268463 cm
439.848 215.582 m 439.848 220.676 425.09 224.801 406.883 224.801 c
388.672 224.801 373.914 220.676 373.914 215.582 c 373.914 210.492
388.672 206.363 406.883 206.363 c 425.09 206.363 439.848 210.492
439.848 215.582 c h
439.848 215.582 m S Q
1.6 w
q 1 0 0 -1 0 398.268463 cm
439.367 166.969 m 439.367 215.582 l S Q
q 1 0 0 -1 0 398.268463 cm
373.988 166.688 m 373.988 215.305 l S Q
1.60016 w
q 1 0 0 -1 0 398.268463 cm
252.73 339.355 m 252.73 344.445 237.973 348.574 219.762 348.574 c
201.555 348.574 186.793 344.445 186.793 339.355 c 186.793 334.262
201.555 330.133 219.762 330.133 c 237.973 330.133 252.73 334.262 252.73
339.355 c h
252.73 339.355 m S Q
q 1 0 0 -1 0 398.268463 cm
252.656 388.25 m 252.656 393.34 237.895 397.469 219.688 397.469 c
201.48 397.469 186.719 393.34 186.719 388.25 c 186.719 383.156 201.48
379.027 219.688 379.027 c 237.895 379.027 252.656 383.156 252.656
388.25 c h
252.656 388.25 m S Q
1.6 w
q 1 0 0 -1 0 398.268463 cm
252.172 339.633 m 252.172 388.25 l S Q
q 1 0 0 -1 0 398.268463 cm
186.793 339.355 m 186.793 387.969 l S Q
BT
9.6 0 0 9.6 75.557163 243.454333 Tm
/f-0-0 1 Tf
[<12>18<04>1<130a14>1<15>-2<0b>]TJ
18.684519 -2.996216 Td
[<1216>1<17>1<18>-1<17>1<19>41<1a01>]TJ
0 -1.25 Td
[<1b1c1d>-2<1e1e>]TJ
12.805588 0.0276477 Td
[<120a>1<1f02>2<05>-1<0e>-1<06070c>-1<200b0a>1<1f11>]TJ
-26.891736 1.133586 Td
[<1d>-2<090a>1<14>1<02>1<18>-1<12>110<21>1<1d>]TJ
0 -1.25 Td
[<21>79<02>2<05>-1<0a0b>1<0413>]TJ
8.43187 5.747114 Td
[<17>73<05>21<0410>-1<0e22>-1<16>1<10>-1<23>]TJ
0 -1.25 Td
[<0d0f>-1<0624>-1<0a>1<14>1<15>-3<0b>]TJ
25.203725 -0.0305608 Td
[<16>1<24>-1<0e0a03>2<15>-2<0e>-1<02>2<23>]TJ
0 -1.25 Td
[<25>29<0a03>2<0a10>-1<1318>-1<0d>35<042602>2<05>]TJ
ET
1.005231 w
q 1 0 0 -1 0 398.268463 cm
156.406 248.234 m 287.516 248.234 l 287.516 282.676 l 156.406 282.676 l
156.406 248.234 l h
156.406 248.234 m S Q
BT
9.6 0 0 9.6 168.816605 130.165637 Tm
/f-0-0 1 Tf
[<01>1<02>2<03>2<0405>-1<060708>-1<0f>-1<15>-2<05>-1<15>-3<14>1<0e02>2<05>-1<0a
27>]TJ
10.126953 0 Td
[<02>2<05>]TJ
-10.126953 -1.25 Td
[<0c0d>-1<060e0f>-1<0410>-1<11>]TJ
ET
0.921608 w
[ 5.529648 0.921608] 0 d
q 1 0 0 1 0 398.268463 cm
0.461 -281.039 m 116.008 -281.039 l 116.008 -248.191 l 0.461 -248.191 l
0.461 -281.039 l h
0.461 -281.039 m S Q
BT
9.6 0 0 9.6 4.795825 134.635925 Tm
/f-0-0 1 Tf
[<1d>-2<0a>1<03>1<28>-1<0b>1<15>-3<0e0405>]TJ
0 -1.25 Td
[<0c02>1<201320>-1<0710>-1<1324090a14>1<02>2<29>-1<0724>-1<0902>2<14>1<0e
05>]TJ
10.197266 0 Td
[<02>2<11>]TJ
ET
0.874385 w
[ 0.874385 1.748769] 0 d
q 1 0 0 -1 0 398.268463 cm
331.52 249.285 m 435.379 249.285 l 435.379 282.18 l 331.52 282.18 l
331.52 249.285 l h
331.52 249.285 m S Q
BT
9.6 0 0 9.6 345.902591 136.871082 Tm
/f-0-0 1 Tf
[<16>1<2a0e>-1<0515>-3<14>1<0e0405>]TJ
0 -1.25 Td
[<0c02>1<201320>-1<0708>-1<15>-2<0b0a>1<1f05>20<02>2<11>]TJ
-23.853645 -9.999148 Td
[<1a1010>-1<040e15>-3<0e02>2<23>]TJ
0 -1.25 Td
[<25>29<0a03>2<0a10>-1<1318>-1<0d>35<042602>2<05>]TJ
7.661297 2.021848 Td
[<120a>1<1f02>2<05>-1<0e>-1<06070c>-1<200b0a>1<1f11>]TJ
0 -1.25 Td
[<1d>-2<090a>1<14>1<02>]TJ
ET
1.6 w
[] 0.0 d
q 1 0 0 -1 0 398.268463 cm
280.633 88.879 m 145.965 152.578 l S Q
151.75 248.425 m 153.273 252.686 l 144.52 245.007 l 156.012 246.901 l
151.75 248.425 l h
151.75 248.425 m f*
0.723173 w
q 1 0.473029 0.473029 -1 0 398.268463 cm
66.083 181.103 m 68.975 178.209 l 58.853 181.101 l 68.977 183.995 l
66.083 181.103 l h
66.083 181.103 m S Q
1.6 w
q 1 0 0 -1 0 398.268463 cm
280.074 89.438 m 280.074 153.695 l S Q
280.074 250.972 m 276.875 254.171 l 280.074 242.972 l 283.273 254.171 l
280.074 250.972 l h
280.074 250.972 m f*
0.8 w
q -0.000000000000000061 1 1 0.000000000000000061 0 398.268463 cm
-147.297 280.074 m -144.098 276.875 l -155.297 280.074 l -144.098
283.273 l -147.297 280.074 l h
-147.297 280.074 m S Q
1.6 w
q 1 0 0 -1 0 398.268463 cm
285.27 89.043 m 340.207 121.863 l S Q
334.711 279.69 m 330.324 278.581 l 341.578 275.585 l 333.605 284.077 l
334.711 279.69 l h
334.711 279.69 m f*
0.686779 w
q -1 0.597406 0.597406 1 0 398.268463 cm
-298.881 59.975 m -296.137 57.226 l -305.75 59.973 l -296.135 62.722 l
-298.881 59.975 l h
-298.881 59.975 m S Q
1.6 w
q 1 0 0 -1 0 398.268463 cm
155.465 265.453 m 116.348 265.453 l S Q
149.062 132.815 m 145.863 129.612 l 157.062 132.815 l 145.863 136.015 l
149.062 132.815 l h
149.062 132.815 m f*
0.8 w
q -1 -0.000000000000000122 -0.000000000000000122 1 0 398.268463 cm
-149.062 -265.453 m -145.863 -268.656 l -157.062 -265.453 l -145.863
-262.254 l -149.062 -265.453 l h
-149.062 -265.453 m S Q
122.75 132.815 m 125.949 136.015 l 114.75 132.815 l 125.949 129.612 l
122.75 132.815 l h
122.75 132.815 m f*
q 1 -0.000000000000000122 -0.000000000000000122 -1 0 398.268463 cm
122.75 265.453 m 125.949 262.254 l 114.75 265.453 l 125.949 268.656 l
122.75 265.453 l h
122.75 265.453 m S Q
1.6 w
q 1 0 0 -1 0 398.268463 cm
252.395 219.602 m 218.934 247.098 l S Q
223.879 155.233 m 224.32 159.737 l 217.699 150.155 l 228.383 154.792 l
223.879 155.233 l h
223.879 155.233 m f*
0.618042 w
q 1 0.821886 0.821886 -1 0 398.268463 cm
14.403 254.873 m 16.876 252.401 l 8.224 254.872 l 16.874 257.345 l
14.403 254.873 l h
14.403 254.873 m S Q
1.005231 w
q 1 0 0 -1 0 398.268463 cm
341.922 104.066 m 473.031 104.066 l 473.031 138.508 l 341.922 138.508 l
341.922 104.066 l h
341.922 104.066 m S Q
BT
9.6 0 0 9.6 354.334622 274.333276 Tm
/f-0-0 1 Tf
[<01>1<02>2<03>2<0405>-1<060708>-1<0f>-1<15>-2<05>-1<15>-3<14>1<0e02>2<05>-1<0a
27>]TJ
10.126953 0 Td
[<02>2<05>]TJ
-10.126953 -1.25 Td
[<0c0d>-1<060e0f>-1<0410>-1<11>]TJ
ET
1.6 w
q 1 0 0 -1 0 398.268463 cm
408.594 137.887 m 408.594 156.578 l S Q
408.594 248.089 m 405.395 251.288 l 408.594 240.089 l 411.797 251.288 l
408.594 248.089 l h
408.594 248.089 m f*
0.8 w
q -0.000000000000000061 1 1 0.000000000000000061 0 398.268463 cm
-150.18 408.594 m -146.98 405.395 l -158.18 408.594 l -146.98 411.797 l
-150.18 408.594 l h
-150.18 408.594 m S Q
1.6 w
q 1 0 0 -1 0 398.268463 cm
157.699 221.309 m 200.727 247.016 l S Q
195.23 154.538 m 190.844 153.429 l 202.098 150.433 l 194.125 158.925 l
195.23 154.538 l h
195.23 154.538 m f*
0.68678 w
q -1 0.597403 0.597403 1 0 398.268463 cm
-251.189 -93.67 m -248.444 -96.418 l -258.057 -93.672 l -248.443
-90.923 l -251.189 -93.67 l h
-251.189 -93.67 m S Q
2.4 w
[ 7.2 7.2] 0 d
q 1 0 0 -1 0 398.268463 cm
22.473 236.957 m 597.465 236.957 l S Q
BT
16 0 0 16 5.708505 64.082971 Tm
/f-0-0 1 Tf
[<2b15>-2<14>1<2c>1<22161023>]TJ
0 -1 Td
[<01>1<02>2<0e0f>-1<042304>1<0b04>1<1306>]TJ
0.674965 15.682794 Td
[<17>73<05>21<0410>-1<0e22>-1<16>1<10>-1<23>]TJ
0 -1 Td
[<01>1<02>2<0e0f>-1<042304>1<0b04>1<1306>]TJ
ET
0.921608 w
[ 5.529648 0.921608] 0 d
q 1 0 0 1 0 398.268463 cm
514.727 -138.27 m 630.273 -138.27 l 630.273 -105.422 l 514.727 -105.422
l 514.727 -138.27 l h
514.727 -138.27 m S Q
BT
9.6 0 0 9.6 519.059866 277.406592 Tm
/f-0-0 1 Tf
[<1d>-2<0a>1<03>1<28>-1<0b>1<15>-3<0e0405>]TJ
0 -1.25 Td
[<0c02>1<201320>-1<0710>-1<1324090a14>1<02>2<29>-1<0724>-1<0902>2<14>1<0e
05>]TJ
10.197266 0 Td
[<02>2<11>]TJ
ET
1.6 w
[] 0.0 d
q 1 0 0 -1 0 398.268463 cm
513.824 122.125 m 474.711 122.125 l S Q
507.426 276.143 m 504.227 272.944 l 515.426 276.143 l 504.227 279.343 l
507.426 276.143 l h
507.426 276.143 m f*
0.8 w
q -1 -0.000000000000000122 -0.000000000000000122 1 0 398.268463 cm
-507.426 -122.125 m -504.227 -125.324 l -515.426 -122.125 l -504.227
-118.926 l -507.426 -122.125 l h
-507.426 -122.125 m S Q
481.109 276.143 m 484.312 279.343 l 473.109 276.143 l 484.312 272.944 l
481.109 276.143 l h
481.109 276.143 m f*
q 1 -0.000000000000000122 -0.000000000000000122 -1 0 398.268463 cm
481.109 122.125 m 484.312 118.926 l 473.109 122.125 l 484.312 125.324 l
481.109 122.125 l h
481.109 122.125 m S Q
1.60016 w
q 1 0 0 -1 0 398.268463 cm
488.539 29.785 m 488.539 34.879 473.781 39.004 455.57 39.004 c 437.363
39.004 422.602 34.879 422.602 29.785 c 422.602 24.691 437.363 20.566
455.57 20.566 c 473.781 20.566 488.539 24.691 488.539 29.785 c h
488.539 29.785 m S Q
q 1 0 0 -1 0 398.268463 cm
488.465 78.68 m 488.465 83.77 473.703 87.898 455.496 87.898 c 437.289
87.898 422.527 83.77 422.527 78.68 c 422.527 73.586 437.289 69.461
455.496 69.461 c 473.703 69.461 488.465 73.586 488.465 78.68 c h
488.465 78.68 m S Q
1.6 w
q 1 0 0 -1 0 398.268463 cm
487.98 30.062 m 487.98 78.68 l S Q
q 1 0 0 -1 0 398.268463 cm
422.602 29.785 m 422.602 78.398 l S Q
BT
9.6 0 0 9.6 441.005374 347.123721 Tm
/f-0-0 1 Tf
[<25>167<02>2<14>1<0f>]TJ
0 -1.25 Td
[<120a>1<1f05>-1<15>-2<05>-1<06>]TJ
ET
q 1 0 0 -1 0 398.268463 cm
422.809 52.973 m 353.52 73.09 l S Q
359.664 326.964 m 361.848 330.929 l 351.984 324.733 l 363.629 324.784 l
359.664 326.964 l h
359.664 326.964 m f*
0.768277 w
q 1 0.290323 0.290323 -1 0 398.268463 cm
312.613 162.063 m 315.689 158.991 l 304.933 162.064 l 315.686 165.135 l
312.613 162.063 l h
312.613 162.063 m S Q
1.6 w
q 1 0 0 -1 0 398.268463 cm
282.879 22.918 m 282.32 51.973 l S Q
282.441 352.694 m 279.305 355.956 l 282.289 344.694 l 285.703 355.831 l
282.441 352.694 l h
282.441 352.694 m f*
0.799852 w
q 0.0192309 1 1 -0.0192309 0 398.268463 cm
-40.128 283.213 m -36.928 280.015 l -48.128 283.215 l -36.93 286.413 l
-40.128 283.213 l h
-40.128 283.213 m S Q
BT
9.6 0 0 9.6 199.049588 390.974713 Tm
/f-0-0 1 Tf
[<2d24>-1<02>2<05>-1<071d>-2<0902>2<140a>1<2e>-1<0a14>1<15>-2<0e>-1<0a>1<04
10>]TJ
0 -1.25 Td
[<0c26>-1<04>1<05>16<230724>-1<0a>1<27>-1<02>2<2907>-1<03>2<02>2<03>1<04
050607>]TJ
10.234375 0 Td
[<240a2702>1<2907>-1<15>-2<240902>2<140e0705>-1<15>-3<0e0a04>1<29>-1<07
02>2<0e>]TJ
10.169922 0 Td
<1420>Tj
ET
1.6 w
q 1 0 0 -1 0 398.268463 cm
327.57 265.453 m 288.457 265.453 l S Q
321.172 132.815 m 317.973 129.612 l 329.172 132.815 l 317.973 136.015 l
321.172 132.815 l h
321.172 132.815 m f*
0.8 w
q -1 -0.000000000000000122 -0.000000000000000122 1 0 398.268463 cm
-321.172 -265.453 m -317.973 -268.656 l -329.172 -265.453 l -317.973
-262.254 l -321.172 -265.453 l h
-321.172 -265.453 m S Q
294.855 132.815 m 298.055 136.015 l 286.855 132.815 l 298.055 129.612 l
294.855 132.815 l h
294.855 132.815 m f*
q 1 -0.000000000000000122 -0.000000000000000122 -1 0 398.268463 cm
294.855 265.453 m 298.055 262.254 l 286.855 265.453 l 298.055 268.656 l
294.855 265.453 l h
294.855 265.453 m S Q
1.370434 w
q 1 0 0 -1 0 398.268463 cm
219.727 282.898 m 219.727 328.188 l S Q
219.727 75.561 m 216.984 78.304 l 219.727 68.71 l 222.465 78.304 l
219.727 75.561 l h
219.727 75.561 m f*
0.685217 w
q -0.000000000000000061 1 1 0.000000000000000061 0 398.268463 cm
-322.707 219.727 m -319.965 216.984 l -329.559 219.727 l -319.965
222.465 l -322.707 219.727 l h
-322.707 219.727 m S Q
Q
showpage
%%Trailer
count op_count sub {pop} repeat
countdictstack dict_count sub {end} repeat
cairo_eps_state restore
%%EOF

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 51 KiB

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 69 KiB

View File

@ -1,14 +0,0 @@
set terminal pdf dashed
set output "../Freepdk_Read_Access_time.pdf"
set palette color
set xlabel "Total Size (Kbit)"
set ylabel "Read Access time (ns)"
set key below
plot 'freepdk45_timing.dat' using ($1/1024):2 with line title '16-bit word' lt 0 lw 5 lc 0 ,\
'freepdk45_timing.dat' using ($1/1024):2 with points title '' lt 0 lw 5 lc 0 ,\
'freepdk45_timing.dat' using ($1/1024):3 with line title '32-bit word' lt 1 lw 5 lc 1 ,\
'freepdk45_timing.dat' using ($1/1024):3 with points title '' lt 1 lw 5 lc 1 ,\
'freepdk45_timing.dat' using ($1/1024):4 with line title '64-bit word' lt 2 lw 5 lc 2 ,\
'freepdk45_timing.dat' using ($1/1024):4 with points title '' lt 2 lw 5 lc 2 ,\
'freepdk45_timing.dat' using ($1/1024):5 with line title '128-bit word' lt 3 lw 5 lc 3 ,\
'freepdk45_timing.dat' using ($1/1024):5 with points title '' lt 3 lw 5 lc 3

View File

@ -1,5 +0,0 @@
2048 0.861 1.02 0.86 1.076
8192 1.32 1.33 1.5 1.34
32768 1.8 1.83 1.9 2.01
131072 2.2 2.6 6.75 9.86

View File

@ -1,14 +0,0 @@
set terminal pdf dashed
set output "../Scn3me_Read_Access_time.pdf"
set palette color
set xlabel "Total Size (Kbit)"
set ylabel "Read Access time (ns)"
set key below
plot 'scn3me_timing.dat' using ($1/1024):2 with line title '16-bit word' lt 0 lw 5 lc 0 ,\
'scn3me_timing.dat' using ($1/1024):2 with points title '' lt 0 lw 5 lc 0 ,\
'scn3me_timing.dat' using ($1/1024):3 with line title '32-bit word' lt 1 lw 5 lc 1 ,\
'scn3me_timing.dat' using ($1/1024):3 with points title '' lt 1 lw 5 lc 1 ,\
'scn3me_timing.dat' using ($1/1024):4 with line title '64-bit word' lt 2 lw 5 lc 2 ,\
'scn3me_timing.dat' using ($1/1024):4 with points title '' lt 2 lw 5 lc 2 ,\
'scn3me_timing.dat' using ($1/1024):5 with line title '128-bit word' lt 3 lw 5 lc 3 ,\
'scn3me_timing.dat' using ($1/1024):5 with points title '' lt 3 lw 5 lc 3

View File

@ -1,5 +0,0 @@
2048 9.42 11.82 14.81 22.9
8192 8.25 16.04 19.24 23.12
32768 11.69 14.7 23.82 30.75
131072 12.7 18.21 30.25 44.95

View File

@ -1,658 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="797.85938"
height="399.22998"
id="svg3956"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="timing_read.svg">
<defs
id="defs3958">
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart"
style="overflow:visible">
<path
id="path4694"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.4,0,0,0.4,4,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend"
style="overflow:visible">
<path
id="path4697"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart-5"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4694-5"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.4,0,0,0.4,4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend-6"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4697-6"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart-7"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4694-7"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.4,0,0,0.4,4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend-8"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4697-0"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart-3"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4694-8"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.4,0,0,0.4,4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend-5"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4697-3"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart-3-5"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4694-8-3"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.4,0,0,0.4,4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend-5-2"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4697-3-8"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart-54"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4694-70"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.4,0,0,0.4,4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend-9"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4697-9"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart-2"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4694-0"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.4,0,0,0.4,4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend-51"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4697-8"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart-33"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4694-1"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.4,0,0,0.4,4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend-90"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4697-7"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.2291699"
inkscape:cx="732.4176"
inkscape:cy="166.50869"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1280"
inkscape:window-height="751"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0">
<inkscape:grid
type="xygrid"
id="grid3964"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true"
originx="66.859375px"
originy="-225.09817px" />
</sodipodi:namedview>
<metadata
id="metadata3961">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(66.859375,-428.03404)">
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 90,436.27609 0,0 0,0 100,0 10,50 100,0 10,-50 100,0 10,50 100,0 10,-50 100,0 10,50 90,0"
id="path3966"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccccccc" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 90,546.27609 150,0 10,50 110,0 10,-50 90,0 10,50 100,0 10,-50 150,0"
id="path4501"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccc" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 90,611.27609 150,0 10,50 110,0 10,-50 90,0 10,50 100,0 10,-50 150,0"
id="path4501-4"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccc" />
<g
id="g4534"
transform="translate(0,3.9139099)">
<path
sodipodi:nodetypes="cc"
transform="translate(0,308.2677)"
inkscape:connector-curvature="0"
id="path4521"
d="m 140,354.09448 590,0"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
sodipodi:nodetypes="cc"
transform="translate(0,308.2677)"
inkscape:connector-curvature="0"
id="path4523"
d="m 130,404.09448 10,-50"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
transform="translate(0,308.2677)"
inkscape:connector-curvature="0"
id="path4525"
d="m 130,404.09448 -40,0"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
<g
id="g4529"
transform="translate(-20,68.91391)">
<path
transform="translate(0,308.2677)"
inkscape:connector-curvature="0"
id="path4497"
d="m 110,114.09448 150,0 10,50 210,0 10,-50 200,0 10,50 50,0"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:nodetypes="cccccccc" />
<path
transform="translate(0,308.2677)"
inkscape:connector-curvature="0"
id="path4499"
d="m 110,164.09448 150,0 10,-50 210,0 10,50 200,0 10,-50"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:nodetypes="ccccccc" />
<path
transform="translate(0,308.2677)"
inkscape:connector-curvature="0"
id="path4527"
d="m 700,114.09448 50,0"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:nodetypes="cc" />
</g>
<path
style="fill:none;stroke:#000000;stroke-width:1.3223573;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.64471461, 2.64471461;stroke-dashoffset:0"
d="m 305,429.92915 0,388.5842"
id="path4566"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1.32278144;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2.64556289, 2.64556289;stroke-dashoffset:0"
d="m 524,428.69543 0,388.8335"
id="path4566-2"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-12"
y="470.27609"
id="text4586"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4588"
x="-12"
y="470.27609"
style="font-size:32px">CLK</tspan></text>
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-26"
y="527.27606"
id="text4590"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4592"
x="-26"
y="527.27606"
style="font-size:32px">ADDR</tspan></text>
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-18"
y="576.27612"
id="text4594"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4596"
x="-18"
y="576.27612"
style="font-size:32px">CSb</tspan></text>
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-18"
y="647.27612"
id="text4598"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4600"
x="-18"
y="647.27612"
style="font-size:32px">OEb</tspan></text>
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-26"
y="696.27612"
id="text4602"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4604"
x="-26"
y="696.27612"
style="font-size:32px">WEb</tspan></text>
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-70"
y="805.46796"
id="text4606"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4608"
x="-70"
y="805.46796"
style="font-size:32px">DATA OUT</tspan></text>
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="340"
y="527.27606"
id="text4610"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4612"
x="340"
y="527.27606"
style="font-size:32px">A0</tspan></text>
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="560"
y="527.27606"
id="text4614"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4616"
x="560"
y="527.27606"
style="font-size:32px">A1</tspan></text>
<g
id="g4620"
transform="matrix(1.0000534,0,0,0.88368291,-20.022979,120.16312)">
<g
id="g4529-7"
transform="translate(0,320)">
<path
sodipodi:nodetypes="cccccccc"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 110,114.09448 80,0 10,50 289.14867,0 10,-50 192.1027,0 10,50 48.74863,0"
id="path4497-7"
inkscape:connector-curvature="0"
transform="translate(0,308.2677)" />
<path
sodipodi:nodetypes="ccccccc"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 110,164.09448 80,0 10,-50 289.14867,0 10,50 192.1027,0 10,-50"
id="path4499-4"
inkscape:connector-curvature="0"
transform="translate(0,308.2677)" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 700,114.09448 30,0"
id="path4527-5"
inkscape:connector-curvature="0"
transform="translate(0,308.2677)" />
</g>
<path
transform="translate(0,308.2677)"
inkscape:connector-curvature="0"
id="path4618"
d="m 650,434.09448 100,0"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
sodipodi:nodetypes="cc" />
</g>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:16px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
x="527.25018"
y="811.45892"
id="text4652"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4654"
x="527.25018"
y="811.45892"
style="font-size:32px">D0</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:16px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
x="684.11365"
y="808.77997"
id="text4656"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4658"
x="684.11365"
y="808.77997"
style="font-size:32px">D1</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
d="m 250,574.27609 50,0"
id="path4682"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
d="m 250,637.27609 50,0"
id="path4682-2"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
d="m 310,637.27609 50,0"
id="path4682-2-2"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
d="m 310,574.27609 50,0"
id="path4682-2-3"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="250"
y="627.27612"
id="text5843"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5845"
x="250"
y="627.27612"
style="font-size:18px">Setup</tspan></text>
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="314"
y="629.27612"
id="text5847"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5849"
x="314"
y="629.27612"
style="font-size:18px">Hold</tspan></text>
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="248"
y="566.27612"
id="text5843-2"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5845-4"
x="248"
y="566.27612"
style="font-size:18px">Setup</tspan></text>
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="314"
y="568.27612"
id="text5847-7"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5849-7"
x="314"
y="568.27612"
style="font-size:18px">Hold</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart-2);marker-end:url(#Arrow1Mend-51);stroke-miterlimit:4;stroke-dasharray:none"
d="m 310.93011,798.61859 157.28627,0"
id="path6523"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
xml:space="preserve"
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="349.70599"
y="794.34436"
id="text7149"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan7151"
x="352.57123"
y="794.34436"
style="font-size:18px;text-align:center;text-anchor:middle">Read </tspan><tspan
sodipodi:role="line"
x="349.70599"
y="816.84436"
style="font-size:18px;text-align:center;text-anchor:middle"
id="tspan3253">Delay</tspan></text>
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="250"
y="515.27612"
id="text5843-2-3"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5845-4-5"
x="250"
y="515.27612"
style="font-size:18px">Setup</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
d="m 250,521.27609 50,0"
id="path4682-4"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 90,771.27609 220,0 10,-50 100,0 10,50 100,0 10,-50 100,0 10,50 80,0"
id="path3080"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccc" />
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-26"
y="755.27612"
id="text3946"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3948"
x="-26"
y="755.27612"
style="font-size:32px">SCLK</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.13527045;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.27054089, 0.27054089;stroke-dashoffset:0"
d="m 524.00609,826.54582 0,0.65056"
id="path4004"
inkscape:connector-curvature="0" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 24 KiB

View File

@ -1,858 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="829.35938"
height="452.07816"
id="svg3956"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="timing_write.svg">
<defs
id="defs3958">
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart"
style="overflow:visible">
<path
id="path4694"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.4,0,0,0.4,4,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend"
style="overflow:visible">
<path
id="path4697"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart-5"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4694-5"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.4,0,0,0.4,4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend-6"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4697-6"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart-7"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4694-7"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.4,0,0,0.4,4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend-8"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4697-0"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart-3"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4694-8"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.4,0,0,0.4,4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend-5"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4697-3"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart-3-5"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4694-8-3"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.4,0,0,0.4,4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend-5-2"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4697-3-8"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart-54"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4694-70"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.4,0,0,0.4,4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend-9"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4697-9"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart-2"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4694-0"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.4,0,0,0.4,4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend-51"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4697-8"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart-33"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4694-1"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.4,0,0,0.4,4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend-90"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4697-7"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart-4"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4694-703"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.4,0,0,0.4,4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend-84"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4697-70"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart-32"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4694-73"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.4,0,0,0.4,4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend-4"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4697-76"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mstart-32-6"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4694-73-8"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.4,0,0,0.4,4,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend-4-3"
style="overflow:visible">
<path
inkscape:connector-curvature="0"
id="path4697-76-9"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="723.39201"
inkscape:cy="156.33517"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1280"
inkscape:window-height="751"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0">
<inkscape:grid
type="xygrid"
id="grid3964"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true"
originx="98.359375px"
originy="-167.25px" />
</sodipodi:namedview>
<metadata
id="metadata3961">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(98.359375,-433.03404)">
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 90,436.375 0,0 0,0 100,0 10,50 100,0 10,-50 100,0 10,50 100,0 10,-50 100,0 10,50 90,0"
id="path3966"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccccccc" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 90,546.375 150,0 10,50 110,0 10,-50 90,0 10,50 100,0 10,-50 150,0"
id="path4501"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccc" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 90,601.375 150,0 10,50 110,0 10,-50 90,0 10,50 100,0 10,-50 150,0"
id="path4501-4"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccc" />
<g
id="g4534"
transform="translate(0,4.01282)">
<path
sodipodi:nodetypes="cc"
transform="translate(0,308.2677)"
inkscape:connector-curvature="0"
id="path4521"
d="m 140,354.09448 590,0"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
sodipodi:nodetypes="cc"
transform="translate(0,308.2677)"
inkscape:connector-curvature="0"
id="path4523"
d="m 130,404.09448 10,-50"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
transform="translate(0,308.2677)"
inkscape:connector-curvature="0"
id="path4525"
d="m 130,404.09448 -40,0"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
<g
id="g4529"
transform="translate(-20,69.01282)">
<path
transform="translate(0,308.2677)"
inkscape:connector-curvature="0"
id="path4497"
d="m 110,114.09448 150,0 10,50 210,0 10,-50 200,0 10,50 50,0"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:nodetypes="cccccccc" />
<path
transform="translate(0,308.2677)"
inkscape:connector-curvature="0"
id="path4499"
d="m 110,164.09448 150,0 10,-50 210,0 10,50 200,0 10,-50"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:nodetypes="ccccccc" />
<path
transform="translate(0,308.2677)"
inkscape:connector-curvature="0"
id="path4527"
d="m 700,114.09448 50,0"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:nodetypes="cc" />
</g>
<path
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2,2;stroke-dashoffset:0;stroke-opacity:1"
d="m 305,433.69543 0,448.8335"
id="path4566"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2,2;stroke-dashoffset:0;stroke-opacity:1"
d="m 524,435.01508 0,449.46746"
id="path4566-2"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-29"
y="476.375"
id="text4586"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4588"
x="-29"
y="476.375"
style="font-size:32px">CLK</tspan></text>
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-47"
y="527.375"
id="text4590"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4592"
x="-47"
y="527.375"
style="font-size:32px">ADDR</tspan></text>
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-38"
y="593.375"
id="text4594"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4596"
x="-38"
y="593.375"
style="font-size:32px">CSb</tspan></text>
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-39"
y="705.375"
id="text4598"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4600"
x="-39"
y="705.375"
style="font-size:32px">OEb</tspan></text>
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-38"
y="647.375"
id="text4602"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4604"
x="-38"
y="647.375"
style="font-size:32px">WEb</tspan></text>
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-59"
y="819.375"
id="text4606"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4608"
x="-59"
y="819.375"
style="font-size:32px">DATA IN</tspan></text>
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="337"
y="525.375"
id="text4610"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4612"
x="337"
y="525.375"
style="font-size:32px">A0</tspan></text>
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="549"
y="527.375"
id="text4614"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4616"
x="549"
y="527.375"
style="font-size:32px">A1</tspan></text>
<g
transform="translate(-70,355.01282)"
id="g4529-7">
<path
transform="translate(0,308.2677)"
inkscape:connector-curvature="0"
id="path4497-7"
d="m 270,164.09448 0,0 -123.5,0 273.5,0 10,-50 120,0 10,50 80,0"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
sodipodi:nodetypes="cccccccc" />
<path
transform="translate(0,308.2677)"
inkscape:connector-curvature="0"
id="path4499-4"
d="m 270,114.09448 0,0 -123,0 273,0 10,50 120,0 10,-50"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
sodipodi:nodetypes="ccccccc" />
<path
transform="translate(0,308.2677)"
inkscape:connector-curvature="0"
id="path4527-5"
d="m 700,114.09448 0,0"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
sodipodi:nodetypes="cc" />
</g>
<path
sodipodi:nodetypes="cc"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 580,777.375 0,0"
id="path4618"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:16px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
x="399.46103"
y="825.74933"
id="text4652"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4654"
x="399.46103"
y="825.74933"
style="font-size:20px">D0</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:16px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#666666;fill-opacity:1;stroke:none"
x="609"
y="814.375"
id="text4656"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4658"
x="609"
y="814.375"
style="font-size:32px;fill:#000000">D1</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
d="m 250,574.375 50,0"
id="path4682"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
d="m 250,629.375 50,0"
id="path4682-2"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
d="m 310,629.375 50,0"
id="path4682-2-2"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
d="m 310,574.375 50,0"
id="path4682-2-3"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="249"
y="621.375"
id="text5843"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5845"
x="249"
y="621.375"
style="font-size:18px">Setup</tspan></text>
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="314.25"
y="623.625"
id="text5847"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5849"
x="314.25"
y="623.625"
style="font-size:18px">Hold</tspan></text>
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="246"
y="565.375"
id="text5843-2"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5845-4"
x="246"
y="565.375"
style="font-size:18px">Setup</tspan></text>
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="312.25"
y="567.125"
id="text5847-7"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5849-7"
x="312.25"
y="567.125"
style="font-size:18px">Hold</tspan></text>
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="250"
y="515.375"
id="text5843-2-3"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5845-4-5"
x="250"
y="515.375"
style="font-size:18px">Setup</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
d="m 251,523.375 50,0"
id="path4682-4"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 90,771.375 220,0 10,-50 100,0 10,50 100,0 10,-50 100,0 10,50 80,0"
id="path3080"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccc" />
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-61"
y="761.375"
id="text3946"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3948"
x="-61"
y="761.375"
style="font-size:32px">WD_EN</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2,2;stroke-dashoffset:0;stroke-opacity:1"
d="m 416,435.36218 0,445"
id="path3969"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0"
d="m 372,769.375 0,50"
id="path4382"
inkscape:connector-curvature="0" />
<path
style="opacity:0.31687245;color:#000000;fill:#999999;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d=""
id="path4390"
inkscape:connector-curvature="0"
transform="translate(0,308.2677)" />
<path
style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
d="m 360.23744,803.99543 50,0"
id="path4682-2-9"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:16px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
x="361.44366"
y="797.12195"
id="text5843-3"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5845-5"
x="361.44366"
y="797.12195"
style="font-size:18px">Setup</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1.29484856;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
d="m 419.70711,804.4651 58.21641,0"
id="path4682-2-2-0"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:16px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
x="427.04504"
y="799.76324"
id="text5847-2"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5849-8"
x="427.04504"
y="799.76324"
style="font-size:18px">Hold</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 580,777.375 -90,0"
id="path3165"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 570,827.375 10,-50 120,0 10,50 22,0"
id="path4060"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 570,777.375 10,50 120,0 10,-50 22,0"
id="path4062"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.31687245;fill:#666666;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0;marker:none;enable-background:accumulate"
d="m 490.11279,820.40644 c -3.43878,-16.01305 -3.5001,-17.72303 -1.07757,-30.05012 l 2.29927,-11.69988 38.74001,0 38.74001,0 2.2939,11.67258 2.29391,11.67258 -2.27882,11.82742 -2.27882,11.82742 -38.80223,0 -38.80223,0 -1.12743,-5.25 z"
id="path4064"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 77,832.375 423,0 10,50 210,0 10,-50"
id="path4068"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 77.5,882.375 422.5,0 10,-50 210,0 10,50"
id="path4070"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:16px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
x="580"
y="866.375"
id="text4652-4"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4654-9"
x="580"
y="866.375"
style="font-size:32px">D0</tspan></text>
<text
xml:space="preserve"
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-9"
y="870.375"
id="text4114"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="-9"
y="870.375"
id="tspan4118"
style="font-size:32px;text-align:center;text-anchor:middle">X Mem Cell</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow1Mstart-32);marker-end:url(#Arrow1Mend-4)"
d="m 420,858.375 80,0"
id="path4120"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:12px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
x="459.04199"
y="854.375"
id="text4592"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4594"
x="461.58887"
y="854.375"
style="font-size:16px;text-align:center;text-anchor:middle">Write </tspan><tspan
sodipodi:role="line"
x="459.04199"
y="874.375"
style="font-size:16px;text-align:center;text-anchor:middle"
id="tspan3259">Delay</tspan></text>
<rect
style="opacity:0;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect3230"
width="89"
height="32"
x="135.64062"
y="556.38782" />
<flowRoot
xml:space="preserve"
id="flowRoot3232"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
transform="translate(-98.359375,322.375)"><flowRegion
id="flowRegion3234"><rect
id="rect3236"
width="1010"
height="85"
x="-103"
y="330" /></flowRegion><flowPara
id="flowPara3238" /></flowRoot> </g>
</svg>

Before

Width:  |  Height:  |  Size: 33 KiB

View File

@ -1,214 +0,0 @@
\section{Implementation}
\label{sec:implementation}
% source langauge
OpenRAM's methodology is implemented using an object-oriented approach
in the Python programming language. Python is a simple, yet powerful
language that is easy to learn and very human-readable. Moreover, Python
enables portability to most operating systems. OpenRAM has no additional
dependencies except a DRC/LVS tool, but that is disabled with a
warning if the tools are unavailable.
% portability of tools and technologies
In addition to system portability, OpenRAM is also translatable across
numerous process technologies. This is accomplished by using
generalized routines to generate the memory based on common features
across all technologies. To facilitate user modification and
technology interoperability, OpenRAM provides a reference implementation in
$45$nm FreePDK45~\cite{4231502} and a fabricable option using the
MOSIS Scalable CMOS (SCMOS) design rules~\cite{scmos}. FreePDK45 uses
many design rules found in modern technologies, but is non-fabricable,
while SCMOS enables fabrication of designs using the MOSIS foundry
services. SCMOS is not confidential and an implementation using it is
included, however, it does not include many advanced DSM design
rules. OpenRAM has also been ported to other commercial technologies,
but these are not directly included due to licensing issues.
% methodology overview
OpenRAM's framework is divided into \enquote{front-end} and \enquote{back-end}
methodologies as shown in Figure~\ref{fig:methodology}. The front-end
has the compiler and the characterizer. The compiler generates
SPICE models and its GDSII layouts based on user inputs. The
characterizer calls a SPICE simulator to produce timing and power
results. The back-end uses a spice netlist extracted from the GDSII
layout using to generate annotated timing and power models.
\begin{figure}[tb]
\centering
\includegraphics[width=8cm]{./figs/methodology.pdf}
\caption{Overall Compilation and Characterization Methodology}
\label{fig:methodology}
\end{figure}
%\fixme{We actually dont have back end done yet.}
\subsection{Base Data Structures}
The design modules in OpenRAM are derived from the {\it design} class
(design.py). The design class has a name, a SPICE model (netlist), and
a layout. Both the SPICE model and the layout inherit their
capabilities from a hierarchical class. The design class also provides
inherited functions to perform DRC and LVS verification of any
sub-design for hierarchical debugging.
The design class derives from the {\it spice} class
(hierarchy\_\allowbreak spice.py) which has a data structure to
maintain the circuit hierarchy. This class maintains the design
instances, their pins, and their connections as well as helper
functions to maintain the structure and connectivity of the circuit
hierarchy.
The design class also derives from a {\it layout} class (hierarchy\_layout.py).
This class has a list of physical instances of sub-modules in the layout and
a structure for simple objects such as shapes and labels in the
current hierarchy level. In addition, there are helper functions that
maintain the physical layout structures.
OpenRAM has an integrated, custom GDSII library to read, write, and
manipulate GDSII files. The library, originally called
GdsMill~\cite{gdsmill}, has been modified, debugged, and extended for
OpenRAM. Full rights were given to include the GdsMill source with
OpenRAM, but to make the interfacing easier and porting to other
physical layout databases possible, OpenRAM implements a {\it
geometry} wrapper class (geometry.py) that abstracts the GdsMill
library.
\subsection{Technology and Tool Portability}
% technology overview
OpenRAM is technology-independent by using a technology directory that
includes the technology's specific information, rules, and library
cells. Technology parameters such as the design rule check (DRC) rules
and the GDS layer map are required to ensure that the dynamically
generated designs are DRC clean. Custom designed library cells such as
the memory cell and the sense amplifier are also placed in this
directory. A very simple design rule parameter file has the most
important design rules for constructing basic interconnect and
transistor devices. FreePDK45 and SCMOS reference technologies are provided.
% hand-optimized cells
OpenRAM uses some custom-designed library primitives as technology
input. Since density is extremely important, the following cells are
pre-designed in each technology: 6T cell, sense amplifier,
master-slave flip-flop, tri-state gate, and write driver. All other
cells are generated on-the-fly using parameterizable transistor and
gate primitives.
% technology specific features
OpenRAM can be used for various technologies since it creates the
basic components of memory designs that are common over these
technologies. For technologies that have specific design requirements,
such as specialized well contacts, the user can include call-back
helper functions in the technology directory. This is done so that the
main compiler remains free of dependencies to specific technologies.
% DRC and LVS
OpenRAM has two functions that provide a wrapper interface with DRC
and LVS tools. These two functions perform DRC and LVS using the GDSII
layout and SPICE netlist files. Since each DRC and LVS tool has
different output, this routine is customized per tool to parse DRC/LVS
reports and return the number of errors while also outputting debug
information. These routines allow flexibility of any DRC/LVS tool,
but the default implementation calls Calibre nmDRC and nmLVS. In
OpenRAM, both DRC and LVS are performed at all levels of the design
hierarchy to enhance bug tracking. DRC and LVS can be disabled for
improved run-time or if tool licenses are not available.
\subsection{Class Hierarchy}
\subsubsection{High-Level Classes}
The {\it openram} class (openram.py) organizes execution and
instantiates a single memory design using the {\it sram} class. It
accepts user-provided parameters to generate the design, performs the
optional extraction, performs characterization, and saves the
resulting design files.
The {\it sram} class (sram.py) decides the appropriate internal parameter
dependencies shown in Table~\ref{table:variables}. They are dependent
on the user-desired data word size, number of words, and number of banks.
It is responsible for instantiation of the single control logic module which
controls the SRAM banks. The control logic ensures that only one bank
is active in a given address range.
The {\it bank} class (bank.py) does the bulk of the non-control memory layout. It
instantiates $1$, $2$, or $4$ bit-cell arrays and coordinates the row and column
address decoders along with their pre-charge, sense amplifiers, and input/output
data flops.
\begin{table}
\centering
\caption{Dependencies required for sub-modules}
\begin{tabular}{|c|l|} \hline
Variable&Equation \\ \hline
\texttt{Total Bits} & $word\_size*num\_words$ \\ \hline
\texttt{Words Per Row} & $\sqrt(num\_words)/word\_size$ \\ \hline
\texttt{Num of Rows} & $num\_words/words\_per\_row$ \\ \hline
\texttt{Num of Cols} & $words\_per\_row*word\_size$ \\ \hline
\texttt{Col Addr Size} & $\log_2(words\_per\_row)$ \\ \hline
\texttt{Row Addr Size} & $\log_2(num\_of\_rows)$ \\ \hline
\texttt{Total Addr Size} & $row\_addr\_size + col\_addr\_size$ \\ \hline
\texttt{Data Size} & $word\_size$ \\ \hline
\texttt{Num of Bank} & $num\_banks$ \\ \hline
\end{tabular}
\label{table:variables}
\end{table}
\subsubsection{Block Classes}
Every other block in the memory design has a class for its base cell
(e.g., sense\_amplifier.py) and an array class (e.g.,
sense\_amplifier\_array.py) that is responsible for tiling the base
cell. Each class is responsible for physically placing and logically
connecting its own sub-circuits while passing its dimensions and port
locations up to higher-level modules.
\subsubsection{Low-Level Classes}
OpenRAM provides parameterized transistor and logic gate
classes that help with technology portability. These classes generate
a technology-specific transistor and simple logic gate layouts so that
many modules do not rely on library cells. It is also used
when a module such as the write driver needs transistor sizing
to optimize performance. The parameterized transistor (ptx.py) generates a
basic transistor of specified type and size. The parameterized
transistor class is used to provide several parameterized gates
including pinv.py, nand2.py, nand3.py, and nor2.py.
% FIXME
% crude fix to preven widow Section
%\clearpage
\subsection{Characterization}
% overview
OpenRAM includes a memory characterizer that measures the timing and
power characteristics through SPICE simulation. The
characterizer has four main stages: generating the SPICE stimulus,
running the circuit simulations, parsing the simulator's output, and
producing the characteristics in a Liberty (.lib) file.
% standard format of stimulus
The stimulus is written in standard SPICE format and can be used with
any simulator that supports this. The stimulus only uses the
interface of the memory (e.g., bi-directional data bus, address bus,
and control signals) to perform \enquote{black box} timing measurements.
% what is measured and how
Results from simulations are used to produce the average power,
setup/hold times, and timing delay of the memory design. Setup and
hold times are obtained by analyzing the flip-flop library cell
because OpenRAM uses a completely synchronous input interface. The
setup time, hold time, and delay are found using a fast bisection
search.
\subsection{Unit Tests}
Probably the most important feature of OpenRAM is the set of thorough
regression tests implemented with the Python unit test framework.
These unit tests allow users to add features and easily verifying if
functionality is broken. The tests also work in multiple technologies
so they can guide users when porting to new technologies. Every module
has its own regression test and there are also regression tests for
memory functionality, verifying library cells, timing
characterization, and technology verification.

View File

@ -1,68 +0,0 @@
\section{Introduction}
\label{sec:introduction}
% why memory compilers are important
Static Random Access Memories (SRAMs) have become a standard component
embedded in all System-on-Chip (SoC), Application-Specific Integrated
Circuit (ASIC), and micro-processor designs. Their wide application
leads to a variety of requirements in circuit design and memory
configuration. However, manual design is
too time consuming. The
regular structure of memories leads well to automation that produces
size and configuration variations quickly, but developing this with
multiple technologies and tool methodologies is challenging. In
addition, memory designs play a significant role in overall system
performance and costs, so optimization is important. Thus, a memory
compiler is a critical tool.
% why academics need memory compilers
Most academic ICs design methodologies are limited by the availability
of memories. Many standard-cell Process Design Kits (PDKs) are
available from foundries and vendors, but these PDKs frequently do not
come with memory arrays or memory compilers. If a memory compiler is
freely available, it often only supports a generic process technology
that is not fabricable. Due to academic funding restrictions,
commercial industry solutions are often not feasible for
researchers. In addition, these commercial solutions are limited in
customization of the memory sizes and specific components of the
memory. PDKs may have the options to request \enquote{black box}
memory models, but these are also not modifiable and have limited
available configurations. These restrictions and licensing issues make
comparison and experimentation with real world memories impossible.
% manually designing is time consuming
Academic researchers are able to design their own custom memories, but
this can be a tedious and time-consuming task and may not be the intended
purpose of the research. Frequently, the memory design is the bare
minimum that the research project requires,
and, because of this, the memory designs are often inferior and are not
optimized. In memory research, peripheral circuits are often not
considered when comparing memory performance and density. The
lack of a customizable compiler makes it difficult for researchers to
prototype and verify circuits and methodologies beyond a single row or
column of memory cells.
% what are the goals of OpenRAM
The OpenRAM project aims to provide an open-source memory compiler
development framework for memories. It provides reference circuit and
physical implementations in a generic $45$nm technology and fabricable
Scalable CMOS (SCMOS), but it has also been ported to several
commercial technology nodes using a simple technology file. OpenRAM
also includes a characterization methodology so that it can generate
the timing and power characterization results in addition to circuits and
layout while remaining independent of specific commercial tools. Most
importantly, OpenRAM is completely user-modifiable since all source
code is open source at:
\begin{center}
\url{https://openram.soe.ucsc.edu/}
\end{center}
The remainder of this paper is organized as follows:
Section~\ref{sec:background} provides a background on previous memory
compilers. Section~\ref{sec:architecture} presents the reference
memory architecture in OpenRAM. Section~\ref{sec:implementation}
specifically introduces the implementation and main features of the
OpenRAM memory compiler. In Section~\ref{sec:results}, an analysis of
the area, timing and power is shown for different sizes and
technologies of memory. Finally, the paper is summarized in
Section~\ref{sec:conclusions}.

View File

@ -1,122 +0,0 @@
% This file should be compiled with V2.5 of "sig-alternate.cls" May 2012
% This file has been modified by Brian Chen (bchen12@ucsc.edu) for the purpose of simplifying the sections
%
% This example file demonstrates the use of the 'sig-alternate.cls'
% V2.5 LaTeX2e document class file. It is for those submitting
% articles to ACM Conference Proceedings WHO DO NOT WISH TO
% STRICTLY ADHERE TO THE SIGS (PUBS-BOARD-ENDORSED) STYLE.
% The 'sig-alternate.cls' file will produce a similar-looking,
% albeit, 'tighter' paper resulting in, invariably, fewer pages.
%
% ----------------------------------------------------------------------------------------------------------------
% This .tex file (and associated .cls V2.5) produces:
% 1) The Permission Statement
% 2) The Conference (location) Info information
% 3) The Copyright Line with ACM data
% 4) NO page numbers
%
% as against the acm_proc_article-sp.cls file which
% DOES NOT produce 1) thru' 3) above.
%
% Using 'sig-alternate.cls' you have control, however, from within
% the source .tex file, over both the CopyrightYear
% (defaulted to 200X) and the ACM Copyright Data
% (defaulted to X-XXXXX-XX-X/XX/XX).
% e.g.
% \CopyrightYear{2007} will cause 2007 to appear in the copyright line.
% \crdata{0-12345-67-8/90/12} will cause 0-12345-67-8/90/12 to appear in the copyright line.
%
% ---------------------------------------------------------------------------------------------------------------
% This .tex source is an example which *does* use
% the .bib file (from which the .bbl file % is produced).
% REMEMBER HOWEVER: After having produced the .bbl file,
% and prior to final submission, you *NEED* to 'insert'
% your .bbl file into your source .tex file so as to provide
% ONE 'self-contained' source file.
%
% ================= IF YOU HAVE QUESTIONS =======================
% Questions regarding the SIGS styles, SIGS policies and
% procedures, Conferences etc. should be sent to
% Adrienne Griscti (griscti@acm.org)
%
% Technical questions _only_ to
% Gerald Murray (murray@hq.acm.org)
% ===============================================================
%
% For tracking purposes - this is V2.0 - May 2012
% Custom Modified Version - November 2013
\documentclass{sig-alternate-05-2015}
%\RequirePackage[pdftex]{hyperref}
\usepackage{comment}
\usepackage{graphicx}
\usepackage[autostyle]{csquotes}
\usepackage{subfigure}
\newcommand{\fixme}[1]{{\Large FIXME:} {\bf #1}}
\newcommand{\todo}[1]{{\bf TODO: {#1}}\\}
\newcommand{\note}[1]{{\bf Note:} \{#1\}\\}
\newcommand{\comm}[1]{\small{\it{ //{#1}}}}
% --- Author Metadata here ---
\conferenceinfo{ICCAD}{International Conference on Computer-Aided Design}
%\CopyrightYear{2007} % Allows default copyright year (20XX) to be over-ridden - IF NEED BE.
%\crdata{0-12345-67-8/90/01} % Allows default copyright data (0-89791-88-6/97/05) to be over-ridden - IF NEED BE.
% --- End of Author Metadata ---
\title{OpenRAM: An Open-Source Memory Compiler\\
\vspace{-0.5cm}\center{\normalsize{Invited Paper}}}
%\titlenote{Some Copyright info about OpenRAM??????}}
\numberofauthors{1}
\author{
%% TO DAC: Guthaus, Stine, Ataei, Chen, Wu, Sarwar
\alignauthor Matthew R. Guthaus$^1$, James E. Stine$^2$, Samira Ataei$^2$, \\Brian Chen$^1$, Bin Wu$^1$, Mehedi Sarwar$^2$ \\
\affaddr{$^1$ Department of Computer Engineering, University of California Santa Cruz, Santa Cruz, CA 95064}\\
\affaddr\{mrg, bchen12, bwu8\}@ucsc.edu \\
\affaddr{$^2$ Electrical and Computer Engineering Department, Oklahoma State University, Stillwater, OK 74078}\\
\affaddr\{james.stine, ataei, mehedis\}@okstate.edu}
%% \alignauthor Matthew Guthaus, Brian Chen, Bin Wu \\
%% \affaddr{Department of Computer Engineering} \\
%% \affaddr{University of California Santa Cruz} \\
%% \affaddr{Santa Cruz, CA 95064, USA} \\
%% \affaddr{\{mrg,bchen12,bwu8\}@ucsc.edu}
%% \and
%% \alignauthor James Stine, Samira Ataei, Mehedi Sarwar \\
%% \affaddr{Electrical and Computer Engineering Department} \\
%% \affaddr{Oklahoma State University} \\
%% \affaddr{Stillwater, OK 74078} \\
%% \affaddr{\{james.stine,ataei,XXXX\}@okstate.edu}
%%}
\begin{document}
\CopyrightYear{2016}
\setcopyright{acmlicensed}
\conferenceinfo{ICCAD '16,}{November 07 - 10, 2016, Austin, TX, USA}
\isbn{978-1-4503-4466-1/16/11}\acmPrice{\$15.00}
\doi{http://dx.doi.org/10.1145/2966986.2980098}
\maketitle
\input{abstract}
%\category{J.6}{COMPUTER-AIDED ENGINEERING}{\\Computer-aided design (CAD)}
%\terms{Design, Algorithms}
%\keywords{OpenRAM, Memory Compiler, Open-source}
\input{introduction}
\input{background}
\input{architecture}
\input{implementation}
\input{results}
\input{conclusion}
\input{acknowledgments}
\bibliographystyle{abbrv}
\bibliography{references} % Create bibliography using the file: references.bib
%\input{appendix}
\end{document}

View File

@ -1,586 +0,0 @@
@Comment @string{DAC = "ACM/IEEE Design Automation Conference~(DAC)"}
@Comment @string{TDEV = "IEEE Transactions on Electron Devices"}
@Comment @string{DATE = "IEEE Design, Automation and Test in Europe~(DATE)"}
@Comment @string{ISSCC = "IEEE International Solid-State Circuits Conference~(ISSCC)"}
@Comment @string{TVLSI = "IEEE Transactions on Very Large Scale Integration~(VLSI) Systems"}
@Comment @string{JSSC = "IEEE Journal of Solid-State Circuits~(JSSC)"}
@Comment @string{ICCD = "International Conference on Computer Design~(ICCD)"}
@Comment @string{ISLPED = "IEEE International Symposium on Low Power Electronics and Design~(ISLPED)"}
@Comment @STRING{ICCAD = "IEEE/ACM International Conference on Computer-Aided Design~(ICCAD)"}
@Comment @string{ASP-DAC = "IEEE Asia and South Pacific Design Automation Conference~(ASP-DAC)"}
@Comment @string{ISCAS = "IEEE International Symposium on Circuits and Systems~(ISCAS)"}
@Comment @string{TCAD = "IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems~(TCAD)"}
@Comment @string{GLSVLSI = "ACM Great Lakes Symposium on VLSI~(GLSVLSI)"}
@Comment @string{TCASI = "IEEE Transactions on Circuits and Systems I~(TCAS-I)"}
@Comment @string{TCASII = "IEEE Transactions on Circuits and Systems II~(TCAS-II)"}
@Comment @string{TC = "IEEE Transactions on Computers"}
@Comment @string{ISPD = "IEEE International Symposium on Physical Design~(ISPD)"}
@Comment @string{TODAES = "ACM Transactions on Design Automation of Electronic Systems~(TODAES)"}
@Comment @string{ISVLSI = "IEEE International Symposium on Very Large Scale Integration~(ISVLSI)"}
@Comment @string{ISQED = "International Symposium on Quality Electronic Design~(ISQED)"}
@Comment @string{TNUKE = "IEEE Transactions on Nuclear Science"}
@Comment @string{MWSCAS = "IEEE Midwest Symposium on Circuits and Systems~(MWSCAS)"}
@Comment @string{MSE = "IEEE International Conference on Microelectronic Systems Education~(MSE)"}
@string{DAC = "DAC"}
@string{TDEV = "TDEV"}
@string{DATE = "DATE"}
@string{ISSCC = "ISSCC"}
@string{TVLSI = "TVLSI"}
@string{JSSC = "JSSC"}
@string{ICCD = "ICCD"}
@string{ISLPED = "ISLPED"}
@STRING{ICCAD = "ICCAD"}
@string{ASP-DAC = "ASP-DAC"}
@string{ISCAS = "ISCAS"}
@string{TCAD = "TCAD"}
@string{GLSVLSI = "GLSVLSI"}
@string{TCASI = "TCAS-I"}
@string{TCASII = "TCAS-II"}
@string{TC = "TCOMP"}
@string{ISPD = "ISPD"}
@string{TODAES = "TODAES"}
@string{ISVLSI = "ISVLSI"}
@string{ISQED = "ISQED"}
@string{TNUKE = "Trans. on Nuclear Science"}
@string{MWSCAS = "MWSCAS"}
@string{MSE = "MSE"}
@book{Rabaey:2003,
title = {Digital Integrated Circuits: A Design Perspective},
author = {J. Rabaey and A. Chandrakasan and B. Nikolić},
year = {2003},
publisher = {Pearson Education, Inc.},
edition = {2nd}
}
@book{Chandrakasan:2001,
title = {Design of High Performance Microprocessor Circuits},
booktitle = {Design of High Performance Microprocessor Circuits},
author = {A. Chandrakasan and W.J. Bowhill and F. Fox},
year = {2001},
publisher = {IEEE Press}
}
@manual{gdsmill,
title = {GDS Mill User Manual},
author = {M. Wieckowski},
year = {2010}
}
%these are end of chapter references from Rabaey
%%%%%%%%%%%
@article{Amrutur:2001,
author = {B.S. Amrutur and M.A. Horowitz},
journal = JSSC,
title = {Fast Low-Power Decoders for RAMs},
number = {10},
pages = {1506-1515},
volume = {36},
year = {2001},
month = {Oct}
}
@inbook{Preston:2001,
title = {Register Files and Caches},
author = {R.P. Preston},
crossref = {Chandrakasan:2001}
}
@book{Itoh:2001,
title = {VLSI Memory Chip Design},
author = {K. Itoh},
publisher = {Springer-Verlag},
year = {2001}
}
@article{Itoh:1990,
author = {K. Itoh},
journal = JSSC,
title = {Trends in Megabit DRAM Circuit Design},
number = {3},
pages = {778-798},
volume = {25},
year = {1990},
month = {Jun}
}
@article{May:1979,
author = {T. May and M. Woods},
journal = TDEV,
title = {Aplha-Particle-Induced Soft Errors in Dynamic Memories},
number = {1},
pages = {2-9},
volume = {26},
year = {1979},
month = {Jan}
}
@ARTICLE{Tosaka:1997,
author={Y. Tosaka and S. Satoh and T. Itakura and K. Suzuki and T. Sugii and H. Ehara and G.A. Woffinden},
journal=TDEV,
title={Cosmic Ray Neutron-Induced Soft Errors in Sub-Half Micron CMOS Circuits},
year={1997},
volume={18},
number={3},
pages={99-101}
}
@ARTICLE{Regitz:1970,
author={W.M. Regitz and J. Karp},
journal=JSSC,
title={Three-transistor-cell 1024-bit 500-ns MOS RAM},
year={1970},
volume={5},
number={5},
pages={181-186}
}
@INPROCEEDINGS{Kim1:2011,
author={S. Kim and M. Guthaus},
booktitle=DAC,
title={Leakage-aware redundancy for reliable sub-threshold memories},
year={2011},
pages={435-440}
}
@INPROCEEDINGS{Kim2:2011,
author={S. Kim and M. Guthaus},
booktitle=VLSISOC,
title={SNM-aware power reduction and reliability improvement in 45nm {SRAM}s},
year={2011},
pages={204-207}
}
@INPROCEEDINGS{Kim3:2011,
author={S. Kim and M. Guthaus},
booktitle=ICCAD,
title={Low-power multiple-bit upset tolerant memory optimization},
year={2011},
pages={577-581}
}
@INPROCEEDINGS{Kim:2012,
author={S. Kim and M. Guthaus},
booktitle=VLSISOC,
title={Dynamic voltage scaling for SEU-tolerance in low-power memories},
year={2012},
pages={207-212}
}
@ARTICLE{Rusu:2003,
author={S. Rusu and J. Stinson and S. Tam and J. Leung and H. Muljono and B. Cherkauer},
journal=JSSC,
title={A 1.5-GHz 130-nm Itanium reg; 2 Processor with 6-MB on-die L3 cache},
year={2003},
volume={38},
number={11},
pages={1887-1895}
}
@article{itrs:2012,
author = {International Technology Roadmap for Semiconductors},
title = {2012 ITRS Report: System Drivers},
howpublished = {www.itrs.net},
year = {2012}
}
@article{Kurdahi:2006,
author = {F.J. Kurdahi and A.M. Eltawil and Y.H. Park and R.N Kanj and S.R. Nassif},
journal = ISQED,
title = {System-level {SRAM} Yield Enhancement},
year = {2006},
month = {Mar}
}
@misc{i7:2011,
author = {A. Shimpi},
title = {Intel Core i7 3960X (Sandy Bridge) Review: Keeping the High-End Alive},
howpublished = {\url{http://www.anandtech.com/show/5091/intel-core-i7-3960x-sandy-bridge-e-review-keeping-the-high-end-alive}},
year = {2011},
month = {Nov}
}
@misc{calibre:2013,
author = {Mentor Graphics},
title = {Calibre nmDRC and nmLVS},
howpublished = {\url{http://www.mentor.com/products/ic_nanometer_design/verification-signoff/physical-verification/}},
year = {2013}
}
@misc{hspice:2013,
author = {Synopsis},
title = {HSPICE},
howpublished = {\url{http://www.synopsys.com/tools/Verification/AMSVerification/CircuitSimulation/HSPICE/Pages/default.aspx}},
year = {2013}
}
@INPROCEEDINGS{Athe:2009,
author={P. Athe and S. Dasgupta},
booktitle={{ISIEA}},
title={A comparative study of 6T, 8T and 9T decanano {SRAM} cell},
year={2009},
volume={2},
pages={889-894}
}
@ARTICLE{Calin:1996,
author={T. Calin and M. Nicolaidis and R. Velazco},
journal=TNUKE,
title={Upset hardened memory design for submicron CMOS technology},
year={1996},
volume={43},
number={6},
pages={2874-2878}
}
@INPROCEEDINGS{Jung:2012,
author={I. Jung and Y. Kim and F. Lombardi},
booktitle=MWSCAS,
title={A novel sort error hardened 10T {SRAM} cells for low voltage operation},
year={2012},
pages={714-717}
}
@ARTICLE{Goudarzi:2010,
author={M. Goudarzi and T. Ishihara},
journal=TVLSI,
title={{SRAM} Leakage Reduction by Row/Column Redundancy Under Random Within-Die Delay Variation},
year={2010},
volume={18},
number={12},
pages={1660-1671}
}
@techreport{ibm:1997,
author = {IBM},
title = {Understanding Static RAM Operation},
howpublished = {IBM Applications Note},
year = {1997},
month = {Mar}
}
@misc{python:2013,
author = {Python},
title = {The Python Programming Language},
howpublished = {\url{http://www.python.org}},
year = {2013}
}
@misc{Wieckowski:2010,
author = {Michael Wieckowski},
title = {GDS Mill},
howpublished = {\url{http://michaelwieckowski.com/?page_id=190}},
year = {2010}
}
@misc{globalfoundries:2015,
author = {{Global Foundries}},
title = {{ASICs}},
howpublished = {\url{http://www.globalfoundries.com/technology-solutions/asics}},
year = {2015}
}
@misc{synopsys:2015,
author = {Synopsys},
title = {DesignWare Memory Compilers},
howpublished = {\url{http://www.synopsys.com/dw/ipdir.php?ds=dwc_sram_memory_compilers}},
year = {2015}
}
@misc{dolphin:2015,
author = {{Dolphin Technology}},
title = {Memory Products},
howpublished = {\url{http://www.dolphin-ic.com/memory-products.html}},
year = {2015}
}
@misc{faraday:2015,
author = {{Faraday Technologies}},
title = {Memory Compiler Architecture},
howpublished = {\url{http://www.faraday-tech.com/html/Product/IPProduct/LibraryMemoryCompiler/index.htm}},
year = {2015}
}
@misc{arm:2015,
author = {ARM},
title = {Embedded Memory {IP}},
howpublished = {\url{http://www.arm.com/products/physical-ip/embedded-memory-ip/index.php}},
year = {2015}
}
@misc{scmos,
author = {MOSIS},
title = {{MOSIS} Scalable {CMOS} ({SCMOS})},
howpublished = {\url{https://www.mosis.com/files/scmos/scmos.pdf}},
year = {2015}
}
%%%look at this paper
@article{Hanson:2008,
author = {S. Hanson and M. Seok and D. Sylvester and D. Blaauw},
journal = TDEV,
title = {Nanometer device scaling in subthreshold logic and {SRAM}},
number = {1},
pages = {175-185},
volume = {55},
year = {2008}
}
%%%look at this paper
@article{Baeg:2009,
author={S. Baeg and S. Wen and R. Wong},
journal=TNUKE,
title={{SRAM} Interleaving Distance Selection With a Soft Error Failure Model},
year={2009},
month={Aug.},
volume={56},
number={4},
pages={2111-2118}
}
%%%look at this paper
@article{Amrutur:2001,
author={B. Amrutur and M. Horowitz},
journal=JSSC,
title={Fast low-power decoders for {RAMs}},
year={2001},
month={Oct},
volume={36},
number={10},
pages={1506-1515}
}
@inproceedings{Chen:2012,
author={Chen Ming and Bai Na},
booktitle={{CyberC}},
title={An Efficient and Flexible Embedded Memory {IP} Compiler},
year={2012},
month={Oct},
pages={268-273},
keywords={SRAM chips;embedded systems;interpolation;polynomials;circuit structure;efficient embedded memory IP compiler;flexible embedded memory IP compiler;polynomial interpolation algorithm;single-port SRAM compiler;Integrated circuit modeling;Interpolation;Mathematical model;Memory management;Random access memory;Tiles;Timing;SRAM;interpolation;memory compiler;modeling;tiling},
doi={10.1109/CyberC.2012.52}
}
@inproceedings{Wu:2010,
author={Sheng Wu and Xiang Zheng and Zhiqiang Gao and Xiangqing He},
booktitle={{DDECS}},
title={A 65nm embedded low power {SRAM} compiler},
year={2010},
month={April},
pages={123-124},
keywords={CMOS technology;Design methodology;Helium;Kernel;Layout;Libraries;Microelectronics;Program processors;Random access memory;SRAM chips;SRAM compiler;SoC IP;low power},
doi={10.1109/DDECS.2010.5491802}
}
@inproceedings{Xu:2007,
author={Yi Xu and Zhiqiang Gao and Xiangqing He},
booktitle=ISCAS,
title={A Flexible Embedded {SRAM} {IP} Compiler},
year={2007},
month={May},
pages={3756-3759},
keywords={SRAM chips;circuit layout CAD;elemental semiconductors;embedded systems;logic design;program compilers;silicon;Si;atatic random access memory;block assembly techniques;embedded SRAM IP compiler;physical data syntax;silicon compiler;Assembly;Capacitance;Circuits;Energy consumption;Graphical user interfaces;Helium;Microelectronics;Random access memory;SRAM chips;Silicon compiler},
doi={10.1109/ISCAS.2007.378778}
}
%%%%Newest memory compiler on market in 2014
@inproceedings{Goldman:2014,
author={Goldman, R. and Bartleson, K. and Wood, T. and Melikyan, V. and Babayan, E.},
booktitle={{EWME}},
title={Synopsys' Educational Generic Memory Compiler},
year={2014},
month={May},
pages={89-92},
keywords={SRAM chips;courseware;electronic engineering computing;electronic engineering education;GMC software tool;Synopsys educational generic memory compiler software tool;automatic SRAM cell generation;automatic static RAM cell generation;educational designs;educational process;intellectual property restrictions;Educational institutions;Layout;Memory management;Multiplexing;Ports (Computers);Random access memory;Software},
doi={10.1109/EWME.2014.6877402}
}
@mastersthesis{butera:2013,
author = {J. Butera},
title = {OpenRAM: An Open-Source Memory Compiler},
school = {University of California - Santa Cruz},
year = {2013}
}
@inproceedings{johannsen:blocks,
author = {D. Jahannsen},
title = {Bristle Blocks: A Silicon Compiler},
booktitle = DAC,
pages = {195-198},
year = {1979}
}
@book{broderson:sicompiler,
author = {R. Broderson},
title = {Anatomy of a Silicon Compiler},
publisher = {Springer},
year = {1992}
}
@inproceedings{poechmueller:array,
author = {P. Poechmueller and G.~K. Sharma and M. Glesner},
title = {A {CAD} Tool for Designing Large, Fault-Tolerant {VLSI} Arrays},
booktitle = GLSVLSI,
year = {1991}
}
@inproceedings{huang:array,
author = {T.-H. Huang and C.-M. Liu and C.-W. Jen},
title = {A High-Level Synthesizer for {VLSI} Array Architectures Dedicated to Digital Signal Processing},
booktitle = {International Conference on Acoustics, Speech and Signal Processing},
pages = {1221-1224},
year = {1991}
}
@article{cabe:flexible,
author = {AC Cabe and Z Qi and W Huang and Y Zhang and MR Stan and GS Rose},
journal = {Cadence CDNLive},
title = {A flexible, technology adaptive memory generation tool},
year = {2006},
}
@mastersthesis{fabmem:2010,
author = {T. Shah},
title = {{FabMem}: A Multiported {RAM} and {CAM} Compiler for Superscalar Design Space Exploration},
school = {North Carolina State University},
year = {2010}
}
@misc{virage:2015,
author = {{Virage Logic}},
title = {{SiWare} Memory},
howpublished = {\url{http://www.viragelogic.com}},
year = {2015}
}
@article{RBL:1998,
author = {B. S. Amrutur and M. A. Horowitz},
journal = JSSC,
title = {A Replica Technique for Wordline and Sense Control in Low-Power {SRAM}s},
number = {8},
pages = {1208-1219},
volume = {33},
year = {1998},
month = {Aug}
}
% references for bit-density comparison
@article{Bit_Density_1,
author = {K. Kushida and others},
journal = JSSC,
title = {A 0.7 {V} Single-Supply {SRAM} With 0.495 $um^2$ Cell in 65 nm Technology Utilizing Self-Write-Back Sense Amplifier and Cascaded Bit Line Scheme},
number = {4},
pages = {1192-1198},
volume = {44},
year = {2009},
month = {Apr}
}
@article{Bit_Density_2,
author = {Sh. Miyano and others},
journal = JSSC,
title = {Highly Energy-Efficient {SRAM} With Hierarchical Bit Line Charge-Sharing Method Using Non-Selected Bit Line Charges},
number = {4},
pages = {924-931},
volume = {48},
year = {2013},
month = {Apr}
}
@article{Bit_Density_3,
author = {S. O. Toh and Zh. Guo and T. K. Liu and B. Nikolic},
journal = JSSC,
title = {Characterization of Dynamic {SRAM} Stability in 45 nm {CMOS}},
number = {11},
pages = {2702-2712},
volume = {46},
year = {2011},
month = {Nov}
}
@article{Bit_Density_4,
author = {K. Yamaguchi and others},
journal = JSSC,
title = {A 1.5-ns Access Time, 78- $um^2$ Memory-Cell Size, 64-kb {ECL-CMOS SRAM}},
number = {2},
pages = {167-174},
volume = {27},
year = {1992},
month = {Feb}
}
@article{Bit_Density_5,
author = {N. Shibata and H. Morimura and M. Watanabe},
journal = JSSC,
title = {A {1-V}, {10-MHz}, 3.5-mW, {1-Mb} {MTCMOS SRAM} with Charge-Recycling Input/Output Buffers},
number = {6},
pages = {866-877},
volume = {34},
year = {1999},
month = {Jun}
}
@article{Bit_Density_6,
author = {N. Tamba and others},
journal = JSSC,
title = {A 1.5-ns 256-kb {BiCMOS SRAM} with 60-ps 11-K Logic Gates},
number = {11},
pages = {1344-1352},
volume = {48},
year = {1994},
month = {Nov}
}
%author={Yamaguchi, K. and Nambu, H. and Kanetani, K. and Idei, Y. and Homma, N. and Hiramoto, T. and Tamba, N. and Watanabe, K. and Odaka, Masanori and Ikeda, T. and Ohhata, K. and Sakurai, Y.},
@ARTICLE{127339,
author={Yamaguchi, K. and others},
journal=JSSC,
title={A $1.5$-ns access time, $78~um^2$ memory-cell size, $64$-kb {ECL-CMOS SRAM}},
year={1992},
volume={27},
number={2},
pages={167-174},
doi={10.1109/4.127339},
ISSN={0018-9200},
month={Feb},
}
%author={Kushida, K. and Suzuki, A. and Fukano, G. and Kawasumi, A. and Hirabayashi, O. and Takeyama, Y. and Sasaki, T. and Katayama, A. and Fujimura, Y. and Yabe, T.},
@INPROCEEDINGS{4585946,
author={Kushida, K. and others},
booktitle=ISVLSI,
title={A $0.7$V single-supply {SRAM} with $0.495~um^2$ cell in $65$nm technology
utilizing self-write-back sense amplifier and cascaded bit
line scheme},
year={2008},
pages={46-47},
doi={10.1109/VLSIC.2008.4585946},
month={June}
}
%author={Stine, J.E. and Castellanos, I. and Wood, M. and Henson, J. and Love, F. and Davis, W.R. and Franzon, P.D. and Bucher, M. and Basavarajaiah, S. and Julie Oh and Jenkal, R.},
@INPROCEEDINGS{4231502,
author={J. E. Stine and others},
booktitle=MSE,
title={{FreePDK}: An Open-Source Variation-Aware Design Kit},
year={2007},
pages={173-174},
doi={10.1109/MSE.2007.44},
month={June}
}

View File

@ -1,115 +0,0 @@
\section{Results}
\label{sec:results}
Figure~\ref{fig:layout} shows several different SRAM layouts
generated by OpenRAM in FreePDK45. OpenRAM can generate single
bank and multi-bank SRAM arrays. Banks are
symmetrically placed to have the same delay for data and address
while sharing peripheral blocks such as decoders.
\begin{figure}[tb]
\centering
\includegraphics[scale=.4]{./figs/layout.pdf}
\caption{Single bank and multi-bank SRAMs (not to scale) use
symmetrical bank placement to share peripheral circuitry and
equalize signal delays.}
\label{fig:layout}
\end{figure}
Figure~\ref{fig:density_figure} shows the memory area of different
total size and data word width memories in both FreePDK45 and
SCMOS. As expected, the smaller process technology (45nm) has lower
total area overall but the trends are similar in both technologies.
Figure~\ref{fig:density_figure} also shows the access time of
different size and data word width in FreePDK45 and SCMOS. Increasing
the memory size generally increases the access time; long bit-lines
and word-lines increase the access time by adding more parasitic
capacitance and resistance. Since OpenRAM uses multiple banks and
column muxing, it is possible to have a smaller access time for larger
memory designs, but this will sacrifice density.
\begin{figure}[tb]
\begin{center}
\centering
%\includegraphics[width=8.5cm]{./figs/Results.pdf}
\includegraphics[width=7.5cm , height=14cm]{./figs/Results2.pdf}
% \subfigure[FreePDK45 memory area \label{fig:freepdk_area}]{
% \includegraphics[scale=1]{./figs/Freepdk_Area.pdf}}
% \subfigure[SCMOS memory area \label{fig:scn3me_area}]{
% \includegraphics[scale=.5]{./figs/Scn3me_Area.pdf}}
\caption{OpenRAM provides high-density memories in multiple
technologies and sizes with corresponding characterized
delays. \label{fig:density_figure}}
\vspace{-0.5cm}
\end{center}
\end{figure}
%Table~\ref{table:bit-density-comparison} shows a comparison between bit
%density of OpenRAM's generated memory designs and other publications
%which are close in technology node with FreePDK45 and SCMOS. As shown
%in this table, OpenRAM provides very dense SRAM arrays in both technologies.
\begin{table}[t]
\centering
\caption{OpenRAM has high density compared to other published memories in
similar technologies.}
\begin{tabular}{|c|c|c|c|l|l|l|l|l|} \hline
\texttt{Ref.} & \texttt{Feature} & \texttt{Tech.} & \texttt{Density} \\
& \texttt{Size} & & [Mb/$mm^2$] \\
\hline \hline
$~\cite{4585946}$ & $65$ nm & CMOS & $0.7700$ \\ \hline
$~\cite{Bit_Density_3}$ & $45$ nm & CMOS & $0.3300$ \\ \hline
$~\cite{Bit_Density_2}$ & $40$ nm & CMOS & $0.9400$ \\ \hline
\verb+OpenRAM+ & $45$ nm & FreePDK45 & $0.8260$ \\ \hline \hline
$~\cite{127339}$ & $0.5$ um & CMOS & $0.0036$ \\ \hline
$~\cite{Bit_Density_6}$ & $0.5$ um & BiCMOS & $0.0020$ \\ \hline
$~\cite{Bit_Density_5}$ & $0.5$ um & CMOS & $0.0050$ \\ \hline
\verb+OpenRAM+ & $0.5$ um & SCMOS & $0.0050$ \\ \hline
\end{tabular}
\label{table:bit-density-comparison}
\end{table}
%\begin{table*}
%\centering
%\caption{OpenRAM has high density, fast access time and low power consumption compared to other published memories in similar technologies.}
%\begin{tabular}{|c|l|l|l|l|l|l|l|l|} \hline
%\texttt{Reference} & \texttt{Technology} & \texttt{Density (Mb/$mm^2$)}& \texttt{Access time (ns)}& \texttt{Power consumption} \\ \hline \hline
%$~\cite{Bit_Density_1}$ & $65 nm CMOS$ & $0.77$ & $28$ & $22$ $uW/MHz$ \\ \hline
%$~\cite{Bit_Density_2}$ & $40 nm CMOS$ & $0.94$ & $45$ & $13.8$ $pJ/access/Mbit$ \\ \hline
%$OpenRAM$ & $45 nm FreePDK45$ & $0.826$ & $9.86$ & $13.14$ $mW$ \\ \hline \hline
%$~\cite{Bit_Density_4}$ & $0.5 um CMOS$ & $0.0036$ & $1.5$ & $6$ $W$ \\ \hline
%$~\cite{Bit_Density_6}$ & $0.5 um BiCMOS$ & $0.002$ & $1.5$ & $35$ $W$ \\ \hline
%$~\cite{Bit_Density_5}$ & $0.5 um CMOS$ & $0.005$ & $75$ & $3.9$ $mW$ \\ \hline
%$OpenRAM$ & $0.5 um SCMOS$ & $0.005$ & $44.9$ & $115$ $mW$ \\ \hline
%\end{tabular}
%\label{table:bit-density-comparison}
%\end{table*}
Comparison of power consumption and read access time of different
memories is a bit more complicated to make a conclusion, because there
are many trade-offs. Power and performance are highly dependent on
circuit style (CMOS, ECL, etc.), memory organization (more banks is
faster but sacrifices density), and the optimization goal: low-power
or high-performance. In general, OpenRAM has reasonable trade-off
between the two and can be customized by using an alternate sense
amplifiers, decoders, or overall dimensional organization.
Table~\ref{table:bit-density-comparison} compares the bit-density of
OpenRAM against published designs using similar technology nodes. The
results show the benefit of technology scaling and that OpenRAM has
very good density in both technologies. As a comparison, a 76ns SRAM
consumes 3.9mW~\cite{Bit_Density_5} while OpenRAM is much faster at
44.9ns but consumes 115mW for the same size.
%Table~\ref{table:bit-density-comparison} shows a comparison between bit density, access
%time and power consumption of OpenRAMs generated mem-
%ory designs and other publications which are close in tech-
%nology node with FreePDK45 and SCMOS. As shown in this
%table, OpenRAM provides very dense SRAM arrays in both
%technologies. There is no easy comparison on power con-
%sumption and read access time as these values vary with the
%array size and configuration. Therefore, we only try to com-
%pare the features of each work from a more general point of
%view.

File diff suppressed because it is too large Load Diff

View File

@ -1,16 +0,0 @@
#!/bin/sh
# This is a short script to simplify generating a PDF document from LaTeX and BibTeX code.
# The script cleans plausibly existing files, generates the PDF, then cleans furthur generated files.
# Clean any latent files.
rm -rf *.aux *.bbl *.blg *.log #*.pdf
# Generate the actual output.
pdflatex main.tex
bibtex main.aux
pdflatex main.tex
pdflatex main.tex
mv main.pdf openram.pdf
# Clean all the generated files except for the .pdf
rm -rf *.aux *.bbl *.blg *.log *.lof *.lot *.out *.toc