Short description of the CNN Simulator
This page gives a short overall view of the CNN Simulator. After reading
this document, the user should be able to do basic manipulations. For more
detailed information, we refer to the "How to..."-section on the head page.
The basic idea is to create a visualizing CNN Simulator which allows
to track the way in which the state trajectories evolve, thus gaining an
insight into the behavior of CNN dynamics. This may be useful for
forming an idea how a CNN 'works', especially for those people who are
not experienced in CNN theory.
Basically, this Simulator extends the existing CNN simulator written by
Martin Hänggi which is accessible through World Wide Web on
The new simulator is operated very similarly to the existing one. That is
why people who are familiar with the existing simulator will be able to
use the new one after very short time. All the existing features are
The simulator deals with two-dimensional CNN's. The cells are visualized
in a two-dimensional array.
The cells are identical time-continuous dynamical systems.
We restrict the cells to have a "3*3-neighborhood"
Many new features have been added:
The operation of the simulator is kept simple. This is useful for those
who are new to the CNN area. The number of parameters to be entered by
the user before starting a simulation is minimal. Nevertheless, the model
can be adapted in many ways to the user's needs, but the corresponding
parameters are hidden in submenus (called "sections"). So the first-time user
will not be confronted with confusing parameters.
The cells are visualized in a grid structure, the values of the input and
state values are represented by colors. The colormap has not been changed:
white pixels represent the value of "-1", black pixels represent "+1".
For the values in between, a gray-scale is applied. When the color of a
cell turns red it means that its state is "> 1" whereas green cells signify
a cell-state "< -1".
The template sets can be selected in a very simple way. Input pictures
can be painted or changed by mouse-clicking on the cells, even during simulation.
The simulation process can be suspended and resumed to get deeper insight
in the CNN dynamics.
After starting the CNN simulator, the following applet is displayed.
The graphical layout may differ slightly, depending on the
operating system and the particular browser used.
The dimensions of the CNN array can be chosen manually within the simulator.
Boundary conditions can be entered manually within the simulator. Periodic
boundary conditions can be selected.
The templates in the library have a parametric form. A value for the only
parameter q can be entered manually.
The simulation speed can be reduced using a slider. The current simulation
time is displayed in a separate field.
Settling time is displayed in a field, when no cell of the network remains
in the linear region (of the piece-wise linear function).
A library with useful input pictures has been added.
The CNN simulator contains a trajectory viewer. The dynamics of some selected
cells can be observed. In suspended mode or stopped mode, input-, state-
or output-value of any cell can be displayed.
In order to approach the simulation to reality (CNN implementation in a VLSI
chip), the model can be influenced in different ways: The internal state
can be bounded to a certain limit. Template-, input- and initial-state-values
can be perturbed. Different output functions can be chosen.
The user can select between different integration methods.
Absolute and relative robustness of template sets can be calculated.
When a template set is selected, the simulator chooses appropriate boundary
conditions and initial state. Nevertheless, the user can modify these settings
A library containing predefined input images and demos for selected template
sets has been created.
The main controls are located on the upper left side of the GUI
(Graphical user interface). They are used to control simulation proceeding.
Read How to...start integration process
for further information.
On the upper right side of the GUI, the time viewer is located.
The field on the top displays the current integration time while the field
below displays the settling time.
Settling time is only defined when using
the standard output function PWL. It describes the time from the start
of integration until the last cell leaves the interval [-1.0, 1.0].
Settling time is calculated using the following algorithm:
In the middle of the GUI, the cells of the CNN are displayed as squares
in two windows (called CNN grids).
set a marker when the last cell leaves the linear area
when dx/dt of every cell falls below a certain limit (e.g. dx/dt < 0.01),
we assume that the network is settled. Then the settling time (represented
by the marker) is displayed.
The simulator menu is located at the lower left corner of the applet.
Its is used to define all the parameters that can be changed by the user.
Choosing "Templates" in the simulator menu will show the templates section
on the applet. The user can choose between following sections:
The input grid is placed on the left side. Every square denotes
the input value of a cell. The boundary cells are represented by "halved
A white filled square represents an input value of "-1", while a black
square represents an input value of "+1". In between, a gray-scale is applied.
The buttons below the grid are used to manipulate the entire grid.
Pushing the "all -1" button will set the input value of every cell to -1.
During simulation, these buttons are disabled.
The input value of a single cell is set by mouse-clicking on the cell.
Single cells can be influenced even when the simulation is running.
to...create an input picture for more information.
The output/state grid is placed on the right side. With the button
on the top of the grid, the user can select if the current state or the
output of the CNN cluster is displayed. The handling of the output grid
is similar to the input grid.
The "set" button copies the present state to the initial
state. "Reset" is used to restore and display the initial state
of the grid.
On the lower right corner, the template set currently used and a status
message are displayed in the template viewer. This area informs the user
about the most important parameters, whatever section is displayed at the
Templates: Predefined template sets can be chosen, or the template
set can be entered manually. Read How to ...enter
a template set for more information on the subject.
Input & State: The user can define a "pen" value. When clicking
on a cell, input or state of the specific cell is set to that value.
When "toggle" is selected, the cell value will be toggled (e.g. between
"+1" (black") and "-1" (white)). Read How to...
create an input picture and How to...create
a state/output picture for more information.
Size & Boundary: The dimension and boundary values of
the CNN can be defined. Read How to...change dimension
of the CNN and How to...set boundary conditions
for more information.
Perturbation & Robustness: Template set, input and initial state
values can be perturbed using the controls on the left side. This feature
is useful, if the user wants to examine consequences of manufacturing
tolerances and noise.
The robustness of a template set is a measure which quantifies the
degree by which a template set can be altered while still producing the
desired output. It is crucial that all templates have a certain degree
of robustness, since their values cannot be guaranteed to be reproduced
exactly by the analog circuit. Relative and absolute robustness of a template
set can be calculated on the right side of this section. Calculation of
optimally robust CNN template sets is prepared, but not yet implemented.
The corresponding controls appear disabled in this section. Read How
to...perturb template set values and How
to...calculate the robustness of a selected template set for more information.
Model: In this section, many important parameters concerning the
simulation model characteristics can be set. Read How
to...set model characteristics for more information.
Trajectory viewer: The trajectory viewer is a tool that allows
the user to track the way in which the state trajectories evolve. The operation
of the trajectory viewer is described in How
to...use the trajectory viewer.
Library: This section contains some predefined input pictures and
demos for template sets. It may be helpful for users who are not familiar
with a certain template set to form an idea how this template set 'works'.
Read How to...select predefined input pictures
and How to...run demos for predefined template sets
for more information.
back to head page . . .