home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 September / pcwk_09_96.iso / demo / elmark / cupl / demo1 / cqrg.doc next >
Text File  |  1989-02-15  |  11KB  |  317 lines

  1.                       CUPL's Quick Reference Guide
  2.  
  3.  
  4. CUPL and CSIM input and output files
  5.  
  6.                                 ┌─────────┐
  7.                                 │ Device  │
  8.                 ┌───────────────┤ Library ├───────────────┐
  9.                 │               └─────────┘               │
  10.                 │                                         │
  11.            ┌────┴────┐                               ┌────┴────┐
  12.            │         ├──────────── .ABS ────────────│         │
  13.    .PLD ──│  CUPL   ├───────────────────┬──────────│  CSIM   │── .SI
  14.            │         ├───────────┐       │      ┌────┤         │
  15.            └─┬─┬───┬─┘           │       │      │    └────┬────┘
  16.              │ │   │             │       │      │         │
  17.              │ │   │             │     .JED     │         │
  18.              │ │   │             │       │      │         │
  19.     .LST ───┘ │   │             │       │      │         └─── .SO
  20.                │   │            .HL      │    .JED
  21.                │   │             │       │      │
  22.       .DOC ───┘   │             │       │      │
  23.                    └─ .HEX ─┐    │       │      │
  24.                             │    │       │      │
  25.                       ┌──────────────────────────┐
  26.                       │      Logic Programmer        │
  27.                       └──────────────────────────────┘
  28.  
  29.         .ABS - absolute file needed for simulation
  30.         .DOC - documentation file
  31.         .HEX - HEX download file
  32.         .HL  - HL download file
  33.         .JED - JEDEC download file with or without test vectors
  34.         .LST - Listing file with errors
  35.         .PLD - Logic source file
  36.         .SI  - Simulation source file
  37.         .SO  - Simulator output with errors
  38.  
  39.  
  40. PALASM-TO-CUPL LANGUAGE TRANSLATOR
  41. ──────────────────────────────────
  42.  
  43. The PTOC program converts PALASM source files into CUPL source files.  To
  44. convert one or more PALASM source files into CUPL format, type
  45.  
  46.         PTOC filename1 filename2 ... <RETURN>
  47.  
  48. For example:
  49.  
  50.         PTOC BUS_CNTL.ASM <RETURN>
  51.  
  52. produces the CUPL file
  53.  
  54.         BUS_CNTL.PLD
  55.  
  56. and, if the original PALASM file contained function table information, it
  57. would also produce the file
  58.  
  59.         BUS_CNTL.SI
  60.  
  61.  
  62. THE CUPL PREPROCESSOR
  63. ─────────────────────
  64.  
  65. The preprocessor program operates on the CUPL source file before compiler
  66. operations actually begin.  Preprocessor capabilities include:
  67.  
  68. String Substitution
  69.         $DEFINE argument1 argument2
  70. where argument1 is replaced with argument2 until
  71.         $UNDEF argument1
  72. is encountered.
  73.  
  74. File inclusion
  75.  
  76.         $INCLUDE filename
  77. where filename becomes part of the specification at the compile time.  The
  78. file must be in the current directory.
  79.  
  80. Conditional Compilation
  81.  
  82. Portions of the source specification can be compiled or not depending on
  83. whether or not the argument has been defined using the $DEFINE command.
  84. The formats are
  85.  
  86.         $IFDEF argument
  87.           ... statements ...
  88.         $ELSE
  89.           ... statements ...
  90.         $ENDIF
  91.  
  92. or, if not defined:
  93.  
  94.         $IFNDEF argument
  95.           ... statements ...
  96.         $ELSE
  97.           ... statements ...
  98.         $ENDIF
  99.  
  100.  
  101. RUNNING CUPL
  102. ────────────
  103.  
  104. In the main menu, select Compile CUPL file.  Select the PLD file that you
  105. want to compile.  A list of CUPL compiler option flags will appear.  Choose
  106. the needed flags for your design.
  107.  
  108.  
  109. LOGIC DESCRIPTION FORMATS
  110. ─────────────────────────
  111.  
  112. A design can be described with a combination of three formats:  state
  113. machine, truth table, or boolean equation.
  114.  
  115. State Machines
  116.  
  117. When implementing a design with a state machine, use the following format
  118.  
  119.                         Input
  120.         ╓─────────╖   Condition   ╓─────────╖             ╓─────────╖
  121.    ┌───║ State 0 ║───────┬──────║ State 1 ║────────────║ State 2 ║
  122.    │    ╙────┬────╜       │       ╙─────────╜             ╙─────────╜
  123.    │         │            
  124.    └─────────┘         output
  125.      !Input           variable
  126.     Condition
  127.  
  128.  
  129.     SEQUENCE name_of_sequence {
  130.         PRESENT state0
  131.             IF input_condition  NEXT state1     OUT output_variable ;
  132.             DEFAULT             NEXT state0 ;
  133.         PRESENT state1
  134.                                 NEXT state2 ;
  135.         .
  136.         .
  137.         .
  138.     }
  139.  
  140. The simple, flexible syntax allows variations in the IF NEXT OUT or DEFAULT
  141. NEXT OUT formats to properly represent any element of a state machine.
  142.  
  143.  
  144.     IF          NEXT                    Conditional Next State
  145.     IF          NEXT        OUT         Conditional Synchronous Output
  146.                 NEXT                    Unconditional Next State
  147.                 NEXT        OUT         Unconditional Synchronous Output
  148.                             OUT         Unconditional Asynchronous Output
  149.     IF                      OUT         Conditional Asynchronous Output
  150.     DEFAULT     NEXT                    Default Next State
  151.     DEFAULT                 OUT         Default Asynchronous Output
  152.     DEFAULT     NEXT        OUT         Default Synchronous Output
  153.  
  154.  
  155. Truth Tables
  156.  
  157. When logic is best described in tabular form, use the format in the
  158. following decoder example:
  159.  
  160.     FIELD input = [in1..0] ;
  161.     FIELD output = [out3..0] ;
  162.     TABLE input => output  {
  163.         0 => 'b'0001 ;
  164.         1 => 'b'0010 ;
  165.         2 => 'b'0100 ;
  166.         3 => 'b'1000 ;
  167.     }
  168.  
  169.  
  170. High-Level Equations
  171.     output(s).EXT = expression ;
  172.  
  173.  
  174. CUPL SYNTAX
  175. ───────────
  176.  
  177. Logical operators
  178.         &   =   Logical AND
  179.         #   =   Logical OR
  180.         $   =   Logical XOR
  181.         !   =   Logical NEGATION
  182.  
  183. Free Form Comment Structure
  184.         /*  =   Start Comment
  185.         */  =   End Comment
  186.  
  187. Variable Extensions
  188.         .D            D input of D-type flip-flop
  189.         .L            D input of transparent latch
  190.         .J            J input of JK-type flip-flop
  191.         .K            K input of JK-type flip-flop
  192.         .S            S input of SR-type flip-flop
  193.         .R            R input of SR─type flip-flop
  194.         .T            T input of toggle flip-flop
  195.         .DQ           Q output of D-type flip-flop
  196.         .LQ           Q output of transparent latch
  197.         .AP           Asynchronous preset of flip-flop
  198.         .AR           Asynchronous reset of flip-flop
  199.         .SP           Synchronous preset of flip-flop
  200.         .SR           Synchronous reset of flip-flop
  201.         .CK           Programmable clock of flip-flop
  202.         .OE           Programmable output enable
  203.         .CA           Complement array
  204.         .PR           Programmable preload
  205.         .CE           CE input of enabled D-CE type flip-flop
  206.         .LE           Programmable latch enable
  207.         .OBS          Programmable observability of buried nodes
  208.         .BYP          Programmable register bypass
  209.         .DFB          D registered feedback path selection
  210.         .LFB          D latched feedback path selection
  211.         .TFB          T registered feedback path selection
  212.         .IO           Pin feedback path selection
  213.         .INT          Internal feedback path selection
  214.         .CKMUX        Clock multiplexor selection
  215.         .OEMUX        Tristate multiplexor selection
  216.         .IMUX         Input multiplexor selection
  217.         .TEC          Technology-dependent fuse selection
  218.  
  219. Node Declarations
  220.  
  221.     NODE variable_name ;        /* Single node, as when used for      */
  222.                                 /* complement_array: in IFL devices.  */
  223.     NODE [variable_list] ;      /* Multiple nodes, as when used for   */
  224.                                 /* buried state bits.                 */
  225.  
  226. The Distributive Property (from Boolean Algebra)
  227.  
  228.         A & (B # C)   is replaced by   A & B  #  A & C
  229. where & operations are performed before # operations.
  230.  
  231. DeMorgan's theorem: (from Boolean Algebra)
  232.  
  233.         !(A # B)   is replaced by   !A & !B     also
  234.         !(A & B)   is replaced by   !A # !B
  235.  
  236.     NOTE:  This symbology tends to create large numbers of product terms.
  237.  
  238. Macro Substitution
  239.  
  240. You can arbitrarily create and define a symbolic name as follows:
  241.  
  242.         MEMREQ = MEMW # MEMR ;
  243. where MEMREQ does not appear as a pin variable name.
  244.  
  245. MEMREQ can then be used in expressions for other variables.  The value
  246. "MEMW # MEMR" will be substituted wherever MEMREQ is used.
  247.  
  248. The List Notations
  249.  
  250. You can represent groups of bits to be equal to a single symbolic name as
  251. follows:
  252.         FIELD IOADR = [A7..0] ;
  253. where IOADR can then be used in expressions for [A7..0].
  254.  
  255.  
  256. Equality and Address Range
  257.  
  258. The : operator compares a bit field with a hex constant value or list of
  259. constant values.  For example
  260.  
  261.         IOADR:C3
  262.            or
  263.         IOADR:[10..3F]
  264.  
  265. The latter statement will be true for addresses in the range of 10 hex
  266. through 3F hex, inclusive.
  267.  
  268. NOTE: Hex constant values must contain the proper number of nibbles to
  269. include the most significant bit of the bit-field variable list.
  270.  
  271. You can also use the : operator to operate on a bit-field variable list, as
  272. follows:
  273.  
  274.         IOADR:&   replaces   A7 & A6 & A5 & A4 & A3 & A2 & A1 & A0
  275.         IOADR:#   replaces   A7 # A6 # A5 # A4 # A3 # A2 # A1 # A0
  276.  
  277.  
  278. CSIM: THE SIMULATOR
  279. ───────────────────
  280.  
  281. CSIM is a stimulus/response function table oriented simulator that compares
  282. each expected response with that which the logic in the associated .PLD
  283. file would produce given the specified stimulus.  The simulator input file
  284. (filename.SI) must contain the same header information as the associated
  285. logic source file (filename.PLD).  Also, CUPL must have been previously run
  286. for the .PLD file with the -A option flag to produce an absolute file
  287. (filename.ABS), and also with the -J flag if you would like CSIM to append
  288. the function table test-vector information to your .JED file to produce a
  289. .JED file with both fuse and testing information.
  290.  
  291. The general format for the .SI file is:
  292.  
  293.         "Header Information"
  294.  
  295.     ORDER:
  296.         var1, var2, . . . , varN ;
  297.  
  298.     VECTORS:
  299.         Stimulus pattern1           Response pattern1
  300.         Stimulus pattern2           Response pattern2
  301.                 .                           .
  302.                 .                           .
  303.                 .                           .
  304.         Stimulus patternN           Response patternN
  305.  
  306. Within the vector table, inputs are defined with 1 (+5V), and 0 (GND),
  307. while outputs are defined with H (+5V), L (GND), and Z (high impedance).
  308. "Don't Cares" are represented by an X.  An * in the response field causes
  309. the simulator to determine the output according to the logic definition
  310. contained in the .ABS file, which was derived from your .PLD file.
  311.  
  312. Directives
  313.  
  314. To run CSIM, select Simulate CUPL file in the main menu.  Select the .SI
  315. file that contains the test vectors for your design.  A list of CSIM option
  316. flags appear.  Choose the needed flags for your design.
  317.