CLA LOGIC v2 
============ 
 
Beta Test Release 4
 
 
NOTE: This document is a conversion & update of the CLA v1 (unregistered) manual 
    - done in about an hour and a half. 
   This means that it isn't very good...it is intended as a stop-gap measure 
   until either a new manual is written, or an on-line help facility is 
   added.
 
 
NOTE [16/5/94]: This document is now WELL out of date - tough. 
        Several things contained in it are wrong, but I'm not going 
        to change it as the registered user doc's are finished now, so 
        registered users don't need this file anyway. 
 
NOTE [29/5/94]: Now VERY out of date........ 
 
        If you haven't registered - shame on you. 
 
=========================================================== 
 
         CLA Version 2 Release 1 (Beta4) 
            USER MANUAL (Summary) 
 
=========================================================== 
 
Copyright 1993, By Data Uncertain Software. 
 
Written By Craig Graham. 
 
===========================================================
 
 
                    CONTENTS 
                    -------- 
 
1.   INTRODUCTION 
 
2.   INSTALLATION 
2.1       Unpacking 
2.2       Files 
2.3       System Required 
2.4       Loading 
 
3.   THE CLA ENVIROMENT 
3.1       Pull-down Menus 
3.2       The Status Window 
3.3       Editor Windows 
3.4       The Main Menu Bar 
3.5       Tool Boxes 
3.6       CLA Dialog Boxes 
3.6.1          Pop-up menus 
 
4.   BASIC DESIGN PROCESS 
4.1       Placing Components - The Basic Gates Toolbox 
4.2       Linking Components 
4.3       Adding Inputs 
 
5.   THE FILE MENU 
5.1       Save 
5.2       Load 
5.3       Printing & Metafiles 
 
6.   SIMULATION 
6.1       The Tools Icon 
6.1.1          Bulbs 
6.1.2          Logic Scope Probes 
6.1.3          The Logic Scope 
6.1.4          The Active Probe 
6.2       Running A Simulation 
6.2.1          Inputs during Simulation 
6.2.2          The Active Probe & The Scope 
6.3       Clocked Inputs 
6.4       The Word Generator 
6.4.1          Textual Stimulus Files 
 
7.   OTHER FEATURES 
 
APPENDIX A : KEYBOARD SHORTCUTS 
APPENDIX B : LIBRARY MODULES 
 
1.0 INTRODUCTION 
================= 
 
     This manual is intended as a 'get you going' sort of guide to the 
CLA Logic design & simulation package. Due to the highly iconic nature 
of the program, and the textual nature of this manual, it is not intended 
as an in-depth tutorial and referance. A complete manual is available to 
registered users (see README.DOC for details). 
 
     CLA is intended as a tool to enable fast prototyping of digital 
