home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 15 / 15.iso / s / s200 / 1.ddi / ABEL.EXE / ABELHELP.MNU < prev    next >
Encoding:
Text File  |  1991-06-05  |  147.8 KB  |  4,341 lines

  1. *====Program Options Help====,A
  2. *--Setting Program Options--,A
  3. *Multiple Choice Fields,A
  4. Multiple Choice Fields
  5.  
  6. Space or Enter          Toggle current selection
  7. <<ESC>> or Enter            Done selecting from list    
  8. Home (twice)            Move to first item displayed
  9. End (twice)             Move to last item displayed
  10. arrow keys              move up/down in list
  11. Pg Up                   scroll back in list
  12. Pg Dn                   scroll forward in list
  13. Tab                     move to next field on dialog box
  14. Shift-Tab               move to previous field on dialog box
  15. *Dialog Box,A
  16. Dialog Box
  17.  
  18. Purpose/Usage:  A dialog box is a screen that allows you to
  19. select different program options. Selection is made by command
  20. buttons, check boxes, mode buttons, and entry fields. Use arrow
  21. keys to move between selections in a dialog box. Pressing the
  22. Space bar toggles the check box off and on and also selects the
  23. mode buttons. Select command buttons by pressing the Enter key.
  24.  
  25. Elements in the Dialog Box
  26.         - Tab/Shift-Tab key moves you to the next/previous field
  27.         - (*) Radio Buttons are used to choose one option from
  28.           several possibilities. The Space bar will select the
  29.           option.
  30.         - [X] Select Item(s) turn an option on or off by pressing
  31.           the Space bar when the cursor is on a particular item.
  32.         - <OK> saves the entries made to the menu and returns you
  33.           to the opening menu.
  34.         - F2 brings up a list of choices if you are in a field
  35.           where you may type a choice. Select the choice by
  36.           pressing the Space bar. Arrow keys move the cursor up and
  37.           down the list. Pressing the ESC key when more than one
  38.           choice is possible accepts your selections and removes
  39.           the select list.
  40.         - F5 saves and exits the dialog box as is. (Same
  41.           as <OK>.)
  42.         - ESC exits the dialog box without saving changes.
  43.         - Cursor keys help you move around in the dialog box. The
  44.           left and right keys move you back and forth in a type-in
  45.           field. If the dialog box items are not type-ins but are
  46.           in columns, cursor keys move you around the box. Because
  47.           of this restriction, the TAB key is recommended for
  48.           navigating in the Dialog box.
  49. *Cancel Button,A
  50. Cancel Button
  51.  
  52. Press the Enter key here to exit this dialog box without saving
  53. the options selected.  You may also press <<ESC>>.    
  54. *OK Button,A
  55. OK Button
  56.  
  57. Press the Enter key here to accept the options entered on
  58. this dialog box. You may also use the F5 key anywhere on the dialog
  59. box.
  60. *--File Menu Options--,A
  61. *File Open Name,A
  62. File Open Name
  63.  
  64. Enter the name of an ABEL-HDL source file to edit or create. The
  65. default filename extension for ABEL-HDL source files is .abl.
  66. If you are currently editing a different ABEL-HDL source file,
  67. be sure to save the current file before opening a new one.
  68.  
  69. A copy of the file is saved to the .sav extension whenever you open
  70. a file for editing in the ABEL Design Environment.
  71. *File Merge Name,A
  72. File Merge Name
  73.  
  74. Enter the name of a file to merge into the file currently in the
  75. editor.  The merge will insert the file before the line that the
  76. cursor currently resides on.
  77. *Save As Name,A
  78. Save As Name
  79.  
  80. Enter the name of the file in which to save the current design. If
  81. no filename extension is specified, the extension .abl will be
  82. appended to the specified name.
  83. *File Print Name,A
  84. File Print Name
  85.  
  86. Enter the name of a file to print. The file specified will be sent
  87. to your printer through the parallel port assigned to LPR: (PCDOS)
  88. or to the printer that you have set with PRINTER (UNIX).
  89. *Exit,A
  90. Exit without Save
  91.  
  92. If you select <YES> you will lose all of your edits since your last
  93. File-Save or since you last invoked Compile.
  94. *--Edit Menu Options--,A
  95. *Search String,A
  96. Edit Search String
  97.  
  98. Enter a string of characters to search for in the currently edited
  99. file.  Wildcards are not supported.
  100. *Search Insensitive,A
  101. Search Insensitive
  102.  
  103. Space bar toggles the check box.
  104.  
  105. If this option is checked, a case insensitive search will be done.
  106. *Editor Name,A
  107. Editor Name
  108.  
  109. Enter the name of the text editing program to be used when the
  110. "Edit" menu item is selected. The program name can include a drive
  111. and path specification; if no drive or path is specified, the text
  112. editor program will be searched for in the current PATH.
  113. *--View Menu Options--,A
  114. *View File,A
  115. View File
  116.  
  117. Enter the name of a text file to display in a scrollable window.
  118. *--Compile Menu Options--,A
  119. *Compile Listing,A
  120. Compile Listing
  121.  
  122. Space bar selects the item.
  123.  
  124. Select the desired listing format. The options supported are:
  125.  
  126. (.) No Listing
  127.         No listing will be generated.
  128.  
  129. ( ) Standard Listing
  130.         A listing containing numbered source file lines and
  131.         error messages (if any) will be generated.
  132.  
  133. ( ) Expanded Listing
  134.         A listing containing numbered source file lines,
  135.         expanded macros, directives, and error
  136.         messages (if any) will be generated.
  137. *Compile Retain Redundancy,A
  138. [ ] Retain Redundancy    (Compile Options Dialog box)
  139.  
  140. Checking this box disables the following compile time (ahdl2pla)
  141. trivial reductions:
  142.  
  143.     A # !A = 1
  144.     (A & !B) # (A & B) = A
  145.  
  146. This option is useful if you need to preserve redundant product
  147. terms (for hazard protection). Note that these reductions are
  148. also automatically done in plaopt unless the "Merge Only - No
  149. Reduction" option is chosen for Optimization.
  150. *Compile Args,A
  151. Compile Args
  152.  
  153. The module arguments field is used to specify actual argument
  154. text that is to be substituted for dummy arguments specified
  155. in the MODULE keyword of the current ABEL-HDL source file.
  156. If no dummy module arguments are specified in the current
  157. design, you should leave this field blank.
  158.  
  159. Enter as a list separated by spaces.
  160. *--Optimize Menu Options--,A
  161. *Reduction Options,A
  162. Reduction Options
  163.  
  164. Space bar selects the item.
  165.  
  166. (.) Use default
  167.         Looks at the device specified in the source file and
  168.         does a bypin auto polarity for PAL-like parts, and a group
  169.         fixed for FPLA parts. If no part was specified, bypin
  170.         auto polarity is used.
  171.  
  172. ( ) Reduce bypin, auto polarity
  173.         Reduces the logic so that each signal will have the
  174.         minimum number of terms possible. The optimization
  175.         will produce both ON-set and OFF-set equations so that
  176.         the minimum number of product terms will be used in
  177.         programmable polarity parts. This is the default
  178.         logic reduction if no part is specified, and works
  179.         even for parts with fixed polarity.
  180.  
  181. ( ) Reduce bypin, fixed polarity
  182.         Reduces so that each signal will have the minimum
  183.         number of product terms, maintaining the polarity
  184.         of the signals as specified in the source file.
  185.         This should only be used when you want to force
  186.         the polarity to the specified level.
  187.  
  188. ( ) Reduce as group, auto polarity
  189.         Reduces all the signals as a group for FPLA-like
  190.         parts where complete term sharing is possible. The
  191.         combination of active levels that gives the least
  192.         number of terms is chosen. This can be time consuming.
  193.  
  194. ( ) Reduce as group, fixed polarity
  195.         Reduces all the signals as a group for FPLA-like
  196.         parts where complete term sharing is possible. The
  197.         polarity specified in the source file is maintained.
  198.  
  199. ( ) D/T flip-flop auto-synthsize
  200.         Parts that have programmable D/T flip-flops or XOR
  201.         logic could use this option to gain the most optimal
  202.         logic reduction. This can save a lot of terms.
  203.  
  204. ( ) No Reduce, merge only
  205.         Merges all the compiled equations into a single ABEL-PLA
  206.         file.  No logic reduction is done.
  207. *Reduce Exact,A
  208. [X] Quine McCluskey Reduction
  209.  
  210. Space bar toggles the check box.
  211.  
  212. Select the "Quine McCluskey Reduction" option to invoke Espresso's
  213. exact minimization option. This option will produce better
  214. minimization is most cases. The Quine McCluskey method tries to
  215. remove the order dependancy from the inputs. Note that this option
  216. may result in unacceptably long execution times, and should only be
  217. selected if absolutely necessary.
  218. *--Simulation Trace Options--,A
  219. *Trace Format,A
  220. Trace Format
  221.  
  222. Select the format in which to display the simulation results.  The
  223. following formats are supported:
  224.  
  225. Space bar selects the item.
  226.  
  227. ( ) No trace
  228.         No simulation output will be generated.
  229.  
  230. ( ) Pins format
  231.         The values appearing on the input and output pins will be
  232.         displayed for each test vector.
  233.  
  234. ( ) Wave format
  235.         The values appearing on the input and output pins will be
  236.         displayed as a vertical waveform using standard IBM
  237.         character graphics.
  238.  
  239. ( ) Wave format ASCII 
  240.         The values appearing on the input and output pins will be
  241.         displayed as a vertical waveform using standard ASCII 
  242.         characters that all printers support.
  243.  
  244. (.) Table format
  245.         The values appearing on the input and output pins will be
  246.         displayed in a tabular vector format.
  247.  
  248. ( ) Macrocell format
  249.         The simulation results will be displayed for all dot
  250.         extensions associated with I/O macrocells. Note that this
  251.         display option is detailed, and should be used in 
  252.         conjunction with the "Signal" option.
  253. *Trace Output,A
  254. Trace Output
  255.  
  256. Select the simulation trace level desired.
  257.  
  258. Space bar selects the item.
  259.  
  260. (.) Brief trace
  261.         This option will generate a report of the simulation results
  262.         for each clock cycle for registered designs, or for the
  263.         stabilized output values for combinatorial designs.
  264.  
  265. ( ) Detailed format
  266.         This option will generate a report of the simulation results
  267.         for each level in the sum-of-products logic circuit being
  268.         simulated. This "Detailed format" option is useful for
  269.         debugging complex logic circuits.
  270.  
  271. ( ) Clock format
  272.         Clock format generates a simulation report that shows
  273.         register values when the clock is 0, 1, and 0 again for each
  274.         vector.  Clock format is useful with the macro cell trace
  275.         for debugging asynchronous circuits.
  276. *Trace Signal,A
  277. Trace Signal
  278.  
  279. Enter a white-space separated list of signals to display in the
  280. simulation results. The list can contain signal names or
  281. pin/node numbers. The following is an example of a signal
  282. name list.:
  283.  
  284.         Signal: Clk Reset LoadA LoadB Q3 Q2 Q1
  285.  
  286. If the "Signal" field is left blank, the simulation results will
  287. be displayed for all signals that are used in the circuit being
  288. simulated.
  289. *Trace Last Vector,A
  290. Trace Last Display Vector
  291.  
  292. Enter the number of the last vector you want displayed in the
  293. simulation results file.  To stop display information at the fifth
  294. vector:
  295.  
  296.         Last Display Vector: 5
  297.  
  298. Leaving this field blank causes the simulator to display vectors 
  299. up to the last vector in the JEDEC/.tmv file.
  300. *Trace First Vector,A
  301. Trace First Display Vector
  302.  
  303. Enter the number of the first vector to display in the simulation
  304. results file.  To start display information at the third vector:
  305.  
  306.         First Display Vector: 3
  307.  
  308. Leaving this field blank causes the simulator to display vectors
  309. starting with the first vector in the JEDEC/.tmv file.
  310. *Trace Powerup,A
  311. Trace Register Powerup
  312.  
  313. Space bar selects the item.
  314.  
  315. (.) Register Powerup 0
  316.         All registers are intialized to 0 before simulation
  317.         begins.
  318.  
  319. ( ) Register Powerup 1
  320.         All registers are intialized to 1 before simulation
  321.         begins.
  322.  
  323. These are register powerup values and they may be opposite
  324. of what actually appears on the pin.
  325. *Trace X Value,A
  326. Trace X-value  (don't care)
  327.  
  328. Space bar selects the item.
  329.  
  330. (.) X-value 0
  331.         Use 0 as the value for don't care during simulation.
  332.         This is the default value.
  333.  
  334. ( ) X-value 1
  335.         Use 1 as the value for don't care during simulation.
  336.  
  337. Switching the value of don't care is useful in verifying that the
  338. value of don't care does not matter in your circuit.
  339. *Trace Z Value,A
  340. Trace Z-value  (high impedance)
  341.  
  342. Space bar selects the item.
  343.  
  344. ( ) Z-value 0
  345.         Use 0 as the value for high-Z during simulation.
  346.  
  347. (.) Z-value 1
  348.         Use 1 as the value for high-Z during simulation.
  349.         This is the default value.
  350.  
  351. Switching the value of Z is useful in verifying that the
  352. value of Z does not matter in your circuit.
  353. *Trace .tmv,A
  354. [X] Use .tmv File
  355.  
  356. Space bar toggles the check box.
  357.  
  358. This forces JEDsim to use the vectors in the .tmv file instead of
  359. the vectors in the JEDEC file.  This allows simulation of buried
  360. nodes.  PLASim always uses the .tmv file.
  361. *--Fitter--,A
  362. *Fitter Device,A
  363. Fit Device
  364.  
  365. Press F2 to select a device from the list generated by the
  366. SmartPart Device Selector or enter the name of a specific PLD
  367. architecture in which to fit the design. The name must be
  368. exactly as specified in the device support list supplied with
  369. ABEL.
  370.  
  371. Example:
  372.         Device: p22v10
  373.  
  374. This device is used with the "Fit" menu selection (under
  375. SmartPart). Note that the device specified here will also be
  376. used as the device for PLDmap.
  377. *Fitter Device List File,A
  378. Fitter Device List File
  379.  
  380. This file is used with the "Fit from List File" menu selection
  381. (under SmartPart). If the selector is used, this file name will
  382. automatically be filled in. If you wish to specify a device
  383. list file manually, you may type in that name here (default
  384. extension .sel). The file should be a list of devices to be fit,
  385. one device per line.
  386.  
  387. If the file name you use is <module_name>.sel or if you leave
  388. this field blank, this file will also be used as the output file
  389. name for the SmartPart Device Selector. This file
  390. will be overwritten by the selector during auto-update, so you
  391. must choose a different file name if you want to use a custom list.
  392.  
  393. If you want to choose one device from the SmartPart Selector list,
  394. press F2 on the "Device:" field, and run the fitter with "Fit".
  395. *Fitter Stop,A
  396. [X] Stop on first fit
  397.  
  398. Space bar toggles the check box.
  399.  
  400. Select this option if you want the Fitter to stop at the
  401. first successful fit of a device in the "Device list" when running
  402. from "Fit from List" on the SmartPart menu.
  403. *Fitter None,A
  404. [X] No fit on auto-update
  405.  
  406. Space bar toggles the check box.
  407.  
  408. Select this option if you do not want the Fitter to
  409. process the design. If this option is chosen, the ABEL-PLA file
  410. created by PLAopt (*.tt2) will be renamed (to *.tt3) and processed
  411. directly by the PLDmap program (fuseasm). If you suppress the
  412. operation of the Fitter by selecting this option, you must
  413. supply pin numbers for all signals in your ABEL-HDL source file.
  414. *Fitter Preassign,A
  415. Fitter Preassign options
  416.  
  417. Space bar selects the item.
  418.  
  419. Select the desired preassignment option from the following:
  420.  
  421. ( ) Keep preassignments
  422.         Do not change pin and node numbers specified in the ABEL-HDL
  423.         design.  Only equations that are unassigned (or assigned to
  424.         pin/node 0), will be assigned to pins/nodes. An error occurs
  425.         if the pin assignments do not work.
  426.  
  427. (.) Attempt to keep preassignments
  428.         Attempt to preserve pin and node numbers specified in the
  429.         ABEL-HDL design.  This is the default.
  430.  
  431. ( ) Ignore preassignments
  432.         Ignore all pin and node numbers specified in the ABEL-HDL
  433.         design.  This runs the fastest and gives the best results.
  434. *Fitter Strategy,A
  435. Fitter Strategy options
  436.  
  437. Use this feature to specify optional fitting strategies for
  438. fitters that have this capability. See the appropriate fitter
  439. manual for information on optional strategies.
  440. *--PLDmap (Fuseasm)--,A
  441. *PLDmap Device,A
  442. PLDmap Device
  443.  
  444. Press F2 for Fitter generated list or enter the name of
  445. the device architecture in which to map the design. The architecture
  446. name must correspond to an architecture name published in the ABEL
  447. device support list. Note that the device specified here will also
  448. be used as the device for PLDmap.
  449. *PLDmap Checksum,A
  450. PLDmap Checksum
  451.  
  452. Space bar selects the item.
  453.  
  454. Select the desired checksum option. The following checksum options
  455. are supported:
  456.  
  457. ( ) None
  458.         Do not produce a checksum.
  459.  
  460. (.) Full
  461.         Produce a full checksum at the end of the JEDEC file.
  462.  
  463. ( ) Dummy
  464.         Produce a dummy checksum (consisting of all zeroes) at the
  465.         end of the JEDEC file.
  466. *PLDmap Document,A
  467. PLDmap Document
  468.  
  469. Space bar selects the item.
  470.  
  471. Select the desired map documentation option. The following options
  472. are supported:
  473.  
  474. (.) Brief document
  475.         A report is generated that includes mapped equations, a chip
  476.         diagram, and a utilization summary.
  477.  
  478. ( ) Long document
  479.         A report is generated that includes the information listed
  480.         above, as well as a fuse plot and test vectors.
  481. *PLDmap PLCC,A
  482. [X] PLCC Chip Diagram
  483.  
  484. Forces the chip digram in the report file (.doc) to be PLCC format.
  485. *PLDmap Turbo,A
  486. [X] Turbo
  487.  
  488. Space bar toggles the check box.
  489.  
  490. Select this option if you wish to program the fuses that enable
  491. the high speed option (if supported) in the target architecture.
  492. *PLDmap Miser,A
  493. [X] Miser
  494.  
  495. Space bar toggles the check box.
  496.  
  497. Select this option if you wish to program the fuses that enable
  498. the low power mode (if supported) in the target architecture.
  499. *PLDmap Blow,A
  500. [X] Blow product terms
  501.  
  502. Space bar toggles the check box.
  503.  
  504. Select this option if you wish to disconnect all unused fuses in
  505. the target architecture (this can sometimes result in higher
  506. speed operation).
  507. *PLDmap Lock,A
  508. [X] Lock
  509.  
  510. Space bar toggles the check box.
  511.  
  512. Select this option if you wish to program the security fuse (if
  513. supported) in the target architecture.
  514. *PLDmap Format,A
  515. PLDmap Output Format
  516.  
  517. Select the format of the programmer download file. The following
  518. formats are supported:
  519.  
  520. Space bar selects the item.
  521.  
  522. (.) Default format
  523.         Selects the download file format appropriate for the
  524.         part selected.  JEDEC brief format is used for most PLDs.
  525.  
  526. ( ) Brief JEDEC
  527.         Produce a JEDEC Standard 3 file containing fuse and test
  528.         vector data (.jed). Unused fuse rows are not included.
  529.  
  530. ( ) Hex JEDEC
  531.         Produce a JEDEC Standard 3 file containing fuse and test
  532.         vector data (.jed). Fuse data is provided in hexadecimal
  533.         rather than binary format.
  534.  
  535. ( ) Full JEDEC
  536.         Produce a JEDEC Standard 3 file containing fuse and test
  537.         vector data (.jed). All fuses are included.
  538.  
  539. ( ) 82 format
  540.         Produce a Motorola 8-bit PROM format file (.p82).
  541.  
  542. ( ) 83 format
  543.         Produce an Intel 8-bit PROM format file (.p83).
  544.  
  545. ( ) 87 format
  546.         Produce a Motorola 16-bit PROM format file (.p87).
  547.  
  548. ( ) 88 format
  549.         Produce an Intel 16-bit PROM format file (.p88).
  550.  
  551. ( ) POF format
  552.         Produce an Altera Programmer Object File format file (.pof).
  553. *PLDmap Signature,A
  554. PLDmap User Electronic Signature (UES)
  555.  
  556. Enter a sequence of characters to program into the signature fuses
  557. (if supported) of the target architecture.  Eight fuses per
  558. character are used in the part.
  559.  
  560. Example:
  561.         User Electronic Signature:  JP0690
  562. *PLDmap Directory,A
  563. PLDmap Directory
  564.  
  565. Enter a valid directory name for FUSEASM to put the JEDEC (or PROM)
  566. files in.
  567.  
  568. Example:
  569.     Directory for JEDEC file: design5/jedec
  570. *--Translation--,A
  571. *Translation Format,A
  572. Translation Format
  573.  
  574. Translation format specifies the format of the file for
  575. the target FPGA back end software.  The options are:
  576.  
  577. ( ) PDS
  578.         Produces a PDS (PALASM II) format file that the Actel
  579.         software can import.  The file is module.pds.
  580. (.) Xilinx PDS
  581.         Produces a PDS (PALASM II) format file with special
  582.         extensions that the Xilinx XACT software can import.
  583.         The file is module.pds.
  584. ( ) Signetics Snap
  585.         Produces Signetics Snap style files that can be read
  586.         by the Signetics Snap software. The fils are module.bee
  587.         and module.pin.
  588. ( ) ABEL-PLA
  589.         Produces a Berkeley PLA file with Open ABEL Extensions.
  590.         The file is module.pla.
  591. ( ) MIS .eqn
  592.         Produces a Berkeley MIS .eqn file which can be read by
  593.     the Chortle program from the University of Toronto
  594.     (a FPGA partitioning/optimization program)
  595.  
  596. *--SmartPart Device Selector--,A
  597. *SmartPart Database Directory,A
  598. SmartPart Device Selector Database Directory
  599.  
  600. Defines the directory to use for an alternate device selector
  601. database.  This is useful if you have made a modified copy of the
  602. SmartPart Device Selector database and would like to use it instead
  603. of the standard database.
  604.  
  605. Example:
  606.         Database directory: \dataio\lib4\custom
  607. *SmartPart Report File,A
  608. SmartPart Chip Report file name
  609.  
  610. Specifies the name of a file to place the selector report file.
  611. This file contains chip and manufacturer information, including
  612. ordering information, part number and optionally user defined
  613. fields. This information is given for EVERY part that the
  614. selector determines the design will fit into. 
  615.  
  616. This report file will not be created unless you specify the file
  617. name.
  618.  
  619. Note: This file can get VERY large.
  620.  
  621. Example:
  622.         Report file name:  decoder.chp
  623. *SmartPart Report Sort Order,A
  624. SmartPart Report Sort Order
  625.  
  626. Specify the sorting order by selecting one or more names of
  627. data fields by which to sort the report. You should also
  628. specify a Report File otherwise the sorted information will go
  629. to STDOUT and be lost. The field names can be any of the
  630. following:
  631.  
  632.         device          - device architecture name
  633.         desire          - desirability (user defined field)
  634.         erasability     - (UV, EE, yes or no)
  635.         hold            - flip-flop hold time (tIH)
  636.         jamload         - Preloadable (yes or no)
  637.         manufacturer    - manufacturer name
  638.         op_range        - operating range (MIL, COM, etc.)
  639.         package         - package type (DIP, PLCC, etc.)
  640.         partname        - manufacturer's part name
  641.         pins            - number of pins
  642.         power           - power consumption (iCC)
  643.         price           - price in whole units
  644.         setup           - setup time (tIS)
  645.         speed           - speed (tPD)
  646.         technology      - (TTL, CMOS, etc.)
  647.  
  648. Multiple sort fields should be separated by spaces. You can also
  649. specify the sorting direction for each field by using the "up" or
  650. "down" modifiers. The default is up.
  651.  
  652. Examples:
  653.         Sort Order: device up price down
  654.    or
  655.         Sort Order: power speed
  656.    or
  657.         Sort Order: price speed
  658. *SmartPart Jamload,A
  659. SmartPart Preload (Jamload)
  660.  
  661. Press F2 to bring up select list. Press Enter to choose an
  662. item in list.
  663.  
  664. Specify whether the devices selected are programmer preloadable.
  665. *SmartPart Eraseable,A
  666. SmartPart Erasable
  667.  
  668. Press F2 to bring up select list. Press Enter to choose an
  669. item in list.
  670.  
  671. Specify whether the devices selected are erasable or not.
  672. *SmartPart Device,A
  673. SmartPart Device
  674.  
  675. Press F2 to bring up select list. Press Enter to
  676. select/deselect items in list. Press <<ESC>> when done.     
  677.  
  678. Select one or more names of specific PLD architectures to scan.
  679. This criteria is used when you wish to limit the database scan
  680. to specific PLD architectures, otherwise, all PLD architectures
  681. are checked.
  682. *SmartPart Manufacturer,A
  683. SmartPart Manufacturer
  684.  
  685. Press F2 to bring up select list. Press Enter to
  686. select/deselect items in list. Press <<ESC>> when done.      
  687.  
  688. Specify one or more manufacturers from which to scan database.
  689. This criteria will limit device selection to those made by the
  690. specified manufacturers.
  691. *SmartPart Temperature Spec.,A
  692. SmartPart Temperature Spec.
  693.  
  694. Press F2 to bring up select list. Press Enter to
  695. select/deselect items in list. Press <<ESC>> when done.      
  696.  
  697. Specify one or more temperature specifications. Allowable
  698. temperature specifications are:
  699.  
  700.            COM     - Commercial
  701.            MIL     - Military
  702.            IND     - Industrial
  703.            STD     - Standard
  704.  
  705. This criteria will limit device selections to devices with the
  706. specified temperature ranges.
  707. *SmartPart Technology,A
  708. SmartPart Technology
  709.  
  710. Press F2 to bring up select list. Press Enter to
  711. select/deselect items in list. Press <<ESC>> when done.      
  712.  
  713. Specify one or more process technologies. Valid technologies are:
  714.  
  715.            TTL
  716.            CMOS
  717.            ECL
  718.            GAAS
  719.  
  720. This criteria will limit device selections to devices implemented
  721. in the specified technologies.
  722. *SmartPart Package Type,A
  723. SmartPart Package
  724.  
  725. Press F2 to bring up select list. Press Enter to
  726. select/deselect items in list. Press <<ESC>> when done.     
  727.  
  728. Specify one or more package types. Valid package types are:
  729.  
  730.            DIP     - Dual Inline Package
  731.            CDIP    - Ceramic Dual Inline Package
  732.            LCC     - Leadless Chip Carrier
  733.            PLCC    - Plastic Leaded Chip Carrier
  734.            PGA     - Pin Grid Array
  735.            SOIC    - Small Outline ICC
  736.            FPAK    - Flat Package
  737.            MISC    - Other. Please refer to manufacturer's
  738.                      data book.
  739.  
  740. This criteria will limit device selection to devices using the
  741. specified package types.
  742. *SmartPart Pins,A
  743. SmartPart Pins
  744.  
  745. Specify the number of pins. Values can be specified by including a
  746. greater than (>), less than (<) or range expression in the 
  747. following form:
  748.  
  749.         #
  750.         < #
  751.         > #
  752.         # - #
  753.  
  754. Example:
  755.         Pins: 16 (exactly 16 pins)
  756.     or
  757.         Pins: < 24 (less than 24 pins)
  758.     or
  759.         Pins: 16 - 24
  760.  
  761. This criteria will limit device selection to devices with the
  762. specified number of pins.
  763. *SmartPart Speed,A
  764. SmartPart Speed
  765.  
  766. Specify the required pin-to-pin speed (nanoseconds tPD). Values
  767. can be specified by including a greater than (>), less than (<)
  768. or range expression in the following form:
  769.  
  770.         #
  771.         < #
  772.         > #
  773.         # - #
  774.  
  775. Example:
  776.         Speed: 12 (exactly 12 nanoseconds)
  777.     or
  778.         Speed: < 22 (less than 22 nanoseconds)
  779.     or
  780.         Speed: > 25 (greater than 25 nanoseconds)
  781.     or
  782.         Speed: 10 - 24 (range 10 - 24 nanoseconds)
  783.  
  784. This criteria limits device selection to those devices with the
  785. specified speed range.
  786. *SmartPart Set-Up Time,A
  787. SmartPart Set-up time
  788.  
  789. Specify the required register setup time (nanoseconds tIS). Values
  790. can be specified by including a greater than (>), less than (<) 
  791. or range expression in the following form:
  792.  
  793.         #
  794.         < #
  795.         > #
  796.         # - #
  797.  
  798. Example:
  799.         Set-up time (ns): 12 (exactly 12 nanoseconds)
  800.     or
  801.         Set-up time (ns): < 22 (less than 22 nanoseconds)
  802.     or
  803.         Set-up time (ns): 10 - 24 (range 10 - 24 nanoseconds)
  804.  
  805. This criteria limits device selection to devices with the specified
  806. register setup times.
  807. *SmartPart Hold Time,A
  808. SmartPart Hold Time
  809.  
  810. Specify the required register hold time (nanoseconds tIH). Values
  811. can be specified by including a greater than (>), less than (<) 
  812. or range expression in the following form:
  813.  
  814.         #
  815.         < #
  816.         > #
  817.         # - #
  818.  
  819. Example:
  820.         Hold time (ns): 12 (exactly 12 nanoseconds)
  821.     or
  822.         Hold time (ns): < 22 (less than 22 nanoseconds)
  823.     or
  824.         Hold time (ns): 10 - 24 (range 10 - 24 nanooseconds)
  825.  
  826. This criteria limits device selection to devices with the specified
  827. register times.
  828. *SmartPart Price,A
  829. SmartPart Price
  830.  
  831. Specify the required price (user entered field). Values can be
  832. specified by including a greater than (>), less than (<) or range
  833. expression in the following form:
  834.  
  835.         #
  836.         < #
  837.         > #
  838.         # - #
  839.  
  840. Example:
  841.         Price: < 22
  842.     or
  843.         Price: 1 - 8
  844.  
  845. This criteria limits device selection to devices in the specified
  846. price range.
  847. *SmartPart Utilization,A
  848. SmartPart Utilization
  849.  
  850. Specify the required device utilization. This is a metric to 
  851. give some idea how full the PLD architecture is. The equation 
  852. used is:
  853.      100 *   reg_used    *  pins_used  *  terms_used
  854.               --------     -----------    ----------
  855.            reg_available pins_available terms_available
  856.  
  857. Values range from 0 to 100. Note that some PLD architectures
  858. with many terms but few pins could give surprisingly small
  859. numbers, refer to the ratios added to the device candidates
  860. list for a better feel of the utilization metric. The
  861. utilization criteria can weed out architectures that are too
  862. underused or do not have enough patching capacity by using the
  863. proper range. The range can be specified by including a greater
  864. than (>), less than (<) or range expression in the following
  865. form: 
  866.  
  867.         #
  868.         < #
  869.         > #
  870.         # - #
  871.  
  872. Example:
  873.         Utilization: > 50
  874.  
  875. This criteria will limit architecture selection to devices with the 
  876. specified utilization. 
  877.  
  878. *SmartPart Power,A
  879. SmartPart Power
  880.  
  881. Specify the required power consumption (MW @ 10MHZ). Values can
  882. be specified by including a greater than (>), less than (<) or
  883. range expression in the following form: 
  884.  
  885.         #
  886.         < #
  887.         > #
  888.         # - #
  889.  
  890. Example:
  891.         Power: < 22
  892.  
  893. This criteria limits device selection to devices within
  894. specified power usage range.
  895.  
  896. *SmartPart User,A
  897. SmartPart User Configurable Fields
  898.  
  899. Specify optional user criteria field. Values can be specified
  900. by including a greater than (>), less than (<) or range 
  901. expression in the following form:
  902.  
  903.         #
  904.         < #
  905.         > #
  906.         # - #
  907.  
  908. Example:
  909.         User: 12
  910.     or
  911.         User: < 22
  912.     or
  913.         User: 10 - 24
  914. *--Other Options--,A
  915. *PLDgrade Document,A
  916. PLDgrade Document
  917.  
  918. Space bar selects the item.
  919.  
  920. Choose one of the following PLDgrade document file formats:
  921.  
  922. ( ) Brief Document
  923.     Give a condensed report which only contains AHDL equtions and 
  924.     testability analysis.
  925.  
  926. (.) Long Document
  927.     Give a detail report which contains AHDL declarations, pin
  928.     assignments, pin types, and test vector coverage analysis.
  929.     This is the default.
  930.  
  931. See Also:  PLDgrade manual
  932.  
  933. *--Dialog Boxes--,A
  934. *File Open Options,A
  935. File Open Options
  936.  
  937. The File Open dialog box is used to specify the name of the ABEL-HDL
  938. source file that you wish to edit or process. The file name should
  939. correspond to the file naming conventions for the operating system
  940. you are using. If no file name extension is specified, the .abl
  941. extension will be appended to the name entered. Drive and path
  942. specifications can be included in the file name.
  943.  
  944. To cancel the data entered and restore this dialog box to its
  945. original state, move the cursor to the <Cancel> field and press
  946. The file name should correspond to the file naming conventions
  947. for the operating system you are using. If no file name extension
  948. is specified, the .abl extension will be appended to the name
  949. entered. Drive and path specifications can be included in the file
  950. name.
  951.  
  952. To cancel the data entered and restore this dialog box to its
  953. original state, move the cursor to the <Cancel> field and press
  954. Enter, or press <<ESC>>. To accept the data entered, move the     
  955. cursor to the <Save> field and press Enter, or press F5.
  956. *File Merge Options,A
  957. File Merge Options
  958.  
  959. The File Merge dialog box is used to specify the name of a file
  960. that you wish to merge into the file currently in the editor.
  961. The merge will take place above the line where the cursor currently
  962. resides.  The file name should correspond to the file naming
  963. conventions for the operating system you are using. If no file
  964. name extension is specified, the .abl extension will be appended to
  965. the name entered. Drive and path specifications can be included in
  966. the file name.
  967.  
  968. To cancel the data entered and restore this dialog box to its
  969. original state, move the cursor to the <Cancel> field and press
  970. Enter, or press <<ESC>>. To accept the data entered, move the      
  971. cursor to the <Merge> field and press Enter, or press F5.
  972. *Save As Options,A
  973. Save As Options
  974.  
  975. The Save As dialog box is used to specify the name of a file in
  976. which to save the current design. The file name should correspond
  977. to the file naming conventions for the operating system you are
  978. using. If no file name extension is specified, the .ABL extension
  979. will be appended to the name entered. Drive and path specifications
  980. can be included in the file name.
  981.  
  982. To cancel the data entered and restore this dialog box to its
  983. original state, move the cursor to the <Cancel> field and press
  984. Enter, or press <<ESC>>. To accept the data entered, move the     
  985. cursor to the <Save> field and press Enter, or press F5.
  986. *Print Options,A
  987. Print Options
  988.  
  989. The Print dialog box is used to specify the file to be sent
  990. to the printer attached to your computer. The file name should
  991. correspond to the file naming conventions for the operating system
  992. you are using.  Drive and path specifications can be included in
  993. the file name.
  994. *Search Options,A
  995. Search Options
  996.  
  997. The Search Options dialog box is used to specify a string to search
  998. for in the edit window. The cursor will move to the next occurrence
  999. of this string if it is found. To find the next occurence of
  1000. the specified text, use CTRL-N. The search automatically wraps
  1001. around.
  1002. *Text Editor Options,A
  1003. Text Editor Options
  1004.  
  1005. The Text Editor Options dialog box is used to specify the name of a
  1006. text editor to invoke when the "Edit" menu item is selected.
  1007.  
  1008. The text editor program name should correspond to a program
  1009. located somewhere on your system's search path. Drive and path
  1010. specifications can be included in the file name if the program
  1011. is not located on the search path.
  1012.  
  1013. To cancel the data entered and restore this dialog box to its
  1014. original state, move the cursor to the <Cancel> field and press
  1015. Enter, or press <<ESC>>. To accept the data entered, move the     
  1016. cursor to the <OK> field and press Enter, or press F5.
  1017. *View File Options,A
  1018. View File Options
  1019.  
  1020. The View File dialog box is used to specify the name of a file to
  1021. display in a scrollable window. The file name should correspond
  1022. to the file naming conventions for the operating system you are
  1023. using. Drive and path specifications can be included in the file
  1024. name. Pressing F5 without specifying a file name in the View File
  1025. dialog box will return you to the current window display.
  1026.  
  1027. To cancel the data entered and restore this dialog box to its
  1028. original state, move the cursor to the <Cancel> field and press
  1029. Enter, or press <<ESC>>. To accept the data entered, move the     
  1030. cursor to the <OK> field and press Enter, or press F5.
  1031. *Compile Options,A
  1032. Compile Options
  1033.  
  1034. The Compile Options dialog box is used to specify options to the
  1035. ABEL-HDL compiler.
  1036.  
  1037. To cancel the data entered and restore this dialog box to its
  1038. original state, move the cursor to the <Cancel> field and press
  1039. Enter, or press <<ESC>>. To accept the data entered, move the     
  1040. cursor to the <OK> field and press Enter, or press F5.
  1041. *Optimize Options,A
  1042. Reduction Options
  1043.  
  1044. The Reduction Options dialog box is used to specify options to the
  1045. PLAopt optimizer.
  1046.  
  1047. To cancel the data entered and restore this dialog box to its
  1048. original state, move the cursor to the <Cancel> field and press
  1049. Enter, or press <<ESC>>. To accept the data entered, move the      
  1050. cursor to the <OK> field and press Enter, or press F5.
  1051. *Simulate Trace Options,A
  1052. Simulate Trace Options
  1053.  
  1054. The Simulate Trace Options dialog box is used to specify options
  1055. to the ABEL-HDL simulator. The options specified on this form will
  1056. be used when the AHDL-HDL simulator is invoked at this point in
  1057. the design process. These options do not supersede simulator
  1058. options specified at other points in the process.
  1059.  
  1060. To cancel the data entered and restore this dialog box to its
  1061. original state, move the cursor to the <Cancel> field and press
  1062. Enter, or press <<ESC>>. To accept the data entered, move the     
  1063. cursor to the <OK> field and press Enter, or press F5.
  1064. *SmartPart Device Selector Criteria,A
  1065. SmartPart Criteria
  1066.  
  1067. The SmartPart Criteria dialog box is used to enter or modify the
  1068. device selection criteria. Data entered on this form is used in
  1069. conjunction with design data to produce a list of candidate
  1070. device architectures.
  1071.  
  1072. To cancel the data entered and restore this dialog box to its
  1073. original state, move the cursor to the <Cancel> field and press
  1074. Enter, or press <<ESC>>. To accept the data entered, move the     
  1075. cursor to the <OK> field and press Enter, or press F5.
  1076. *Fitter Options,A
  1077. Fit Options dialog box
  1078.  
  1079. The Fit options dialog box is used to specify options to the device
  1080. fitter.
  1081.  
  1082. To cancel the data entered and restore this dialog box to its
  1083. original state, move the cursor to the <Cancel> field and press
  1084. Enter, or press <<ESC>>. To accept the data entered, move the      
  1085. cursor to the <OK> field and press Enter, or press F5.
  1086. *PLDmap Options,A
  1087. PLDmap Options
  1088.  
  1089. The PLDmap Options dialog box is used to specify options to the
  1090. device mapping program.
  1091.  
  1092. To cancel the data entered and restore this dialog box to its
  1093. original state, move the cursor to the <Cancel> field and press
  1094. Enter, or press <<ESC>>. To accept the data entered, move the      
  1095. cursor to the <OK> field and press Enter, or press F5.
  1096. *Translate Options,A
  1097. Translate Options
  1098.  
  1099. The FPGA Translate Options dialog box is used to specify which
  1100. output format you would like for various FPGA tools.
  1101.  
  1102. To cancel the data entered and restore this dialog box to its
  1103. original state, move the cursor to the <Cancel> field and press
  1104. Enter, or press <<ESC>>. To accept the data entered, move the     
  1105. cursor to the <OK> field and press Enter, or press F5.
  1106. *PLDgrade Options,A
  1107. PLDgrade Options
  1108.  
  1109. This allows you to set the options for the PLDgrade fault grade
  1110. program, afsim. You can order this option in addition to the
  1111. standard ABEL package. PLDgrade fault grades user-supplied seed
  1112. vectors. Use PLDtest Plus for Automatic Test Vector Generation
  1113. (ATVG).
  1114. *====Menus Help====,A
  1115. *File Menu,A
  1116. File Menu
  1117.  
  1118. The File menu provides selections for creating new designs, opening
  1119. existing designs, and performing various design management
  1120. functions.
  1121.  
  1122. File menu items:
  1123.  
  1124. New                     Clear the current design
  1125. Open...                 Open and read a design file (create a .sav
  1126.                         version of file being opened)
  1127. Merge...                Merge file into current file
  1128.  
  1129. Save                    Write the current design
  1130. Save As...              Save the current design with a new name
  1131.  
  1132. Print...                Print a file
  1133. <<OSSHELL>>              Temporarily exit to a <<OSSHELL>>        
  1134.  
  1135. Save and Exit           Save design and exit the design environment
  1136. Exit                    Exit the ABEL Design Environment without
  1137.                         saving
  1138. *Edit Menu,A
  1139. Edit Menu
  1140.  
  1141. The Edit menu provides selections for editing the design file
  1142. displayed in the edit window. The direct editing functions
  1143. available are limited; you may want to use your own text editor
  1144. for the majority of your design entry tasks.
  1145.  
  1146. Edit menu items:
  1147.  
  1148. Delete Line             Delete the current line in the edit window
  1149. Replicate Line          Copy the current line in edit window
  1150.  
  1151. Search...               Search for specified text in edit window
  1152. Next                    Find next occurrence of Search text
  1153.  
  1154. Edit                    Specify your text editor
  1155. My Text Editor Is...    Invoke your text editor on current file
  1156.  
  1157. Repaint                 Redraws the screen
  1158. *View Menu,A
  1159. View Menu
  1160.  
  1161. The View menu allows you to examine the output reports generated 
  1162. by the ABEL programs. If a report or output file is requested that 
  1163. does not yet exist, the appropriate ABEL programs are invoked 
  1164. (when possible) to create the requested file.
  1165.  
  1166. View menu items:
  1167.  
  1168. Compiler Listing        View the compiler listing file (*.lst)
  1169. Compiled Equations      View the compiler-generated equations(*.tt1)
  1170. Optimized Equations     View the optimized equations (*.tt2)
  1171. Fitted Equations        View the fitted equations (*.tt3)
  1172.  
  1173. Device Candidates       View the selector candidate list (*.sel)
  1174. Fitter Assignments      View pin assignments made by Fitter (*.fit)
  1175.  
  1176. PLDMap Report           View the PartMap documentation file (*.doc)
  1177. JEDEC/PROM Fuse File    View the fuse file (*.jed, etc.)
  1178.  
  1179. Simulation Results      View the latest simulation results (*.sm?
  1180.             or *.sim)
  1181. PLDgrade Report         View the JEDEC fault grading results
  1182.  
  1183. Errors                  View errors from the last program run
  1184. View File...            View any file of your choice
  1185. *Compile Menu,A
  1186. Compile Menu
  1187.  
  1188. The Compile menu selections allow you to control the operation of 
  1189. the ABEL-HDL compiler program, ahdl2pla, and to invoke the ABEL-PLA 
  1190. simulator to verify the correct operation of a compiled design.
  1191.  
  1192. Compile menu items:
  1193.  
  1194. Compile                 Compile the design and create ABEL-PLA files
  1195. Error Check             Check the design for syntax errors only
  1196. Vectors Only            Compile the test vectors only
  1197. Options...              Set the compiler processing options
  1198.  
  1199. Simulate Equations      Simulate the compiler-generated equations
  1200. Re-Simulate             Simulate the design with updated test
  1201.                         vectors
  1202. Trace Options...        Set the simulation trace options
  1203. *Optimize Menu,A
  1204. Optimize Menu
  1205.  
  1206. The Optimize menu selections allow you to control the
  1207. operation of the PLAopt optimization program. PLAopt is based on the
  1208. Espresso program developed at the University of California (at
  1209. Berkeley) and has many options that allow designs to be optimized
  1210. for different device architectures.
  1211.  
  1212. Optimize menu items:
  1213.  
  1214. Reduce                  Run PLAopt/Espresso
  1215. Options...              Set the optimization options
  1216.  
  1217. Simulate Optimized      Simulate the optimized equations
  1218. Trace Options...        Set the simulation trace options
  1219. *SmartPart Menu,A
  1220. SmartPart Menu
  1221.  
  1222. SmartPart is an optional upgrade to ABEL. If some of the menu
  1223. items appear greyed out, it is because you do not have that
  1224. option installed. Please see About... in the Help menu for
  1225. ordering information. 
  1226.  
  1227. The SmartPart menu includes selections for device selection and
  1228. fitting. Select devices by entering selection criteria and invoking 
  1229. the "Database search" function. The resulting device candidate list 
  1230. can be used as input to the Fitter (the "Fit from List File" 
  1231. selection) or a specific architecture may be selected from the 
  1232. candidate list and specified to the Fitter program.
  1233.  
  1234. SmartPart menu items:
  1235.  
  1236. Database Search         Search the database and select candidates
  1237. Query Database          Query the database (don't use design)
  1238. Modify Criteria...      Set the device selection criteria
  1239.  
  1240. Fit                     Fit the design into specific architectures
  1241. Fit from List File...   Fit the design from the list of devices
  1242. Options...              Set the fitter options
  1243.  
  1244. Simulate Fitted Design  Simulate the design after fitting
  1245. Trace Options...        Set the fit simulation trace options
  1246. *PartMap Menu,A
  1247. PartMap Menu
  1248.  
  1249. The PartMap menu allows you to control the operation of the
  1250. device mapping program. The device mapper can be invoked for
  1251. all devices successfully fitted by the SmartPart Fit selection
  1252. or it can be invoked for a user-specified architecture. The
  1253. device mapping program produces a programmer download file
  1254. (typically a JEDEC or PROM format file) that can be transferred
  1255. to a device programmer through the use of the terminal emulator
  1256. ("Program Device"). 
  1257.  
  1258. The "Simulate JEDEC (F4)" selection invokes the device
  1259. simulator to verify that the mapped design will function as
  1260. expected before programming an actual device. 
  1261.  
  1262. PartMap menu items:
  1263.  
  1264. PLDmap                  Map the design (create programmer load file)
  1265. Options...              Set the PLDmap options
  1266.  
  1267. FPGA Translate          Translate to a FPGA tool input format
  1268. FPGA Options...         Set destination FPGA tool for translation
  1269.  
  1270. Simulate JEDEC      F4  Simulate the JEDEC file
  1271. Re-Simulate JEDEC       Simulate with new vectors
  1272. Trace options...        Set the JEDEC simulation options
  1273.  
  1274. PLDgrade                Fault grade the JEDEC file using PLDgrade
  1275. PLDgrade options...     Set the PLDgrade options
  1276.  
  1277. Program Device          Invoke the terminal emulator
  1278. *Defaults Menu,A
  1279. Defaults Menu
  1280.  
  1281. The Defaults menu provides selections that modify the ABEL
  1282. design environment.
  1283.  
  1284. Defaults menu items:
  1285.  
  1286. Auto Update             Enable automatic design update
  1287. Force Fit Update        Force the Fitter to be called during
  1288.                         auto-update
  1289. Spaces to tabs          Convert spaces to tabs when saving file
  1290. Read Only               File in editor is read only (no edit)
  1291. Program Pause           Pause after a program is executed
  1292. *Help Menu,A
  1293. Help Menu
  1294.  
  1295. The Help menu provides various methods of accessing ABEL
  1296. on-line help.
  1297.  
  1298. Help menu items:
  1299.  
  1300. Help For Help...        Help on how and when to get help
  1301. Index...                Indexed help topics
  1302. Keyboard...             Help for Keys
  1303. Design Process...       Help for ABEL Design Process
  1304. Menus...                Help for Menus
  1305. Program Options...      Help for ABEL Program Options
  1306. Language...             Help for the ABEL-HDL Language
  1307.  
  1308. Devices...              Help for ABEL Devices
  1309. Errors...               Help for ABEL error numbers
  1310.  
  1311. About...                About the ABEL-HDL Design Environment
  1312. *====Keyboard Help====,A
  1313. *Global Keys,A
  1314. Global Keys
  1315.     <<F1>>          Context sensitive, multi-level help      
  1316.     <<ESC>>         Toggles between Editor Window and Menu Bar      
  1317.     <<^L>>          Redraw screen     
  1318.     <<Alt-l>>etter  Pops up menu with highlighted character that    
  1319.                 matches letter
  1320. *Editor Keys,A
  1321. Editor Keys
  1322.     arrow keys  Moves cursor without modifying text
  1323.     Pg Up       Scroll back a page
  1324.     Pg Dn       Scroll forward a page
  1325.     Home        Move to first character on current line
  1326.     End         Move to last character on current line
  1327.     ^Home       Moves cursor to beginning of file
  1328.     ^End        Moves cursor to end of file
  1329.     ^D          Deletes line
  1330.     ^R          Replicates line
  1331.     <<^L>>          Redraws the screen    
  1332.     Ins         Toggles insert mode in editor
  1333.     Del         Deletes current character
  1334.     Enter       Inserts line feed
  1335.     Backspace   Deletes character before cursor, merges lines
  1336.     F4          Simulate JEDEC
  1337.     <<Alt-F1>>      Program Part - invoke terminal emulator    
  1338.  
  1339. *Menu Keys,A
  1340. Menu Keys
  1341.     <-          Pulls down menu to left of current menu
  1342.     ->          Pulls down menu to right of current menu
  1343.     Up/Dn Arrow Moves menu highlight bar
  1344.     letter      Selects menu item that has highlighted character
  1345.                 that matches letter
  1346.     Enter       Acts on currently highlighted menu item
  1347.  
  1348. *Dialog Box Keys,A
  1349. Dialog Box Keys
  1350.     F2           Pops-up choice list
  1351.     Tab or Enter Moves cursor to next item
  1352.     Shift-Tab    Moves cursor to previous item
  1353.     Space        Toggles check boxes   [ ]
  1354.                  Selects mode buttons ( )
  1355.     F6           Clears the field
  1356.     Home         Move to first character in field
  1357.     End          Move to last character in field
  1358.     ^Home        Move to first field on dialog box
  1359.     ^End         Move to last field on dialog box
  1360.     F5 or <OK>   Saves all changes on dialog box
  1361.     <<ESC>>,<Cancel> Cancels dialog box, discarding all changes     
  1362. *====Language Help====,A
  1363. *--Miscellaneous--,A
  1364. *Comments,A
  1365. Comments                           Syntax: " comment text
  1366.  
  1367. Comments in ABEL-HDL start with the double quote character, ".
  1368. They end at the end of a line or the next double quote character,
  1369. which ever comes first.
  1370.  
  1371. Example:
  1372.     count := count.fb + 2;    " count by 2
  1373.     count.clk = clk; "clock equation" count.oe = !enable;
  1374. *Feedback,A
  1375. Feedback
  1376.  
  1377. This is how feedback is interpreted.  See the section of the manual
  1378. on dot extensions for more detailed descriptions.
  1379. When in doubt, use .FB.
  1380.  
  1381. COUNT := COUNT.FB + 1 is interpreted as:
  1382.     1. if register feedback exists, use it (normalized to
  1383.        the pin) or
  1384.     2. use pin feedback
  1385.  
  1386.   Output Enable Note:
  1387.     a. No .OE equations or .OE = 1: correct
  1388.     b. Device has pin controlled Output Enable:
  1389.        Fitter/Fuseasm: a warning will be generated
  1390.     c. .OE equations other than .OE = 1:
  1391.        Fitter: won't use pin feedback for .FB
  1392.        Fuseasm: for backwards compatibility, pin feedback will
  1393.        be allowed, but a warning will be generated.
  1394.  
  1395. COUNT := COUNT + 1 is interpreted as:
  1396.         When a signal appears on the right side of an
  1397.                 equation without a dot extension.
  1398. Examples:
  1399.     1. use pin feedback if it exists or
  1400.     2. use register feedback (normalized to the pin)
  1401.  
  1402.   Output Enable Note:
  1403.     .OE equations (other than OE = 1), or pin controlled OE:
  1404.     Fitter: warning
  1405.     Fuseasm: silence
  1406.  
  1407. COUNT := COUNT.PIN + 1 is interpreted as:
  1408.     .PIN - is the pin in all cases. If pin feedback is not
  1409.     available, .pin cannot be used.
  1410.  
  1411.     Output enables are irrelevant.
  1412.  
  1413. COUNT := COUNT.Q + 1 is interpreted as:
  1414.     .Q - registered feedback only. Uses the same polarity as
  1415.     the register regardless of the output pin polarity or 
  1416.     which feedback (Q or Q-bar) is shown in the logic diagram.
  1417.  
  1418.     Output enables are irrelevant.
  1419.  
  1420. >>>>>>>>> No dot extension and .PIN are NOT the same. <<<<<<<<<<
  1421. *Sets,A
  1422. Sets            [ ]
  1423.  
  1424. Definition:    A set is a collection of signals and constants that
  1425. is operated on as one unit. Any operation applied to a set is
  1426. applied  to each element in the set. Sets simplify ABEL-HDL logic
  1427. descriptions  and test vectors by allowing groups of signals to be
  1428. referenced with one name.
  1429.  
  1430. For example, the outputs B0-B7 of an eight-bit multiplexer could be
  1431. collected into the set named MULTOUT. The three selection lines
  1432. might  be collected in the set, SELECT. The multiplexer could then
  1433. be defined  in terms of MULTOUT and SELECT rather than being
  1434. defined by all the  input and output bits individually specified.
  1435.  
  1436. A set is represented by a list of constants and signals separated
  1437. by commas, or the range operator (..), and surrounded by brackets.
  1438. Example:
  1439.  
  1440. --Sample Set--                         --Description--
  1441. MULTOUT = [B0,B1,B2,B3,B4,B5,B6,B7];   "outputs (MULTOUT)
  1442. SELECT = [S0,S1,S2];                   "select lines (SELECT)
  1443.  
  1444. The above sets could also be expressed by using the range operator;
  1445. for example,
  1446.  
  1447. MULTOUT = [B0..B7];
  1448. SELECT =  [S0..S2];
  1449.  
  1450. Set Operations:  Most operators can be applied to sets. In
  1451. general, this means that the operation is performed on each element
  1452. of the set, sometimes individually and sometimes according to the
  1453. rules of Boolean algebra. The following table lists the operators
  1454. that may be used with sets.
  1455.  
  1456. Operator           Example               Description
  1457.  
  1458.  
  1459. =                  A = 5                 combinatorial assignment
  1460. :=                 A := [1,0,1]          registered assignment
  1461. !                  !A                    NOT (ones complement)
  1462. &                  A & B                 AND
  1463. #                  A # B                 OR
  1464. $                  A $ B                 XOR: exclusive OR
  1465. !$                 A!$ B                 XNOR: exclusive NOR
  1466. -                  -A                    negate
  1467. -                  A - B                 subtraction
  1468. +                  A + B                 addition
  1469. ==                 A == B                equal
  1470. !=                 A != B                not equal
  1471. <                  A < B                 less than
  1472. <=                 A <= B                less than or equal
  1473. >                  A > B                 greater than
  1474. >=                 A >= B                greater than or equal
  1475.  
  1476.  
  1477. Limitations/Restrictions on Sets
  1478.  
  1479. If you are unsure about the interpretation of an equation, try the
  1480. following hints:
  1481.  
  1482. 1. Fully parenthesize your equation. Most errors are simply
  1483. caused by ignoring the precedence rules in the above table.
  1484.  
  1485. 2. Write out numbers as sets of 1s and 0s instead of as decimal
  1486. numbers. If the width is not what you expected, you will get an
  1487. error message.
  1488. *Operators,A
  1489. Operators
  1490.  
  1491. ABEL-HDL operators are divided into four basic types: logical,
  1492. arithmetic, relational, and assignment. Each of these types is
  1493. discussed separately below, followed by a description of how they
  1494. are combined into expressions. Following the descriptions is a
  1495. summary of all the operators and the rules governing them, and
  1496. finally an explanation of how equations  utilize expressions.
  1497.  
  1498. Logical Operators
  1499.  
  1500. Logical operators are used in expressions. ABEL-HDL incorporates
  1501. the standard logical operators listed in the following table.
  1502.  
  1503. Operator                 Description
  1504.  
  1505. !                        NOT: ones complement
  1506. &                        AND
  1507. #                        OR
  1508. $                        XOR: exclusive OR
  1509. !$                       XNOR: exclusive NOR
  1510.  
  1511. Arithmetic Operators
  1512.  
  1513. Arithmetic operators define arithmetic relationships between
  1514. items in an expression. The shift operators are included in this
  1515. class because each left shift of one bit is equivalent to
  1516. multiplication by 2 and a right shift of one bit is the same as
  1517. division by 2. The following table lists the arithmetic operators.
  1518.  
  1519.  
  1520. Operator                Description
  1521.  
  1522. -A                      twos complement (negation)
  1523. A-B                     subtraction
  1524. A+B                     addition
  1525. A*B                     multiplication
  1526. A/B                     unsigned integer division
  1527. A%B                     modulus: remainder from /
  1528. A<<B                    shift A left by B bits
  1529. A>>B                    shift A right by B bits
  1530.  
  1531. Relational Operators
  1532.  
  1533. Relational operators are used to compare two items in an
  1534. expression. Expressions formed with relational operators produce
  1535. a Boolean true or false value. The following table lists
  1536. the relational operators.
  1537.  
  1538. Operator                    Description
  1539.  
  1540. =<|>=                       equal
  1541. !=                          not equal
  1542. <                           less than
  1543. < =                         less than or equal
  1544. >                           greater than
  1545. > =                         greater than or equal
  1546.  
  1547. Some examples of relational operators in expressions follow:
  1548.  
  1549. Expression                 Value
  1550.  
  1551. 2 == 3                     false
  1552. 2 != 3                     true
  1553. 3 < 5                     true
  1554. -1 > 2                    true
  1555.  
  1556.  
  1557. Assignment Operators
  1558.  
  1559. Assignment operators are a special class of operators used in
  1560. equations rather than in expressions. Equations assign the value
  1561. of an expression to output signals. See "Equations" below for a
  1562. complete discussion of equations. There are two assignment
  1563. operators: combinatorial or immediate assignment
  1564. occurs without any delay as soon as the equation is evaluated; 
  1565. registered assignment occurs at the next clock pulse from the
  1566. clock associated with the output. The following table shows the
  1567. assignment operators.
  1568.  
  1569. Operator                 Description
  1570.  
  1571. =                        Combinatorial assignment
  1572. :=                       Registered assignment
  1573.  
  1574. *Expressions,A
  1575. Expressions
  1576.  
  1577. Items such as constants and signal names can be brought together
  1578. in expressions. Expressions combine, compare or perform operations
  1579. on the items they include to produce a single result. The operations
  1580. to be performed (addition and logical AND are two examples) are
  1581. indicated by operators within the expression.
  1582.  
  1583. Expressions are combinations of identifiers and operators that
  1584. produce one result when evaluated. Any logical, arithmetic or
  1585. relational operators may be used in expressions.
  1586.  
  1587. *Equations,A
  1588. Equations
  1589.  
  1590. Equations assign the value of an expression to a signal or set of
  1591. signals in a logic description. The identifier and expression must
  1592. follow the rules already established for those elements.
  1593.  
  1594. Equations use the two assignment operators = (combinatorial) 
  1595. and := (registered) described above.
  1596.  
  1597. See Also:       See "Equations" and "When-Then-Else" in the 
  1598.                 "Language Reference" chapter in the manual
  1599.  
  1600. *Multiple Assignments to an Identifier,A
  1601. Multiple Assignments to an Identifier
  1602.  
  1603. When an identifier appears on the left side of more than one
  1604. equation, the expressions being assigned to the identifier are
  1605. first ORed together and then the assignment is made. If the
  1606. identifier on the left side of the equation is complemented, the
  1607. complement is performed after all the expressions have been ORed.
  1608. *--Special Constants--,A
  1609. *.C.,A
  1610. .C.      Clocked input (low-high-low transition)
  1611.  
  1612. Constant, non-changing values can be used in ABEL-HDL logic
  1613. desciptions (equations, state-diagrams, and truth-tables) and in
  1614. test vectors.  Constants are not case sensitive.
  1615.  
  1616. .C. is used in a test vector to specify that a clock edge sequence
  1617. should be applied to an input, typically a clock pin.
  1618.  
  1619. Example:
  1620.   Equations
  1621.       Count.clk = Clk;
  1622.       Count := (Count.fb + 1) & !Clear;
  1623.   Test_Vectors
  1624.     ( [ Clk, Clear ] -> [Count] )
  1625.       [ .C.,   1   ] -> [ 0   ];  "clear the counter
  1626.       [ .C.,   0   ] -> [ 1   ];  "clock to next state
  1627.       [ .C.,   0   ] -> [ 2   ];  "clock to next state
  1628. *.D.,A
  1629. .D.      Clock down edge (high-low transition)
  1630.  
  1631. Constant, non-changing values can be used in ABEL-HDL logic
  1632. desciptions (equations, state-diagrams, and truth-tables) and in
  1633. test vectors.  Constants are not case sensitive.
  1634.  
  1635. .D. is used in a test vector to specify that a clock down edge
  1636. should be applied to an input, typically a clock pin.
  1637.  
  1638. Example:
  1639.   Equations
  1640.       Count.clk = Clk;
  1641.       Count := (Count.fb + 1) & !Clear;
  1642.   Test_Vectors
  1643.     ( [ Clk, Clear ] -> [Count] )
  1644.       [ .C.,   1   ] -> [ 0   ];  "clear the counter
  1645.       [ .U.,   0   ] -> [ 1   ];  "trigger clock to next state
  1646.       [ .D.,   0   ] -> [ 1   ];  "transition down
  1647. *.F.,A
  1648. .F.      Floating input or output signal
  1649.  
  1650. Constant, non-changing values can be used in ABEL-HDL logic
  1651. desciptions (equations, state-diagrams, and truth-tables) and in
  1652. test vectors.  Constants are not case sensitive.
  1653. *.K.,A
  1654. .K.      clocked input (high-low-high transition)
  1655.  
  1656. Constant, non-changing values can be used in ABEL-HDL logic
  1657. desciptions (equations, state-diagrams, and truth-tables) and in
  1658. test vectors.  Constants are not case sensitive.
  1659.  
  1660. .K., a "klunk", is used in a test vector to specify that a clock
  1661. high-low-high sequence should be applied to an input, typically
  1662. a clock pin.
  1663.  
  1664. Example:
  1665.   Equations
  1666.       Count.clk = Klk;        " use klunk to clock registers
  1667.       Count := (Count.fb + 1) & !Clear;
  1668.   Test_Vectors
  1669.     ( [ Klk, Clear ] -> [Count] )
  1670.       [ .K.,   1   ] -> [ 0   ];  "clear the counter
  1671.       [ .K.,   0   ] -> [ 1   ];  "count
  1672.       [ .K.,   0   ] -> [ 2   ];  "count
  1673. *.P.,A
  1674. .P.      register preload
  1675.  
  1676. Constant, non-changing values can be used in ABEL-HDL logic
  1677. desciptions (equations, state-diagrams, and truth-tables) and in
  1678. test vectors.  Constants are not case sensitive.
  1679.  
  1680. .P. is used in a test vector to preload registers to a known state.
  1681. The .P. is placed on the clock pin and the desired value is placed
  1682. on the registers.  The JEDEC standard for preloads is that they
  1683. preload the register, not the output pin.  This can cause
  1684. unexpected behaviour if you preload a part with a inverter between
  1685. the register and the pin.
  1686.  
  1687. Example:
  1688.   Equations
  1689.       Count.clk = Clk;
  1690.       Count := Count.fb + 1;
  1691.   Test_Vectors
  1692.     ( [ Clk ] -> [Count] )
  1693.       [ .P. ] -> [ 7   ];  "force Count to 7
  1694.       [ .C. ] -> [ 8   ];  "clock to next state
  1695.       [ .C. ] -> [ 9   ];  "clock to next state
  1696. *.SVN,A
  1697. .SVN.      N=2 through 9, apply super voltage to input
  1698.  
  1699. Constant, non-changing values can be used in ABEL-HDL logic
  1700. desciptions (equations, state-diagrams, and truth-tables) and in
  1701. test vectors.  Constants are not case sensitive.
  1702.  
  1703. .SVN. is used to apply super voltage 2 through 9 to any given
  1704. input in a test vector.
  1705. *.U.,A
  1706. .U.      Clock up edge (low-high transition)
  1707.  
  1708. Constant, non-changing values can be used in ABEL-HDL logic
  1709. desciptions (equations, state-diagrams, and truth-tables) and in
  1710. test vectors.  Constants are not case sensitive.
  1711.  
  1712. .U. is used in a test vector to specify that a clock up edge
  1713. should be applied to an input, typically a clock pin.
  1714.  
  1715. Example:
  1716.   Equations
  1717.       Count.clk = Clk;
  1718.       Count := (Count.fb + 1) & !Clear;
  1719.   Test_Vectors
  1720.     ( [ Clk, Clear ] -> [Count] )
  1721.       [ .C.,   1   ] -> [ 0   ];  "clear the counter
  1722.       [ .U.,   0   ] -> [ 1   ];  "trigger clock to next state
  1723.       [ .D.,   0   ] -> [ 1   ];  "transition down
  1724. *.X.,A
  1725. .X.      don't care condition
  1726.  
  1727. Constant, non-changing values can be used in ABEL-HDL logic
  1728. desciptions (equations, state-diagrams, and truth-tables) and in
  1729. test vectors.  Constants are not case sensitive.
  1730.  
  1731. .X. is used in a test vector to specify "don't care" for a given
  1732. input or output when it is being described in a set, truth-table,
  1733. state-diagram, or test vector.
  1734.  
  1735. See Also:    control.abl (design example)
  1736. *.Z.,A
  1737. .Z.      tristate value
  1738.  
  1739. Constant, non-changing values can be used in ABEL-HDL logic
  1740. desciptions (equations, state-diagrams, and truth-tables) and in
  1741. test vectors.  Constants are not case sensitive.
  1742.  
  1743. .Z. is used in a test vector to specify the tristate value for
  1744. a bi-directional pin.
  1745.  
  1746. Example:
  1747.   Equations
  1748.       Count.clk = Clk;
  1749.       Count := ((Count.fb + 1) & !Load) # (Count.pin & Load);
  1750.       Count.oe = !Load;
  1751.   Test_Vectors
  1752.     ( [ Clk, Load, Count ] -> [Count] )
  1753.       [ .C.,  0  ,  .X.  ] -> [  0  ];  "start
  1754.       [ .C.,  0  ,  .X.  ] -> [  1  ];  "next state
  1755.       [ .C.,  1  ,   5   ] -> [ .Z. ];  "load
  1756.       [ .C.,  0  ,  .X.  ] -> [  6  ];  "next state
  1757. *--Dot Extensions--,A
  1758. *.<none>,A
  1759. .<none>  No Dot Extension
  1760.  
  1761. Description     When a signal appears on the right side of an
  1762.                 equation without a dot extension.
  1763.  
  1764. Examples:
  1765. COUNT := COUNT + 1 is interpreted as:
  1766.     1. use pin feedback if it exists or else
  1767.     2. use register feedback (normalized to the pin)
  1768.  
  1769.   Output Enable Note:
  1770.     .OE equations (other than OE = 1), or pin controlled OE:
  1771.     Fitter: warning
  1772.     Fuseasm: silence
  1773.  
  1774. >>>>>>>>> No dot extension and .PIN are NOT the same. <<<<<<<<<<
  1775. *.AP,A
  1776. .AP Asynchronous Register Preset        Syntax: signal_name.ap
  1777.  
  1778. Purpose/Usage:  Architecture-dependent dot extension for
  1779. asynchronous register preset. Signal dot extensions are a way to
  1780. more precisely describe the behavior of a circuit in a logic
  1781. description. Dot extensions are applied to signals and are used
  1782. to remove the ambiguities in equations.
  1783.  
  1784. See Also:       .AR             .PR             .RE
  1785.                 .SP             .SR
  1786. *.AR,A
  1787. .AR Asynchronous Register Reset         Syntax: signal_name.ar
  1788.  
  1789. Purpose/Usage:  Architecture-dependent dot extension for
  1790. asynchronous register reset. Signal dot extensions are a way
  1791. to more precisely describe the behavior of a circuit in a
  1792. logic description. Dot extensions are applied to signals and
  1793. are used to remove the ambiguities in equations.
  1794.  
  1795. See Also:       .AP             .PR             .RE
  1796.                 .SP             .SR
  1797. *.CE,A
  1798. .CE Clock-enable Input to a             Syntax: signal_name.ce
  1799.     Gated-clock Flip-flop
  1800.  
  1801. Purpose/Usage:  Architecture-dependent dot extension for
  1802. clock-enable input to a gated-clock flip-flop. Signal dot
  1803. extensions are a way to more precisely describe the behavior of
  1804. a circuit in a logic description. Dot extensions are applied
  1805. to signals and are used to remove the ambiguities in equations.
  1806.  
  1807. See Also:       .CLK            .D
  1808. *.CLK,A
  1809. .CLK Clock Input                        Syntax: signal_name.clk
  1810.  
  1811. Purpose/Usage:  Architecture-independent dot extension for clock
  1812. input to an edge-triggered flip-flop. Signal dot extensions are a
  1813. way to more precisely describe the behavior of a circuit in a logic
  1814. description. Dot extensions are applied to signals and are used to
  1815. remove the ambiguities in equations.
  1816.  
  1817. Examples
  1818.                declarations
  1819.  
  1820.                foo       PIN ISTYPE 'reg';
  1821.                Preset PIN;
  1822.  
  1823.                equations
  1824.  
  1825.                foo :=!foo # Preset;
  1826.  
  1827. could describe many possible operating characteristics,
  1828. depending on the architecture of the target device.
  1829.  
  1830.            declarations
  1831.  
  1832.            foo       PIN ISTYPE 'reg_D'
  1833.            Preset,Clock   PIN;
  1834.  
  1835.            equations
  1836.  
  1837.            foo.clk = Clock;
  1838.            foo.D = !foo.Q # Preset;
  1839.  
  1840. more precisely describes the desired circuit as being a toggling
  1841. D-type flip-flop that is clocked by the input clock.
  1842.  
  1843. See Also:       .CLK            .D              .Q
  1844.                 ISTYPE
  1845. *.D,A
  1846. .D  D-type Flip-flop                    Syntax: signal_name.d
  1847.  
  1848. Purpose/Usage:  Architecture-dependent dot extension for
  1849. data input to a D-type flip-flop. Signal dot extensions are a
  1850. way to more precisely describe the behavior of a circuit in a
  1851. logic description. Dot extensions are applied to signals and
  1852. are used to remove the ambiguities in equations.
  1853.  
  1854. Examples
  1855.             declarations
  1856.  
  1857.             foo       PIN ISTYPE 'reg';
  1858.             Preset PIN;
  1859.  
  1860.             equations
  1861.  
  1862.             foo :=!foo # Preset;
  1863.  
  1864. could describe many possible operating characteristics, depending
  1865. on the architecture of the target device.
  1866.  
  1867.             declarations
  1868.  
  1869.             foo       PIN ISTYPE 'reg_D'
  1870.             Preset,Clock   PIN;
  1871.  
  1872.             equations
  1873.  
  1874.             foo.clk = Clock;
  1875.             foo.D = !foo.Q # Preset;
  1876.  
  1877.  
  1878. more precisely describes the desired circuit as being a toggling
  1879. D-type flip-flop that is clocked by the input clock.
  1880.  
  1881. See Also:       .PR             .Q              .R
  1882.                 .RE             .S              .SP
  1883.                 .SR             .T
  1884.  
  1885. *.FB,A
  1886. .FB  Register Feedback                  Syntax: signal_name.fb
  1887.  
  1888. Purpose/Usage:  The .FB extension is used to specify the
  1889. source of a fed back output signal when the source of that
  1890. signal would otherwise be ambiguous. Using .FB will result
  1891. in a feedback path corresponding to the output of the
  1892. associated flip-flop, with the polarity of that feedback
  1893. "normalized" to match the polarity observed on the
  1894. associated output pin. If the design using .FB is implemented
  1895. in a device with pin feedback only, the device fitter and
  1896. fuse assemblers will ensure that the output is always enabled,
  1897. allowing the pin feedback to be used for register feedback.
  1898.  
  1899. Example         (A.D = X.FB = Y.FB)
  1900.  
  1901. Dot extensions are applied to signals and are used
  1902. to remove the ambiguities in equations.
  1903.  
  1904. See Also:       .Q              .PIN
  1905. *.FC,A
  1906. .FC  Flip-flop Mode Control             Syntax: signal_name.fc
  1907.  
  1908. Purpose/Usage:  Architecture-dependent dot extension for
  1909. flip-flop mode control. Signal dot extensions are a way to more
  1910. precisely describe the behavior of a circuit in a logic
  1911. description. Dot extensions are applied to signals and are used
  1912. to remove the ambiguities in equations.
  1913. *.J,A
  1914. .J J Input to JK Flip-flop              Syntax: signal_name.j
  1915.  
  1916. Purpose/Usage:  Architecture-dependent dot extension for the J
  1917. input to a JK-type flip-flop. Signal dot extensions are a way to
  1918. more precisely describe the behavior of a circuit in a logic
  1919. description. Dot extensions are applied to signals and are used
  1920. to remove the ambiguities in equations.
  1921.  
  1922. See Also:       .K              .S              .R
  1923.                 .D              .T
  1924. *.K,A
  1925. .K  K Input to JK Flip-flop             Syntax: signal_name.k
  1926.  
  1927. Purpose/Usage:  Architecture-dependent dot extension for the K
  1928. input to a JK-type flip-flop. Signal dot extensions are a way to
  1929. more precisely describe the behavior of a circuit in a
  1930. logic description. Dot extensions are applied to signals and are
  1931. used to remove the ambiguities in equations.
  1932.  
  1933. See Also:       .D              .J              .R
  1934.                 .S              .T
  1935. *.LD,A
  1936. .LD Register Load Input                 Syntax: signal_name.ld
  1937.  
  1938. Purpose/Usage:  Architecture-dependent dot extension for
  1939. register load input. Signal dot extensions are a way to more
  1940. precisely describe the behavior of a circuit in a logic
  1941. description. Dot extensions are applied to signals and are used
  1942. to remove the ambiguities in equations.
  1943. *.LE,A
  1944. .LE  Latch-enable Input                 Syntax: signal_name.le
  1945.  
  1946. Purpose/Usage:  Architecture-dependent dot extension for
  1947. latch-enable input to a latch. Signal dot extensions are a way to
  1948. more precisely describe the behavior of a circuit in a logic
  1949. description. Dot extensions are applied to signals and are used
  1950. to remove the ambiguities in equations.
  1951.  
  1952. See Also:       .LH
  1953. *.LH,A
  1954. .LH  Latch-enable (High)                Syntax: signal_name.lh
  1955.  
  1956. Purpose/Usage:  Architecture-dependent dot extension for
  1957. latch-enable (high) to a latch. Signal dot extensions are a way
  1958. to more precisely describe the behavior of a circuit in a logic
  1959. description. Dot extensions are applied to signals and are used
  1960. to remove the ambiguities in equations.
  1961.  
  1962. See Also:       .LE
  1963. *.OE,A
  1964. .OE  Output Enable                      Syntax: signal_name.oe
  1965.  
  1966. Purpose/Usage:  Architecture-independent dot extension for
  1967. an output enable. Signal dot extensions are a way to more
  1968. precisely describe the behavior of a circuit in a logic
  1969. description. Dot extensions are applied to signals and are used
  1970. to remove the ambiguities in equations.
  1971.  
  1972. DESCRIBING THREE-STATE OUTPUT ENABLES
  1973.  
  1974. Output enables are described in ABEL with the .oe dot extension
  1975. applied to an output signal name. The following equation
  1976. specifies an output enable for an output signal named foo:
  1977.  
  1978. foo.oe = !enab;
  1979.  
  1980. The equation specifies that the input signal enab is to be used
  1981. to control the output enable for foo. In previous versions of
  1982. ABEL, it was sometimes useful to indicate explicitly the value
  1983. of a fixed output enable. For example, the equation:
  1984.  
  1985. foo.oe = 0;
  1986.  
  1987. indicates that the output foo_in is permanently disabled (the
  1988. signal is going to be used strictly as an input). In ABEL-HDL this
  1989. is not necessary, and is discouraged since it restricts the device
  1990. fitters' ability to map the indicated signal to a simple input pin
  1991. instead of a three-state I/O pin.
  1992.  
  1993. See Also:       "Attributes"
  1994.                  The chapter, "Design Considerations"
  1995. *.PIN,A
  1996. .PIN - Pin Feedback                     Syntax: signal_name.pin
  1997.  
  1998. Purpose/Usage: Architecture-independent dot extension for pin
  1999. feedback. Only pin feedback will be used for .pin equations.
  2000. Signal dot extensions are a way to more precisely describe the
  2001. behavior of a circuit in a logic description. Dot extensions
  2002. are applied to signals and are used to remove the ambiguities
  2003. in equations. 
  2004.  
  2005. Example         AZRDY: = XNAK.PIN
  2006.  
  2007. The .PIN dot extension is used to specify the source of a fed
  2008. back output signal when the source of that signal would
  2009. otherwise be ambiguous. Using .PIN will result in a feedback
  2010. path corresponding to the output pin associated with the
  2011. indicated signal name.
  2012.  
  2013. See Also:       .Q
  2014. *.PR,A
  2015. .PR  Register Preset                    Syntax: signal_name.pr
  2016.  
  2017. Purpose/Usage:  Architecture-dependent dot extension for
  2018. register preset. Signal dot extensions are a way to more
  2019. precisely describe the behavior of a circuit in a logic
  2020. description. Dot extensions are applied to signals and are
  2021. used to remove the ambiguities in equations.
  2022.  
  2023. See Also:       .RE
  2024. *.Q,A
  2025. .Q  Register Feedback                   Syntax: signal_name.q
  2026.  
  2027. Purpose/Usage:  .Q feedback is interpreted as "use whatever
  2028. is in the register regardless of what is on the pin". .Q
  2029. equations will always use register feedback. It is an
  2030. architecture-dependent dot extension for register
  2031. feedback. Signal dot extensions are a way to more precisely
  2032. describe the behavior of a circuit in a logic description. Dot
  2033. extensions are applied to signals and are used to remove the
  2034. ambiguities in equations.
  2035.  
  2036. Example         A := B.Q & !CLR;
  2037.  
  2038. The .Q dot extension is used to specify the source of a fed
  2039. back output signal when the source of that signal would
  2040. otherwise be ambiguous. Using .Q will result in a feedback
  2041. path corresponding to the output of the associated flip-flop,
  2042. with no consideration of subsequent output inversion. In
  2043. most cases you should use the .FB dot extension for feedback
  2044. rather than the .Q dot extension.
  2045.  
  2046.  
  2047. See Also:       .AP             .J              .PR
  2048.                 .AR             .K              .Q
  2049.                 .CE             .LD             .R
  2050.                 .CLK            .LE             .RE
  2051.                                 .LH             .S
  2052.                 .D              .OE             .SP
  2053.                 .FB             .PIN            .SR
  2054.                                                 .T
  2055. *.R,A
  2056. .R  R Input to an SR Flip-flop          Syntax: signal_name.r
  2057.  
  2058. Purpose/Usage:  Architecture-dependent dot extension for the
  2059. R input to an SR-type flip-flop. Signal dot extensions are a way
  2060. to more precisely describe the behavior of a circuit in a
  2061. logic description. Dot extensions are applied to signals and are
  2062. used to remove the ambiguities in equations.
  2063.  
  2064. See Also:       .AP             .J              .PR
  2065.                 .AR             .K              .Q
  2066.                 .CE             .LD             .R
  2067.                 .CLK            .LE             .RE
  2068.                                 .LH             .S
  2069.                 .D              .OE             .SP
  2070.                 .FB             .PIN            .SR
  2071.                                                 .T
  2072. *.RE,A
  2073. .RE  Register Reset                    Syntax: signal_name.re
  2074.  
  2075. Purpose/Usage:  Architecture-dependent dot extension for register
  2076. reset (synchronous or asynchronous). Signal dot extensions are a
  2077. way to more precisely describe the behavior of a circuit in a
  2078. logic description. Dot extensions are applied to signals and are
  2079. used to remove the ambiguities in equations.
  2080.  
  2081. See Also:       .AP             .J              .PR
  2082.                 .AR             .K              .Q
  2083.                 .CE             .LD             .R
  2084.                 .CLK            .LE             .RE
  2085.                                 .LH             .S
  2086.                 .D              .OE             .SP
  2087.                 .FB             .PIN            .SR
  2088.                                                 .T
  2089. *.S,A
  2090. .S  S Input to an SR Flip-flop          Syntax: signal_name.s
  2091.  
  2092. Purpose/Usage:  Architecture-dependent dot extension for the S
  2093. input to an SR-type flip-flop. Signal dot extensions are a way
  2094. to more precisely describe the behavior of a circuit in a logic
  2095. description. Dot extensions are applied to signals and are used
  2096. to remove the ambiguities in equations.
  2097.  
  2098. See Also:       .D              .J              .K
  2099.                 .R              .T
  2100. *.SP,A
  2101. .SP  Synchronous Register Preset        Syntax: signal_name.sp
  2102.  
  2103. Purpose/Usage:  Architecture-dependent dot extension for
  2104. synchronous register preset. Signal dot extensions are a way to
  2105. more precisely describe the behavior of a circuit in a logic
  2106. description. Dot extensions are applied to signals and are used to
  2107. remove the ambiguities in equations.
  2108.  
  2109. See Also:       .PR             .RE             .SR
  2110. *.SR,A
  2111. .SR  Synchronous Register Reset         Syntax: signal_name.sr
  2112.  
  2113. Purpose/Usage:  Architecture-dependent dot extension for
  2114. synchronous register reset. Signal dot extensions are a way to
  2115. more precisely describe the behavior of a circuit in a logic
  2116. description. Dot extensions are applied to signals and are used
  2117. to remove the ambiguities in equations.
  2118.  
  2119. See Also:       .PR             .RE             .SP
  2120. *.T,A
  2121. .T T-type Flip-flop                     Syntax: signal_name.t
  2122.  
  2123. Purpose/Usage: Architecture-dependent dot extension for the T
  2124. input to a T-type (toggle) flip flop. Signal dot extensions are
  2125. a way to more precisely describe the behavior of a circuit in a
  2126. logic description. Dot extensions are applied to signals and are
  2127. used to remove the ambiguities in equations.
  2128.  
  2129. See Also:       .D              .J              .K
  2130.                 .R              .S
  2131. *--ISTYPE Attributes--,A
  2132. *BUFFER,A
  2133. 'buffer'  No Inverter Attribute     'buffer'
  2134.  
  2135. Purpose/Usage:  Signal attributes are used to specify
  2136. architecture-related constraints for signals used in the design.
  2137. Attributes are usually applied to signals that are used as outputs.
  2138.  
  2139. The 'buffer' attribute indicates that the target
  2140. architecture does not have an inverter between the associated
  2141. flip-flop (if any) and the actual output pin. Control of output
  2142. inversion in devices is accomplished through the
  2143. use of the 'invert' or 'buffer' attributes. These attributes
  2144. enforce the existence ('invert') or non-existence ('buffer') of a
  2145. hardware inverter at the device pin associated with the output
  2146. signal specified.
  2147.  
  2148.  
  2149. Examples:       q0,q1,q2        pin  istype 'buffer';
  2150.                 a0a2            istype 'buffer';
  2151.  
  2152. See Also:       'INVERT'
  2153.  
  2154. *COM,A
  2155. 'com'     Combinatorial Signal Attribute
  2156.  
  2157. Purpose/Usage:  Signal attributes are used to specify
  2158. architecture-related constraints for signals used in the design.
  2159. Attributes are usually applied to signals that are used as outputs.
  2160.  
  2161. The 'com' attribute is used to specify that a signal has no register
  2162. element associated with it or that any register should be bypassed.
  2163.  
  2164. See Also:       'REG'
  2165. *INVERT,A
  2166. 'invert'  Inverter Attribute
  2167.  
  2168. Purpose/Usage:  Signal attributes are used to specify
  2169. architecture-related constraints for signals used in the design.
  2170. Attributes are usually applied to signals that are used as outputs.
  2171.  
  2172. The 'invert' attribute indicates that the target architecture
  2173. does not have an inverter between the associated flip-flop
  2174. and the actual output pin. Control of output inversion in
  2175. devices is accomplished through the use of the 'invert'
  2176. or 'buffer' attributes. These attributes enforce the existence
  2177. ('invert') or non-existence ('buffer') of a hardware inverter
  2178. at the device pin associated with the output signal specified.
  2179.  
  2180. In registered devices, the 'invert' attribute ensures that an
  2181. inverter will be located between the output pin and its associated
  2182. register output. This is important because the location of the
  2183. inverter affects a register's reset, preset, preload and powerup
  2184. behavior as observed on the associated output pin.
  2185.  
  2186. See Also:       'BUFFER'
  2187. *FEED_OR,A
  2188. 'feed_or'  Feedback from OR attribute
  2189.  
  2190. Purpose/Usage:  The 'feed_or' attribute is supported for backward 
  2191. compatibility only. It specifies the precise configuration of a
  2192. feedback path for an output signal. The dot extensions .D, .T, .J
  2193. and .S now take the place of 'feed_or'. 
  2194.  
  2195. Examples:    out2 = (a & b) # out1.d;
  2196.             out = clear & toggle.t;
  2197.  
  2198. *FEED_PIN,A
  2199. 'feed_pin'  Feedback from PIN attribute
  2200.  
  2201. Purpose/Usage:  The 'feed_pin' attribute is supported for backward 
  2202. compatibility only. The correct way to use pin feedback is to write 
  2203. equations using the .PIN dot extension.
  2204.  
  2205. Examples:       out2 = (a & b ) # out1.pin;
  2206.                 count.d = count.pin + 1;
  2207.  
  2208. See Also:       'FEED_REG'      'FEED_OR'
  2209. *FEED_REG,A
  2210. 'feed_reg'
  2211.  
  2212. Purpose/Usage:  The 'feed_reg' attribute is supported for
  2213. backward compatibility only. It specifies the precise
  2214. configuration of a feedback path for an output signal. The dot
  2215. extension .FB now takes the place of 'feed_reg'. 
  2216.  
  2217. Example:    count := count.fb + 1;
  2218.  
  2219. *NEG,A
  2220. 'neg'  Complement Signal                Syntax: 'neg'
  2221.  
  2222. Purpose/Usage:  Signal attributes are used to specify 
  2223. architecture-related constraints for signals used in the design. 
  2224. Attributes are usually applied to signals that are used as outputs.
  2225.  
  2226. The 'neg' attribute indicates that the signal should be
  2227. complemented prior to processing into sum-of-products equations.
  2228. 'Neg' is typically used in combination with the 'reduce fixed'
  2229. option to precisely control the polarity of the final
  2230. design. 'Neg' is also used to control the speed and size of
  2231. sum-of-products processing within AHDL2PLA. This attribute does
  2232. not affect the logical function of the associated output
  2233. signal - the signal is complemented again by later processes.
  2234.  
  2235. See Also:       'BUFFER'        'REG_SR'
  2236.                 'INVERT'        'REG_T'
  2237.                 'REG'           'XOR'
  2238.                 'REG_D'         ISTYPE
  2239.                 'REG_G'
  2240.                 'REG_JK'
  2241. *POS,A
  2242. 'pos'
  2243.  
  2244. Purpose/Usage:  Signal attributes are used to specify
  2245. architecture-related constraints for signals used in the design.
  2246. Attributes are usually applied to signals that are used as outputs.
  2247.  
  2248. 'Pos' indicates that the associated input or output has positive
  2249. polarity.
  2250. *REG,A
  2251. 'reg'  Clocked Memory Element           Syntax: 'reg'
  2252.  
  2253. Purpose/Usage:  Signal attributes are used to specify
  2254. architecture-related constraints for signals used in the design.
  2255. Attributes are usually applied to signals that are used as outputs.
  2256.  
  2257. The 'reg' attribute indicates that the associated signal has a
  2258. D-type flip-flop as its memory element. When 'reg' is specified,
  2259. the equations resulting from an ABEL-HDL state diagram will be
  2260. architecture-independent. You do not need to worry about the 
  2261. existence of inverted output pins.
  2262.  
  2263. See Also:       'BUFFER'        'REG_SR'
  2264.                 'INVERT'        'REG_T'
  2265.                 'NEG'           'XOR'
  2266.                 'REG_D'         ISTYPE
  2267.                 'REG_G'
  2268.                 'REG_JK'
  2269. *REG_D,A
  2270. 'reg_D'  D Flip-flop Clocked            Syntax: 'reg_d'
  2271.          Memory Element
  2272.  
  2273. Purpose/Usage:  Signal attributes are used to specify
  2274. architecture-related constraints for signals used in the design.
  2275. Attributes are usually applied to signals that are used as outputs.
  2276.  
  2277. The associated signal has a D-type flip-flop as its memory
  2278. element. Equations generated from an ABEL-HDL state diagram will
  2279. assume a D-type register if this attribute is specified;
  2280. however, you will need to specify the 'invert' or 'buffer'
  2281. attribute to ensure consistent operation in different architectures.
  2282.  
  2283. See Also:       'BUFFER'        'REG_SR'
  2284.                 'INVERT'        'REG_T'
  2285.                 'NEG'           'XOR'
  2286.                 'REG'           ISTYPE
  2287.                 'REG_G'
  2288.                 'REG_JK'
  2289. *REG_G,A
  2290. 'reg_G'  D Flip-flop Gated              Syntax: 'reg_g'
  2291.          Clock Memory Element
  2292.  
  2293. Purpose/Usage:  Signal attributes are used to specify
  2294. architecture-related constraints for signals used in the design.
  2295. Attributes are usually applied to signals that are used as outputs.
  2296.  
  2297. The associated signal has a D-type flip-flop with gated clock as
  2298. its memory element. Equations generated from an ABEL-HDL state
  2299. diagram will assume this register type if the 'reg_g'
  2300. attribute is specified; however, you will need to specify the
  2301. 'invert' or 'buffer' attribute to ensure consistent operation
  2302. in different architectures.
  2303.  
  2304. See Also:       'BUFFER'        'REG_SR'
  2305.                 'INVERT'        'REG_T'
  2306.                 'NEG'           'XOR'
  2307.                 'REG'           ISTYPE
  2308.                 'REG_D'
  2309.                 'REG_JK'
  2310. *REG_JK,A
  2311. 'reg_JK'  JK Flip-flop Clocked          Syntax: 'reg_jk'
  2312.           Memory Element
  2313.  
  2314. Purpose/Usage:  Signal attributes are used to specify
  2315. architecture-related constraints for signals used in the design.
  2316. Attributes are usually applied to signals that are used as outputs.
  2317.  
  2318. The associated signal has a JK-type flip-flop as its memory
  2319. element. Equations generated from an ABEL-HDL state diagram will
  2320. assume this register type if the 'reg_jk' attribute is
  2321. specified; however, you will need to specify the 'invert' or
  2322. 'buffer' attribute to ensure consistent operation in different
  2323. architectures.
  2324.  
  2325. See Also:       'BUFFER'        'REG_SR'
  2326.                 'INVERT'        'REG_T'
  2327.                 'NEG'           'XOR'
  2328.                 'REG'           ISTYPE
  2329.                 'REG_D'
  2330.                 'REG_G'
  2331. *REG_SR,A
  2332. 'reg_SR'  SR Flip-flop Clocked          Syntax: 'reg_sr'
  2333.           Memory Element
  2334.  
  2335. Purpose/Usage:  Signal attributes are used to specify
  2336. architecture-related constraints for signals used in the design.
  2337. Attributes are usually applied to signals that are used as outputs.
  2338.  
  2339. The associated signal has an SR-type flip-flop as its memory
  2340. element. Equations generated from an ABEL-HDL state giagram will
  2341. assume this register type if the 'reg_sr' attribute is
  2342. specified; however, you will need to specify the 'invert' or
  2343. 'buffer' attribute to ensure consistent operation in different
  2344. architectures.
  2345.  
  2346.  
  2347. See Also:       'BUFFER'        'REG_JK'
  2348.                 'INVERT'        'REG_T'
  2349.                 'NEG'           'XOR'
  2350.                 'REG'           ISTYPE
  2351.                 'REG_D'
  2352.                 'REG_G'
  2353. *REG_T,A
  2354. 'reg_T'  T Flip-flop Clocked                    Syntax: 'reg_t'
  2355.          Memory Element
  2356.  
  2357. Purpose/Usage:  Signal attributes are used to specify
  2358. architecture-related constraints for signals used in the design.
  2359. Attributes are usually applied to signals that are used as outputs.
  2360.  
  2361. The associated signal has a T-type flip-flop as its memory
  2362. element. Equations generated from an ABEL-HDL state diagram will
  2363. assume this register type if the 'reg_t' attribute is
  2364. specified; however, you will need to specify the 'invert' or
  2365. 'buffer' attribute to ensure consistent operation in different
  2366. architectures.
  2367.  
  2368. See Also:       'BUFFER'        'REG_JK'
  2369.                 'INVERT'        'REG_SR'
  2370.                 'NEG'           'XOR'
  2371.                 'REG'           ISTYPE
  2372.                 'REG_D'
  2373.                 'REG_G'
  2374. *XOR,A
  2375. 'xor'  XOR Gate in Target Device                Syntax: 'xor'
  2376.  
  2377. Purpose/Usage:  Signal attributes are used to specify
  2378. architecture-related constraints for signals used in the design.
  2379. Attributes are usually applied to signals that are used as outputs.
  2380.  
  2381. The target architecture has an XOR gate, so one
  2382. top-level exclusive-OR operator is retained in the design
  2383. equations.
  2384.  
  2385. See Also:       'BUFFER'        'REG_JK'
  2386.                 'INVERT'        'REG_SR'
  2387.                 'NEG'           'T'
  2388.                 'REG'           ISTYPE
  2389.                 'REG_D'
  2390.                 'REG_G'
  2391. *--Compiler Directives--,A
  2392. *@ALTERNATE,A
  2393. @Alternate  Alternate Operator Set              Syntax: @alternate
  2394.  
  2395. Purpose/Usage:  @ALTERNATE brings an alternate set of operators into
  2396. effect that duplicate the normal ABEL-HDL operators. This is for
  2397. users who feel more comfortable with the alternate set because of
  2398. their familiarity with operators used in other languages. The
  2399. alternate operators remain in effect until the @STANDARD directive
  2400. is issued or the end of the module is reached.
  2401.  
  2402. ABEL-HDL Operator      Alternate Operator      Description
  2403.        !                      /                   NOT
  2404.        &                      *                   AND
  2405.        #                      +                   OR
  2406.        $                    : + :                 XOR
  2407.        !$                   : * :                 XNOR
  2408.  
  2409. Note that the use of the alternate operator set precludes use of
  2410. the ABEL-HDL addition, multiplication and division operators
  2411. because they represent the OR, AND and NOT logical operators in
  2412. the alternate set. The !, &, $ and !$ will still work when
  2413. @Alternate is in effect.
  2414.  
  2415. See Also:       @STANDARD
  2416. *@CONST,A
  2417. @Const  Constant Declarations   Syntax: @const  id = expression ;
  2418.                                 (id is a valid identifier)
  2419.                                 (expression is a valid expression)
  2420.  
  2421. Purpose/Usage:  @CONST allows new constant declarations to be made
  2422. in a source file outside the normal (and required) declarations
  2423. section.
  2424.  
  2425. The @CONST directive is intended to be used inside macros to define
  2426. internal constants. Constants defined with @CONST override previous
  2427. constant declarations. Declaring an identifier as a constant in this
  2428. manner constitutes an error if the identifier was used earlier in
  2429. the source file as something other than a constant (i.e., a macro,
  2430. pin, device).
  2431.  
  2432. Examples:       @CONST count = count + 1;
  2433.  
  2434. See Also:       "Special Constants" in the chapter "ABEL-HDL
  2435.                 Language Structure"
  2436.                 DECLARATIONS
  2437. *@DCSET,A
  2438. @Dcset  Don't Care Set                          Syntax: @dcset
  2439.  
  2440. Purpose/Usage:  ABEL-HDL uses don't-care conditions to help in
  2441. the optimization of partially-specified logic functions. Partially
  2442. specified logic functions are those that have less than 2n
  2443. significant input conditions, where n is the number of input
  2444. signals. This feature is most easily described by example.
  2445.  
  2446. Consider the following ABEL or ABEL-HDL truth table:
  2447.  
  2448.          truth_table ([i3,i2,i1,i0]->[f3,f2,f1,f0])
  2449.  
  2450.                  [ 0, 0, 0, 0]->[ 0, 0, 0, 1];
  2451.                  [ 0, 0, 0, 1]->[ 0, 0, 1, 1];
  2452.                  [ 0, 0, 1, 1]->[ 0, 1, 1, 1];
  2453.                  [ 0, 1, 1, 1]->[ 1, 1, 1, 1];
  2454.                  [ 1, 1, 1, 1]->[ 1, 1, 1, 0];
  2455.                  [ 1, 1, 1, 0]->[ 1, 1, 0, 0];
  2456.                  [ 1, 1, 0, 0]->[ 1, 0, 0, 0];
  2457.                  [ 1, 0, 0, 0]->[ 0, 0, 0, 0];
  2458.  
  2459. This truth table has four inputs, and therefore sixteen (2^4)
  2460. possible input combinations. The function specified, however,
  2461. only indicates eight significant input combinations. For each of
  2462. the design outputs (f3 through f0) the truth table specifies whether
  2463. the resulting value should be 1 or 0. For each output, each
  2464. of the eight individual truth table entries is a
  2465. member of either a set of true functions (on-set), or a set of 
  2466. false functions (off-set). Using output f3 for an example, we can 
  2467. list the eight input conditions as on-sets and off-sets as 
  2468. follows (maintaining the ordering of inputs as specified in the 
  2469. truth table above):
  2470.  
  2471.                   on-set of f3     off-set of f3
  2472.  
  2473.                   0 1 1 1          0 0 0 0
  2474.                   1 1 1 1          0 0 0 1
  2475.                   1 1 1 0          0 0 1 1
  2476.                   1 1 0 0          1 0 0 0
  2477.  
  2478. The remaining eight input conditions that do not appear in either
  2479. the on-set or off-set are then members of the dc-set, as
  2480. follows for f3:
  2481.  
  2482.                           dc-set of f3
  2483.  
  2484.                           0 0 1 0
  2485.                           0 1 0 0
  2486.                           0 1 0 1
  2487.                           0 1 1 0
  2488.                           1 0 0 1
  2489.                           1 0 1 0
  2490.                           1 0 1 1
  2491.                           1 1 0 1
  2492.  
  2493. These dc-set conditions can be used to minimize the logic for
  2494. the design, if the @dcset directive is specified in the design.
  2495.  
  2496. See Also:       The Manual, Section 4
  2497.                 @ONSET
  2498.                 TRUTH_TABLE
  2499. *@EXIT,A
  2500. @Exit  Exit Directive                           Syntax: @exit
  2501.  
  2502. Purpose/Usage:  The @exit directive causes AHDL to abort
  2503. processing of the source file with error bits set. (Error bits
  2504. allow the operating system to determine that a processing error
  2505. has occurred.)
  2506. *@EXPR,A
  2507. @Expr  Expression Directive     Syntax: @expr [ block ] expression;
  2508.                                 (block is a valid block of text)
  2509.                                 (expression is a valid expression)
  2510.  
  2511. Purpose/Usage:  @EXPR evaluates the given expression, and converts
  2512. it to a string of digits in the default base numbering system.
  2513. This string and the block are then inserted into the source file
  2514. at the point at which the @EXPR directive occurs. The expression
  2515. must produce a valid number.
  2516.  
  2517. Examples:      @expr {Addr} 10+4 ;
  2518.  
  2519. Assuming that the default base is base ten, this example causes
  2520. the text ABC3 to be inserted into the source file.
  2521. *@IF,A
  2522. @If  If Directive               Syntax: @if expression block
  2523.                                 (expression is a valid expression)
  2524.                                 (block is a valid block of text)
  2525.  
  2526. Purpose/Usage: @IF is used to include sections of ABEL source code
  2527. based on the value resulting from an expression. If the expression
  2528. is non-zero (logical true), the block of code is included as part
  2529. of the source. Dummy argument substitution is valid in the
  2530. expression.
  2531.  
  2532. Examples:     @IF (A>17) {C = D$F;}
  2533. *@IFB,A
  2534. @Ifb  If Blank Directive        Syntax: @IFB (arg) block
  2535.                                 (arg is an actual argument or a
  2536.                                 dummy argument preceded by a "?")
  2537.                                 (block is a valid block of text)
  2538.  
  2539. Purpose/Usage:  @IFB includes the text contained within the block
  2540. if the argument is blank (has 0 characters).
  2541.  
  2542. Examples
  2543.  
  2544.     @IFB ()
  2545.     { text here will be included with the rest of the source file. }
  2546.  
  2547.     @IFB ( hello )
  2548.     { this text will not be included }
  2549.  
  2550.     @IFB (?A)
  2551.     { this text will be included if no value is substituted for A. }
  2552.  
  2553. See Also:       @IFNB
  2554. *@IFDEF,A
  2555. @Ifdef  If Defined Directive            Syntax: @ifdef id block
  2556.                                         (id is an identifier)
  2557.                                         (block is a valid block of
  2558.                                         text)
  2559.  
  2560. Purpose/Usage:  @IFDEF includes the text contained within the block
  2561. if the identifier is defined.
  2562.  
  2563. Examples:     A pin 5 ;
  2564.               @IFDEF A {BASE = ^hE000;}
  2565.               "the above assignment is made
  2566.               because A was defined
  2567.  
  2568. See Also:     @IFNDEF
  2569. *@IFIDEN,A
  2570. @Ifiden  If Identical           Syntax: @ifiden (arg1,arg2) block
  2571.          Directive              (arg1,2 are actual arguments, or
  2572.                                 dummy argument names preceded by
  2573.                                 "?")
  2574.                                 (block is a valid block of text)
  2575.  
  2576. Purpose/Usage:  The text in the block is included in the source
  2577. file if arg1 and arg2 are identical.
  2578.  
  2579. Examples:       @ifiden (?A,abcd) { ?A device 'P16R4'; }
  2580.  
  2581. A device declaration for a P16R4 is made if the actual argument
  2582. substituted for A is identical to abcd.
  2583.  
  2584. See Also:       @IFNDEN
  2585. *@IFNB,A
  2586. @Ifnb  If Not Blank             Syntax: @ifnb (arg) block
  2587.        Directive                (arg is actual argument, or
  2588.                                 dummy argument names preceded by
  2589.                                 "?")
  2590.                                 (block is a valid block of text)
  2591.  
  2592. Purpose/Usage:  @IFNB includes the text contained within the block
  2593. if the argument is not blank, meaning that it has more than 0
  2594. characters.
  2595.  
  2596. Examples:       @IFNB ()
  2597.                 { ABEL source here will not be included with the
  2598.                 rest of the source file. }
  2599.  
  2600.                 @IFNB ( hello )
  2601.                 { this text will be included }
  2602.  
  2603.                 @IFNB (?A)
  2604.                 { this text will be included if a value is
  2605.                 substituted for A}
  2606.  
  2607. See Also:       @IFNDEN
  2608. *@IFNDEF,A
  2609. @Ifndef  If Not Defined Directive       Syntax: @ifndef id block
  2610.                                         (id is an identifier)
  2611.                                         (block is a valid block
  2612.                                         of text)
  2613.  
  2614. Purpose/Usage:  @IFNDEF includes the text contained within the
  2615. block if the identifier is undefined. Thus, if no declaration
  2616. (pin, node, device, macro or constant) has been made for the
  2617. identifier, the text in the block will be inserted into the
  2618. source file.
  2619.  
  2620. Examples:  @IFNDEF A {BASE = ^hE000;"
  2621.            "if A is not defined, the block is inserted in the text
  2622.  
  2623. See Also:       @IFB
  2624. *@IFNIDEN,A
  2625. @Ifniden  If Not Identical      Syntax: @ifniden (arg1,arg2) block
  2626.           Directive             (arg1,2 are actual arguments, or
  2627.                                 dummy argument names preceded by
  2628.                                 "?")
  2629.                                 (block is a valid block of text)
  2630.  
  2631. Purpose/Usage:  The text in the block is included in the source
  2632. file if arg1 and arg2 are not identical.
  2633.  
  2634. Examples:       @ifniden (?A,abcd) { ?A device 'P16R8'; }
  2635.  
  2636. A device declaration for a P16R8 is made if the actual argument
  2637. substituted for A is not identical to abcd.
  2638.  
  2639. See Also:       @IFIDEN
  2640. *@INCLUDE,A
  2641. @Include  Include Directive     Syntax: @include filespec
  2642.                                 (filespec is a string specifying
  2643.                                 the name of a file, where the
  2644.                                 specification follows the rules of
  2645.                                 the operating system being used)
  2646.  
  2647. Purpose/Usage:  @INCLUDE causes the contents of the file identified
  2648. by the file specification to be placed in the ABEL source file.
  2649. The inclusion will begin at the location of the @INCLUDE directive.
  2650. The file specification can include an explicit drive or path
  2651. specification that indicates where the file is to be found. If no
  2652. drive or path specification is given, the file is expected to
  2653. be on either the default drive or path.
  2654.  
  2655. Examples:       @INCLUDE 'macros.abl'   "file specification
  2656. *@IRP,A
  2657. @Irp  Indefinite Repeat Directive
  2658.                 Syntax: @irp dummy_arg ( arg [,arg]...  )  block
  2659.                 (dummy_arg is a dummy argument)
  2660.                 (arg is an actual argument, or a dummy argument
  2661.                 name preceded by a "?")
  2662.                 (block is a block of text)
  2663.  
  2664. Purpose/Usage:  @IRP causes the block to be repeated in the source
  2665. file n times, where n equals the number of arguments contained in
  2666. the parentheses. Each time the block is repeated, the dummy argument
  2667. takes on the value of the next successive argument.
  2668.  
  2669. Examples:       @IRP A (1, ^h0A,0) {B = ?A;}
  2670.  
  2671.                 results in:
  2672.  
  2673.                 B = 1 ;
  2674.                 B = ^H0A ;
  2675.                 B = 0 ;
  2676.  
  2677. which is inserted into the source file at the location of the @IRP
  2678. directive. Multiple assignments to the same identifier cause an
  2679. implicit OR to occur.
  2680.  
  2681. See Also:       @IRPC
  2682. *@IRPC,A
  2683. @Irpc  Indefinite Repeat, Character Directive
  2684.                 Syntax: @irpc dummy_arg (arg) block
  2685.                 (dummy_arg is a dummy argument)
  2686.                 (arg is an actual argument, or a dummy argument
  2687.                 name preceded by a "?")
  2688.                 (block is a valid block of text)
  2689.  
  2690. Purpose/Usage:  @IRPC causes the block to be repeated in the source
  2691. file n times, where n equals the number of characters contained in
  2692. arg. Each time the block is repeated, the dummy argument takes on
  2693. the value of the next successive character.
  2694.  
  2695. Examples:       @IRPC A (Cat)
  2696.                 {B = ?A ;
  2697.                 }
  2698.  
  2699.                 results in:
  2700.  
  2701.                 C ;
  2702.                 B = a ;
  2703.                 B = t ;
  2704.  
  2705.                 which is inserted into the source file at the
  2706.                 location of the @IRPC directive.
  2707.  
  2708. See Also:       @IRP
  2709. *@MESSAGE,A
  2710. @Message  Message Directive     Syntax: @message 'string'
  2711.                                 (string is any valid string)
  2712.  
  2713. Purpose/Usage:  @Message prints a message specified in string
  2714. to your monitor. This can be used to monitor the progress of
  2715. the parsing step of the language processor in AHDL2PLA, or as
  2716. an aid to debugging complex sequences of directives.
  2717.  
  2718. Examples:       @message 'Includes completed'
  2719. *@ONSET,A
  2720. @ONSET  Use On-Set             Syntax: @onset
  2721.  
  2722. Purpose/Usage:  @ONSET disables the effects of @DCSET for
  2723. subsequent truth tables and state diagrams.  You may enable
  2724. don't care optimization with another @DCSET directive.
  2725.  
  2726. See Also:     @DCSET
  2727. *@PAGE,A
  2728. @Page  Page Directive                   Syntax: @page
  2729.  
  2730. Purpose/Usage:  Send a form feed to the compiler listing file. 
  2731. If no listing is being created, @page has no effect.
  2732. *@RADIX,A
  2733. @Radix  Default Base                    Syntax: @radix expr ;
  2734.         Numbering Directive
  2735.  
  2736. (expr is a valid expression that produces the number 2, 8, 10 or
  2737. 16 to indicate a new default base numbering.)
  2738.  
  2739. Purpose/Usage:  @Radix is used to change the default base
  2740. numbering system. The default is base 10 (decimal). This directive
  2741. is useful when many numbers need to be specified in a base other
  2742. than 10. The @radix directive can be issued and all numbers that
  2743. do not have their base explicitly stated are assumed to be in the
  2744. new base. (See the chapter "Language Elements.")
  2745.  
  2746. Examples:       @radix 2 ;        "change default base to binary
  2747.                 @radix 10 ;       "change to decimal
  2748. *@REPEAT,A
  2749. @Repeat  Repeat Directive       Syntax: @repeat expr block
  2750.                                 (expr is a valid expression that
  2751.                                 produces a number)
  2752.                                 (block is a valid block of text)
  2753.  
  2754. Purpose/Usage:  @REPEAT causes the block to be repeated n times,
  2755. where n is specified by the constant expression.
  2756.  
  2757. Examples:       The following use of the repeat directive,
  2758.  
  2759.                 @repeat 5 {H,}
  2760.  
  2761. results in the text "H,H,H,H,H," being inserted into the source
  2762. file.
  2763. *@STANDARD,A
  2764. @Standard  Standard Operators           Syntax: @standard
  2765.            Directive
  2766.  
  2767. Purpose/Usage:  @Standard switches the operators in effect back to
  2768. the ABEL standard operators from the alternate set. The alternate
  2769. set is chosen with the @alternate directive.
  2770. *--Keywords--,A
  2771. *CASE,A
  2772. Case            Syntax: CASE [ expression : state_exp; ]
  2773.                              [ expression : state_exp; ]
  2774.                              [ expression : state_exp; ]
  2775.                                    :
  2776.                              ENDCASE ;
  2777.  
  2778. Purpose/Usage:  The CASE statement is used under the State_diagram
  2779. section to indicate the transitions of a state machine when there
  2780. are multiple possible conditions that affect the state transitions.
  2781. Examples:                           See Also:       STATE_DIAGRAM
  2782.         case a == 0 : 1 ;                           GOTO
  2783.         a == 1 : 2 ;                                IF-THEN-ELSE
  2784.         a == 2 : 3 ;                                WITH-ENDWIDTH
  2785.         a == 3 : 0 ;
  2786.         endcase ;
  2787. *CONSTANT,A
  2788. Constant Declarations
  2789.                 Syntax: id [, id ]...  =  expr [, expr ]...  ;
  2790.  
  2791. Purpose/Usage:  A constant declaration defines constants used in
  2792. a module. A constant is an identifier that retains a constant value
  2793. throughout a module. (id is an identifier naming a constant to be
  2794. used within a module, expr defines the constant value.)
  2795.  
  2796. Errors will occur when constant declarations are self-referencing;
  2797.  
  2798.                 X = X;
  2799.                 a = b;
  2800.                 b = a:
  2801.  
  2802. Examples:       X =.X.;             " X means 'don't care'
  2803.                 ADDR = [1,0,15];    " ADDR is a set with 3 elements
  2804.                 G = [1,2]+[3,4];    " set operations are legal
  2805.                 A = B & C;          " operations on identifiers are
  2806.                                       valid
  2807. *DECLARATIONS,A
  2808. Declarations                            Syntax: declarations 
  2809.  
  2810. Purpose/Usage:  A declaration is any valid declaration given after
  2811. the Declarations keyword. Declarations can be declared in
  2812. any part of the ABEL-HDL source file.
  2813.  
  2814. Signal Declarations
  2815.  
  2816. Example         module  Declare
  2817.                         declare device   'P16V8C';
  2818.                         A,B,Out1        pin 1,2,15;
  2819.                 Equations
  2820.                         Out1 = A & B;
  2821.                 Declarations
  2822.                         C,D,E,F,Out2    pin 3,4,5,6,16;
  2823.                         Temp1 = C & D;
  2824.                         Temp2 = E & F;
  2825.                 Equations
  2826.                         Out2 = Temp1  #  Temp2;
  2827.                 end;
  2828.  
  2829. =  Constant Declarations             Syntax: id = expr [, expr]...;
  2830.  
  2831. (id is an identifier naming a constant to be used within a module)
  2832. (expr is an expression defining the constant value)
  2833.  
  2834. Purpose/Usage:  The constant declaration statement defines
  2835. constants to be used within a module. A constant is an identifier
  2836. that retains a constant value throughout a module. The identifiers
  2837. listed on the left side of the equals sign are assigned the
  2838. values on the right side. There is a one-to-one correspondence
  2839. between the identifiers and the expressions listed and there must
  2840. be one expression for each identifier. The ending semicolon is
  2841. required.
  2842.  
  2843. Examples:  Some examples of valid constant declarations follow:
  2844.  
  2845.            X =.X.;                 " X means 'don't care'
  2846.            ADDR = [1,0,15];        " ADDR is a set with 3 elements
  2847.            G = [1,2]+[3,4];        " set operations are legal
  2848.            A = B & C;              " operations on identifiers are
  2849.                                     valid
  2850. See Also:       DECLARATIONS
  2851.                 "Special Constants" in the chapter "ABEL-HDL
  2852.                 Language Structure"
  2853.  
  2854. See Also:       demo1800.abl
  2855. *DEVICE,A
  2856. Device          Syntax: device_id DEVICE real_device ;
  2857.                 (device_id is an identifier used for the
  2858.                 programmer load filenames)
  2859.                 (real_device is a string describing the industry
  2860.                 part number of the real device represented by
  2861.                 device_id. Only supported devices can be specified.)
  2862.  
  2863. Purpose/Usage:  The device declaration is optional. It associates
  2864. the device name used in a module with an actual programmable
  2865. logic device on which designs are implemented. Device identifiers
  2866. used in device declarations should be valid filenames since JEDEC
  2867. files are created by appending the extension .jed to the identifier.
  2868. The ending semicolon is required.
  2869.  
  2870. Example         D1 DEVICE 'P16R4' ;
  2871. *ENABLE,A
  2872. ENABLE      obsolete keyword
  2873.  
  2874. Enable is no longer used.  If you want to specify output enable
  2875. equations use .OE
  2876.  
  2877. Example:      out.oe = !ena;
  2878.  
  2879. See Also:       .OE
  2880. *END,A
  2881. END                                     Syntax: end
  2882.  
  2883. The END statment is paired with the MODULE statment.
  2884. See the help section on MODULE for more information.
  2885.  
  2886. See Also:  MODULE
  2887. *EQUATIONS,A
  2888. Equations                               Syntax: equations
  2889.  
  2890. Purpose/Usage:  The equations statement defines the beginning of
  2891. a group of equations associated with a device. Equations specify
  2892. logic functions with Boolean algebra. An ending semicolon is
  2893. required after each equation. The equations following the equation
  2894. statement are any valid ABEL equations as described in the chapter 
  2895. "ABEL-HDL Language Structure."
  2896.  
  2897. Examples:       equations          See Also:       MODULE
  2898.                 A = B & C # A ;                    STATE_DIAGRAM
  2899.                 [W,Y] = 3 ;                        TRUTH_TABLE
  2900.                 !F = B == C ;                      Chapter 5
  2901. *FLAG,A
  2902. FLAG       obsolete
  2903.  
  2904. The FLAG keyword was once used to specify command line options
  2905. from withint the ABEL source file.  The ABEL-HDL method for doing
  2906. this is with the OPTIONS keyword.
  2907.  
  2908. Example:        OPTIONS '-red group fixed'
  2909.  
  2910. See Also:       OPTIONS
  2911. *FUSES,A
  2912. Fuses           Syntax: fuses
  2913.                         fuse_number = fuse value;
  2914.                                 or
  2915.                         fuse_set = fuse value ;
  2916.  
  2917.                 (fuse_number is the fuse number obtained from
  2918.                 logic diagram of device)
  2919.                 (fuse_number_set is the set of fuse numbers
  2920.                 contained in square brackets)
  2921.                 (fuse_value is the number indicating fuse(s) states)
  2922.  
  2923. Purpose/Usage:  The FUSES section of the source file provides a
  2924. means for explicitly declaring the state of any fuse in the
  2925. associated device. Fuse values appearing on the right side of
  2926. the = symbol can be any number. In the case of only a single
  2927. fuse number being specified on the left side of the = symbol,
  2928. the least significant (LSB) bit of the fuse value is assigned
  2929. to the fuse; a 0 indicates a fuse intact, and a 1 indicates a
  2930. fuse blown. In the case of multiple fuse numbers, the fuse value
  2931. is expanded to a binary number and truncated or given leading
  2932. zeros to obtain fuse values for each fuse number.
  2933.  
  2934. Examples:       FUSES                See Also:   MODULE
  2935.                 3552 = 1 ;                       orxor.abl
  2936.                 [3478...3491] = ^Hff;            cnt10rom.abl
  2937. *GOTO,A
  2938. Goto    Syntax: GOTO state_exp ;
  2939.  
  2940.         (state_exp is an expression identifying the next state,
  2941.         optionally followed by WITH_ENDWITH transition equations.
  2942.  
  2943. Purpose/Usage:  The GOTO statement causes an unconditional
  2944. transition to the state indicated by state_exp. GOTO statements
  2945. can be nested with If-Then-Else, CASE and With-endwith
  2946. statements.
  2947.  
  2948. Examples:       GOTO 0 ; "goto state 0
  2949.                 GOTO x+y ;  "goto the state x + y
  2950.  
  2951. See Also:       STATE_DIAGRAM
  2952.                 CASE
  2953.                 IF-THEN-ELSE
  2954.                 WITH-ENDWITH
  2955. *IF-THEN-ELSE,A
  2956. If-Then-Else    Syntax: IF-THEN-ELSE
  2957.  
  2958.                         IF expression THEN state_exp
  2959.                         [ ELSE state_exp ] ;
  2960.  
  2961. Chained IF-THEN-ELSE    IF expression THEN state_expression
  2962.  
  2963.                         ELSE IF expression THEN state_expression
  2964.                         ELSE IF expression THEN state_expression
  2965.                         ELSE state_expression ;
  2966.  
  2967.         (expression is any valid expression)
  2968.         (state_exp is an expression identifying the next state,
  2969.         optionally followed by WITH_ENDWITH transition equations.
  2970.  
  2971. Purpose/Usage:  The IF-THEN-ELSE statement is an easy way to
  2972. describe the progression from one state to another in a state
  2973. machine. The expression following the IF keyword is
  2974. evaluated, and if the result is true, the machine goes
  2975. to the state indicated by the state_exp following the
  2976. THEN keyword. If the result of the expression is
  2977. false, the machine advances to the state indicated by
  2978. the ELSE keyword.
  2979.  
  2980. Additional IF-THEN-ELSE statements can be chained to the ELSE
  2981. clause of an IF-THEN-ELSE statement. Any number of IF-THEN-ELSE
  2982. statements can be chained, but the final statement must end
  2983. with a semicolon.
  2984.  
  2985. Examples
  2986.        B then 2 ; "if A equals B goto state 2
  2987.        if x-y then j else k; "if x-y is not 0 goto j, else goto k
  2988.        if A then b*c; "if A is true (non-zero) goto state b*c
  2989.  
  2990. Chained IF-THEN-ELSE               See Also:       STATE_DIAGRAM
  2991.                                                    CASE
  2992.                 if a then 1                        GOTO
  2993.                   else                             WITH-ENDWITH
  2994.                 if b then 2
  2995.                   else
  2996.                 if c then 3
  2997.                   else 0 ;
  2998. *IN,A
  2999. IN      obsolete PIN modifier keyword
  3000.  
  3001. The IN keyword is no longer supported.
  3002. See Also:     Utilities-PLAsplit in the manual for a
  3003.               method of splitting multiple device designs.
  3004. *ISTYPE,A
  3005. Istype  Attribute specifier
  3006.         Syntax: signal [,signal]...  ISTYPE 'attr [,attr]...';
  3007.                         or
  3008.              signal [,signal]... pin ISTYPE 'attr [,attr]...';
  3009.  
  3010. (signal is a pin or node identifier)
  3011. (attr is a string that specifies attributes for the signal(s).
  3012. Valid strings are listed in the manual.)
  3013.  
  3014. Purpose/Usage:  The ISTYPE statement defines attributes or
  3015. characteristics of pins and nodes for devices with programmable
  3016. characteristics. Signal attributes are specified through the use
  3017. of the ISTYPE statement. The syntax for signal declarations
  3018. allow pin or node declarations to be combined with ISTYPE
  3019. statements in a single declaration. Valid attributes are 'buffer',
  3020. 'com', 'invert', 'neg', 'pos', 'reg', 'reg_d', 'reg_g',
  3021. 'reg_jk', 'reg_sr', 'reg_t', and 'xor'.
  3022.  
  3023. Examples:       F0, A istype 'neg, reg' ;
  3024.  
  3025.                 This declaration statement defines F0 and A as
  3026.                 negative polarity latches. Both F0 and A had to
  3027.                 have been defined previously in the module.
  3028.  
  3029.                 The following signal declarations are all valid
  3030.  
  3031.                 q3,q2,q1,q0    NODE   ISTYPE 'reg_SR';
  3032.                 Clk,a,b,c      PIN    1,2,3,4;
  3033.                 reset          PIN;
  3034.                 reset          ISTYPE 'com';
  3035.                 Output         PIN 15    ISTYPE 'reg,invert';
  3036.  
  3037. See Also:       "Dot Extensions" and "Attribute Assignment" in the 
  3038.                 chapter "ABEL-HDL Language Structure"
  3039.                 NODE
  3040.                 PIN
  3041. *LIBRARY,A
  3042. Library         Syntax: LIBRARY 'name'
  3043.  
  3044.                 (name is a string that specifies the name of the 
  3045.                 file, excluding the file extension)
  3046.  
  3047. Purpose/Usage: The LIBRARY statement causes the contents of the
  3048. indicated file to be inserted in the ABEL source file. The
  3049. insertion begins at the point where the LIBRARY statement is
  3050. located. The file extension of '.inc' is appended to the name
  3051. specified, and the resulting file name is searched for. If no
  3052. file is found, ABEL will attempt to find the file in the
  3053. abel4lib.inc library file. Refer to "Utilities" in the chapter
  3054. "Using ABEL Processing Modules" for more information on
  3055. libraries. 
  3056.  
  3057. See Also:       MODULE
  3058. *MACRO,A
  3059. Macro
  3060. Syntax: macro_id MACRO [ ( dummy_arg[,dummy_arg]...  ) ] {block} ;
  3061.  
  3062. (macro_id is an identifier naming the macro)
  3063. (dummy_arg is a dummy argument)
  3064. (block is a block)
  3065.  
  3066. Purpose/Usage:  The macro declaration statement defines a macro.
  3067. Macros are used to include ABEL code in a source file without typing
  3068. or copying the code everywhere it is needed. A macro is defined once
  3069. in the declarations section of a module and then used anywhere
  3070. within the module as frequently as needed. Macros can be used
  3071. only within the module in which they are declared.
  3072.  
  3073. Examples:      The dummy arguments used in the declaration of the
  3074. macro allow different actual arguments to be used in the macro
  3075. each time it is invoked in the module. Within the macro, dummy
  3076. arguments are preceded by a "?" to indicate that an actual
  3077. argument will be substituted for the dummy by the ABEL compiler.
  3078.  
  3079.                 D = NAND3 (Clock,Hello,Busy)  ;
  3080.  
  3081.                 brings the text in the block associated with NAND3
  3082.                 into the code, with Clock substituted for ?A,
  3083.                 Hello for ?B and Busy for ?C. This results in
  3084.  
  3085.                 D = ! (  Clock  &  Hello  &  Busy  )  ;
  3086.  
  3087.                 which is the three input NAND.
  3088.  
  3089. See Also:       "Arguments and Argument Substitution" in the
  3090.                     chapter "ABEL-HDL Language Structure"
  3091.                 DECLARATIONS
  3092. *MODULE,A
  3093. Module
  3094.  
  3095. Syntax: MODULE modname  [  (  dummy_arg  [,dummy_arg]  ...   )  ]
  3096. (modname is a valid identifier naming the module)
  3097. (dummy_arg is a dummy argument)
  3098.  
  3099. Purpose/Usage:  The module statement defines the beginning of
  3100. a module and must be paired with an END statement that defines
  3101. the module's end.
  3102.  
  3103. Example         MODULE MY_EXAMPLE  (A,B)
  3104.                   :
  3105.                   :
  3106.                   C = ?B + ?A
  3107.                   :
  3108.                   :
  3109.                 END
  3110.  
  3111. In the module named MY_EXAMPLE, C will take on the value of "A + B"
  3112. where A and B contain actual arguments passed to the module when
  3113. the language processor is invoked.
  3114. *NODE,A
  3115. Node    Syntax: [!]node_id[,[!]node_id...] NODE [node#[,node#]] 
  3116.                 [ISTYPE 'attr'];
  3117.  
  3118.         (node_id is an identifier used for reference to a node in a
  3119.         logic design)
  3120.         (node # is the node number on the real device)
  3121.         (attr is a string that specifies node attributes for devices
  3122.         with programmable nodes. Valid attributes are listed under
  3123.         'attr' in the chapter "Language Reference.")
  3124.  
  3125. Purpose/Usage:  The NODE keyword is used to declare those signals
  3126. that may be assigned to buried nodes within a device.
  3127.  
  3128. Example         The node attribute string, attr, specifies node
  3129. attributes. Attributes can be defined in this way or with the
  3130. ISTYPE statement.
  3131.  
  3132.                 The node declaration,
  3133.  
  3134.                 B NODE istype 'reg' ;
  3135.  
  3136.                 specifies that node B is a buried flip-flop.
  3137.  
  3138. See Also:       ISTYPE
  3139.                 PIN
  3140.                 MODULE
  3141.                 "Architecture-independent Designs" in the chapter
  3142.                 "Design Considerations"
  3143. *OPTIONS,A
  3144. Options         Syntax: OPTIONS 'option [, option ]...'    [;]
  3145.  
  3146. Purpose/Usage:  Provides an alternate method of defining
  3147. processing options that affect the way in which the source file
  3148. is processed by the language processor. Options are normally
  3149. passed from the command line or from a batch file when the
  3150. language processor is invoked. Options entered from the
  3151. command line override options specified with the Options statement.
  3152.  
  3153. Options Not   -i, -o, -device, -vectors, -syntax, -silent, -list,
  3154. Allowed       and -errlog are not allowed. Complete information on
  3155.               command line options is in the chapter "Using ABEL".
  3156.  
  3157. Example       options '-trace wave';
  3158.  
  3159. might be used to simulate the design with the results in wave
  3160. format.
  3161.  
  3162. See Also:       MODULE
  3163. *PIN,A
  3164. Pin             Syntax: [!]pin_id[,[!]pin_id...] PIN [pin#[,pin#]]
  3165.                 [ISTYPE 'attr'];
  3166.  
  3167.                 (pin_id is an identifier used to refer to a pin
  3168.         throughout a module) (pin# is the pin number on
  3169.         the real device) (attr is a string that
  3170.         specifies pin attributes for devices with
  3171.         programmable pins. Valid attributes are listed
  3172.         under 'attr' in the chapter "Language Reference.
  3173.         ") 
  3174.  
  3175. Purpose/Usage:  The PIN keyword is used to declare those input and
  3176. output signals that must eventually be available on
  3177. a device I/O pin. The declaration can also specify pin attributes.
  3178.  
  3179. When lists of pin_ids and pin #s are used in one pin declaration
  3180. statement, there is a one-to-one correspondence between the
  3181. identifiers and numbers given. There must be one pin number
  3182. associated with each identifier listed.
  3183.  
  3184. Example         !Clock, Reset, S1 PIN 12,15,3;
  3185.  
  3186. This pin declaration assigns the pin name, Clock, to pin 12; Reset
  3187. to pin 15; and S1 to pin 3.
  3188.  
  3189. The use of the "!' operator in pin declarations indicates that the
  3190. pin is active-low, and will be automatically negated when processed
  3191. by the language processor.
  3192.  
  3193. Errors          The following are pin assignment errors that cause
  3194. errors in ABEL software:
  3195.  
  3196. Assigning the same pin number to two signals (A1, A0 pin 17,17;).
  3197.  
  3198. Assigning invalid pin numbers when a device has been specified
  3199. (Q3 pin 28 in a 20 pin device). The fitter for a device can
  3200. optionally correct invalid pin assignments.
  3201.  
  3202. See Also:       ISTYPE
  3203.                 NODE
  3204.                 MODULE
  3205.                 Architecture-independent Designs" in the chapter
  3206.                 "Design Considerations"
  3207. *PROPERTY,A
  3208. Property        Syntax:    property_id  PROPERTY 'string' ;
  3209.  
  3210. Purpose/Usage: The PROPERTY declaration statement allows you
  3211. to specify additional design information associated with an
  3212. external processing module (such as a specialized device fitter).
  3213.  
  3214. The property_id is used to identify properties relevant to
  3215. specific external modules, and the string argument contains the
  3216. actual property data.
  3217.  
  3218. See Also:       amd_cm8.abl
  3219. *STATE_DIAGRAM,A
  3220. State_diagram   Syntax: State_diagram state_reg
  3221.                            [-> state_out]
  3222.                         [STATE state_exp : [equation]
  3223.                            [equation]
  3224.                           :
  3225.                           :
  3226.                           :
  3227.                         trans_stmt  ...]
  3228.  
  3229. (state_reg is an identifier or set of identifiers specifying the
  3230. signals that determine the current state of the machine.)
  3231. (state_out is an identifier or set of identifiers that determine
  3232. the next state of the machine (for designs with external registers)
  3233. (state_exp is an expression giving the current state)
  3234. (equation is a valid equation that defines the state machine
  3235. outputs)
  3236. (trans_stmt is an IF-THEN-ELSE, CASE or GOTO statement, optionally
  3237. followed by WITH-ENDWITH transition equations.)
  3238.  
  3239. Purpose/Usage:  The state description describes the operation
  3240. of a sequential state machine implemented with programmable
  3241. logic. An alternative to describing logic with Boolean
  3242. equations or truth tables is to use a state description.
  3243.  
  3244.  
  3245. Examples:       Following is an example of a simple state machine
  3246. that advances from one state to the next, setting the output
  3247. to the current state, and then starting over again. Note
  3248. that the states do not need to be specified in any
  3249. particular order. Note also that state 2 is identified
  3250. by an expression rather than by a constant. The
  3251. state register is composed of the signals a and b.
  3252.  
  3253.                 state_diagram [a,b]
  3254.                 state 3    : y = 3 ;
  3255.                   goto 0 ;
  3256.                 state 1    : y = 1 ;
  3257.                   goto 2 ;
  3258.                 state 0       : y = 0 ;
  3259.                   goto 1 ;
  3260.                 state 1 + 1   : y = 2 ;
  3261.                   goto 3 ;
  3262.  
  3263. See Also:        CASE
  3264.                  IF-THEN-ELSE
  3265.                  GOTO
  3266.                  WITH-ENDWITH
  3267.                  EQUATIONS
  3268.                  TRUTH_TABLES
  3269.                  MODULE
  3270.                  The chapter "Design Considerations"
  3271. *TEST_VECTORS,A
  3272. Test_vectors    Syntax: TEST_VECTORS [note]
  3273.                         (inputs -> outputs)
  3274.  
  3275.                         [invalues -> outvalues;]
  3276.                           :
  3277.  
  3278. (note is a string used to describe the test vectors)
  3279. (inputs is an identifier or set of identifiers specifying the
  3280. names of the input signals to the device, or feedback output
  3281. signals)
  3282. (outputs is an identifier or set of identifiers specifying the
  3283. output signals from the device)
  3284. (invalues is an input value or set of input values)
  3285. (outvalues is an output value or set of output values resulting
  3286. from the given inputs)
  3287.  
  3288. Purpose/Usage:  Test vectors specify the expected functional
  3289. operation of a logic device by explicitly defining the device
  3290. outputs as functions of the inputs. Test vectors are used
  3291. for simulation of an internal model of the device and
  3292. functional testing of the programmed device.
  3293.  
  3294.  
  3295. Examples:       Following is a simple test vectors table:
  3296.  
  3297.                 TEST_VECTORS
  3298.                 ( [A,B] -> [C, D] )
  3299.  
  3300.                 [0,0] -> [1,1] ;
  3301.                 [0,1] -> [1,0] ;
  3302.                 [1,0] -> [0,1] ;
  3303.                 [1,1] -> [0,0] ;
  3304.  
  3305. The following test vector table is equivalent to the table
  3306. specified above because values for sets can be specified with
  3307. numeric constants.
  3308.  
  3309.                 TEST_VECTORS
  3310.                 ( [A,B] -> [C,D] )
  3311.  
  3312.                 0 -> 3 ;
  3313.                 1 -> 2 ;
  3314.                 2 -> 1 ;
  3315.                 3 -> 0 ;
  3316.  
  3317. If the signal identifiers used in the test vector header were
  3318. declared as active-low in the declaration section, then constant
  3319. values specified in the test vectors will be inverted accordingly.
  3320.  
  3321. See Also:    MODULE
  3322.              "Simulating a Design" in the chapter "Using ABEL
  3323.                   Processing Modules"
  3324.              "Test Vectors and Simulation" in the chapter 
  3325.                   "Advanced Features"
  3326. *TITLE,A
  3327. Title                   Syntax: title 'string'
  3328.  
  3329. Purpose/Usage:  The title statement is used to give a module a title
  3330. that will appear as a header in both the programmer load file and
  3331. documentation file created by the language processor. The title
  3332. is specified in the string following the keyword, TITLE. The
  3333. string is opened and closed by an apostrophe. Use of the title
  3334. statement is optional.
  3335.  
  3336. Examples:       An example of a title statement that spans three
  3337. lines and describes the logic design follows:
  3338.  
  3339.                 module m6809a
  3340.                 title '6809 memory decode
  3341.                 Jean Designer
  3342.                 Data I/O Corp Redmond WA'
  3343.  
  3344. See Also:       MODULE
  3345. *TRACE,A
  3346. Trace           (inputs -> outputs) ;
  3347.  
  3348. Purpose/Usage:  The TRACE statement is used to control the display
  3349. features of the PLASim and JEDSim simulation modules. TRACE
  3350. statements can be placed before a test vector section, or imbedded
  3351. within a sequence of test vectors.
  3352.  
  3353. Example         TRACE           (  [A,B] -> [C  ]  >;
  3354.                 TEST_VECTORS    (  [A,B] -> [C,D]  >
  3355.                                      0   ->   3     ;
  3356.                                      1   ->   2     ;
  3357.                 TRACE           (  [A,B] -> [  D]  >;
  3358.                                      2   ->   1     ;
  3359.                                      3   ->   0     ;
  3360. *TRUTH_TABLE,A
  3361. TRUTH_TABLE     Syntax: 
  3362.  
  3363.                     TRUTH_TABLE ( inputs -> outputs )
  3364.                                     or
  3365.                     TRUTH_TABLE ( inputs :> reg_outs )
  3366.                                     or
  3367.                     TRUTH_TABLE ( inputs :> reg_outs -> outputs )
  3368.  
  3369. (inputs are the inputs to the logic function)
  3370. (outputs are the outputs from the logic function)
  3371. (reg_outs are the registered (clocked) outputs)
  3372. ( -> indicates the input to output function for combinational
  3373. outputs.)
  3374. (:> indicates the input to output function for registered outputs.)
  3375.  
  3376. Purpose/Usage:  Truth tables specify outputs as functions of
  3377. different input combinations in a tabular form. Truth tables are
  3378. another way to describe logic designs with ABEL and may be used in
  3379. lieu of, or in addition to, equations and state diagrams. A truth
  3380. table is specified with a header describing the format of the table
  3381. and with the table itself.
  3382.  
  3383. See Also:       MODULE
  3384.                 EQUATIONS
  3385.                 STATE_DIAGRAM
  3386.                 @DCSET
  3387.         @ONSET
  3388.                 led1.abl
  3389.                 led7.abl
  3390. *WHEN-THEN-ELSE,A
  3391. WHEN-THEN-ELSE  Syntax: [ WHEN condition
  3392.                           THEN ] [  ! ] element=expression
  3393.                         [ ELSE equation ];
  3394.  
  3395.                                 or
  3396.  
  3397.                         [ WHEN condition
  3398.                           THEN ] equation
  3399.                         [ ELSE equation ];
  3400.  
  3401. (condition is any valid expression)
  3402. (element is an identifier naming a signal or set of signals, or an
  3403. actual set, to which the value of the expression will be assigned)
  3404. (expression is any valid expression)
  3405.  
  3406. Purpose/Usage:  This statement is used in equations. Equations use
  3407. the two assignment operators = (combinatorial) and := (registered).
  3408.  
  3409. Example WHEN B THEN A=B; ELSE A=C;
  3410.  
  3411. See Also:       "Equations" in the chapter "Language Reference"
  3412. *WITH-ENDWITH,A
  3413. WITH-ENDWITH    Syntax: transition_stmt state_exp WITH equation
  3414.                         [equation]
  3415.                           :
  3416.                         ENDWITH ;
  3417.  
  3418. (transition_stmt is an IF, ELSE, or CASE statement)
  3419. (state_exp is the next state)
  3420. (equation is an equation for state machine outputs)
  3421.  
  3422. Purpose/Usage:  The WITH-ENDWITH statement is used under the
  3423. State_diagram section and, when used in conjunction with the
  3424. IF-THEN or CASE statement, allows output equations to be
  3425. written in terms of transitions.
  3426.  
  3427. Examples:       state 5 : IF a == 1 then 1
  3428.                 WITH x : = 1 ;
  3429.                      y : = 1 ;
  3430.                 ENDWITH;
  3431.                 ELSE 2   WITH
  3432.                      x : = 0 ;
  3433.                      y : = 1 ;
  3434.                 ENDWITH ;
  3435.  
  3436. See Also:       STATE_DIAGRAM
  3437.                 CASE
  3438.                 GOTO
  3439.                 IF-THEN-ELSE
  3440. *XOR_FACTORS,A
  3441. XOR_FACTORS     Syntax: XOR_Factors
  3442.                         signal name = xor_factors
  3443.  
  3444. Purpose/Usage: The XOR_Factor section allows you to specify a 
  3445. Boolean expression that is to be factored out of, and XORed with, 
  3446. the sum-of-products reduced equations. This can result in dramatic 
  3447. reductions in the size of the reduced equations. The XOR_Factor 
  3448. feature is a technique for converting a sum of products (SOP) 
  3449. equation into an exclusive OR (XOR) equation. The resulting 
  3450. equation contains the sum of product functions, which when 
  3451. exclusive ORed together have the same function as the original 
  3452. equation. The XOR_Factor equation you provide will be divided into 
  3453. the original equation, placing the factor (or its complement) on 
  3454. one side of the XOR and the remainder on the other.
  3455.  
  3456. Examples:      As an example of factors, consider the following:
  3457.  
  3458.                !Q16 =    A &   B &      !D
  3459.                        # A &   B &  !C
  3460.                        #      !B &   C & D
  3461.                        #!A &         C & D
  3462.  
  3463.                The following is a good example.
  3464.  
  3465.                XOR_Factors
  3466.  
  3467.                Q16 = A & B;
  3468.  
  3469. See also        octalf.abl
  3470. *====Design Process Help====,A
  3471. *--ABEL4--,A
  3472. *Auto Update,A
  3473. Auto Update
  3474.  
  3475. Purpose/Usage: This ABEL Design Environment feature lets you
  3476. choose an end result without concern for whether all the
  3477. previous design steps have been completed; ABEL will complete
  3478. those steps if necessary using the current options for each
  3479. step. When Auto update is turned off in the Defaults menu, each
  3480. design step must be explicitly invoked and no warnings are
  3481. issued if previous steps have not been completed. 
  3482.  
  3483. Example:        If you had compiled your source file but hadn't
  3484. optimized it and then picked PLDmap, ABEL would automatically
  3485. optimize and then map your design.
  3486.  
  3487. *--SmartPart--,A
  3488. *SmartPart Design Process,A
  3489. SmartPart Design Process
  3490.  
  3491. SmartPart is a combination of automatic device selection and 
  3492. automatic device fitting (pin assigning).
  3493.  
  3494. Introduction
  3495.  
  3496. The SmartPart Device Selector is used to access a database
  3497. containing over 3000 parts, representing 250 architectures. The
  3498. Selector will choose candidate parts that your design is likely
  3499. to fit in. Some of the criteria used to make that selection can
  3500. be set by the user. The "SmartPart-Modify Criteria..." dialog
  3501. box is used to specify criteria used in the device selection
  3502. process. For example, you can specify which manufacturers to
  3503. use and the pin count configurations as criteria for device
  3504. selection. Once the Selector has suggested some architectures,
  3505. you can use the SmartPart Fitter to determine which of those
  3506. parts actually fit your design, and to do the pin assignments.
  3507. Finally, you can select one of the parts that actually fit to
  3508. generate your architecture-specific programmer load files
  3509. (typically JEDEC). 
  3510.  
  3511. Smartpart Device Selector Criteria
  3512.  
  3513. Set the SmartPart Device Selector selection criteria with the
  3514. "SmartPart-Modify Criteria..." dialog box. Specifying no
  3515. criteria tells the Selector to use all possible conbinations.
  3516. The more criteria you specify, the faster the selector will run.
  3517.  
  3518.  
  3519. Running the Smartpart Device Selector
  3520.  
  3521. To invoke the SmartPart Device Selector, choose "SmartPart-
  3522. Database Search". If you have a simple design, with few or no
  3523. selection criteria specified, the search will take longer
  3524. because the design will fit into many architectures. 
  3525.  
  3526. Smartpart Device Selector Results
  3527.  
  3528. Once the selector is done, you can view the devices it selected
  3529. in two different ways. You can choose "View-Device Candidates"
  3530. to see the list of devices, or you can choose "SmartPart-
  3531. (Fit)Options..." and press F2 on the "Device:" field to see the
  3532. list generated by the Selector. At this point, you can choose
  3533. any of these devices by using the arrow keys and press Enter. 
  3534.  
  3535. Smartpart Fitter
  3536.  
  3537. To run the SmartPart Fitter, you have two choices. To invoke
  3538. the Fitter on the single device specified in the "Device:"
  3539. field (which can be chosen as above), select "SmartPart-Fit".
  3540. If you wish to run the Fitter on the entire list of devices
  3541. that the selector generated, choose "SmartPart-Fit from List."
  3542. The Fitter is fairly fast, so running it on a list of devices
  3543. doesn't take very long. 
  3544.  
  3545. Partmap
  3546.  
  3547. Creating the JEDEC file:          
  3548. If you used the "SmartPart-Fit" option to run the Fitter on a
  3549. single device and the Fitter ran succesfully, you can
  3550. immediately choose "PartMap-PLDmap" to generate a JEDEC file.
  3551. If you used the "SmartPart-Fit from List" option you can view
  3552. the parts that actually fit by selecting "PartMap-
  3553. (PLDmap)Options..." and press F2 on the "Device:" field. Once
  3554. you have chosen which part you want to use, run "PartMap-
  3555. PLDmap" to create your JEDEC file. 
  3556.  
  3557. *Speeding the Database Search,A
  3558. Speeding Up the Database Search
  3559.  
  3560. The selector has two phases of database searching. First it
  3561. finds a device architecture, then it collects the devices for
  3562. that architecture to help generate a chip report. If you do not
  3563. want a chip report, you can use the alternate device database
  3564. that contains only device architectures and one dummy device
  3565. per architecture. The alternate database is called "mini" and
  3566. should have been installed in the same directory as the full
  3567. database "devices" (see environment variable ABEL4DB for
  3568. location). To use the architecture-only database, either change
  3569. ABEL4DB to point to the mini database or enter the pathname for
  3570. the mini database in the "Database Directory:" field in the
  3571. SmartPart Selector Criteria form. Note that you cannot use any
  3572. criteria when using the mini database and that the chip report
  3573. will only list dummy devices for potential architectures. 
  3574.  
  3575. *Getting Chip Details,A
  3576. Getting Chip Information Details
  3577.  
  3578. The default mode of the SmartPart Device selector is to
  3579. generate a candidate list of device architectures for a given
  3580. design only. To see the chips for those architectures and thier
  3581. details, you must specify a file in the "Report File Name:"
  3582. field of the SmartPart Modify Criteria form (the default
  3583. extension will be *.chp). Note that specifying a sorting order
  3584. without specifying a chip report file will cause the chip
  3585. report to go out to the screen. 
  3586.  
  3587. See also: Sorting Chip Report
  3588.           Accessing User Fields
  3589.           Alternate Chip Report Formats
  3590.  
  3591. *Sorting Chip Report,A
  3592. Sorting the Chip Report
  3593.  
  3594. The default sorting order for a chip report will be in the
  3595. order selected, which is usually sorted by the device
  3596. architecture name. To change the sorting order so that the
  3597. fastest or cheapest devices are on the top of the list, you
  3598. must specify a sorting order in the "Sort Order" field of the
  3599. SmartPart Selector Criteria form. The sort order is a list of
  3600. up to four field names optionally followed by "up" or "down".
  3601. The records will be sorted by the first (leftmost) field name
  3602. followed by the next field name if the values are identical.
  3603. The field names are "PINS PRICE SPEED SETUP HOLD MAN PARTNAME
  3604. DEVICE ...", the sorting order is normally "up" which is
  3605. smallest value first. 
  3606.  
  3607. Examples:  getting the fastest chip to the top of the report:
  3608.  
  3609.            Sort Order: SPEED
  3610.               
  3611.             group all devices by manufacturer with their largest
  3612.             devices first:
  3613.  
  3614.            Sort Order: MAN PINS DOWN
  3615.  
  3616. See Also: Accessing User Fields
  3617.           Alternate Chip Report Formats
  3618.  
  3619. *Alternate Chip Report Formats,A
  3620. Alternate Chip Report Formats
  3621.  
  3622. The default "chip report" format will omit the user fields from
  3623. the report and use 132 column mode (each record is one line
  3624. long). The command line flag --C will use the 132 column mode
  3625. and include the user fields (each record is 2 lines long). The
  3626. command line flag --B will use a 5 line 80 column format that
  3627. includes the user fields. All three formats are compatible with
  3628. DEVMRG and DEVBLD. 
  3629.  
  3630. See Also:  Building a New Database
  3631.            Updating an Existing Database
  3632.            Modifying the Database
  3633.  
  3634. *Accessing User Fields,A
  3635. Accessing the User fields in the Chip Report
  3636.  
  3637. The user-defined fields in the database are normally omitted
  3638. from the "chip report" file. You must use a special command
  3639. line flag to gain access to the data. 
  3640.  
  3641. Use the command line flag --C to get this format: 
  3642.  
  3643. $C2 mfg  part-name devtype ... <normal 132 column info>
  3644. $USER desirability user1 user2 stock_name user3
  3645.  
  3646. Desirability is an encoding on how easy is it for your
  3647. company to get this part
  3648.  
  3649. Stock_name is your company's identification for the part
  3650.  
  3651. user1 and user2 are user-defined integer fields
  3652.  
  3653. user3 is a user-defined string field.
  3654.  
  3655. When entering the user line in a report file to build/modify a
  3656. database, note that the stock_name is a string of 40 characters
  3657. without whitespace (no spaces or tabs), the user3 field will
  3658. accept anything up to 40 characters. (Hint: use "_" in the
  3659. stock_name if separation is required).
  3660.  
  3661. See Also: Using Desirability
  3662.  
  3663. *Using Desirability,A
  3664. How to use Desirability in the Database
  3665.  
  3666. The desirability field in the "chip" records is an integer field to
  3667. help encode the favorability of some devices over others. There
  3668. are no enforcements on what you can enter into this field. Following
  3669. are some suggestions:
  3670.  
  3671.   0  device is in stock and readily available
  3672.   1  device is in stock but few are available
  3673.   2  device is out of stock (must be ordered to have on-hand)
  3674.   3  device is not in company's MIS system (must be approved to
  3675.      order)
  3676.   4  device is obsolete/undesirable
  3677.  -1  purchaser bought too many, must get rid of excess
  3678.  
  3679. The sort options will accept "DESIRE" as a sorting field, this will
  3680. place the most desirable devcies on the top of the report (using the
  3681. default UP sorting direction).
  3682.  
  3683. *Modifying the Database,A
  3684. Modifying the Database
  3685.  
  3686. There are two ways of making a customized database. 1. Modify
  3687. the existing database or 2. Create a new database. You may want
  3688. to change the database because: 
  3689.  
  3690. 1. You want to delete certain manufacturers, package types ..
  3691. that you will never use to make the database smaller and the
  3692. search speed slightly faster. 
  3693.  
  3694. 2. You may want to use the user fields.
  3695.  
  3696. To modify the existing database, use the following procedure.
  3697.  
  3698. A. Make a backup of the database. Best done by copying the 
  3699. directory with the database to another place on the disk or 
  3700. using an archiver like PKZIP.
  3701. B. Create a "chip report" of the devices that will be affected.
  3702. Several "chip reports" can be made and concatenated together if
  3703. needed (remove all but the last $END). Unaffected records can
  3704. be removed by your text editor (in non-document mode). If
  3705. adding/changing user fields, use the --C flag to insert them
  3706. into the report. 
  3707. C. Modify the "chip report" file with your text editor; for the 
  3708. 132 column report, editors with horizontal scrolling such as
  3709. WordStar or Zortech Zed will make the process a little easier.
  3710. D. Use DEVMRG with the appropriate -TAKE option
  3711.    -TAKE AWAY             remove the record from the database
  3712.    -TAKE ALL              replace the record in the database
  3713.    -TAKE field_name ...   replace only those fields in the database
  3714.  
  3715. To build a new database:
  3716.  
  3717. A. Create a "chip report" of the records that will go into the
  3718. new database. Several "chip reports" can be concatenated
  3719. together (remove all but the last $END). Use --C to include the
  3720. user fields if they are being used. 
  3721. B. Modify any fields desired with your text editor.
  3722. C. Use DEVBLD, it will default to creating a database called
  3723. devices in the current directory. You can specify another
  3724. name/location by using the -DATABASE option.
  3725.  
  3726. See Also:  Building a New Database
  3727.            Updating an Existing Database
  3728.  
  3729. *Building a New Database,A
  3730. Using DEVBLD to build a new database
  3731.  
  3732. DEVBLD takes a "chip report" file and creates a database with the
  3733. information. Note that the environment variable DB_DICT must be set
  3734. to point to the directory where the blank prototype database
  3735. resides (typically c:\dataio\lib4\dbase ).
  3736.  
  3737. Command line options:
  3738.  
  3739. -I report_file       This is the input "chip report" file to build
  3740.                      the database from. (no default.)
  3741. -DATABASE directory  This gives the new database a name, the
  3742.                      default is .\devices.
  3743. -LOG file            This file collects all the messages generated
  3744.                      by DEVBLD for later inspection (output will go
  3745.                      to both screen and this file).
  3746.  
  3747. *Updating an Existing Database,A
  3748. Using DEVMRG to update an existing database
  3749.  
  3750. DEVMRG takes a "chip report" file and will modify a database. There
  3751. are three types of actions: 1. change fields of existing records or
  3752. add new records. 2. delete records and 3. restructure device 
  3753. architecture information.
  3754.  
  3755. Note that records in the database are matched to the record in the
  3756. "chip report" file by the triple (part_name, manufacturer,
  3757. device_type). Following are the command line options:
  3758.  
  3759. -I report_file  This is the input "chip report" file with data to
  3760.                 modify the database. (no default.)
  3761.  
  3762. -FRESHEN        Rebuild device architecture information,
  3763.                 needed only when Data I/O rebuilds the device
  3764.                 library ABEL4LIB.DEV.
  3765.  
  3766. -TAKE AWAY      Matched records are deleted from the database
  3767.                 Warning are issued for a no match.
  3768.  
  3769. -TAKE option    Certain fields on the matched record are
  3770.                 modified according to the option. A new "chip"
  3771.                 record is made for any no match.
  3772.  
  3773. The options are:
  3774.  
  3775.     ALL         All fields in the record are replaced.
  3776.     NONE        No fields are touched (only new records will
  3777.                 be added to the database)
  3778.     STANDARD    User defined fields are only modified (user1,
  3779.                 user2, user3, desire, stock_name, price)
  3780.     UPDATE      All but the user defined fields are modified.
  3781.                 This is used when Data I/O updates the
  3782.                 database, this will not disturb the existing
  3783.                 user data.
  3784.  
  3785. Following are the individual fields that can be modified. You 
  3786. can specify any combination of them. Note that Manufacturer 
  3787. Part_name, and Device_type are used to identify the record in 
  3788. the database and therefore cannot be changed.
  3789.  
  3790.     USER1
  3791.     USER2
  3792.     USER3
  3793.     HOLD
  3794.     SETUP
  3795.     PRICE
  3796.     SPEED
  3797.     STOCK_NAME
  3798.     DATAIO
  3799.     FAMILY
  3800.     PINOUT
  3801.     TECHNOLOGY
  3802.     ERASEABILITY
  3803.     JAMLOAD
  3804.     SPC
  3805.     NUM_PINS
  3806.     POWER
  3807.     PACKAGE
  3808.     DESIREABILITY
  3809.  
  3810. *Unjamming the Database,A
  3811. How to Unjam the Database Lock
  3812.  
  3813. The selector has a simple interlock mechanism built in to
  3814. prevent two users from interfering with each other when using
  3815. the database. One user checks out the database by placing a
  3816. lock in the database that will prevent any other users from
  3817. opening the database. The lock is removed whenever the program
  3818. is completed or is aborted. The lock mechanism can become
  3819. jammed due to a power failure or an unexpected crash. If you
  3820. suspect the lock is jammed (that is, you are the only user of
  3821. the database and the database is still locked), you can delete
  3822. the lock. The lock is a file devsel.lck inside the database
  3823. directory, it contains the user_name of the person accessing
  3824. the database. Delete only devsel.lck (any others will destroy
  3825. the database!). 
  3826.  
  3827. *====Help For Help====,A
  3828.  
  3829. *How To Get Help,A
  3830. How To Get Help
  3831.  
  3832. Context sensitive online help is available from almost anywhere
  3833. in the ABEL Design Environment by pressing <<F1>>. Pressing      
  3834. <<F1>> will give different results depending on where you are     
  3835. and what you are doing.
  3836.  
  3837. <<F1>> while editing/viewing a file:     
  3838.         Pressing <<F1>> while editing or viewing a file will      
  3839.     search for help for the word that the cursor is currently
  3840.     on.  For example, if you press <<F1>> while on the word     
  3841.     MODULE, you will be given help on the MODULE keyword.  This
  3842.     type of help is case insensitive.
  3843.  
  3844. <<F1>> while looking at a menu:     
  3845.         This will pull up help on the current menu with a summary
  3846.         of each menu item.
  3847.  
  3848. <<F1>> while looking at a dialog box:    
  3849.         The first time you press <<F1>> while in a dialog box    
  3850.     you will be given help for the current field that the
  3851.     cursor is on.
  3852.  
  3853.         If you press <<F1>> again while in help for that field,   
  3854.     you will be given help on the entire dialog box.
  3855.  
  3856. If you need technical assistance you may contact ATMEL Corporation:
  3857.  
  3858.     Call:     USA        408 436-4263
  3859.             International    44 276 21006
  3860.  
  3861.     Or write:      ATMEL Corporation
  3862.                  2125 O'Nell Drive 
  3863.                   San Jose, CA 95131
  3864.                   ATTN: EPLD Department
  3865.  
  3866. Data I/O's Bulletin Board System (BBS) can provide you with a
  3867. wide variety of information including product information,
  3868. known bugs and work arounds, and helpful application notes.
  3869.     BBS: 206-881-3211  (protocol 1200/2400/9600 (Courier HST)
  3870.                         baud, 8 data bits, 1 stop bit, no parity)
  3871.  
  3872. *Help In Help,A
  3873. Help In Help
  3874.  
  3875. Use the arrow keys to position the selection bar over the subject
  3876. that you want help on and press Enter.
  3877. *About,A
  3878.                    ATMEL-ABEL Design Environment
  3879.                           Version 1.01
  3880.  
  3881. The ATMEL-ABEL Design Environment was designed and written at 
  3882. Data I/O Corporation.
  3883.  
  3884. If you need technical assistance you may contact ATMEL Corporation:
  3885.  
  3886.     Call:     USA        408 436-4263
  3887.             International    44 276 21006
  3888.  
  3889.     Or write:      ATMEL Corporation
  3890.                  2125 O'Nell Drive 
  3891.                   San Jose, CA 95131
  3892.                   ATTN: EPLD Department
  3893.  
  3894. Data I/O's Bulletin Board System (BBS) can provide you with a
  3895. wide variety of information including product information,
  3896. known bugs and work arounds, and helpful application notes.
  3897.     BBS: 206-881-3211  (protocol 1200/2400/9600 (Courier HST)
  3898.                         baud, 8 data bits, 1 stop bit, no parity)
  3899.  
  3900. *Program Options Help,A
  3901. --Setting Program Options--
  3902. Multiple Choice Fields
  3903. Dialog Box
  3904. Cancel Button
  3905. OK Button
  3906. --File Menu Options--
  3907. File Open Name
  3908. File Merge Name
  3909. Save As Name
  3910. File Print Name
  3911. Exit
  3912. --Edit Menu Options--
  3913. Search String
  3914. Search Insensitive
  3915. Editor Name
  3916. --View Menu Options--
  3917. View File
  3918. --Compile Menu Options--
  3919. Compile Listing
  3920. Compile Args
  3921. Compile Retain Redundancy
  3922. --Optimize Menu Options--
  3923. Reduction Options
  3924. Reduce Exact
  3925. --Simulation Trace Options--
  3926. Trace Format
  3927. Trace Output
  3928. Trace Signal
  3929. Trace Last Vector
  3930. Trace First Vector
  3931. Trace Powerup
  3932. Trace X Value
  3933. Trace Z Value
  3934. Trace .tmv
  3935. --Fitter--
  3936. Fitter Device
  3937. Fitter Device List File
  3938. Fitter Stop
  3939. Fitter None
  3940. Fitter Preassign
  3941. Fitter Strategy
  3942. --PLDmap (Fuseasm)--
  3943. PLDmap Device
  3944. PLDmap Checksum
  3945. PLDmap Document
  3946. PLDmap PLCC
  3947. PLDmap Turbo
  3948. PLDmap Miser
  3949. PLDmap Blow
  3950. PLDmap Lock
  3951. PLDmap Format
  3952. PLDmap Signature
  3953. PLDmap Directory
  3954. --Translation--
  3955. Translation Format
  3956. --SmartPart Device Selector--
  3957. SmartPart Database Directory
  3958. SmartPart Report File
  3959. SmartPart Report Sort Order
  3960. SmartPart Jamload
  3961. SmartPart Eraseable
  3962. SmartPart Device
  3963. SmartPart Manufacturer
  3964. SmartPart Temperature Spec.
  3965. SmartPart Technology
  3966. SmartPart Package Type
  3967. SmartPart Pins
  3968. SmartPart Speed
  3969. SmartPart Set-Up Time
  3970. SmartPart Hold Time
  3971. SmartPart Price
  3972. SmartPart Utilization
  3973. SmartPart Power
  3974. SmartPart User
  3975. --Other Options--
  3976. PLDgrade Document
  3977. --Dialog Boxes--
  3978. File Open Options
  3979. File Merge Options
  3980. Save As Options
  3981. Print Options
  3982. Search Options
  3983. Text Editor Options
  3984. View File Options
  3985. Compile Options
  3986. Optimize Options
  3987. Simulate Trace Options
  3988. SmartPart Device Selector Criteria
  3989. Fitter Options
  3990. PLDmap Options
  3991. Translate Options
  3992. PLDgrade Options
  3993. *Menus Help,A
  3994. File Menu
  3995. Edit Menu
  3996. View Menu
  3997. Compile Menu
  3998. Optimize Menu
  3999. SmartPart Menu
  4000. PartMap Menu
  4001. Defaults Menu
  4002. Help Menu
  4003. *Keyboard Help,A
  4004. Global Keys
  4005. Editor Keys
  4006. Menu Keys
  4007. Dialog Box Keys
  4008. *Language Help,A
  4009. --Miscellaneous--
  4010. Comments
  4011. Feedback
  4012. Sets
  4013. Operators
  4014. Expressions
  4015. Equations
  4016. Multiple Assignments to an Identifier
  4017. --Special Constants--
  4018. .C.
  4019. .D.
  4020. .F.
  4021. .K.
  4022. .P.
  4023. .SVN
  4024. .U.
  4025. .X.
  4026. .Z.
  4027. --Dot Extensions--
  4028. .<none>
  4029. .AP
  4030. .AR
  4031. .CE
  4032. .CLK
  4033. .D
  4034. .FB
  4035. .FC
  4036. .J
  4037. .K
  4038. .LD
  4039. .LE
  4040. .LH
  4041. .OE
  4042. .PIN
  4043. .PR
  4044. .Q
  4045. .R
  4046. .RE
  4047. .S
  4048. .SP
  4049. .SR
  4050. .T
  4051. --ISTYPE Attributes--
  4052. BUFFER
  4053. COM
  4054. INVERT
  4055. FEED_OR
  4056. FEED_PIN
  4057. FEED_REG
  4058. NEG
  4059. POS
  4060. REG
  4061. REG_D
  4062. REG_G
  4063. REG_JK
  4064. REG_SR
  4065. REG_T
  4066. XOR
  4067. --Compiler Directives--
  4068. @ALTERNATE
  4069. @CONST
  4070. @DCSET
  4071. @EXIT
  4072. @EXPR
  4073. @IF
  4074. @IFB
  4075. @IFDEF
  4076. @IFIDEN
  4077. @IFNB
  4078. @IFNDEF
  4079. @IFNIDEN
  4080. @INCLUDE
  4081. @IRP
  4082. @IRPC
  4083. @MESSAGE
  4084. @ONSET
  4085. @PAGE
  4086. @RADIX
  4087. @REPEAT
  4088. @STANDARD
  4089. --Keywords--
  4090. CASE
  4091. CONSTANT
  4092. DECLARATIONS
  4093. DEVICE
  4094. ENABLE
  4095. END
  4096. EQUATIONS
  4097. FLAG
  4098. FUSES
  4099. GOTO
  4100. IF-THEN-ELSE
  4101. IN
  4102. ISTYPE
  4103. LIBRARY
  4104. MACRO
  4105. MODULE
  4106. NODE
  4107. OPTIONS
  4108. PIN
  4109. PROPERTY
  4110. STATE_DIAGRAM
  4111. TEST_VECTORS
  4112. TITLE
  4113. TRACE
  4114. TRUTH_TABLE
  4115. WHEN-THEN-ELSE
  4116. WITH-ENDWITH
  4117. XOR_FACTORS
  4118. *Design Process Help,A
  4119. --ABEL4--
  4120. Auto Update
  4121. --SmartPart--
  4122. SmartPart Design Process
  4123. Speeding the Database Search
  4124. Getting Chip Details
  4125. Sorting Chip Report
  4126. Alternate Chip Report Formats
  4127. Accessing User Fields
  4128. Using Desirability
  4129. Modifying the Database
  4130. Building a New Database
  4131. Updating an Existing Database
  4132. Unjamming the Database
  4133. *Index Help,A
  4134. .C.
  4135. .D.
  4136. .F.
  4137. .K.
  4138. .P.
  4139. .SVN
  4140. .U.
  4141. .X.
  4142. .Z.
  4143. .<none>
  4144. .AP
  4145. .AR
  4146. .CE
  4147. .CLK
  4148. .D
  4149. .FB
  4150. .FC
  4151. .J
  4152. .K
  4153. .LD
  4154. .LE
  4155. .LH
  4156. .OE
  4157. .PIN
  4158. .PR
  4159. .Q
  4160. .R
  4161. .RE
  4162. .S
  4163. .SP
  4164. .SR
  4165. .T
  4166. @ALTERNATE
  4167. @CONST
  4168. @DCSET
  4169. @EXIT
  4170. @EXPR
  4171. @IF
  4172. @IFB
  4173. @IFDEF
  4174. @IFIDEN
  4175. @IFNB
  4176. @IFNDEF
  4177. @IFNIDEN
  4178. @INCLUDE
  4179. @IRP
  4180. @IRPC
  4181. @MESSAGE
  4182. @ONSET
  4183. @PAGE
  4184. @RADIX
  4185. @REPEAT
  4186. @STANDARD
  4187. Accessing User Fields
  4188. Alternate Chip Report Formats
  4189. Auto Update
  4190. BUFFER
  4191. Building a New Database
  4192. Cancel Button
  4193. CASE
  4194. COM
  4195. Comments
  4196. Compile Args
  4197. Compile Listing
  4198. Compile Menu
  4199. Compile Options
  4200. Compile Retain Redundancy
  4201. CONSTANT
  4202. DECLARATIONS
  4203. Defaults Menu
  4204. DEVICE
  4205. Dialog Box
  4206. Dialog Box Keys
  4207. Edit Menu
  4208. Editor Keys
  4209. Editor Name
  4210. ENABLE
  4211. END
  4212. Equations
  4213. EQUATIONS
  4214. Exit
  4215. Expressions
  4216. Feedback
  4217. FEED_OR
  4218. FEED_PIN
  4219. FEED_REG
  4220. File Menu
  4221. File Merge Name
  4222. File Merge Options
  4223. File Open Name
  4224. File Open Options
  4225. File Print Name
  4226. Fitter Device
  4227. Fitter Device List File
  4228. Fitter None
  4229. Fitter Options
  4230. Fitter Preassign
  4231. Fitter Stop
  4232. Fitter Strategy
  4233. FLAG
  4234. FUSES
  4235. Getting Chip Details
  4236. Global Keys
  4237. GOTO
  4238. Help Menu
  4239. IF-THEN-ELSE
  4240. IN
  4241. INVERT
  4242. ISTYPE
  4243. LIBRARY
  4244. MACRO
  4245. Menu Keys
  4246. Modifying the Database
  4247. MODULE
  4248. Multiple Assignments to an Identifier
  4249. Multiple Choice Fields
  4250. NEG
  4251. NODE
  4252. OK Button
  4253. Operators
  4254. Optimize Menu
  4255. Optimize Options
  4256. OPTIONS
  4257. PartMap Menu
  4258. PIN
  4259. PLDgrade Document
  4260. PLDgrade Options
  4261. PLDmap Blow
  4262. PLDmap Checksum
  4263. PLDmap Device
  4264. PLDmap Directory
  4265. PLDmap Document
  4266. PLDmap Format
  4267. PLDmap Lock
  4268. PLDmap Miser
  4269. PLDmap Options
  4270. PLDmap PLCC
  4271. PLDmap Signature
  4272. PLDmap Turbo
  4273. POS
  4274. Print Options
  4275. PROPERTY
  4276. Reduce Exact
  4277. Reduction Options
  4278. REG
  4279. REG_D
  4280. REG_G
  4281. REG_JK
  4282. REG_SR
  4283. REG_T
  4284. Save As Name
  4285. Save As Options
  4286. Search Insensitive
  4287. Search Options
  4288. Search String
  4289. Sets
  4290. Simulate Trace Options
  4291. SmartPart Database Directory
  4292. SmartPart Design Process
  4293. SmartPart Device
  4294. SmartPart Device Selector Criteria
  4295. SmartPart Eraseable
  4296. SmartPart Hold Time
  4297. SmartPart Jamload
  4298. SmartPart Manufacturer
  4299. SmartPart Menu
  4300. SmartPart Package Type
  4301. SmartPart Pins
  4302. SmartPart Power
  4303. SmartPart Price
  4304. SmartPart Report File
  4305. SmartPart Report Sort Order
  4306. SmartPart Set-Up Time
  4307. SmartPart Speed
  4308. SmartPart Technology
  4309. SmartPart Temperature Spec.
  4310. SmartPart User
  4311. SmartPart Utilization
  4312. Sorting Chip Report
  4313. Speeding the Database Search
  4314. STATE_DIAGRAM
  4315. TEST_VECTORS
  4316. Text Editor Options
  4317. TITLE
  4318. TRACE
  4319. Trace .tmv
  4320. Trace First Vector
  4321. Trace Format
  4322. Trace Last Vector
  4323. Trace Output
  4324. Trace Powerup
  4325. Trace Signal
  4326. Trace X Value
  4327. Trace Z Value
  4328. Translate Options
  4329. Translation Format
  4330. TRUTH_TABLE
  4331. Unjamming the Database
  4332. Updating an Existing Database
  4333. Using Desirability
  4334. View File
  4335. View File Options
  4336. View Menu
  4337. WHEN-THEN-ELSE
  4338. WITH-ENDWITH
  4339. XOR
  4340. XOR_FACTORS
  4341.