home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d9xx / d999 / dbb.lha / DBB / DBB.doc next >
Text File  |  1994-04-05  |  27KB  |  814 lines

  1.  
  2.                        Digital Breadboard
  3.                          Version 1.1.9
  4.                       Copyright 1992-1993
  5.  
  6.                         Danny L. Griffin
  7.  
  8.  
  9.  
  10.                             Abstract
  11.  
  12.   Digital Breadboard is a full GUI sequential-solving digital
  13. logic circuit simulator that will allow you to design, build,
  14. and test digital logic circuits in software.
  15.  
  16.  
  17.                             Preface
  18.  
  19. Introduction
  20.  
  21.   Ever since the Amiga's introduction, there has been a
  22. steadily increasing number of scientific applications
  23. available, but one application that many people have been
  24. asking for that is not currently available (that I know of) is
  25. a digital logic circuit simulator. So, rather than just talk
  26. about it, I decided to write one.
  27.  
  28. What it is
  29.  
  30.   Digital Breadboard is a full GUI sequential-solving digital
  31. logic circuit simulator that will allow you to design, build,
  32. and test digital logic circuits in software. In this release,
  33. there are some limitations put on the type of circuits that you
  34. can build, the primary one being the size of the circuit. No
  35. more than forty elements are allowed in this version.
  36.  
  37.   Still, this release does incorporate many useful tools,
  38. allowing Digital Breadboard some small measure of power. Among
  39. these are support for:
  40.  
  41.  - multiple input AND, OR, NAND, and NOR gates
  42.  - XOR and NOT gates
  43.  - D, JK, and SR flip flops
  44.  - multiple user-definable clocks 
  45.  - switched and pulsed inputs
  46.  - event counters
  47.  - outputs
  48.  - independant four-channel trace scope
  49.  - preferences printing
  50.  
  51.   Circuits can, of course, be saved, recalled, and edited at
  52. any time.
  53.  
  54.  
  55.                         Getting Started
  56.  
  57. Requirements
  58.  
  59.   Digital Breadboard requires:
  60.  
  61.  - AmigaOS 2.04 (V37 or higher)
  62.  - reqtools.library (V37 or higher)
  63.  ...that's it!
  64.  
  65. Installation
  66.  
  67.   NOTE: we will use the symbol [DBBdir] throughout this manual
  68. to represent the directory in which the executable program `DBB'
  69. resides.  Digital Breadboard will produce a fully qualified
  70. path for this location whether it was started from the Workbench 
  71. or CLI, even if it is not the current directory (DBB may be 
  72. `path'ed, for example), e.g. [DBBdir]Circuits might represent
  73. DF0:Circuits as well as DH4:Breadboard/Circuits. The user does
  74. not have to do any `assign's.
  75.  
  76.   If you don't already have reqtools.library in your libs:,
  77. move it there. There are no other requirements of Digital 
  78. Breadboard.  You may wish to install the hpcalc font in your 
  79. fonts: directory:
  80.  
  81.  copy fonts fonts: all
  82.  
  83.   However, this is not necessary.  Since hpcalc is not a full 
  84. font, some people may not want to install it in fonts:.  DBB 
  85. will first look in [DBBdir]fonts for the hpcalc font, then 
  86. in fonts:  If Digital Breadboard doesn't find the font it will 
  87. still run, but the Timer window will use Topaz 8 and it will 
  88. look goofy. This font will also be used for the 7-segment display 
  89. element in the next rev. This is the order in which Digital 
  90. Breadboard looks for files:
  91.  
  92.   Fonts        - [DBBdir]fonts, fonts:
  93.   DBB.prefs    - [DBBdir]
  94.   DBB.guide    - [DBBdir]
  95.   Design files - [DBBdir]Circuits, [DBBdir]
  96.  
  97. All icons are saved with a fully qualified Tool path.
  98.  
  99. Start
  100.  
  101.   Digital Breadboard can be started from the CLI by typing DBB
  102. or by double-clicking on the icon. Digital Breadboard will
  103. attempt to open up an overscan interlaced hires screen (682 x
  104. 440 or greater) while taking into account the user preferences,
  105. and two windows will initially appear: the design window and
  106. the tools (Elements) window. However, some people don't use an
  107. overscan display, and so for both of you Digital Breadboard
  108. will limit the horizontal screen size to match the user
  109. preferences rather than have the screen autoscroll left every
  110. time the mouse is moved to the right edge. The Elements window
  111. will overlap the design window. This, however, will be fixed
  112. when a resizeable window is implemented to support the larger
  113. virtual work area in the next revision. PAL screens are
  114. supported.
  115.  
  116.   Digital Breadboard accepts a single command-line argument--
  117. the name of a design file. If given, Digital Breadboard will
  118. load the file upon startup. All other arguments will be
  119. ignored. 
  120.  
  121.   To begin placing objects, simply click on the desired element
  122. with the mouse, move your pointer to where you wish to place
  123. the element, and click the left mouse button to drop it. Then,
  124. click on another element and do the same.
  125.  
  126.   When you're ready to connect the elements, choose the menu
  127. option EDIT/CONNECT. The design window's titlebar will change
  128. to read:
  129.  
  130.  Connect - Select output element
  131.  
  132.   Using the mouse, click on the output element to start with.
  133. When selected, a highlight box will appear around the element.
  134. You do not have to click on a specific output. If an element
  135. has more than one output, as in a D flip flop, a requester
  136. will appear asking you which one you wish to use. Simply select
  137. the appropriate response (see Section 4.1). If you change your
  138. mind, press ESC and the requester will go away and you can
  139. select a different output element.
  140.  
  141.   After you've selected an output, you need to select an input.
  142. The window's titlebar will again prompt you. 
  143.  
  144.  Connect - Select input element
  145.  
  146.   Again, you do not need to click on a specific input, just the
  147. element. An element with multiple inputs will respond with a
  148. requester asking you which input you wish to use. Select the
  149. appropriate response, or press ESC to cancel.
  150.  
  151.   When you have completed wiring your design, you may save it
  152. to disk with PROJECT/SAVE or begin simulation with CONTROL/RUN.
  153. You may at any time return to any of the editing screens (Add,
  154. Connect, Cut, Delete, etc.)
  155.  
  156.   To quit Digital Breadboard, select the menu option
  157. PROJECT/QUIT or press RAmiga-Q. If your work isn't saved, you
  158. will be asked if you wish to save your work before exiting.
  159.  
  160.   These are the basics of operation, but there are many more
  161. features that are described in the following pages. Try loading
  162. one of the sample project files. 
  163.  
  164.  
  165.                              Menus
  166.  
  167. Project
  168.  
  169.  New 
  170.  
  171.   Start a new design. This will replace the current design, and
  172. if you try to overwrite a modified design, a security
  173. requester will pop up giving you a chance to save the current
  174. file before proceeding.
  175.  
  176.  Open
  177.  
  178.   Open an existing Digital Breadboard design file. A
  179. filerequester will appear in which you select the new design
  180. file to load. This file will replace the current one, and if
  181. you try to overwrite a modified design, a security requester
  182. will pop up giving you a chance to save the current file before
  183. proceeding.
  184.  
  185.  Save
  186.  
  187.   Save the current circuit under the current name. If there is
  188. no current filename, a filerequester will appear.
  189.  
  190.  Save As
  191.  
  192.   Save the current circuit under a new name. A filerequester
  193. will appear.
  194.  
  195.  Print
  196.  
  197.   Print the circuit using the preferences printer. Digital
  198. Breadboard will attempt to determine the maximum resolution of
  199. your printer, as selected in Preferences, and print the design
  200. circuit currently displayed. Due to the ability of the user to
  201. select his own screen colors, and to keep as much control in
  202. the hands of the user as possible, Digital Breadboard provides
  203. control of the printer from within the program. This will not
  204. modify the user PrinterGfx Preferences settings. It is
  205. normally a good idea to print with `Black & White' shading, a
  206. reasonable threshold, and the correct Image settings. For the
  207. default WB2.x colors (grey, black, white, and blue), a
  208. Positive image with a threshold of 7 is fine. See Section 3.4,
  209. the Settings menu.
  210.  
  211.  About
  212.  
  213.   Display some useful (?) information.
  214.  
  215.  Quit 
  216.  
  217.   Quit
  218.  
  219.  
  220. Edit
  221.  
  222.  Delete Device 
  223.  
  224.   Remove digital logic elements from the circuit. The window
  225. titlebar will prompt you with:
  226.  
  227.  Delete - Select element to remove
  228.  
  229.   Click on the element to remove from the circuit, and it,
  230. along with any associated connections, will be removed. Press
  231. ESC to cancel.
  232.  
  233.  Cut Connection
  234.  
  235.   Cut a connection between two elements. Use the mouse to click
  236. on the first (output) element, then the second (input)
  237. element. Again, Digital Breadboard responds with positive
  238. feedback by highlighting the first element with a box. The
  239. connection between the two elements will be removed. Press ESC
  240. to cancel.
  241.  
  242.  Move Device
  243.  
  244.   Move an element. Select an element to move to a new location
  245. by clicking on the element, and then clicking on a new (empty)
  246. location. All associated connections will be rerouted as well.
  247. Press ESC to cancel.
  248.  
  249.  Redraw Screen
  250.  
  251.   Redraw screen. Sometimes, after adding elements to a
  252. previously routed design, the wiring as displayed on the screen
  253. may need to be redrawn. This is because Digital Breadboard
  254. attempts to route the connections as directly as possible,
  255. without causing `conflicts' (wires colinearly overlapping by
  256. small amounts). Selecting this will refresh the screen and
  257. reroute the design, thereby eliminating any drawing problems.
  258. Note that this is purely asthetic---all connections are
  259. unaffected by the screen display. Any time that the screen is
  260. redrawn, whether due to circuit changes or by user command, all
  261. probes are disconnected.
  262.  
  263.  Add Legend
  264.  
  265.   Edit and place a legend in the design window. A requester
  266. will pop up giving you a chance to attach a legend window to
  267. your design. You may enter a title (circuit name), your name,
  268. the date, and revision of the design. If present, it will also
  269. be printed if you elect to print your circuit. If there is an
  270. existing legend, the information will appear in the gadgets in
  271. the requester. Close the window, then place the window frame
  272. that follows your mouse on the screen. Press ESC to cancel.
  273.  
  274.  Remove Legend
  275.  
  276.   Remove the legend from the window. All information is still
  277. associated with the file. This is usually done if you are
  278. editing an existing design or if you don't want the legend to
  279. be printed.
  280.  
  281.  
  282. Control
  283.  
  284.  Add
  285.  
  286.   Add digital logic elements to the circuit. Select a logic
  287. element with the mouse and place it on the screen, as described
  288. above.
  289.  
  290.  Connect
  291.  
  292.   Connect elements together. Select the first (output) element
  293. (a highlight box will surround the selected element for a more
  294. positive feedback as described above), and then the second
  295. (input) element. A connection will be drawn between them,
  296. according to the current routing method. See Section 3.4, the
  297. Settings menu.
  298.  
  299.  Run/Stop
  300.  
  301.   Begin solving logic. Digital Breadboard will begin circuit
  302. simulation at the current selected speed. To exit RUN mode,
  303. select CONTROL/STOP or press ESC. See Section 4.2, the Tool
  304. Window: Up Arrow, Down Arrow, T, t.
  305.  
  306.  
  307. Settings
  308.  
  309.  Smooth
  310.  
  311.   Elements will follow the mouse pointer smoothly.
  312.  
  313.  Snap
  314.  
  315.   Elements will snap to allowable placement positions
  316. (default).
  317.  
  318.  Direct Path
  319.  
  320.   Connects adjacent elements by directly routing inputs
  321. (default). This produces a more visually pleasing, and easier
  322. to follow, display. In certain element placements, an output
  323. of one element may overlap (colinearly) the input of another
  324. element by a small amount. If this condition exists, Digital
  325. Breadboard will detect it and will automatically route the
  326. input via a longer path to avoid this confusion. However, if
  327. elements are added after this initial routing is done, it is
  328. possible to still have an output overlap an input. All that is
  329. needed to do if this should occur is to refresh the screen
  330. (EDIT/SCREEN REDRAW) and the problem will be taken care of. It
  331. might be a good idea to do this as a matter of course before
  332. printing a design if it is particularly complicated and you are
  333. not sure if this has occured. It is not necessary to ever
  334. refresh the screen before saving a design, and all designs
  335. loaded from disk will be routed correctly.
  336.  
  337.  Long Path
  338.  
  339.   Connects adjacent elements by routing below the inputs. Will
  340. never cause wire routing conflicts, but is not particularly
  341. pleasing to the eye. Why is this even offered as an option? I
  342. dunno. See Direct Path above.
  343.  
  344.  Save With Icon
  345.  
  346.   If selected, all files will be saved with a Project icon, with 
  347. a fully qualified Tool path.  Select SAVE SETTINGS to save.
  348.  
  349.  Palette
  350.  
  351.   Allows user to define Digital Breadboard's color palette.
  352. Select SAVE SETTINGS to save.
  353.  
  354.  Printer Prefs
  355.  
  356.   Allows user direct control over Digital Breadboard's printer
  357. output without the user having to modify his user preferences.
  358. Control of Image, Aspect, Shade, Threshold, Smoothing, and
  359. Centering behave just as in the PrinterGfx Preferences
  360. settings.
  361.  
  362.  Save Settings
  363.  
  364.   Saves current color Palette and Printer Prefs to
  365. [DBBdir]dbb.prefs. If dbb.prefs is found upon startup, its
  366. settings will be used, else DBB will use default settings. 
  367.  
  368.  
  369.                           Tool Window
  370.  
  371.  [insert elements.iff here]
  372.  
  373. Elements
  374.  
  375.  AND, OR, NAND, NOR, NOT, XOR
  376.  
  377.   Two- or three-input gates (except XOR and NOT). Keyboard
  378. equivalents: A, O, N, R, ! or 1, X.
  379.  
  380.  D
  381.  
  382.   Positive edge-triggered flip flop. The upper left input is D,
  383. the lower left input is the CLK, the upper right output is Q,
  384. and the lower right output is NOT Q. Keyboard equivalent: D.
  385.  
  386.  JK
  387.  
  388.   Negative edge-triggered JK flip flop. The upper left input is
  389. J, the middle left input is the CLK, the lower left input is
  390. K, the upper right output is Q, and the lower right output is
  391. NOT Q. Keyboard equivalent: J.
  392.  
  393.  SR
  394.  
  395.   Negative edge-triggered SR flip flop. The upper left input is
  396. S, the middle left input is the CLK, the lower left input is
  397. R, the upper right output is Q, and the lower right output is
  398. NOT Q. Keyboard equivalent: S.
  399.  
  400.  CLK
  401.  
  402.   Independant, user-adjustable clock. The initial Delay, Width,
  403. and Period are adjustable. The default values are 20, 10, and
  404. 100 respectively. The attributes may be changed after
  405. placement by selecting the Info button. Keyboard equivalent:
  406. K. See Info button.
  407.  
  408.  IN
  409.  
  410.   Switched (default) or pulsed input. The input is activated in
  411. RUN mode by clicking on it with the left mouse button. The
  412. pulsed input has a user-adjustable pulse width. Keyboard
  413. equivalent: I. See Info button.
  414.  
  415.  OUT
  416.  
  417.   Output status indicator. The output element `lights up' when
  418. TRUE, 1, or high. The color is user-adjustable. Keyboard
  419. equivalent: U. See Info button.
  420.  
  421.  +5
  422.  
  423.   Vcc, +5 volts, high. You can use this element to specifically
  424. tie inputs high. Active only in CONNECT mode. Note: all
  425. unconnected inputs are considered LOW. This is considered the
  426. input element when cutting connections. Keyboard equivalent: 5.
  427.  
  428.  GRD
  429.  
  430.   Ground, 0 volts, low. You can use this element to
  431. specifically tie inputs low. Active only in CONNECT mode. Note:
  432. all unconnected inputs are considered LOW. This is considered
  433. the input element when cutting connections. Keyboard
  434. equivalents: G or 0.
  435.  
  436.  
  437. Buttons
  438.  
  439.  Info
  440.  
  441.   This is a multi-purpose button who's actions are modified
  442. depending on what element is next selected in the design
  443. window. To use, click on the Info button, then click on an
  444. element that you have placed in your circuit. Keyboard
  445. equivalent: F. Valid elements are:
  446.  
  447.  IN
  448.  
  449.   A requester will pop up allowing you to select a switched
  450. (default) or pulsed input. Switched inputs are toggled on/off
  451. by clicking the mouse on them while in RUN mode. A pulsed
  452. input will stay high for the duration of the pulse width. The
  453. default is 20 clock cycles. An input's parameters may be
  454. changed at any time, even while Digital Breadboard is in RUN
  455. mode solving logic.
  456.  
  457.  OUT
  458.  
  459.   At this time the only user-selectable output element options
  460. are the color. Click on the desired color button. An output's
  461. parameters may be changed at any time, even while Digital
  462. Breadboard is in RUN mode solving logic.
  463.  
  464.  CLK
  465.  
  466.   A requester will pop up allowing you to specify the clock's
  467. pulse Width (on-time), Period, and initial Delay. A sample
  468. waveform accompanies and responds to the settings. Click the
  469. requester's close gadget when done. A clock's parameters may be
  470. changed at any time, even while Digital Breadboard is in RUN
  471. mode solving logic.
  472.  
  473.  2, 3, 4, 8
  474.  
  475.   These buttons determine the number of inputs for AND, OR,
  476. NAND, and NOR gates. The default is 2. To change this, simply
  477. select another button, then select the element to place. Note:
  478. Digital Breadboard v1.1.x only supports 2- and 3-input gates.
  479. Keyboard equivalents: 2, 3, 4, 8.
  480.  
  481.  Count
  482.  
  483.   This button brings up an event counter that you may connect
  484. to any output point (or the input of an OUT element) in the
  485. circuit using alpha characters. You may monitor to four points
  486. simultaneously. The counter value increments on FALSE to TRUE
  487. transitions. If used in a circuit, the counts continue to
  488. accumulate whether or not the counter is displayed. To attach
  489. a counter, click on one of the gadgets, then click on the
  490. element to monitor. You may move the counter at any time you
  491. wish; the count will be reset to zero. This is of very limited
  492. utility and will probably be eliminated in the next version for
  493. something more useful. (Real counters will appear as elements
  494. in the next version of DBB). Keyboard equivalent: C.
  495.  
  496.  Scope
  497.  
  498.   A four-channel trace scope. Connect each channel
  499. independantly to any output point of the circuit using numeric
  500. labels. Each channel may be turned on or off independantly. 
  501. The scope window may be dragged to any convenient spot on 
  502. the display. The scope `probes' may only be connected in the
  503. ADD mode. Click the button of the channel to connect to the 
  504. circuit, then click on the element you wish to monitor the
  505. output of. A number corresponding to the scope's channel will
  506. appear above the output it is connected to. You may move these
  507. `probes' at any time by repeating this process. There is also
  508. a button on the scope panel marked Crsr. This toggles a
  509. (scope) screen cursor on and off. Click the Scope button again
  510. to close the scope window. Keyboard equivalent: P.
  511.  
  512.  Down arrow
  513.  
  514.   Slow down the solving of logic. Every time you click on the
  515. down arrow, the solving of the logic will get slower. This is
  516. useful for small circuits or fast Amigas. Keyboard equivalent:
  517. down arrow.
  518.  
  519.  Up arrow
  520.  
  521.   Speed up the solving of logic. Every time you click on the up
  522. arrow, the speed at which logic is solved will increase. The
  523. initial speed is maximum. Keyboard equivalent: up arrow.
  524.  
  525.  T
  526.  
  527.   Toggle the system's clock (Time) display. When this button is
  528. selected, a window will pop up and you will see time furiously
  529. passing away. To speed up or slow down time (the speed at which
  530. the logic is solved), use the up or down arrow buttons.
  531. Keyboard equivalent: T.
  532.  
  533.  t
  534.  
  535.   Toggle the element status indicators (throb). Each element
  536. has an indicator(s) which will appear adjacent to an output
  537. when that function or output is TRUE, e.g. all inputs must be
  538. TRUE for an AND gate and at least one input must be FALSE for
  539. a NAND gate's output to be TRUE. A status indicator will
  540. appear next to a flip flop's TRUE output. The CLK element's
  541. status indicator will throb once for each clock pulse. Keyboard
  542. equivalent: t.
  543.  
  544.  
  545.                     Comments on Good Design
  546.  
  547.   It is generally not a good idea to design circuits with
  548. static or dynamic hazards or critical races in them. And in
  549. fact, Digital Breadboard will not check for these, nor will it
  550. solve logic in a time-dependant fashion. Let's take a look at
  551. the following example:
  552.  
  553.  [insert bad.iff here]
  554.  
  555.  Static hazard
  556.  
  557.   As you can see, output Y will momentarily go to a 0 when
  558. input A goes from a 1 to a 0 if both input B and output Y are
  559. initially 1. This output ''glitch'' is called a static hazard
  560. and can be avoided with the addition of a consensus term. 
  561.  
  562.   Fig. 3 shows an improved version. This addition of an AND
  563. gate will remove the hazard and will produce a stable result.
  564.  
  565.  [insert good.iff here]
  566.  
  567.  Hazard-free
  568.  
  569.   The use of Karnaugh maps (K-maps) greatly aid in the design
  570. of digital logic. The first figure below is a K-map of the
  571. first circuit. The second shows the addition of the consensus
  572. term added to avoid the critical race. For more information
  573. about hazards, races, or other design-related topics, consult a
  574. text on digital logic design.
  575.  
  576.  [insert Karnaugh maps here]
  577.  
  578.   Digital Design Fundamentals, Breeding, Prentice Hall, is one
  579. example detailing these and other design considerations.
  580.  
  581.  
  582.                       Future Improvements
  583.  
  584.   Planned enhancements (Spring 1994) include:
  585.  
  586. v1.2  - larger workspace
  587.       - improved user-interface
  588.       - resizable window
  589.       - more elements
  590.       - user-definable elements
  591.       - text support for labels, comments, etc.
  592.       - design by truth table
  593.       - basic structured drawing tools (with selectable line types)
  594.       - propagation delays
  595.       - 8 channel scope, trace store and print ability
  596.       - sticky probes
  597.       - Workbench option
  598.       - save as IFF
  599.       - selectable screen modes and 2024 support
  600.       - European, IEEE logic symbol support
  601.       - AREXX port
  602.  
  603. Future:
  604.       - better printer output including CompuGraphic font support
  605.  
  606.  
  607.                               Bugs
  608.  
  609.   All known bugs, enforcer hits, and mungwall errors have been
  610. eliminated.  If you encounter an error, please report it, along
  611. with a small sample circuit in which the error is reproduceable
  612. if possible.
  613.  
  614.             Comments, suggestions, and other feedback
  615.  
  616.   I have heard of the availablility of circuit simulators for
  617. other computers, and apparently the Amiga once upon a time had
  618. a commercial simulator available for it, but I've yet to see
  619. any of these. Consequently, there are probably many things I
  620. could have done better, or at least differently. I'm certainly
  621. open to suggestions.
  622.  
  623.   Please send all bug reports, comments, and other feedback to
  624. Dan Griffin at:
  625.  
  626.  griffin@egr.msu.edu
  627.  
  628. or via snail mail to:
  629.  
  630.  Dan Griffin 
  631.  2049 Tamarack Dr. 
  632.  Okemos, MI 48864
  633.  
  634.  
  635.                           Distribution
  636.  
  637.   There have been reports of people uploading only the executable
  638. to various sites, particularly in Europe.  DON'T DO THIS!  Please
  639. keep all of the files in this distribution together.  See the README
  640. file for a complete list.
  641.  
  642. The latest version of Digital Breadboard is available:
  643.  
  644.   all aminet ftp sites (ftp.wustl.edu)
  645.   /pub/aminet/util/misc
  646.   dbbxxx.lha (where xxx is the version number)
  647.  
  648.   Fireline BBS 
  649.   +1-517-374-8900 
  650.   File Area: Misc Files
  651.  
  652.   Directly from the author
  653.   Please send $3 to cover postage, $5 if you also want a laser-printed
  654.   TeX manual (please specify plain or 3-hole paper)
  655.  
  656.  
  657.                            Complaints
  658.  
  659.   All complaints will be forwarded to BLAZEMONGER INCORPORATED'S
  660. ``Customer Service'' Department.
  661.  
  662.  
  663.                     Disclaimer and Copyright
  664.  
  665.   Digital Breadboard is freeware. The question of this software's
  666. suitability for any particular purpose is left as an exercise for
  667. the reader. Source code is not available for version 1.1.x. So there.
  668.  
  669.  
  670.                             Appendix
  671.  
  672. mdpic
  673.  
  674.   mdpic is a combinational logic design utility that will produce
  675. a minimal covering equation in SOP (sum of products) form.
  676. It is particularly handy in circuits with 6 or more inputs where
  677. solving problems by hand becomes tedious.  It is not a GUI 
  678. program and must be run in a shell.  To run mdpic, simply type 
  679. 'mdpic' in a shell.  You will be asked to enter the number of 
  680. variables, the minterms for the equation, and then the don't-cares.
  681. Following this, a minimal covering equation, i.e. the essential 
  682. prime implicants, will be supplied in Sum of Products (SOP) form.
  683.  
  684. For example, suppose you wanted to know the equation for the
  685. minterms 1, 2, 4, 7, 9, 10, 15, and 27 of a five variable design. 
  686. Following is a sample session to solve this problem.
  687.  
  688. Combinational Logic Design
  689.  
  690. How many variables? 5
  691.  
  692. Enter the minterms (whitespace delimiters, period to end):
  693. 1 2 4 7 9 10 15 27 .
  694.  
  695. Enter the don't-cares (whitespace delimiters, period to end):
  696. .
  697.  
  698. Answer:
  699. a' c' d' e + a' c' d e' + a' b' c d' e' + a' c d e + a b c' d e
  700.  
  701. The function is realized by the above equation, where a', b', etc.
  702. indicate negated inputs.
  703.  
  704.  Options
  705.  
  706.  -v
  707.  
  708.   The verbose option will cause all of the prime implicants to 
  709. be printed.  This information can be used when designing static
  710. hazard-free circuits.  The extra terms produced in this step can
  711. be used as consensus terms to eliminate static hazards.  Although
  712. it will often (usually) be the case that this is a minimal
  713. design, there is no *guarantee* that the equation will not
  714. contain redundant terms.  For example:
  715.  
  716. SUM m (2 3 4 6 7 11 12 13 14 15)
  717.  
  718. produces a prime implicant "bc" (6 7 14 15) that becomes
  719. redundant.  It just so happens in this case that the essential
  720. prime implicants also produce a static hazard-free design, even
  721. though there are other prime implicants.
  722.  
  723. Footnote: minterms are the input conditions for which you wish
  724. the function to be true.  For example, if you have a six input
  725. circuit for which you wish an output to be true when:
  726.  a) all the inputs are false, 
  727.  b) inputs d, e, and f are true,
  728.  c) inputs a, b, c, and e are true,
  729. the corresponding minterms would be 0, 7, and 58.  Just add up
  730. the binary weight of the inputs.
  731.  
  732.   a b c d e f | out
  733.   ------------+----
  734.   0 0 0 0 0 0 | 1
  735.   0 0 0 0 0 1 | 0
  736.   0 0 0 0 1 0 | 0
  737.   0 0 0 0 1 1 | 0
  738.   ...         |
  739.   0 0 0 1 1 1 | 1
  740.   ...         |
  741.   1 1 1 0 1 0 | 1
  742.  
  743.   mdpic's capabilities will be expanded in the future to produce
  744. guaranteed minimal static hazard-free equations.
  745.  
  746. rtk
  747.  
  748.   rtk solves 4 variable Karnaugh maps (K-maps) interactively.
  749. When started by typing rtk in a shell or by double-clicking its
  750. icon, the rtk window pops up.  The user then clicks on any of 
  751. the 16 buttons corresponding to a minterm in a 4-variable K-map.  
  752. Minterms are indicated by a 1, and don't-cares by a -.  rtk will 
  753. update the equation realized by the terms in the upper part of the
  754. window.  rtk produces a minimal covering SOP equation.  rtk requires
  755. the supplied XEN 9 point font.
  756. Truth tables 
  757.  
  758.  [insert truth tables here]
  759.  
  760. Keyboard equivalents
  761.  
  762.  Element window
  763.  
  764. A,a  AND gate 
  765. C,c  Counter (event counter) 
  766. D,d  D flip flop 
  767. F,f  Info 
  768. I,i  INput element 
  769. J,j  JK flip flop 
  770. K,k  CLK 
  771. N,n  NAND gate 
  772. O,o  OR gate 
  773. P,p  Scope 
  774. R,r  NOR gate 
  775. S,s  SR flip flop 
  776. T    Timer window 
  777. t    throb toggle 
  778. U,u  OUTput element 
  779. X,x  XOR element 
  780. ESC  quit RUN, CONNECT, DELETE, CUT, MOVE, probe connect modes 
  781. !,1  NOT gate 
  782. 2    2 input gates 
  783. 3    3 input gates 
  784. 4    4 input gates 
  785. 8    8 input gates 
  786. 0,G  GROUND, tied low, 0 volts 
  787. 5    Vcc, tied hi, +5 volts 
  788. uparrow   speed up logic solving 
  789. downarrow slow down logic solving 
  790.  
  791.  Amiga keys (menus)
  792.  
  793. RAmiga-N New 
  794. RAmiga-O Open 
  795. RAmiga-S Save 
  796. RAmiga-W Save As 
  797. RAmiga-P Print 
  798. RAmiga-? About 
  799. RAmiga-Q Quit 
  800. RAmiga-D Delete Device 
  801. RAmiga-X Cut Connection 
  802. RAmiga-M Move Device 
  803. RAmiga-L Redraw Screen 
  804. RAmiga-A Add 
  805. RAmiga-C Connect 
  806. RAmiga-R Run 
  807. RAmiga-T Stop 
  808. RAmiga-Y Smooth 
  809. RAmiga-Z Snap 
  810.  
  811.  Other keys
  812.  
  813. Help     activate AmigaGuideĀ® online database 
  814.