home *** CD-ROM | disk | FTP | other *** search
/ The Very Best of Atari Inside / The Very Best of Atari Inside 1.iso / sharew / elektro / cla / doc / manual.txt < prev    next >
Encoding:
Text File  |  1993-12-05  |  37.7 KB  |  992 lines

  1. CLA LOGIC v2
  2. ============
  3.  
  4. Beta Test Release 4
  5.  
  6.  
  7. NOTE: This document is a conversion & update of the CLA v1 (unregistered) manual 
  8.      - done in about an hour and a half.
  9.     This means that it isn't very good...it is intended as a stop-gap measure
  10.     until either a new manual is written, or an on-line help facility is
  11.     added.
  12.  
  13. ===========================================================
  14.  
  15.             CLA Version 2 Release 1 (Beta4)
  16.                 USER MANUAL (Summary)
  17.  
  18. ===========================================================
  19.  
  20. Copyright 1993, By Data Uncertain Software.
  21.  
  22. Written By Craig Graham.
  23.  
  24. ===========================================================
  25.  
  26.  
  27.                     CONTENTS
  28.                     --------
  29.  
  30. 1.   INTRODUCTION
  31.  
  32. 2.   INSTALLATION
  33. 2.1       Unpacking
  34. 2.2       Files
  35. 2.3       System Required
  36. 2.4       Loading
  37.  
  38. 3.   THE CLA ENVIROMENT
  39. 3.1       Pull-down Menus
  40. 3.2       The Status Window
  41. 3.3       Editor Windows
  42. 3.4       The Main Menu Bar
  43. 3.5       Tool Boxes
  44. 3.6       CLA Dialog Boxes
  45. 3.6.1          Pop-up menus
  46.  
  47. 4.   BASIC DESIGN PROCESS
  48. 4.1       Placing Components - The Basic Gates Toolbox
  49. 4.2       Linking Components
  50. 4.3       Adding Inputs
  51.  
  52. 5.   THE FILE MENU
  53. 5.1       Save
  54. 5.2       Load
  55. 5.3       Printing & Metafiles
  56.  
  57. 6.   SIMULATION
  58. 6.1       The Tools Icon
  59. 6.1.1          Bulbs
  60. 6.1.2          Logic Scope Probes
  61. 6.1.3          The Logic Scope
  62. 6.1.4          The Active Probe
  63. 6.2       Running A Simulation
  64. 6.2.1          Inputs during Simulation
  65. 6.2.2          The Active Probe & The Scope
  66. 6.3       Clocked Inputs
  67. 6.4       The Word Generator
  68.  
  69. 7.   OTHER FEATURES
  70.  
  71. APPENDIX A : KEYBOARD SHORTCUTS
  72. APPENDIX B : LIBRARY MODULES
  73.  
  74. 1.0 INTRODUCTION
  75. =================
  76.  
  77.      This manual is intended as a 'get you going' sort of guide to the 
  78. CLA Logic design & simulation package. Due to the highly iconic nature
  79. of the program, and the textual nature of this manual, it is not intended
  80. as an in-depth tutorial and referance. A complete manual is available to 
  81. registered users (see README.DOC for details).
  82.  
  83.      CLA is intended as a tool to enable fast prototyping of digital
  84. circuits. The inspiration as to it's approach to this is rooted firmly in
  85. the UN*X world, where several high end packages costing several thousand
  86. pounds offer similar features (although much wider in scope of course,
  87. with a price tag of several thousand pounds, we could do this as well, but
  88. then we couldn't release as shareware).
  89.  
  90.      The design part of the package (perhaps a bad description, as design &
  91. simulation are completely integrated) supports the standard set of logic
  92. gates (ANSI style representations only for now I'm afraid - perhaps a
  93. set of IEEE symbols will be made available at a later date, or you could draw
  94. up your own with VECED2), and also a few librarys of standard components 
  95. (eg, flip-flops, adders, etc) and IC's (the 74xx TTL series).
  96.  
  97. A subset of VHDL is provided for textual circuit description.
  98.  
  99.      The integrated simulation section of the program can be accessed at
  100. any time and provides interactive use of the circuit, with Logic scope
  101. analysis, 'live' indicator bulbs, active logic probes, etc, or more formal
  102. testing from an integrated Word Generator.
  103.  
  104.      The whole enviroment is graphical, using icons, windows, 'flying' dialogs
  105.  and the mouse to produce & simulate the design.
  106.  
  107.      Not wanting to labour a point, but CLA is SHAREWARE. If you find it at
  108. all help full then REGISTER - you can then make sugestions for extra
  109. features you need.....if you don't register then you get no support from
  110. the authors at all.
  111.  
  112.  
  113. 2.0 INSTALLATION
  114. =================
  115.  
  116. 2.1 UNPACKING
  117. --------------
  118.  
  119.      The fact that you have reached this point in the documentation at all
  120. sugests that you have sucessfully unpacked the file 'CLA_V2R1.ZIP'.
  121.  
  122. 2.2 FILES
  123. ----------
  124.  
  125. If you have used STZIP 2.x, then the correct directory structure should 
  126. already be set up for you. Just as a check however:
  127.  
  128. Once unpacked, you should have the following file & directory
  129. structure :-
  130.  
  131. .\
  132.     CLA.PRG            CLA Design & Simulation Enviroment
  133.     VECED2.PRG        Vector Object Editor
  134.     LIBV1.PRG        Librarian
  135.     README            Notes on this beta release, and a survey to return.
  136.     INVENTOR.Y        The file inventory (almost certainly more up to date than
  137.                     what you are reading now.
  138.  
  139. .\DOC
  140.     COPYRGHT.TXT    How you can copy this.
  141.     BUGLIST            Known Bugs
  142.     CHANGES.TXT        New stuff from the last release.
  143.     FUTURES.TXT        Stuff currently under developement
  144.     MANUAL.TXT        This file.
  145.     VECEDIT.TXT        Quick notes on the Vector Object Editor VECED2.
  146.     TOS4SCR1.GIF    Screenshots (GIF format) of CLAv2 in it's full glory on
  147.     TOS4SCR2.GIF    a Falcon.
  148.     FSM_EDIT.GIF
  149.  
  150. .\EXAMPLES            Several example .NET files to play with.
  151.  
  152. .\FSM_DES
  153.     FSM_EDIT.PRG    The Finite State Machine design program.
  154.     SDES.RSC        Resource file for the above (colour only).
  155.     B.FSM            Example state machine files.
  156.     V6.FSM
  157.     README.TXT        Doc's for the state machine editor.
  158.  
  159. .\VHDL
  160.     README            The VHDL compiler documentation.
  161.     CLA_VHDL.PRG    VHDL subset to CLA.NET compiler.
  162.     CLAVHDLC.RSC    Resource file for the above (colour).
  163.     CLAVHDLM.RSC    Resource file for the above (mono).
  164.     OPERATORS.CLA    File giving operator precedence for the VHDL compiler.
  165.  
  166. .\VHDL\74XX.VHD        The VHDL source for the standard 74 series TTL library
  167.     7400.VHD
  168.     7402.VHD
  169.     7404.VHD
  170.  
  171. .\RESOURCE.CLA
  172.     BWLOGIC.NAM        Various CLA resources
  173.     CLAC.RSC
  174.     CLAM.RSC
  175.     FILE.GTB
  176.     GATES.GTB
  177.     INPUTS.GTB
  178.     TOOLS.GTB
  179.     LIBV1C.RSC        Librarian resources (colour & mono)
  180.     LIBV1M.RSC
  181.     VECEDITC.RSC    Vector Object editor resources (colour & mono)
  182.     VECEDITM.RSC
  183.  
  184. .\RESOURCE.CLA\VECTORS
  185.     DEFAULT.VFN        CLA vector font - primitive, but effective.
  186.     GATES.VEC        Standard logic gate images (editable with VECED2)
  187.  
  188. .\CONFIG.CLA
  189.     FANOUT.DEF        The average fanouts available from various IC technologies
  190.     KEYS.DEF        Keyboard shortcuts definition file.
  191.     LIB.DEF            The library definition file (editable with LIBV1)
  192.  
  193. .\LIBRARY            The modules library for CLA.
  194.  
  195. .\LIBRARY\74XX        The 74 series TTL library (from VHDL sources)
  196.     7400.NET
  197.     7402.NET
  198.     7404.NET
  199.  
  200. .\LIBRARY\USERLIB    A predefined but empty library for your stuff.
  201.  
  202. .\LIBRARY\BASIC        Simple things such as 2-bit adders & D-flip-flops
  203.  
  204.  
  205.  
  206. If anything is missing then you have problems.
  207.  
  208. NOTE: CLA MUST have this directory structure, or it WILL NOT work.
  209.         You can place the root of this structure ( .\ ) anywhere,
  210.         but must keep all things in the correct directories after
  211.         that.
  212.  
  213. If you wish to use the printed output facility, then you will require GDOS,
  214. FontGDOS, SpeedoGDOS or NVDI (I use NVDI) to be installed as well. It is
  215. beyond the  scope of this document to explain the complexities of installing
  216. GDOS (someone write & tell US about that black art !!!), so the only comment to
  217. make on that is that the program expects to find a device driver available
  218. as device 21. This is usually the EPSON FX80 driver and as this is the only
  219. printer we have available to us, it's the only on that is tested at the 
  220. moment, but we ASSUME that other drivers will work as long as they are 
  221. installed as device 21 in the ASSIGN.SYS file.
  222.  
  223. GEM Metafile output is also available, and the above applies to that as well,
  224. but META.SYS must be installed as device 31.
  225.  
  226. This program mayu not work with FSMGDOS - but, hey if you're using that then
  227. you deserve all you get anyway.
  228.  
  229. 2.3 SYSTEM REQUIRED
  230. --------------------
  231.  
  232. The basic system required to run CLAv1 was :-
  233.           - 512K ATARI ST
  234.           - 1 Double sided disc drive
  235.           - Monochrome monitor
  236.  
  237. This is no longer the case (sorry...)
  238.  
  239. The basic system required to run CLAv2 is :-
  240.           - 2Meg ATARI ST
  241.           - 1 Double sided disc drive
  242.           - Monochrome monitor
  243.  
  244. The above is not ideal however.
  245. The recomended system for running CLAv2 is :-
  246.     Platform : MegaSTE / TT / Falcon
  247.     Memory   : 4Meg - required for running CLA at higher res.
  248.     Storage  : Hard drive, requires 1 Meg for basic installation - this
  249.                 WILL increase quite drasticly as the synthesis tool & FSM
  250.                 designer are added.
  251.     Display  : Crazy Dots / TT / Falcon extended (FalconScreen/Blowup030)
  252.                 + a gfx accellerator (Warp9 / NVDI), in min. 16 Colours.
  253.     OS       : TOS 4.02, multiTOS 1.04+.
  254.  
  255. Our developement system is :-
  256.     Platform : Falcon
  257.     Memory   : 4Meg
  258.     Storage  : 85Meg Hard drive
  259.     Display  : 800x600x16colour Falcon extended (FalconScreen)
  260.                 + NVDI2.5
  261.     OS       : TOS 4.02 + WINX2.1 (highly recomended - it's great).
  262.  
  263. This is quite a large jump in system requirments, but hey, the jump from v1 to v2
  264. has been really quite severe.
  265.  
  266. 2.4 LOADING
  267. ------------
  268.  
  269.      To load CLA, click on 'CLA.PRG'. The program should then load and
  270. run. Alternatively, CLA may be installed using the INSTALL APPLICATION
  271. option from the desktop, using a '.NET' file extension. This allows the
  272. program to be run by double clicking on a .NET file (these are the circuit
  273. designs).
  274.  
  275.     In TOS 3/4/MultiTOS, CLA.PRG should be installed to default to it's OWN
  276. directory, not the top window's, and should be passed the whole path to a
  277. file.
  278.  
  279.     While CLA loads, a window is displayed indicating what CLA thinks your
  280. system is. If you have a problem, not down the info from here - it'll help me
  281. to sort you out. Click the left mouse button to get past this start-up window.
  282. It will close, and the main program window will open.
  283.  
  284. 3.0 THE CLA ENVIROMENT
  285. ========================
  286.  
  287. 3.1 Pull Down Menus
  288. --------------------
  289. Most CLA options are available from both the standard GEM pulldown menus at
  290. the top of the screen or from the various Toolbox windows which can be opened.
  291. There are also keyboard shortcuts for most frequently used things.
  292.  
  293. CLA starts up with 3 windows displayed.
  294.  
  295. 3.2 The Status Window
  296. ----------------------
  297. At the top of the screen is a status window which reports actions (such as
  298. PLACE GATE, MOVE GATE, etc). This window is fixed - you cann't move it, you
  299. cann't close it. It can be overlayed by other windows, and can be topped by
  300. clicking in it, but thats all.
  301.  
  302. 3.3 Editor Windows
  303. -------------------
  304. Filling most of the screen is an empty window. This is a schematic window
  305. in which you will do your designing. Re-sizing, moving & scrolling of this
  306. type of window are as you would expect in a GEM application, however, the
  307. full & close widgets are used slightly differently. Close behaves like the
  308. MS Windows / OSF Motif top left button, and drops down a menu, of which close
  309. is only one of several options (eg. ICONIFY will turn a window into an icon,
  310. SISTER WINDOW will produce another window with the same contents as the first).
  311. The Full widget pops up another menu, this time one with several Icons and
  312. buttons in it. From left to right, these are:
  313.  
  314.  - Windowed mode display. Sets this window to display graphics at a set
  315.    scale and force you to scroll around the design using the scroll bars.
  316.    The actual scale is set in the configuration dialog.
  317.  
  318.  - Scaled mode display. Sets this window to display the whole design in the
  319.    window, rescaling it to fit as you resize the window. The scroll bars are
  320.    ignored here.
  321.  
  322.  - '⇩' = Iconify. This does the same as selecting Iconify from the Close
  323.    Pull-down.
  324.  
  325.  - '⇧' = Full. This does what the full widget would normally do in most GEM
  326.    programs and sets the window to full screen.
  327.  
  328. 3.4 The Main Menu Toolbox
  329. --------------------------
  330. The Main Menu Toolbox is displayed on the right hand side of the screen at
  331. start-up. It may be move freely (it's in a GEM window), but in ST High there 
  332. is very little room to move it into. 
  333.  
  334. Unlike all other Toolboxes in CLA, the main menu cannot be closed or Rolled
  335. up - it is there all the time.
  336.  
  337. It's icons (in top down order) have the following functions:-
  338.  
  339.  - REFRESH     Forces the current schematic window to redraw.
  340.  
  341.  - LINK        Selects the link-up mode for joining up components.
  342.  
  343.  - CUT LINK    Selects the disconnect components mode.
  344.  
  345.  - DELETE ITEM Enters Delete mode for deleting gates, inputs & blocks.
  346.  
  347.  - ROTATE      As it's name sugests, this icon put's you into rotate mode.
  348.                Now, clicking on any gates will cause them to rotate by 90°.
  349.  
  350.  - GATE        The five bar gate icon opens the GATES Toolbox.
  351.                The Gate Toolbox allows you to chose which type of basic gate
  352.                to place (AND, OR, NOT, etc).
  353.  
  354.  - INPUTS      This opens the INPUTS Toolbox, where inputs (both manual &
  355.                clocked) and outputs (hierachical) are set.
  356.  
  357.  - MOVE        This icon selects MOVE GATE MODE. This allows you to click
  358.                on and move gates which you have put in the wrong place.
  359.  
  360.  - BLOCK       Selects block create/enter mode for hierachy manipulation.
  361.  
  362.  - FILE        Opens the FILE Toolbox for the usual save/load/exit/library
  363.                functions.
  364.  
  365. 3.5 Toolboxes
  366. --------------
  367. In general, a toolbox window in CLA is open which just contains icons for
  368. various functions (some of which cannot be accessed from anywhere else).
  369.  
  370. All other Toolbox windows in CLA (apart from the Main Menu) are 'Roll-ups' 
  371. - ie. clicking on the Full Widget (top right of the window) when they are 
  372. open will cause the window to 'Roll up' leaving just the top bar (this stops 
  373. things getting to cluttered). They are restored by selecting the Full Wigdet 
  374. again. The close button simply closes the window.
  375.  
  376. If you have TOS 3/4/MultiTOS then icons in toolbar windows can be accessed in 
  377. the background without topping them. WINX also supports this.
  378.  
  379. 3.6 Dialog Windows
  380. -------------------
  381. Note that ALL CLA dialogs appear in windows. This means that you can move them
  382. and work in editors without actualy closing a dialog. 
  383.  
  384. 3.6.1 Popups
  385. -------------
  386. Inside CLA dialogs, there may be changable fields (eg, the font in the printout
  387. dialog). Clicking on these will popup a menu for you to select from.
  388.  
  389. The downside of having everything in windows, is that older TOS versions will
  390. start to run out of windows (the program then starts behaving a bit strangely)
  391. - so you are best to install WINX if you have an older TOS (<2).
  392.  
  393. 4.0 BASIC DESIGN PROCESSES
  394. ===========================
  395.  
  396.      This section details how to produce SIMPLE designs. More complex
  397. designs require much more though, and a substantial use of the BLOCK
  398. structuring facility is really necassary.
  399.  
  400. 4.1 PLACING COMPONENTS
  401. -----------------------
  402.  
  403.    To produce a design, you must first place some components. In order to 
  404. do this you must select the GATES icon and then select a type of gate to
  405. place from the Gates Toolbox which then appears. Alternatively select
  406. a gate type from the gates pull-down menu.
  407.  
  408. Now whenever you move the cursor within the schematic window, you can place
  409. a gate at the current location by pressing the left mouse button. If you
  410. hold down the button, then move the mouse, you can make the gate you are
  411. placing face left, right, up or down.
  412.  
  413. Whilst in the schematic window, the mouse pointer will be replaced by a set
  414. of cross hairs.
  415.  
  416. The schematic window does not have to be on top in order to edit thing in it.
  417. You can place a gates toolbox window in front of the schematic for quick gate
  418. selection, then place things straight into the schematic WITHOUT topping
  419. the window.
  420.  
  421. 4.2 LINKING COMPONENTS
  422. -----------------------
  423.  
  424.      Once you have a few components on the screen, you will want to
  425. connect them together. To do this you use the LINK icon. Once selected,
  426. this icon places you in link mode.
  427. To create a link between two components, you then only have to click on
  428. the source gate, and then point at the destination gate. If there is a
  429. spare input to the destination gate, then a line will be drawn between
  430. the two. To select the desination gate, press the LEFT mouse button.
  431.  
  432. NOTE: Pressing the RIGHT HAND BUTTON  will cancel a link.
  433.  
  434. Once source & destination components are selected, you must draw a wire
  435. path between the two. This is for your referance, and drawing a silly wire
  436. path will NOT effect the simulation at all.
  437. An 'L' cursor is used whilst drawing the wire path. To add a point to the
  438. path, press the LEFT BUTTON. Pressing the right hand button will terminate
  439. the wire.
  440.  
  441. Also, with single input gates, if you happen to add a point to the wire
  442. which coincides with the input terminal of the gate, then the wire will
  443. terminate itself.
  444.  
  445. Pressing ALTERNATE whilst drawing a wire path will swap the orientation of
  446. the link path:
  447.  
  448.  
  449.           ---------+                                   +
  450.           |                                            |
  451.           |                                            |
  452.           |                                            |
  453.           |                                            |
  454.           |                                            |
  455.           |                                            |
  456.           +                                  +----------
  457.  
  458.  
  459. 4.3 ADDING INPUTS
  460. ------------------
  461.  
  462.      A circuit is not much use with no inputs, so inputs may be added using
  463. the ADD INPUTS icon. This can be found in the INPUTS menu which is invoked
  464. by selecting the INPUT icon on the main menu.
  465. The icons on the INPUTS menu are as follows (left to right):
  466.  
  467.      - ADD INPUT : Adds a manually togglable input to the circuit.
  468.                    If within a block, this adds an input connector from
  469.                    the next level up from that block to this level.
  470.  
  471.                          -----------
  472.                          |         |
  473.                          |         |
  474.                          |         |
  475.                        -->input    |
  476.                          |         |
  477.                          |         |
  478.                          -----------
  479.  
  480.      - ADD OUTPUT : This adds am output connector from a block to the next
  481.                     Level up in the design. If you are NOT within a block
  482.                     then this icon does nothing.
  483.  
  484.      - ADD CLOCK :  This adds an auto-clocked input to the circuit.
  485.                     (See section 6.3)
  486.  
  487. NOTE: All hierachical input / output connections are dealt with in the 
  488.       REGISTERED USER documentation. This is not to say that the block
  489.       structuring features are at all disabled in this release, only that
  490.       their usage is not documented here. Pay or play - I'd prefer you to
  491.       pay.
  492.      
  493. When ADD INPUT is selected you will be asked to place the input. As a matter
  494. of readability, the program will automatically place ALL external inputs at
  495. the left of the screen. Only the vertical position of the input can be 
  496. altered.
  497.  
  498. The input connector will now appear and you should now point to the gate to
  499. which the input should be connected and click the LEFT BUTTON. As with
  500. linking gates, pressing the RIGHT BUTTON will cancel the input.
  501.  
  502. Once an input destination is selected, you should then draw a wire path in
  503. exactly the same way as when linking gates togther.
  504.  
  505.  
  506. NOTES:
  507. ------
  508.  (1)  EACH INPUT CAN GO TO ONLY ONE PLACE. TO FEED AN INPUT TO MORE THAN
  509.       ONE PLACE, FIRST CONNECT IT TO A DRIVER GATE (NOP), THEN CONNECT 
  510.       THE DRIVER TO EVERYWHERE ELSE.
  511.  
  512. 5. THE FILE MENU
  513. =================
  514.  
  515.      The FILE menu is opened by the FILE icon at the bottom of the main
  516. menu.
  517. The icons in the FILE menu are (from left to right):
  518.  
  519.      - LOAD : Load a circuit design from disc.
  520.  
  521.      - SAVE : Save the present circuit design to disc.
  522.  
  523.      - LIBRARY : Insert a module from the libraries into the present block.
  524.  
  525.      - PRINT : Open the GDOS output Dialog Window.
  526.                (Only useful if GDOS is installed.)
  527.  
  528.      - USER : Open the configuration window where the following options can
  529.               be set:
  530.                     i)   Grid snap (ON/OFF)
  531.  
  532.                     ii)  X-Y coordinate readout (ON/OFF)
  533.  
  534.                     iii) Auto part name (ON/OFF)
  535.  
  536.                     iv)  Scope Resolution.
  537.                          This is actually a misnomer. The value of Scope
  538.                          resolution is really the number of gates through
  539.                          which a signal will propogate for each basic
  540.                          clock cycle / Logic Analyser update.
  541.  
  542.                     v)   Drawing scale
  543.  
  544.      - EXIT : This either exits the present drawing and leaves a blank
  545.               workspace, or quits the program.
  546.  
  547.  
  548. 5.1 SAVING
  549. -----------
  550.  
  551.      Select SAVE from the FILE menu. Follow the usual GEM procedure for
  552. selecting a file, then do as the alert boxes say. Overwriting of existing
  553. files is trapped, but out off disc space errors will kill the program
  554. (sorry).
  555.  
  556. 5.2 LOADING
  557. ------------
  558.      As above, but use the LOAD icon instead.
  559.  
  560. Only one design may be loaded at once. The multiple schematic windows (sister
  561. windows) are intended to allow editting of several hierachical blocks at once
  562. within the same design.
  563.  
  564. 5.3 PRINTING & METAFILES
  565. -------------------------
  566.  
  567. Nice and easy - to procedure for printing is as follows:-
  568.  
  569.  1)  Go to the block you wish to print.
  570.  
  571.  2)  Select the PRINTOUT option from file menu
  572.  
  573.    The 'Hardcopy Output' dialog will appear.
  574.  
  575.  3)  Set what you want to print - the circuit diagram or the contents of the
  576.      Logic Analyser window.
  577.  
  578.  4)  Set the font type you wish to use. GDOS fonts look better, but CLA-VECTOR
  579.      fonts are useful for programs such as Pagestream & Calamus 1.09, which
  580.      have problems with normal GDOS fonts - they're just drawn as line vectors,
  581.      so Calamus will load & display them properly.
  582.  
  583.  5)  Select the output destination - either hardcopy (device 21) or metafile
  584.      (device 31).
  585.  
  586.  6)  Click on PRINT.
  587.  
  588.   The progress window will now appear, and give a report on how printing is
  589.   progressing.
  590.  
  591. NOTE : For best results when printing circuit diagrams, set the PAGESIZE so
  592.        that the circuit will fill the page, otherwise you will not be able to
  593.        read the text labels on a low res. printer (<300dpi).
  594.  
  595. 6. SIMULATION
  596. ==============
  597.  
  598.      The main features of CLA are the simulation modes. These can be invoked 
  599. at any point in the design process. The only prerequisite is that at least 
  600. one input to the circuit should be connected up (otherwise no stimulus can be
  601. given to the circuit).
  602.  
  603. 6.1 THE SIMULATION TOOLS ICON
  604. ------------------------------
  605.  
  606.      Before simulating a design, it is neccesary to become familiar with
  607. the facilities available via the SIMULATION TOOLS toolbox, or the Simulation
  608. pull-down menu.
  609.  
  610.      - LOGIC ANALYSER
  611.           This is a large looking double icon, which if clicked on will open
  612.           the Logic Analyser window.
  613.  
  614.      - SET PROBE
  615.           Allows you to specify which signals will appeat in the logic analyser.
  616.  
  617.      - PRINT LOGIC ANALYSER.
  618.           Prints out the present state of the Logic Analyser Display.
  619.           (Only works with GDOS installed).
  620.  
  621.      - ACTIVE PROBE.
  622.           Toggle the active probe (ON/OFF)
  623.  
  624.      - WORD GENERATOR.
  625.           Allows a preset series of signals to be fed to the design.
  626.  
  627.      - BULB.
  628.           Select place bulb.
  629.  
  630.  
  631. 6.1.1 BULBS
  632. ------------
  633.  
  634.      The bulb icon is really a just a component the same as all the gates
  635. in the Gates Selector. Once selected, you can (if you close the TOOLS
  636. window) place bulbs in the same way as ordinary gates.
  637. The differance between a bulb and a gate is that the bulb will show
  638. graphically on the screen the state of it's input (high or low).
  639.      If the input to a bulb is high then the bulb will be black, where-as
  640. if the input is low then it will be white.
  641.  
  642.  
  643. ********NOTE: BULBS ARE CURRENTLY DISABLED IN CLA V2 DUE TO A SHORTAGE
  644. ********      OF DEVELOPMENT TIME (I BROKE THEM AT THE LAST MINUTE).
  645. ********      ONLY USE THE LOGIC ANALYSER WINDOW FOR NOW.
  646.  
  647. 6.1.2 LOGIC ANALYSER PROBES
  648. ----------------------------
  649.  
  650.      Bulbs are only updated and displayed if they are currently visible,
  651. so they cannot be used to compare signals in differant blocks of the
  652. design. More useful for any complex analysis is the LOGIC ANALYSER.
  653. This allows probes to be set on the output of any component in the circuit,
  654. and this will produce a trace in the logic analyser window (see section 
  655. 6.1.3).
  656.  
  657.      To set a Logic Analyser probe, you click on the right hand side of the
  658. Logic Analyser Icon (the big one at the left hand side of the TOOL window).
  659. This selects the SET PROBE function. You will be prompted to select a
  660. component to set the probe on. Click on the component, and you will be
  661. prompted for a Scope Trace. This can be any number from 1 to 20 (there are
  662. 20 traces available you see, and you have to use one of them).
  663.  
  664.      A probe is now set, and the appropriate trace will be updated when a
  665. simulation is run.
  666.  
  667.  
  668. 6.1.3 THE LOGIC ANALYSER
  669. -------------------------
  670.  
  671.      This is the main tool in simulating designs. It allows the response of
  672. selected components to be monitored and compared in pseudo-realtime.
  673. There are 20 traces visible simultaneously. The assignment of these probes
  674. is detailed in the previous section.
  675.  
  676.      Selecting the Logic Analyser Icon (the big icon in the TOOLS window) 
  677. opens the Logic Analyser window.
  678.  
  679.      There will only be actual traces displayed for the traces which have
  680. been assigned using SET PROBE.
  681.  
  682.      In order to see the results of a simulation, the Logic Analyser window
  683. should be OPEN during simulation (otherwise you cann't see the traces).
  684.  
  685. 6.1.4 THE ACTIVE PROBE
  686. -----------------------
  687.  
  688.      This function when enabled, allows the output of any gate to be
  689. checked DURING interactive simulation, without having first set a probe 
  690. of any type on it, and without stopping the simulation.
  691.  
  692.      To use the Active Probe, simply select it's icon, then start a
  693. simulation. To check a gates status, simply point and click with the LEFT
  694. HAND MOUSE BUTTON.
  695.  
  696.      The active probe may be used in conjunction with any of the other
  697. simulation tools available.
  698.  
  699.  
  700. 6.2 RUNNING A SIMULATION
  701. -------------------------
  702.  
  703.      To actually start a simulation running you use the RUN SIMULATION
  704. icon from the main menu. This can be done at any time during the design
  705. process, PROVIDED THAT YOU HAVE GIVEN THE DESIGN AT LEAST ONE EXTERNAL
  706. INPUT.
  707.  
  708. When simulating, the message 'RUNNING SIMULATION' appears in the status window.
  709.  
  710. A simulation is stopped by pressing the RIGHT HAND MOUSE BUTTON.
  711.  
  712. If the scope window is open then it will be updated whilst the simulation
  713. is running, and will scroll to show results.
  714.  
  715. Any bulbs currently on screen will be updated.
  716.  
  717. NOTE: Any un-connected inputs to gates will be tied LOW.
  718.  
  719.  
  720. 6.2.1 INPUTS DURING SIMULATION
  721. -------------------------------
  722.  
  723.      In order to do useful simulations, you must be able to modify the
  724. inputs to simulate the expected inputs to the system and examine it's
  725. response. To do this, the status of any input can be toggled between it's
  726. high and low states by pointing at the required input in the TOP LEVEL of
  727. the design and pressing the LEFT HAND MOUSE BUTTON. A dot is displayed in
  728. the middle of the input connector to show it's status. This should be done
  729. whilst the simulation is running, and allows the design to be used
  730. interactively.
  731.  
  732.  
  733. 6.2.2 THE ACTIVE PROBE & THE LOGIC ANALYSER DURING SIMULATION
  734. --------------------------------------------------------------
  735.  
  736.      The Logic Analyser is updated during simulation to reflect the state
  737. of the circuit as it is affected by the inputs.
  738.  
  739. NOTE : The ACTIVE PROBE does not interfere with this. In the case of the
  740.        active probe being turned on during simulation, the input toggle
  741.        will have priority over the active probe at the left hand side of
  742.        the screen.
  743.  
  744.  
  745. 6.3 CLOCKED INPUTS
  746. -------------------
  747.  
  748.      Digital systems will quite often be required to perform things in a
  749. specific sequence or at a certain time. In these circumstances (such as
  750. computer systems design) the system is driven by a clock signal. In order
  751. to simulate clock driven systems, you could sit and manually toggle the 
  752. inputs (but you would get sore fingers). Instead, CLA provides a special
  753. type of input, which provide a clock signal at a specified rate.
  754.  
  755.      A clocked input is added using the ADD CLOCK icon from the INPUTS
  756. menu (see section 4.3).
  757.  
  758.      The input is placed and connected up in exactly the same way as for a
  759. normal input (except that you select ADD CLOCK instead of ADD INPUT).
  760. Once connected up however, you are prompted for a CLOCK FREQUENCY DIVIDER.
  761. This is an important concept, so you must understand this to use clocked
  762. inputs.
  763.  
  764. It is possible for a system to have more than one clock signal, at
  765. differant frequencies. The frequency divider allows this to be simulated by
  766. relating the frequencies of all the clocks in the system to one SOURCE
  767. FREQUENCY.
  768.  
  769. The SOURCE FREQUENCY is the frequency of the highest speed clock signal 
  770. which is going to be used by the system. All other clocks are based on
  771. this frequency, divided by some whole number (the FREQUENCY DIVIDER).
  772.  
  773. The SOURCE FREQUENCY clock would have a clock divider of 1. A clock of
  774. HALF the frequency would have a clock divider of 2.
  775.  
  776. In general :   SOURCE FREQUENCY
  777.                -----------------   =   CLOCK FREQUENCY
  778.                FREQUENCY DIVIDER
  779.  
  780. Confused ? Here is an example set of clock frequencies and dividers to let
  781. you see what I'm getting at :
  782.  
  783. +-----------------+---------------+---------------------------------------+
  784. | CLOCK FREQUENCY | CLOCK DIVIDER | REASON                                |
  785. +-----------------+---------------+---------------------------------------+
  786. |                 |               |                                       |
  787. |      1 KHz      |      1        | This is the highest clock frequency   |
  788. |                 |               |  needed (the SOURCE FREQUENCY).       |
  789. |                 |               |                                       |
  790. |     500 Hz      |      2        | 1000 Hz / 2 = 500 Hz                  |
  791. |                 |               |                                       |
  792. |      10 Hz      |      10       | 1000 Hz / 10 = 10 Hz                  |
  793. |                 |               |                                       |
  794. +-----------------+---------------+---------------------------------------+
  795.  
  796. If things still aren't clear, register and then you can ask me personally
  797. what this all meant.
  798.  
  799. NOTE : Clocked inputs cannot be toggled manually.
  800.  
  801. 6.4 THE WORD GENERATOR
  802. -----------------------
  803. This is a window in which all inputs to the circuit are listed.
  804. It runs seperate from the interactive simulator, but shares the same logic
  805. analysers. A series of logic levels (1/0 currently) may be set up,
  806. and these will be used as input to the circuit when the GO button is selected.
  807. All the inputs will be fed to the circuit in turn, then the simulation will
  808. terminate & the logic analyser window will be updated to display how the
  809. circuit has behaved during the simulation.
  810.  
  811. This is 'BATCH MODE' simulation, as once started there can be no interaction
  812. from the user.
  813.  
  814. To put this in perspective, it should take not more than 20 seconds to do a 
  815. very large circuit (1000's of gates) with a scope res of 512 gates delays per
  816. scope step. Most circuit's will appear to simulate instantly (using scope res
  817. around 64).
  818.  
  819. 6.5 SCOPE RES.
  820. ---------------
  821. The scope res. is important, as it set's the maximum measurable/changable
  822. resolution of the simulator in terms of unit gate delays.
  823. So, a res. of 1 means that the signal will propogate through exactly one gate
  824. before the logic analyser updates again. 
  825. This also means that you can change the signal after one unit delay. This can
  826. be good or bad depending upon circumstances. A problem is that you can generate
  827. clocks which are faster than the time required to latch data into a register.
  828.  
  829. Eg, the D-FLIPFLOP in the User_lib library requires a clock of period > 32
  830. gate delays.
  831.  
  832. If you use a higher scope res (ie lower number of unit gate delays), it's quite
  833. possible for the design to stop working (just like using too fast a clock in
  834. the real world).
  835.  
  836. A good rule of thumb is to set the scope res to 32 in most cases.
  837.  
  838. 7. OTHER FEATURES
  839. ==================
  840.  
  841.      This document was merely intended to get people stared using CLA. It
  842. does not cover the more advanced features such as :
  843.  
  844.  - BLOCK structuring & hierachical design.
  845.     (Hint - in block mode, LEFT button is for pushing down into blocks,
  846.             RIGHT button is for creating new blocks. Go back up using the
  847.             close button pop-up menu option 'Go-back'.)
  848.  
  849.  - Loading Library modules.
  850.  
  851.  - The Librarian program and creating user libraries.
  852.  
  853.  - Creating Custom schematic gates sets.
  854.  
  855.  - Using the VHDL compiler.
  856.  
  857. These features ARE in the V2 RELEASE 1 package, but are not detailled in
  858. this document. Their use is a matter of trail and error on the part of
  859. unregistered users. Registered users will, however recieve FULL 
  860. documentation of these features (of course YOU are an honest person aren't
  861. you ? I'm sure you wouldn't use an unregistered SHAREWARE program - would
  862. you....)
  863.  
  864. There is a lot more pencilled in for the next release of CLA. Registered
  865. users will recieve this as a matter of course, but it is open to debate
  866. as to whether the next release will be made available via FTP & the nets.
  867. Certainly, the Synthesis tool extensions will NOT be made generally
  868. available (when I've finished them) apart from to registered users.
  869.  
  870. APPENDIX A : KEYBOARD SHORTCUTS
  871. ================================
  872.  
  873.      Most functions of CLA may be accessed via keyboard shortcuts as well
  874. as the icons. These keyboard shortcuts are accessed by merely pressing 
  875. shift + the appropriate key, NOT via Control or Alternate.
  876.  
  877. Note that currently they aren't very reliable, you'd be better using the
  878. actual icon or the pull-down menu option.
  879.  
  880. The keyboard shortcuts presently defined may be found in the file:
  881.     '\CONFIG.CLA\KEYS.DEF'
  882.  
  883. Other icons may be assigned to the keyboard by adding their names to this
  884. file. The names can be found in the file:
  885.     '\DOC\SHRTCUTS.TXT'
  886.  
  887. **** NOTE: THIS FILE IS NOT INCLUDED WITH THIS RELEASE
  888.  
  889. APPENDIX B : LIBRARY MODULES
  890. =============================
  891.  
  892.      You may have noticed the LIBRARY icon on the FILE menu. This as it's
  893. name indicates, allows library modules to be loaded in (such as IC's) and
  894. used within your designs. 
  895.  
  896.      Clicking on the LIBRARY icon brings up something similar to a file
  897. selector. This is the Library Module Selector. It gives the name of the
  898. current library (changable by clicking on name of the library at the top
  899. of the selector), followed by a list of the library's contents.
  900.  
  901.      Clicking on a module name, or it's description, will bring up an 
  902. Alert Box to confirm that you want to include this module.
  903.  
  904.      If you confirm this then the module will load and there will be a
  905. short pause whilst the module is mapped into your design. A ghost outline
  906. of the module is then displayed and this may be moved around the screen
  907. using the mouse. Clicking a mouse button will cause the block to be placed
  908. at the current location.
  909.  
  910.      The module is now just like any other hierachichal block, and it's
  911. inputs and outputs can be connected up as normal. The library modules may
  912. even be opened up to examine the way we at Data Uncertain implemented the
  913. module, with the exception of VHDL blocks (those displayed with a big V in
  914. them) such as the 74xx library,as these do not contain meaningful schematics 
  915. anyway.
  916.  
  917. APPENDIX C : ABOUT THE THE AUTHOR
  918. ==================================
  919.  
  920. DATA UNCERTAIN SOFTWARE is made up of:
  921.  
  922.  Craig Graham :
  923.                Main GUI code, Compiler type simulation routine 
  924.                  & main code, VHDL, Librarian, vector editor.
  925.                    (BAe SPACE SYSTEMS, Stevenage, England)
  926.  
  927.                EMAIL : Craig.Graham@newcastle.ac.uk
  928.                Plain Mail: 46 School Road,
  929.                             Langold,
  930.                             Worksop,
  931.                             Notts,
  932.                             S81 9PY,
  933.                             ENGLAND
  934.  
  935. And to varying degrees, the contributions of the following people:
  936.  
  937.  Peter Brooks-Johnson :
  938.                Design section User interface & Fanout Checking,
  939.                     Look & feel of Editor GUI (design of).
  940.             (Even though I've removed the Fanout stuff for now.)
  941.                 SPOUT Spice OUTput (if he ever finishes it).
  942.                        (British Telecom, England)
  943.  
  944.               EMAIL : P.A.Brooks-Johnson@newcastle.ac.uk
  945.  
  946.  Malek Jaber :
  947.                Some programming, but I've forgotten what (sorry Mal).
  948.                Forcing the structured rewrite upon me.
  949.                (3 Comm, Hemlhampstead, England)
  950.  
  951.  Chris Forker , Julian Coleman & Sime Harrison :
  952.                Beta testing on the MegaST, TT & STE respectively.
  953.  
  954.  Chris Cuckow :
  955.                For his enthusiasm in the early years.
  956.  
  957.  Kev R. & Tom McC. :
  958.                Just for being cool and making us go to the clubs and get off
  959.                with girls and get drunk and.... well, relax and live a little.
  960.  
  961. All authors are students currently studying for their Masters Degrees in 
  962. Microelectornics And Software Engineering at Newcastle University, England,
  963. sponsored by and working for the companies quoted above during their 
  964. vacations.
  965.  
  966. CLA was intended mainly as a tool for helping the authors through their
  967. degrees. As there are 2 years left to go before graduation, there will
  968. be at least that many years of support & development for the program.
  969.  
  970. The authors may be contacted via EMAIL or Plain Mail at the addresses given
  971. above. EMAIL is appreciated, espescially from non-registered users, as
  972. replies are easier and quicker to send (and don't cost us anything). In fact
  973. unregistered users are UNLIKELY to get replies to anything apart from EMAIL,
  974. unless they enclose some money....
  975.  
  976. Alternatively, I may be contacted via the USENET groups :
  977.  
  978.      comp.sys.atari.st
  979.      comp.sys.atari.st.tech
  980.  
  981. Which I read during term time.
  982.  
  983.  
  984. Enjoy the program....it's our pride and joy.
  985.  
  986.      CRAIG GRAHAM
  987.  
  988.  
  989.  
  990.  
  991.  
  992.