circuits. The inspiration as to it's approach to this is rooted firmly in 
the UN*X world, where several high end packages costing several thousand 
pounds offer similar features (although much wider in scope of course, 
with a price tag of several thousand pounds, we could do this as well, but 
then we couldn't release as shareware). 
 
     The design part of the package (perhaps a bad description, as design & 
simulation are completely integrated) supports the standard set of logic 
gates (ANSI style representations only for now I'm afraid - perhaps a 
set of IEEE symbols will be made available at a later date, or you could draw 
up your own with VECED2), and also a few librarys of standard components 
(eg, flip-flops, adders, etc) and IC's (the 74xx TTL series). 
 
A subset of VHDL is provided for textual circuit description. 
 
     The integrated simulation section of the program can be accessed at 
any time and provides interactive use of the circuit, with Logic scope 
analysis, 'live' indicator bulbs, active logic probes, etc, or more formal 
testing from an integrated Word Generator. 
 
     The whole enviroment is graphical, using icons, windows, 'flying' dialogs 
 and the mouse to produce & simulate the design. 
 
     Not wanting to labour a point, but CLA is SHAREWARE. If you find it at 
all help full then REGISTER - you can then make sugestions for extra 
features you need.....if you don't register then you get no support from 
the authors at all.
 
 
2.0 INSTALLATION 
================= 
 
2.1 UNPACKING 
-------------- 
 
     The fact that you have reached this point in the documentation at all 
sugests that you have sucessfully unpacked the file 'CLA_V2R1.ZIP'. 
 
2.2 FILES 
---------- 
 
If you have used STZIP 2.x, then the correct directory structure should 
already be set up for you. Just as a check however: 
 
Once unpacked, you should have the following file & directory 
structure :- 
 
.\ 
   CLA.PRG        CLA Design & Simulation Enviroment 
   VECED2.PRG     Vector Object Editor 
   LIBV1.PRG      Librarian 
   README         Notes on this beta release, and a survey to return. 
   INVENTOR.Y     The file inventory (almost certainly more up to date than 
               what you are reading now. 
 
.\DOC 
   COPYRGHT.TXT   How you can copy this. 
   BUGLIST        Known Bugs 
   CHANGES.TXT    New stuff from the last release. 
   FUTURES.TXT    Stuff currently under developement 
   MANUAL.TXT     This file. 
   VECEDIT.TXT    Quick notes on the Vector Object Editor VECED2. 
   TOS4SCR1.GIF   Screenshots (GIF format) of CLAv2 in it's full glory on 
   TOS4SCR2.GIF   a Falcon. 
   FSM_EDIT.GIF 
 
.\EXAMPLES        Several example .NET files to play with. 
 
.\FSM_DES 
   FSM_EDIT.PRG   The Finite State Machine design program. 
   SDES.RSC    Resource file for the above (colour only). 
   B.FSM       Example state machine files. 
   V6.FSM 
   README.TXT     Doc's for the state machine editor. 
 
.\VHDL 
   README         The VHDL compiler documentation. 
   CLA_VHDL.PRG   VHDL subset to CLA.NET compiler. 
   CLAVHDLC.RSC   Resource file for the above (colour). 
   CLAVHDLM.RSC   Resource file for the above (mono). 
   OPERATORS.CLA  File giving operator precedence for the VHDL compiler. 
 
.\VHDL\74XX.VHD      The VHDL source for the standard 74 series TTL library 
   7400.VHD 
   7402.VHD 
   7404.VHD 
 
.\RESOURCE.CLA 
   BWLOGIC.NAM    Various CLA resources 
   CLAC.RSC 
   CLAM.RSC 
   FILE.GTB 
   GATES.GTB 
   INPUTS.GTB 
   TOOLS.GTB 
   LIBV1C.RSC     Librarian resources (colour & mono) 
   LIBV1M.RSC 
   VECEDITC.RSC   Vector Object editor resources (colour & mono) 
   VECEDITM.RSC 
 
.\RESOURCE.CLA\VECTORS 
   DEFAULT.VFN    CLA vector font - primitive, but effective. 
   GATES.VEC      Standard logic gate images (editable with VECED2) 
 
.\CONFIG.CLA 
   FANOUT.DEF     The average fanouts available from various IC technologies 
   KEYS.DEF    Keyboard shortcuts definition file. 
   LIB.DEF        The library definition file (editable with LIBV1) 
 
.\LIBRARY         The modules library for CLA. 
 
.\LIBRARY\74XX    The 74 series TTL library (from VHDL sources) 
   7400.NET 
   7402.NET 
   7404.NET 
 
.\LIBRARY\USERLIB A predefined but empty library for your stuff. 
 
.\LIBRARY\BASIC      Simple things such as 2-bit adders & D-flip-flops

 
 
If anything is missing then you have problems. 
 
NOTE: CLA MUST have this directory structure, or it WILL NOT work. 
      You can place the root of this structure ( .\ ) anywhere, 
      but must keep all things in the correct directories after 
      that. 
 
If you wish to use the printed output facility, then you will require GDOS, 
FontGDOS, SpeedoGDOS or NVDI (I use NVDI) to be installed as well. It is 
beyond the  scope of this document to explain the complexities of installing 
GDOS (someone write & tell US about that black art !!!), so the only comment to 
make on that is that the program expects to find a device driver available 
as device 21. This is usually the EPSON FX80 driver and as this is the only 
printer we have available to us, it's the only on that is tested at the 
moment, but we ASSUME that other drivers will work as long as they are 
installed as device 21 in the ASSIGN.SYS file. 
 
GEM Metafile output is also available, and the above applies to that as well, 
but META.SYS must be installed as device 31. 
 
This program mayu not work with FSMGDOS - but, hey if you're using that then 
you deserve all you get anyway. 
 
2.3 SYSTEM REQUIRED 
-------------------- 
 
The basic system required to run CLAv1 was :- 
          - 512K ATARI ST 
          - 1 Double sided disc drive 
          - Monochrome monitor 
 
This is no longer the case (sorry...) 
 
The basic system required to run CLAv2 is :- 
          - 2Meg ATARI ST 
          - 1 Double sided disc drive 
          - Monochrome monitor 
 
The above is not ideal however. 
The recomended system for running CLAv2 is :- 
   Platform : MegaSTE / TT / Falcon 
   Memory   : 4Meg - required for running CLA at higher res. 
   Storage  : Hard drive, requires 1 Meg for basic installation - this 
            WILL increase quite drasticly as the synthesis tool & FSM 
            designer are added. 
    Display  : Crazy Dots / TT / Falcon extended (FalconScreen/Blowup030) 
            + a gfx accellerator (Warp9 / NVDI), in min. 16 Colours. 
   OS       : TOS 4.02, multiTOS 1.04+. 
 
Our developement system is :- 
   Platform : Falcon030 + PowerUP2 32Mhz accellerator card 
   Memory   : 4Meg 
   Storage  : 85Meg Hard drive 
    Display  : 800x600x16colour Falcon extended (FalconScreen) 
            + NVDI2.5 
   OS       : TOS 4.02 + WINX2.2 (highly recomended - it's great). 
 
This is quite a large jump in system requirments, but hey, the jump from v1 to v2 
has been really quite severe. And a PC based program to do this would use 
a lot more.... 
 
2.4 LOADING 
------------ 
 
     To load CLA, click on 'CLA.PRG'. The program should then load and 
run. Alternatively, CLA may be installed using the INSTALL APPLICATION 
option from the desktop, using a '.NET' file extension. This allows the 
program to be run by double clicking on a .NET file (these are the circuit 
designs). 
 
   In TOS 3/4/MultiTOS, CLA.PRG should be installed to default to it's OWN 
directory, not the top window's, and should be passed the whole path to a 
file. 
 
   When CLA loads, the file BOOT.DBG is created in the current directory 
indicating what CLA thinks your system is. If you have a problem, mail me 
a copy of this file - it'll help me to sort you out.
 
3.0 THE CLA ENVIROMENT 
======================== 
 
3.1 Pull Down Menus 
-------------------- 
Most CLA options are available from both the standard GEM pulldown menus at 
the top of the screen or from the various Toolbox windows which can be opened. 
There are also keyboard shortcuts for most frequently used things. 
 
CLA starts up with 3 windows displayed. 
 
3.2 The Status Window 
---------------------- 
At the top of the screen is a status window which reports actions (such as 
PLACE GATE, MOVE GATE, etc). This window is fixed - you cann't move it, you 
cann't close it. It can be overlayed by other windows, and can be topped by 
clicking in it, but thats all. 
 
3.3 Editor Windows 
------------------- 
Filling most of the screen is an empty window. This is a schematic window 
in which you will do your designing. Re-sizing, moving & scrolling of this 
type of window are as you would expect in a GEM application, however, the 
full & close widgets are used slightly differently. Close behaves like the 
MS Windows / OSF Motif top left button, and drops down a menu, of which close 
is only one of several options (eg. ICONIFY will turn a window into an icon, 
SISTER WINDOW will produce another window with the same contents as the first). 
The Full widget pops up another menu, this time one with several Icons and 
buttons in it. From left to right, these are: 
 
 - Windowed mode display. Sets this window to display graphics at a set 
   scale and force you to scroll around the design using the scroll bars. 
   The actual scale is set in the configuration dialog. 
 
 - Scaled mode display. Sets this window to display the whole design in the 
   window, rescaling it to fit as you resize the window. The scroll bars are 
   ignored here. 
 
 - '' = Iconify. This does the same as selecting Iconify from the Close 
   Pull-down. 
 
 - '' = Full. This does what the full widget would normally do in most GEM 
   programs and sets the window to full screen. 
 
3.4 The Main Menu Toolbox 
-------------------------- 
The Main Menu Toolbox is displayed on the right hand side of the screen at 
start-up. It may be move freely (it's in a GEM window), but in ST High there 
is very little room to move it into. 
 
Unlike all other Toolboxes in CLA, the main menu cannot be closed or Rolled 
up - it is there all the time. 
 
It's icons (in top down order) have the following functions:- 
 
 - REFRESH     Forces the current schematic window to redraw. 
 
 - LINK        Selects the link-up mode for joining up components. 
 
 - CUT LINK    Selects the disconnect components mode. 
 
 - DELETE ITEM Enters Delete mode for deleting gates, inputs & blocks. 
 
 - ROTATE      As it's name sugests, this icon put's you into rotate mode. 
               Now, clicking on any gates will cause them to rotate by 90. 
 
 - GATE        The five bar gate icon opens the GATES Toolbox. 
               The Gate Toolbox allows you to chose which type of basic gate 
               to place (AND, OR, NOT, etc). 
 
 - INPUTS      This opens the INPUTS Toolbox, where inputs (both manual & 
               clocked) and outputs (hierachical) are set. 
 
 - MOVE        This icon selects MOVE GATE MODE. This allows you to click 
               on and move gates which you have put in the wrong place. 
 
 - BLOCK       Selects block create/enter mode for hierachy manipulation. 
 
 - FILE        Opens the FILE Toolbox for the usual save/load/exit/library 
               functions. 
 
3.5 Toolboxes 
-------------- 
In general, a toolbox window in CLA is open which just contains icons for 
various functions (some of which cannot be accessed from anywhere else). 
 
All other Toolbox windows in CLA (apart from the Main Menu) are 'Roll-ups' 
- ie. clicking on the Full Widget (top right of the window) when they are 
open will cause the window to 'Roll up' leaving just the top bar (this stops 
things getting to cluttered). They are restored by selecting the Full Wigdet 
again. The close button simply closes the window. 
 
If you have TOS 3/4/MultiTOS then icons in toolbar windows can be accessed in 
the background without topping them. WINX also supports this. 
 
3.6 Dialog Windows 
------------------- 
Note that ALL CLA dialogs appear in windows. This means that you can move them 
and work in editors without actualy closing a dialog. 
 
3.6.1 Popups 
------------- 
Inside CLA dialogs, there may be changable fields (eg, the font in the printout 
dialog). Clicking on these will popup a menu for you to select from. 
 
The downside of having everything in windows, is that older TOS versions will 
start to run out of windows (the program then starts behaving a bit strangely) 
- so you are best to install WINX if you have an older TOS (<2). 
 
4.0 BASIC DESIGN PROCESSES 
=========================== 
 
     This section details how to produce SIMPLE designs. More complex 
designs require much more though, and a substantial use of the BLOCK 
structuring facility is really necassary. 
 
4.1 PLACING COMPONENTS 
----------------------- 
 
   To produce a design, you must first place some components. In order to 
do this you must select the GATES icon and then select a type of gate to 
place from the Gates Toolbox which then appears. Alternatively select 
a gate type from the gates pull-down menu. 
 
Now whenever you move the cursor within the schematic window, you can place 
a gate at the current location by pressing the left mouse button. If you 
hold down the button, then move the mouse, you can make the gate you are 
placing face left, right, up or down. 
 
Whilst in the schematic window, the mouse pointer will be replaced by a set 
of cross hairs. 
 
The schematic window does not have to be on top in order to edit thing in it. 
You can place a gates toolbox window in front of the schematic for quick gate 
selection, then place things straight into the schematic WITHOUT topping 
the window. 
 
4.2 LINKING COMPONENTS 
----------------------- 
 
     Once you have a few components on the screen, you will want to 
connect them together. To do this you use the LINK icon. Once selected, 
this icon places you in link mode. 
To create a link between two components, you then only have to click on 
the source gate, and then point at the destination gate. If there is a 
spare input to the destination gate, then a line will be drawn between 
the two. To select the desination gate, press the LEFT mouse button. 
 
NOTE: Pressing the RIGHT HAND BUTTON  will cancel a link. 
 
Once source & destination components are selected, you must draw a wire 
path between the two. This is for your referance, and drawing a silly wire 
path will NOT effect the simulation at all. 
An 'L' cursor is used whilst drawing the wire path. To add a point to the 
path, press the LEFT BUTTON. Pressing the right hand button will terminate 
the wire. 
 
Also, with single input gates, if you happen to add a point to the wire 
which coincides with the input terminal of the gate, then the wire will 
terminate itself. 
 
Pressing ALTERNATE whilst drawing a wire path will swap the orientation of 
the link path:
 
 
          ---------+                                   + 
          |                                            | 
          |                                            | 
          |                                            | 
          |                                            | 
          |                                            | 
          |                                            | 
          +                                  +----------
 
 
4.3 ADDING INPUTS 
------------------ 
 
     A circuit is not much use with no inputs, so inputs may be added using 
the ADD INPUTS icon. This can be found in the INPUTS menu which is invoked 
by selecting the INPUT icon on the main menu. 
The icons on the INPUTS menu are as follows (left to right): 
 
     - ADD INPUT : Adds a manually togglable input to the circuit. 
                   If within a block, this adds an input connector from 
                   the next level up from that block to this level. 
 
                         ----------- 
                         |         | 
                         |         | 
                         |         | 
                       -->input    | 
                         |         | 
                         |         | 
                         ----------- 
 
     - ADD OUTPUT : This adds am output connector from a block to the next 
                    Level up in the design. If you are NOT within a block 
                    then this icon does nothing. 
 
     - ADD CLOCK :  This adds an auto-clocked input to the circuit. 
                    (See section 6.3) 
 
NOTE: All hierachical input / output connections are dealt with in the 
      REGISTERED USER documentation. This is not to say that the block 
      structuring features are at all disabled in this release, only that 
      their usage is not documented here. Pay or play - I'd prefer you to 
      pay. 
 
When ADD INPUT is selected you will be asked to place the input. As a matter 
of readability, the program will automatically place ALL external inputs at 
the left of the screen. Only the vertical position of the input can be 
altered. 
 
The input connector will now appear and you should now point to the gate to 
which the input should be connected and click the LEFT BUTTON. As with 
linking gates, pressing the RIGHT BUTTON will cancel the input. 
 
Once an input destination is selected, you should then draw a wire path in 
exactly the same way as when linking gates togther.
 
 
NOTES: 
------ 
 (1)  EACH INPUT CAN GO TO ONLY ONE PLACE. TO FEED AN INPUT TO MORE THAN 
      ONE PLACE, FIRST CONNECT IT TO A DRIVER GATE (NOP), THEN CONNECT 
      THE DRIVER TO EVERYWHERE ELSE. 
 
5. THE FILE MENU 
================= 
 
     The FILE menu is opened by the FILE icon at the bottom of the main 
menu. 
The icons in the FILE menu are (from left to right): 
 
     - LOAD : Load a circuit design from disc. 
 
     - SAVE : Save the present circuit design to disc. 
 
     - LIBRARY : Insert a module from the libraries into the present block. 
 
     - PRINT : Open the GDOS output Dialog Window. 
               (Only useful if GDOS is installed.) 
 
     - USER : Open the configuration window where the following options can 
              be set: 
                    i)   Grid snap (ON/OFF) 
 
                    ii)  X-Y coordinate readout (ON/OFF) 
 
                    iii) Auto part name (ON/OFF) 
 
                    iv)  Scope Resolution. 
                         This is actually a misnomer. The value of Scope 
                         resolution is really the number of gates through 
                         which a signal will propogate for each basic 
                         clock cycle / Logic Analyser update. 
 
                    v)   Drawing scale 
 
     - EXIT : This either exits the present drawing and leaves a blank 
              workspace, or quits the program.
 
 
