% -*- Mode:Text -*- 

\chapter{Top-level view}\label{sect.topview}

\fig{style-block} shows in a very schematic way the logical
organization of a \chip, especially in relation to the chip's
immediate surroundings.

 \figonegiven{style-block}{ \setlength{\unitlength}{1pt}
 \begin{picture}(180,248)(0,-32)
    % outer frame
	\thinlines
	\put(0,0){\line(1,0){144}\line(0,1){144}}
	\put(144,144){\line(-1,0){144}\line(0,-1){40}}
	\put(0,0){\line(0,1){72}}\put(0,72){\line(1,0){80}}
	\put(80,72){\line(0,1){32}}\put(0,104){\line(1,0){80}}

	\put(0,208){\makebox(0,0)[l]{glue to adjacent modules}}
	\put(96,192){\makebox(0,0){video bus}}
	\put(76,172){\makebox(0,0){\footnotesize\shortstack{flywheel\\bus}}}
	\put(96,-24){\makebox(0,0){\bus}}
	\put(112,160){\framebox(64,16){\sc sram}}
	\put(144,152){\makebox(0,0){...}}

	\put(8,48){\framebox(88,16){scan generator}}
	\put(8,16){\framebox(128,16){\bus\ interface}}
	\put(0,186){\dashbox{2}(176,0){}}
 	\thicklines
	\multiput(16,128)(8,0){6}{\vector(0,-1){0}\vector(0,1){72}}
	\put(72,128){\vector(0,1){32}} 	\put(80,160){\vector(0,-1){32}}
	\put(96,128){\vector(0,1){56}}
	\multiput(120,128)(40,0){2}{\vector(0,1){32}}
	\multiput(128,160)(40,0){2}{\vector(0,-1){32}}
	\put(96,-16){\vector(0,1){32}}\put(96,-16){\vector(0,-1){0}}
    % data stream loop
	\thinlines
	\put(8,112){\framebox(128,16)[t]{data stream}}
	\put(24,80){\framebox(48,16){\sc dram}}
	\thicklines
	\put(24,96){\oval(16,16)[bl]}\put(16,96){\vector(0,1){16}}
	\put(120,96){\oval(16,16)[br]}\put(128,96){\line(0,1){16}}
	\put(120,88){\vector(-1,0){48}}
	\put(24,112){\oval(16,12)[tl]}\put(120,112){\oval(16,12)[tr]}
	\put(24,118){\dashbox{2}(96,0){}}
    % wire-AND
	\put(132,24){\oval(16,8)[r]}\put(132,20){\line(0,1){8}}
	\put(136,24){\circle*{3}}\put(136,24){\line(1,0){24}}
	\put(148,16){\makebox(0,0)[l]{\sym ModSel}}
 	\thinlines
	\put(48,64){\dashbox{2}(0,16){}}\put(48,80){\vector(0,1){0}}
	\put(88,64){\dashbox{2}(0,48){}}\put(88,112){\vector(0,1){0}}
	\put(80,32){\vector(0,-1){0}\dashbox{2}(0,16){}}\put(80,48){\vector(0,1){0}}
	\put(102,32){\vector(0,-1){0}\dashbox{2}(0,80){}}\put(102,112){\vector(0,1){0}}
	\put(0,-6){\makebox(0,0)[l]{\large\chip}}
	\put(152,48){\shortstack[l]{other\\{\sc step}\\chips\\in the\\same\\module}}
 \end{picture}}
 {Logical organization of a \chip\ and its immediate surroundings. See
text for details.}

Some of the \chip's \io\ lines (\chapt{pinout}) connect it to other
circuitry on the same module, some to homologous \chip{}s on adjacent
modules, some to the \bus, and some to optional external circuitry.
These different types of interconnection are better understood with
reference to the \chip's functions, as detailed below.

\medskip

Though physically residing on a separate memory chip, the block labeled
\dram\ should logically be treated as part of the \chip, since all of its
inputs and outputs are directly handled by the latter.

The main function of the \chip\ is to pump a data stream out of and
then back into the \dram. Along its course, the data stream may be modified
by
 \begin{itemize}
	\item Data exchanges with adjacent modules, via the {\em glue lines}, to
achieve indefinite spatial extension for the array of sites.
	\item Real-time data exchanges with optional external
circuitry, via the {\em flywheel bus} (\sect{}).
	\item Real-time output to a raster-scan monitor, via the
{\em video bus} (\sect{}). All modules tristate their video lines onto a single
video bus, so that video output from any single module can be routed
to the monitor.
	\item Data replacement by lookup in the \sram\ table. The
table is shared by the 16 \chip{}s of a module, each of which provides
one bit of the lookup {\em key} (table address) and and receives one
bit of the corresponding {\em entry} (table data). Of course, this
collective lookup is the main mechanism for interaction between data
streams, and ultimately for the realization of the desired dynamical
behavior as well as of real-time analysis.
 \end{itemize}

The \bus\ (\chapt{tbus}) is the exclusive channel of communication between
the host and the \cam\ modules. All exchanges between the host and
\sram\ or \dram\ chips are mediated by the \chip.

Beside being mutually coupled via the \sram\ table, the 16 \chip{}s of
a module are also mutually coupled via a wire-{\sc and} {\sym ModSel}
line for the purpose of responding as a single addressable entity to
\bus\ operations (\sect{modselect}).


\section{\chip\ block diagram}

The internal structure of the \chip\ shown in \fig{style-block} is
further detailed in \fig{capture-block}, which is taken from the \chip's
actual design files (this diagram does not show the \io\ buffers
that interface the internal signals to the outside world).

 \figtwogiven{capture-block}{\psfig{figure=fig/capture-block.ps,height=8.4in}}
{\chip\ block diagram, taken from actual design files.}