5.1 SAVING 
----------- 
 
     Select SAVE from the FILE menu. Follow the usual GEM procedure for 
selecting a file, then do as the alert boxes say. Overwriting of existing 
files is trapped, but out off disc space errors will kill the program 
(sorry). 
 
5.2 LOADING 
------------ 
     As above, but use the LOAD icon instead. 
 
Only one design may be loaded at once. The multiple schematic windows (sister 
windows) are intended to allow editting of several hierachical blocks at once 
within the same design. 
 
5.3 PRINTING & METAFILES 
------------------------- 
 
Nice and easy - to procedure for printing is as follows:- 
 
 1)  Go to the block you wish to print. 
 
 2)  Select the PRINTOUT option from file menu 
 
   The 'Hardcopy Output' dialog will appear. 
 
 3)  Set what you want to print - the circuit diagram or the contents of the 
     Logic Analyser window. 
 
 4)  Set the font type you wish to use. GDOS fonts look better, but CLA-VECTOR 
     fonts are useful for programs such as Pagestream & Calamus 1.09, which 
     have problems with normal GDOS fonts - they're just drawn as line vectors, 
     so Calamus will load & display them properly. 
 
 5)  Select the output destination - either hardcopy (device 21) or metafile 
     (device 31). 
 
 6)  Click on PRINT. 
 
  The progress window will now appear, and give a report on how printing is 
  progressing. 
 
NOTE : For best results when printing circuit diagrams, set the PAGESIZE so 
       that the circuit will fill the page, otherwise you will not be able to 
       read the text labels on a low res. printer (<300dpi). 
 
6. SIMULATION 
============== 
 
     The main features of CLA are the simulation modes. These can be invoked 
at any point in the design process. The only prerequisite is that at least 
one input to the circuit should be connected up (otherwise no stimulus can be 
given to the circuit). 
 
6.1 THE SIMULATION TOOLS ICON 
------------------------------ 
 
     Before simulating a design, it is neccesary to become familiar with 
the facilities available via the SIMULATION TOOLS toolbox, or the Simulation 
pull-down menu. 
 
     - LOGIC ANALYSER 
          This is a large looking double icon, which if clicked on will open 
          the Logic Analyser window. 
 
     - SET PROBE 
          Allows you to specify which signals will appeat in the logic analyser. 
 
     - PRINT LOGIC ANALYSER. 
          Prints out the present state of the Logic Analyser Display. 
          (Only works with GDOS installed). 
 
     - ACTIVE PROBE. 
          Toggle the active probe (ON/OFF) 
 
     - WORD GENERATOR. 
          Allows a preset series of signals to be fed to the design. 
 
     - BULB. 
          Select place bulb.
 
 
6.1.1 BULBS 
------------ 
 
     The bulb icon is really a just a component the same as all the gates 
in the Gates Selector. Once selected, you can (if you close the TOOLS 
window) place bulbs in the same way as ordinary gates. 
The differance between a bulb and a gate is that the bulb will show 
graphically on the screen the state of it's input (high or low). 
     If the input to a bulb is high then the bulb will be black, where-as 
if the input is low then it will be white.
 
 
********NOTE: BULBS ARE CURRENTLY DISABLED IN CLA V2 DUE TO A SHORTAGE 
********      OF DEVELOPMENT TIME (I BROKE THEM AT THE LAST MINUTE). 
********      ONLY USE THE LOGIC ANALYSER WINDOW FOR NOW. 
 
6.1.2 LOGIC ANALYSER PROBES 
---------------------------- 
 
     Bulbs are only updated and displayed if they are currently visible, 
so they cannot be used to compare signals in differant blocks of the 
design. More useful for any complex analysis is the LOGIC ANALYSER. 
This allows probes to be set on the output of any component in the circuit, 
and this will produce a trace in the logic analyser window (see section 
6.1.3). 
 
     To set a Logic Analyser probe, you click on the right hand side of the 
Logic Analyser Icon (the big one at the left hand side of the TOOL window). 
This selects the SET PROBE function. You will be prompted to select a 
component to set the probe on. Click on the component, and you will be 
prompted for a Scope Trace. This can be any number from 1 to 20 (there are 
20 traces available you see, and you have to use one of them). 
 
     A probe is now set, and the appropriate trace will be updated when a 
simulation is run.
 
 
6.1.3 THE LOGIC ANALYSER 
------------------------- 
 
     This is the main tool in simulating designs. It allows the response of 
selected components to be monitored and compared in pseudo-realtime. 
There are 20 traces visible simultaneously. The assignment of these probes 
is detailed in the previous section. 
 
     Selecting the Logic Analyser Icon (the big icon in the TOOLS window) 
opens the Logic Analyser window. 
 
     There will only be actual traces displayed for the traces which have 
been assigned using SET PROBE. 
 
     In order to see the results of a simulation, the Logic Analyser window 
should be OPEN during simulation (otherwise you cann't see the traces). 
 
6.1.4 THE ACTIVE PROBE 
----------------------- 
 
     This function when enabled, allows the output of any gate to be 
checked DURING interactive simulation, without having first set a probe 
of any type on it, and without stopping the simulation. 
 
     To use the Active Probe, simply select it's icon, then start a 
simulation. To check a gates status, simply point and click with the LEFT 
HAND MOUSE BUTTON. 
 
     The active probe may be used in conjunction with any of the other 
simulation tools available.
 
 
6.2 RUNNING A SIMULATION 
------------------------- 
 
     To actually start a simulation running you use the RUN SIMULATION 
icon from the main menu. This can be done at any time during the design 
process, PROVIDED THAT YOU HAVE GIVEN THE DESIGN AT LEAST ONE EXTERNAL 
INPUT. 
 
When simulating, the message 'RUNNING SIMULATION' appears in the status window. 
 
A simulation is stopped by pressing the RIGHT HAND MOUSE BUTTON. 
 
If the scope window is open then it will be updated whilst the simulation 
is running, and will scroll to show results. 
 
Any bulbs currently on screen will be updated. 
 
NOTE: Any un-connected inputs to gates will be tied LOW.
 
 
6.2.1 INPUTS DURING SIMULATION 
------------------------------- 
 
     In order to do useful simulations, you must be able to modify the 
inputs to simulate the expected inputs to the system and examine it's 
response. To do this, the status of any input can be toggled between it's 
high and low states by pointing at the required input in the TOP LEVEL of 
the design and pressing the LEFT HAND MOUSE BUTTON. A dot is displayed in 
the middle of the input connector to show it's status. This should be done 
whilst the simulation is running, and allows the design to be used 
interactively.
 
 
6.2.2 THE ACTIVE PROBE & THE LOGIC ANALYSER DURING SIMULATION 
-------------------------------------------------------------- 
 
     The Logic Analyser is updated during simulation to reflect the state 
of the circuit as it is affected by the inputs. 
 
NOTE : The ACTIVE PROBE does not interfere with this. In the case of the 
       active probe being turned on during simulation, the input toggle 
       will have priority over the active probe at the left hand side of 
       the screen.
 
 
6.3 CLOCKED INPUTS 
------------------- 
 
     Digital systems will quite often be required to perform things in a 
specific sequence or at a certain time. In these circumstances (such as 
computer systems design) the system is driven by a clock signal. In order 
to simulate clock driven systems, you could sit and manually toggle the 
inputs (but you would get sore fingers). Instead, CLA provides a special 
type of input, which provide a clock signal at a specified rate. 
 
     A clocked input is added using the ADD CLOCK icon from the INPUTS 
menu (see section 4.3). 
 
     The input is placed and connected up in exactly the same way as for a 
normal input (except that you select ADD CLOCK instead of ADD INPUT). 
Once connected up however, you are prompted for a CLOCK FREQUENCY DIVIDER. 
This is an important concept, so you must understand this to use clocked 
inputs. 
 
It is possible for a system to have more than one clock signal, at 
differant frequencies. The frequency divider allows this to be simulated by 
relating the frequencies of all the clocks in the system to one SOURCE 
FREQUENCY. 
 
The SOURCE FREQUENCY is the frequency of the highest speed clock signal 
which is going to be used by the system. All other clocks are based on 
this frequency, divided by some whole number (the FREQUENCY DIVIDER). 
 
The SOURCE FREQUENCY clock would have a clock divider of 1. A clock of 
HALF the frequency would have a clock divider of 2. 
 
In general :   SOURCE FREQUENCY 
               -----------------   =   CLOCK FREQUENCY 
               FREQUENCY DIVIDER 
 
Confused ? Here is an example set of clock frequencies and dividers to let 
you see what I'm getting at : 
 
+-----------------+---------------+---------------------------------------+ 
| CLOCK FREQUENCY | CLOCK DIVIDER | REASON                                | 
+-----------------+---------------+---------------------------------------+ 
|                 |               |                                       | 
|      1 KHz      |      1        | This is the highest clock frequency   | 
|                 |               |  needed (the SOURCE FREQUENCY).       | 
|                 |               |                                       | 
|     500 Hz      |      2        | 1000 Hz / 2 = 500 Hz                  | 
|                 |               |                                       | 
|      10 Hz      |      10       | 1000 Hz / 10 = 10 Hz                  | 
|                 |               |                                       | 
+-----------------+---------------+---------------------------------------+ 
 
If things still aren't clear, register and then you can ask me personally 
what this all meant. 
 
NOTE : Clocked inputs cannot be toggled manually. 
 
6.4 THE WORD GENERATOR 
----------------------- 
This is a window in which all inputs to the circuit are listed. 
It runs seperate from the interactive simulator, but shares the same logic 
analysers. A series of logic levels (1/0 currently) may be set up, 
and these will be used as input to the circuit when the GO button is selected. 
All the inputs will be fed to the circuit in turn, then the simulation will 
terminate & the logic analyser window will be updated to display how the 
circuit has behaved during the simulation. 
 
This is 'BATCH MODE' simulation, as once started there can be no interaction 
from the user. 
 
To put this in perspective, it should take not more than 20 seconds to do a 
very large circuit (1000's of gates) with a scope res of 512 gates delays per 
scope step. Most circuit's will appear to simulate instantly (using scope res 
around 64). 
 
6.5 SCOPE RES. 
--------------- 
The scope res. is important, as it set's the maximum measurable/changable 
resolution of the simulator in terms of unit gate delays. 
So, a res. of 1 means that the signal will propogate through exactly one gate 
before the logic analyser updates again. 
This also means that you can change the signal after one unit delay. This can 
be good or bad depending upon circumstances. A problem is that you can generate 
clocks which are faster than the time required to latch data into a register. 
 
Eg, the D-FLIPFLOP in the User_lib library requires a clock of period > 32 
gate delays. 
 
If you use a higher scope res (ie lower number of unit gate delays), it's quite 
possible for the design to stop working (just like using too fast a clock in 
the real world). 
 
A good rule of thumb is to set the scope res to 32 in most cases. 
 
The Scope Res. is set in the Configuration Dialog. 
 
7. OTHER FEATURES 
================== 
 
     This document was merely intended to get people stared using CLA. It 
does not cover the more advanced features such as : 
 
 - BLOCK structuring & hierachical design. 
    (Hint - in block mode, LEFT button is for pushing down into blocks, 
            RIGHT button is for creating new blocks. Go back up using the 
            close button pop-up menu option 'Go-back'.) 
 
 - Loading Library modules. 
 
 - The Librarian program and creating user libraries. 
 
 - Creating Custom schematic gates sets. 
 
 - Using the VHDL compiler. 
 
These features ARE in the V2 RELEASE 1 package, but are not detailled in 
this document. Their use is a matter of trail and error on the part of 
unregistered users. Registered users will, however recieve FULL 
documentation of these features (of course YOU are an honest person aren't 
you ? I'm sure you wouldn't use an unregistered SHAREWARE program - would 
you....) 
 
There is a lot more pencilled in for the next release of CLA. Registered 
users will recieve this as a matter of course, but it is open to debate 
as to whether the next release will be made available via FTP & the nets. 
Certainly, the Synthesis tool extensions will NOT be made generally 
available (when I've finished them) apart from to registered users. 
 
APPENDIX A : KEYBOARD SHORTCUTS 
================================ 
 
     Most functions of CLA may be accessed via keyboard shortcuts as well 
as the icons. These keyboard shortcuts are accessed by merely pressing 
shift + the appropriate key, NOT via Control or Alternate. 
 
Note that currently they aren't very reliable, you'd be better using the 
actual icon or the pull-down menu option. 
 
The keyboard shortcuts presently defined may be found in the file: 
   '\CONFIG.CLA\KEYS.DEF' 
 
Other icons may be assigned to the keyboard by adding their names to this 
file. The names can be found in the file: 
   '\DOC\SHRTCUTS.TXT' 
 
**** NOTE: THIS FILE IS NOT INCLUDED WITH THIS RELEASE 
 
APPENDIX B : LIBRARY MODULES 
============================= 
 
     You may have noticed the LIBRARY icon on the FILE menu. This as it's 
name indicates, allows library modules to be loaded in (such as IC's) and 
used within your designs. 
 
     Clicking on the LIBRARY icon brings up something similar to a file 
selector. This is the Library Module Selector. It gives the name of the 
current library (changable by clicking on name of the library at the top 
of the selector), followed by a list of the library's contents. 
 
     Clicking on a module name, or it's description, will bring up an 
Alert Box to confirm that you want to include this module. 
 
     If you confirm this then the module will load and there will be a 
short pause whilst the module is mapped into your design. A ghost outline 
of the module is then displayed and this may be moved around the screen 
using the mouse. Clicking a mouse button will cause the block to be placed 
at the current location. 
 
     The module is now just like any other hierachichal block, and it's 
inputs and outputs can be connected up as normal. The library modules may 
even be opened up to examine the way we at Data Uncertain implemented the 
module, with the exception of VHDL blocks (those displayed with a big V in 
them) such as the 74xx library,as these do not contain meaningful schematics 
anyway. 
 
APPENDIX C : ABOUT THE THE AUTHOR 
================================== 
 
DATA UNCERTAIN SOFTWARE is made up of: 
 
 Craig Graham : 
               Main GUI code, Compiler type simulation routine 
                 & main code, VHDL, Librarian, vector editor. 
                   (BAe SPACE SYSTEMS, Stevenage, England) 
 
               EMAIL : Craig.Graham@newcastle.ac.uk 
               Plain Mail: 46 School Road, 
                            Langold, 
                            Worksop, 
                            Notts, 
                            S81 9PY, 
                            ENGLAND 
 
And to varying degrees, the contributions of the following people: 
 
 Peter Brooks-Johnson : 
               Design section User interface & Fanout Checking, 
                    Look & feel of Editor GUI (design of). 
            (Even though I've removed the Fanout stuff for now.) 
                SPOUT Spice OUTput (if he ever finishes it). 
                       (British Telecom, England) 
 
              EMAIL : P.A.Brooks-Johnson@newcastle.ac.uk 
 
 Malek Jaber : 
               Some programming, but I've forgotten what (sorry Mal). 
               Forcing the structured rewrite upon me. 
               (3 Comm, Hemlhampstead, England) 
 
 Chris Forker , Julian Coleman & Sime Harrison : 
               Beta testing on the MegaST, TT & STE respectively. 
 
 Chris Cuckow : 
               For his enthusiasm in the early years. 
 
 Kev R. & Tom McC. : 
               Just for being cool and making us go to the clubs and get off 
               with girls and get drunk and.... well, relax and live a little. 
 
All authors are students currently studying for their Masters Degrees in 
Microelectornics And Software Engineering at Newcastle University, England, 
sponsored by and working for the companies quoted above during their 
vacations. 
 
CLA was intended mainly as a tool for helping the authors through their 
degrees. As there are 2 years left to go before graduation, there will 
be at least that many years of support & development for the program. 
 
The authors may be contacted via EMAIL or Plain Mail at the addresses given 
above. EMAIL is appreciated, espescially from non-registered users, as 
replies are easier and quicker to send (and don't cost us anything). In fact 
unregistered users are UNLIKELY to get replies to anything apart from EMAIL, 
unless they enclose some money.... 
 
Alternatively, I may be contacted via the USENET groups : 
 
     comp.sys.atari.st 
     comp.sys.atari.st.tech 
 
Which I read during term time.
 
 
Enjoy the program....it's our pride and joy. 
 
     CRAIG GRAHAM





