home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 September / pcwk_09_96.iso / demo / elmark / cupl / manual / sb6b.txt < prev    next >
Text File  |  1992-01-17  |  33KB  |  796 lines

  1. .C1.    DEVICE USAGE NOTES           B
  2.  
  3.     This appendix lists the programmable logic devices (PLDs) that
  4.     require special attention when being used with CUPL and CSIM. Many 
  5.     of these devices are not available in the STARTER KIT but they are 
  6.     available in the the full package.
  7.  
  8.     Device Mnemonic: CY7C330
  9.     See CY7C330 Application Notes for a detailed explanation of this
  10.     device and its features.
  11.  
  12.     Device Mnemonic: EP300, P18CV8
  13.         1.  The registered, internal combinatorial and I/O feedback 
  14.             paths can be selected by using the .DFB, .INT and 
  15.             .i.Extensions .IO extensions respectively.  If the feedback 
  16.             type is the same as the output (registered feedback for 
  17.             registered output), a feedback extension ".IO" is required.
  18.  
  19.     Device Mnemonic: EP312, EP324
  20.         1.  These devices support allocation of P-terms between adjacent 
  21.             macrocells.  This means, unused P-terms may be borrowed by a 
  22.             macrocell from each of its adjacent macrocells.  CUPL 
  23.             automatically performs this borrowing of terms whenever a 
  24.             design requires more than eight terms per macrocell if the 
  25.             adjacent macrocells use less than five P-terms.
  26.  
  27.         2.  This device has T registers and the polarity is placed
  28.             before the register.  When the pin is defined as active low, 
  29.             this has the effect of toggling the register when the signal 
  30.             approaching the register is a binary 0 because the signal is 
  31.             inverted before it reaches the register.  This situation 
  32.             will cause the design to behave differently rather than just 
  33.             exhibiting a change in the polarity of the output signals.
  34.  
  35.         3.  The TURBO bit is supported.  To set the TURBO bit, use the 
  36.             FUSE statement in the .PLD file for the 312 and 324 
  37.             respectively as follows:  
  38.                 FUSE(13712, 1);
  39.                 FUSE(47492 , 1);
  40.  
  41.         Device Mnemonic: EP320
  42.  
  43.         1.  Miser bits:
  44.                 2912-2913
  45.             Turbo bits:
  46.                 2914-2915
  47.  
  48. Device Mnemonic: EP600, EP900
  49.         1.  Support for registered mode of the macrocell consists only 
  50.             of D-type and T-type flip-flops.  J-K and S-R flip-flops are 
  51.             not supported because they don't physically exist in the 
  52.             device. They must be emulated with exclusive-or equations.
  53.  
  54.         2.  The D-type registered, T-type registered, and I/O feedback
  55.             paths can be selected by using the .DFB, .TFB and .IO 
  56.             extensions respectively.  If the feedback type is the same 
  57.             as the output (D-type registered feedback for D-type 
  58.             registered output), then a feedback extension is not 
  59.             required.
  60.  
  61.         3.  EP600/610 Turbo bits:
  62.                 6480-6481
  63.             EP900/910 Turbo bits:
  64.                 17400-17401
  65.  
  66.         Device Mnemonic: EP1200/1210
  67.  
  68.         1.  Turbo bit:                15145
  69.  
  70.         Device Mnemonic: EP1800/1810
  71.  
  72.         1.  Miser bits:
  73.                 42480-42487
  74.             Turbo bits:
  75.                 42488-42489
  76.  
  77.         2.  Please refer to the Application note on the EP1800.
  78.  
  79.       Device Mnemonic: F155,F157, F159, F179
  80.  
  81.         1.  Registers may be used as  either D-type  or JK-type, but not 
  82.             both (no dynamic conversion).
  83.  
  84.         2.  The output enable buffer for all registers is always
  85.             controlled by pin 11 (pin 13 for F179).
  86.  
  87.         3.  The load control term for loading registers from the output 
  88.             pins) is not supported.
  89.  
  90.         4.  The product term that drives the register control buffer is
  91.             fixed and may not be accessed to drive the complement array.
  92.  
  93.       Device Mnemonic: F501,F502
  94.         1.  Both f501 and f502 contain NAND array architecture.  The 
  95.             NAND gates must be defined as complement array nodes.
  96.  
  97.         2.  Although there is only one product term for each output pin
  98.             in f501 and f502, multiple product term output can be 
  99.             implemented using DeMorgan algorithm and NAND node.  For 
  100.             example, to implement the following logical function in 
  101.             f502:
  102.  
  103.                 X = (a & b)
  104.                   # (c & d)
  105.                   # (e & f);
  106.  
  107.                 Define as follows:
  108.  
  109.                 Pin 19 = X;
  110.  
  111.                 Pinnode 81 = !X1;
  112.                 Pinnode 82 = !X2;
  113.                 Pinnode 83 = !X3;
  114.  
  115.                 X = !(!X1 & !X2 & !X3);
  116.                 X1.ca = a & b;
  117.                 X2.ca = c & d;
  118.                 X3.ca = e & f;
  119.  
  120.       Device Mnemonic: F506
  121.  
  122.         1.  The registered clock polarity is set by writing one .CKMUX 
  123.             expression for all registers used in the design. By default, 
  124.             the clock is treated as positive-edge triggered.
  125.  
  126.       Device Mnemonic: F507
  127.  
  128.         1.  The register and counter clock polarity are set by writing 
  129.             one .CKMUX expression for all registers and counter inputs
  130.             used in the design. By default, the clock is treated as 
  131.             positive-edge triggered.
  132.  
  133.         2.  The built-in counter input nodes are defined using the NODE 
  134.             or PINNODE statements, and the .CNT extension.  The counter
  135.             clear and hold controls are defined using the NODE or 
  136.             PINNODE statements and writing either combinatorial or S-R 
  137.             registered expressions.
  138.  
  139.         3.  CSIM generates the counter inputs automatically, based on 
  140.             the counter control logic.
  141.  
  142.       Device Mnemonic: F16V8, F18V8Z, F20V8
  143.  
  144.         1.  These devices emulate two different PAL architectures
  145.             with their flexible output macro configuration . If the 
  146.             F16V8, F18V8Z or F20V8 device mnemonic is used, the device 
  147.             parameters for the proper sub-mode are automatically 
  148.             selected according to the following:
  149.  
  150.                 A.  Registered Mode Specifying any output pin as 
  151.                     registered invokes the registered mode (D).  
  152.                     Specifying any output enable term for a 
  153.                     nonregistered pin invokes the registered mode (D).
  154.  
  155.                 Mnemonic:
  156.                 F16V8D
  157.                 F18V8ZD
  158.                 F20V8D
  159.  
  160.                 B.  Small Mode If neither of the above conditions are 
  161.                     met, the device type defaults to the small mode 
  162.                     (S).
  163.  
  164.                 Mnemonic:
  165.                 F16V8S
  166.                 F18V8S
  167.                 F20V8S
  168.  
  169.         2.  Either the automatic selection mechanism or the device
  170.             mnemonic for the specific sub-mode may be used.
  171.  
  172.         Device Mnemonic: G16V8,G20V8
  173.         1.  These devices emulate three different PAL architectures with 
  174.             their flexible output macro configuration . If the G16V8 or 
  175.             G20V8 device mnemonic is used, the device parameters for the 
  176.             proper sub-mode are automatically selected according to the 
  177.             following:
  178.  
  179.             A.  Medium Synchronous (Registered) Mode
  180.                 This mode is automatically chosen when the PLD source 
  181.                 file has registered output. In the medium synchronous 
  182.                 mode, specifying an output enable term for a registered
  183.                 output pin is not flagged as an error by the compiler or 
  184.                 simulator.  In this mode, the output enable control for 
  185.                 registered pins is common to pin 11 (GAL16V8) or pin 13 
  186.                 (GAL20V8).
  187.  
  188.                 Mnemonic: G16V8MS
  189.                 Input only     Output only      Input/Output
  190.                 2, 3, 4,                        12, 13, 14,
  191.                 5, 6, 7,                        15, 16, 17,
  192.                 8, 9                            18, 19
  193.  
  194.                 Pin 1 = common clock
  195.                 Pin 11 = common output enable
  196.  
  197.                 Mnemonic: G20V8MS
  198.                 Input only     Output only      Input/Output
  199.                 2, 3, 4,                        15, 16, 17,
  200.                 5, 6, 7,                        18, 19, 20,
  201.                 8, 9, 10,                       21, 22
  202.                 11, 14, 23
  203.  
  204.                 Pin 1 = common clock
  205.                 Pin 13 = common output enable
  206.  
  207.             B.  Medium Asynchronous (Complex) Mode
  208.                      This mode is automatically chosen when the PLD 
  209.                      source file has an output enable term for 
  210.                      a non-registere d pin and/or.
  211.  
  212.                 Mnemonic: G16V8MA
  213.                 Input only     Output only      Input/Output
  214.                 1, 2, 3,       12, 19           13, 14, 15,
  215.                 4, 5, 6,                        16, 17, 18
  216.                 7, 8, 9,11
  217.                 
  218.                 Mnemonic: G20V8MA
  219.                 Input only     Output only      Input/Output
  220.                 1, 2, 3,       15, 22           16, 17, 18,
  221.                 4, 5, 6,                        19, 20, 21
  222.                 7, 8, 9,
  223.                 10, 11, 13,
  224.                 14, 23
  225.  
  226.             C.  Small (Simple) Mode (Default)
  227.                 If none of the above are met, the device type defaults 
  228.                 to the small mode.  In this mode, the Input/Output pins
  229.                 are configured as either Input Only or Output only (that 
  230.                 is, no feedback can occur) .
  231.  
  232.                 Mnemonic: G16V8S
  233.                 Input only     Output only      Input/Output
  234.                 1, 2, 3,       15, 16           12, 13, 14,
  235.                 4, 5, 6,                        17, 18, 19
  236.                 7, 8, 9,11
  237.                 
  238.                 Mnemonic: G20V8S
  239.                 Input only     Output only      Input/Output
  240.                 1, 2, 3,       18, 19           15, 16, 17,
  241.                 4, 5, 6,                        20, 21, 22
  242.                 7, 8, 9,
  243.                 10, 11, 13,
  244.                 14, 23
  245.  
  246.         2.  Either the automatic selection mechanism or the device 
  247.             mnemonic for the specific sub-mode desired can be used.
  248.  
  249.         G20XV10 DEVICE NOTE
  250.     THE G20XV10 can emulate the following devices in the corresponding 
  251.     modes:
  252.  
  253.     Device   G20XV10 
  254.                  Mode         Mnemonic
  255.     P12L10       Input        g20xv10i
  256.     P20L10       Input        g20xv10i
  257.     P20X10       Feedback     g20xv10f
  258.     P20X8        Feedback     g20xv10f
  259.     P20x4        Feedback     g20xv10f
  260.  
  261.     Each output can be configured as registered or combinatorial with 
  262.     either 3 pterms ORed together or 4 pterms XORed together as input.  
  263.     The following table shows how to obtain the different configurations 
  264.     of the Output Logic Macrocell (OLMC):
  265.  
  266.     OLMC Configuration          Implementation in Design 
  267.     ------------------          ------------------------
  268.     Registered output
  269.         XOR input, COE          Default
  270.         OR input, OE pterm      Use OE extension
  271.  
  272.     Combinatorial output
  273.         XOR input, COE          Use OEMUX extension
  274.         OR input, OE pterm      Default
  275.  
  276.     If one would like to force CUPL to use a specific mode for the 
  277.     design, just use the mnemonic that represents that mode.
  278.  
  279.     If the G20XV10 device mnemonic is used, the device parameters for 
  280.     the proper sub-mode are automatically selected according to the 
  281.     following:
  282.  
  283.         INPUT MODE
  284.     This mode is automatically chosen when the PLD source file has 
  285.     combinatorial output only.
  286.  
  287.     Device Mnemonic:g20xv10i
  288.  
  289.     Input Only          Output Only             Input/Output
  290.     2, 3, 4,            14, 23                  15, 16, 17,
  291.     5, 6, 7,                                    18, 19, 20,
  292.     8, 9, 10,                                   21, 22
  293.     11
  294.  
  295.     Pin 1 can be used both as a Synchronous Clock and an Input. 
  296.     Pin 13 can be used both as a Common Output Enable (COE) and an 
  297.     input.
  298.  
  299.     FEEDBACK MODE
  300.     This mode is automatically chosen when the PLD source file has 
  301.     registered output.
  302.  
  303.     Device Mnemonic: g20xv10f
  304.     Input Only          Output Only             Input/Output
  305.     2, 3, 4,                                    14, 15, 16,
  306.     5, 6, 7,                                    17, 18, 19,
  307.     8, 9, 10,                                   20, 21, 22,
  308.     11                                          23
  309.  
  310.     Pin 1 is the Synchronous Clock.
  311.     Pin 13 is the Common Output Enable (COE).
  312.  
  313.     Device Mnemonic: G6001
  314.     See GAL6001 Application Notes for a detailed explanation of this 
  315.     device and its features.
  316.  
  317.         1.      The output logic macrocell feedback paths can be 
  318.                 selected as internal only, I/O only, or both, via the 
  319.                 .INT and .IO extensions.  If the feedback type is the
  320.                 same as the output (internal feedback for registered 
  321.                 output), then a feedback extension is not required.
  322.  
  323.         2.      The output logic macrocells can be treated as buried
  324.                 register or combinatorial nodes, allowing the pins to be 
  325.                 treated as inputs. The buried nodes must be defined in 
  326.                 NODE or PINNODE statements and the input pins defined in
  327.                 PIN statements.
  328.  
  329.         3.      All input pins can be configured as registered
  330.                 or latched inputs via the .i.G6001:.DQ extension;.DQ and 
  331.                 .LQ extensions, respectively.  Each input pin in a group 
  332.                  must be treated in the same manner.
  333.  
  334.     Device Mnemonic: MACH110,MACH210
  335.     See  Chapter  5, FPGA  and  High  Density PLDs.
  336.  
  337.     Device Mnemonic: P10P8V,P12P6V, P14P4V, P16P2V
  338.  
  339.         1.      The output macrocell for  these devices is always 
  340.                 configured for the OR path, utilizing double the product 
  341.                 terms of a standard PAL.   The default bypass path 
  342.                 (lower power) and XOR path are not supported.
  343.  
  344.     Device Mnemonic: P16P8V, P16RP4V, P16RP6V,P16RP8V
  345.  
  346.         1 .     The output macrocell for these devices is always 
  347.                 configured for the default bypass path.  The OR path 
  348.                 (double product terms at the expense of an output pin) 
  349.                 and XOR path are not supported.
  350.  
  351.     Device Mnemonic:P20RA10
  352.  
  353.         1.      Combinatorial Output: As with any other device that can
  354.                 have combinatorial output, an extension is not needed to 
  355.                 define an output to be combinatorial . When an output is 
  356.                 defined to be combinatorial , CUPL will automatically 
  357.                 set the AP and AR to 'b'1 enabling the register to be 
  358.                 bypassed.
  359.  
  360.         2.      Registered Output: The 20RA10 has only one feedback
  361.                 path, the I/O feedback.  When using registered output 
  362.                 normally the feedback would come from the register, but 
  363.                 in this device the feedback comes from the pin. If the 
  364.                 feedback is needed the IO extension must be added to the 
  365.                 variable name to use the pin feedback path. This follows 
  366.                 the CUPL rules for when to use feedback extensions.
  367.  
  368.         3.      Programmable Preset and Reset:  In each macrocell, two 
  369.                 product lines are dedicated to asynchronous preset (AP) 
  370.                 and asynchronous reset (AR).  If the AP line is HIGH, 
  371.                 the Q output of the register becomes a logic 1. If the 
  372.                 AR line is HIGH, the Q output of the register becomes a 
  373.                 logic 0. If both the AP and AR lines are HIGH, the 
  374.                 flip-flop is bypassed and the output becomes 
  375.                 combinatorial . The operation of AP and AR overrides the 
  376.                 asynchronous clock (CK).
  377.  
  378.         4.      Three- State (OE) Outputs:  The 20RA10 has a product 
  379.                 term dedicated to local output control (OE) and also a 
  380.                 global output control pin.  The output is enabled if 
  381.                 both the global output control pin is LOW and the local 
  382.                 output control product term is HIGH. If the global 
  383.                 output control pin is HIGH, all outputs will be 
  384.                 disabled.  If the local output control product t
  385.  
  386.         Device Mnemonic: P20X4,P20X8, P20X10
  387.  
  388.         1.      When writing logic equations for devices containing an 
  389.                 XOR gate, the $ operator may not be included inside any
  390.                 parentheses that change the evaluation order of the 
  391.                 expression.
  392.  
  393.         2.      When applying DeMorgan's Theorem to an equation 
  394.                 involving the XOR gate, the expression written first is 
  395.                 the one negated.
  396.  
  397.         Device Mnemonic: P22CV10,P22VP10, P23S8
  398.  
  399.         1.      The registered and I/O feedback paths can be selected by 
  400.                 using the .DFB and .IO extensions respectively.  If the 
  401.                 feedback type is the same as the output (registered 
  402.                 feedback for registered output), then a feedback 
  403.                 extension is not required.
  404.  
  405.         Device Mnemonic: P29M16
  406.  
  407.         1.
  408.                 The output feedback paths can be selected as registered 
  409.                 only, latched only, I/O only, registered and I/O or 
  410.                 latched and I/O via the .DFB, .LFB and .IO extensions.
  411.                 If the feedback type is the same as the output 
  412.                 (registered feedback or registered feedback for 
  413.                 registered output), then a feedback extension is not 
  414.                 required.
  415.  
  416.         2.
  417.                 The dual feedback outputs can be treated as buried 
  418.                 register or latched nodes, allowing the pins to be 
  419.                 treated as inputs. The buried nodes must be defined in 
  420.                 NODE or PINNODE statements and the input pins defined in 
  421.                 PIN statements.
  422.  
  423.         3.
  424.                 The dual feedback outputs can be treated as registered
  425.                 or latched inputs, via the .i.P29M16:DQ extension;.DQ 
  426.                 and .LQ extensions.
  427.  
  428.         4.
  429.                 Individual clock control is set by writing a .CKMUX 
  430.                 expression.  By default, the clock control is set to 
  431.                 clock/latch enable pin1, positive edge triggered.
  432.  
  433.         5.
  434.                 Individual output enable control is set by writing
  435.                 either a .OEMUX expression for common control, or a 
  436.                 .i.P29M16:OE extension;.OE expression for banked product 
  437.                 term control. By default, the output enable control is 
  438.                 set to common output enable pin 11.
  439.  
  440.         Device Mnemonic: P29MA16
  441.  
  442.         1.
  443.                 The output feedback paths can be selected as registered 
  444.                 only, latched only, I/O only, registered and I/O or 
  445.                 latched and I/O via the .DFB, .LFB and .IO extensions.  
  446.                 If the feedback type is the same as the output 
  447.                 (registered feedback for registered output), then a 
  448.                 feedback extension is not required.
  449.  
  450.         2.
  451.                 The dual feedback outputs can be treated as buried 
  452.                 register or latched nodes, allowing the pins to be 
  453.                 treated as inputs. The buried nodes must be defined in 
  454.                 NODE or PINNODE statements and the input pins defined in 
  455.                 PIN statements.
  456.  
  457.         3.      The dual feedback outputs can be treated as registered
  458.                 or latched inputs via the .DQ and .LQ extensions.
  459.  
  460.         4.
  461.                 Individual clock or latch enable control is set by 
  462.                 writing either a .CKMUX expression for synchronous 
  463.                 control or a .CK expression for asynchronous control. By 
  464.                 default, the clock control is set to clock/latch enable 
  465.                 pin 1, positive edge triggered.
  466.  
  467.         5.
  468.                 Individual output enable control is set by writing
  469.                 either a .OEMUX expression or common control, or by a 
  470.                 .OE expression for banked product term control. By 
  471.                 default, the output enable control is set to common 
  472.                 output enable pin 11.
  473.  
  474.         Device Mnemonic: P32VX10
  475.  
  476.         1.      Combinatorial outputs have active low polarity, whereas
  477.                 registered outputs have programmable polarity.
  478.  
  479.         2.      The output feedback paths can be selected as registered 
  480.                 only, I/O only, or both, via the .DFB and .IO 
  481.                 extensions.  If the feedback type is the same as the 
  482.                 output (registered feedback for registered output), then 
  483.                 a feedback extension is not required.
  484.  
  485.         3.      The outputs can be treated as buried register nodes
  486.                 allowing the pins to be treated as inputs. The buried 
  487.                 nodes must be defined in NODE or PINNODE statements and 
  488.                 the input pins defined in PIN statements.
  489.  
  490.         Device Mnemonic: PLX448
  491.         1.      The output feedback paths can be selected as internal 
  492.                 only, I/O only, or both, via the .INT and .IO 
  493.                 extensions.  If the feedback type is the same as the 
  494.                 output (internal feedback for registered output), then a 
  495.                 feedback extension is not required.
  496.  
  497.         2.      The outputs can be treated as a buried register or 
  498.                 combinatorial nodes, allowing the pins to be treated as 
  499.                 inputs. The buried nodes must be defined in NODE or 
  500.                 PINNODE statements and the input pins defined in PIN 
  501.                 statements.
  502.  
  503.         3.      The 48mA output pins can be programmed to behave as open
  504.                 collector outputs, by writing .TEC expressions.
  505.  
  506.         Device Mnemonic: RA10P8,RA11P8, RA12P8
  507.  
  508.         1.
  509.                 Active-HI chip enables are simulated as Active-LO.
  510.  
  511.         Device Mnemonic: V750
  512.  
  513.         1.
  514.                 The output feedback paths can be selected as registered 
  515.                 only, I/O only, or both, via the .DFB and .IO 
  516.                 extensions.  If the feedback type is the same as the 
  517.                 output (registered feedback for registered output), then 
  518.                 a feedback extension is not required.
  519.  
  520.         2.
  521.                 The outputs can be treated as buried register nodes
  522.                 allowing the pins to be treated as inputs. The buried 
  523.                 nodes must be defined in the NODE or PINNODE statements 
  524.                 and the input pins defined in PIN statements.
  525.  
  526.         3.
  527.                 When an output requires more product terms than its sum 
  528.                 term provides, CUPL uses the sum term pairing capability 
  529.                 to increase the number of available product terms. This
  530.                 will cause an incorrect fuse map to be generated if the 
  531.                 associated buried register is also being used.
  532.  
  533.         4.
  534.                 Shared product term bits:
  535.                 Pin 23 - S1:  14365     Pin 22 - S1:  14368
  536.                 Pin 21 - S1:  14371     Pin 20 - S1:  14374
  537.                 Pin 19 - S1:  14377     Pin 18 - S1:  14380
  538.                 Pin 17 - S1:  14383     Pin 16 - S1:  14386
  539.                 Pin 15 - S1:  14389     Pin 14 - S1:  14392
  540.  
  541.         Device Mnemonic V2500
  542.  
  543.         1.      The output feedback paths can be selected as registered 
  544.                 with I/O or as combinatorial. When a registered output 
  545.                 is specified, the .IO extension is required for the I/O 
  546.                 feedback.
  547.  
  548.         2.      The outputs can be treated as buried
  549.                 register nodes allowing the pins to be treated as 
  550.                 inputs.  The buried nodes must be defined in the NODE or 
  551.                 PINNODE statements and the input pins defined in PIN 
  552.                 statements.
  553.  
  554.         3.      When an output requires more product terms than its sum 
  555.                 term provides, CUPL uses the sum term pairing capability 
  556.                 to increase the number of available product terms. This 
  557.                 will cause an incorrect fuse map to be generated if the 
  558.                 associated buried register is also being used.
  559.  
  560.         4.      Shared product term bits:
  561.                 Pin29 - S0-S1:       71552-71553
  562.                 Pin28 - S0-S1:       71556-71557
  563.                 Pin27 - S0-S1:       71560-71561
  564.                 Pin26 - S0-S1:       71564-71565
  565.                 Pin25 - S0-S1:       71568-71569
  566.                 Pin24 - S0-S1:       71572-71573
  567.                 Pin11 - S0-S1:       71576-71577
  568.                 Pin12 - S0-S1:       71580-71581
  569.                 Pin13 - S0-S1:       71584-71585
  570.                 Pin14 - S0-S1:       71588-71589
  571.                 Pin15 - S0-S1:       71592-71593
  572.                 Pin16 - S0-S1:       71596-71597
  573.                 Pin31 - S0-S1:       71600-71601
  574.                 Pin32 - S0-S1:       71604-71605
  575.                 Pin33 - S0-S1:       71608-71609
  576.                 Pin34 - S0-S1:       71612-71613
  577.                 Pin35 - S0-S1:       71616-71617
  578.                 Pin36 - S0-S1:       71620-71621
  579.                 Pin 9 - S0-S1:       71624-71625
  580.                 Pin 8 - S0-S1:       71628-71629
  581.                 Pin 7 - S0-S1:       71632-71633
  582.                 Pin 6 - S0-S1:       71636-71637
  583.                 Pin 5 - S0-S1:       71640-71641
  584.                 Pin 4 - S0-S1:       71644-71645
  585.  
  586.        Device Mnemonic: PLD9000
  587.     This is an imaginary device designed to represent a generalized PLA. 
  588.     It is intended to be used for designs which are not targeted for any 
  589.     particular device.  The device contains 100 pins, 45 inputs, 50 
  590.     outputs, and 5 clocks.  Each output has individual output enable 
  591.     control and can be configured in one of four modes.:  
  592.     combinatorial/active low, combinatorial/active high, 
  593.     D-registered/active low, or D-registered/active high.  There are no 
  594.     power and ground pins.  The pin organization is as follows:
  595.  
  596.         1.
  597.                 Pin organization:
  598.  
  599.                 Pin 1 - A common register clock input
  600.                 for output pins 51 - 100.
  601.  
  602.                 Pin 2 - A secondary common register clock input for 
  603.                 output pins 61 - 70.
  604.  
  605.                 Pin 3 - A secondary common register clock input for 
  606.                 output pins 71 - 80.
  607.  
  608.                 Pin 4 - A secondary common register clock input for 
  609.                 output pins 81 - 90.
  610.  
  611.                 Pin 5 - A secondary common register clock input for 
  612.                 output pins 91 - 100.
  613.  
  614.                 Pins 6 - 50 - Input pins.
  615.  
  616.                 Pins 51 - 100 Input-Output pins.
  617.  
  618.         2.      Banked clock control is set by writing .CKMUX 
  619.                 expressions.  By default the clock control is set to 
  620.                 clock pin 1.
  621.  
  622.         3.      There are 200 product terms organized in a PLA format, 
  623.                 so each is available to any output.
  624.  
  625.         Device Mnemonic: VIRTUAL
  626.  
  627.     DESIGNING WITH THE VIRTUAL DEVICE
  628.  
  629.     The virtual device allows the user to create digital designs for 
  630.     programmable logic without regard to the target architecture. The 
  631.     virtual device is not a device at all.  It is simply a removal of 
  632.     the restrictions by CUPL, allowing the design to contain unlimited 
  633.     product terms and pins. With the virtual device, CUPL allows all 
  634.     register types to be used.  The virtual device is useful for 
  635.     determining the resources needed to implement your design.(See 
  636.     virtual device design examples in Chapter U5.)
  637.  
  638.     OUTPUT
  639.     Valid output files when using virtual are .DOC, .PLA, .PDS, .LST, 
  640.     and .MX.  The following are not valid output file for virtual 
  641.     device: .JED, .HEX, and .ABS.
  642.  
  643.     DESIGNING STATE MACHINES
  644.     When designing state machines with the virtual device, you must 
  645.     indicate the register type. CUPL will not default the state bits to 
  646.     any type of register. If a specific register type is not indicated, 
  647.     compilation will still be completed but the resulting equations will 
  648.     not represent a state machine design.  The following examples 
  649.     illustrate state machine design with the virtual device.
  650.  
  651.     D REGISTERED
  652.  
  653.      SequenceD bits{
  654.      present 'b'0
  655.         default next 'b'1;
  656.      present 'b'1
  657.         default next 'b'0;
  658.  
  659.     }
  660.  
  661.     T REGISTERED
  662.  
  663.     SequenceT bits{
  664.     present 'b'0
  665.         default next 'b'1;
  666.     present 'b'1
  667.         default next 'b'0;
  668.     }
  669.  
  670.     JK REGISTERED
  671.  
  672.     SequenceJK bits{
  673.     present 'b'0
  674.         default next 'b'1;
  675.     present 'b'1
  676.         default next 'b'0;
  677.     }
  678.  
  679.     RS REGISTERED
  680.  
  681.     SequenceRS bits{
  682.     present 'b'0
  683.         default next 'b'1;
  684.     present 'b'1
  685.         default next 'b'0;
  686.     }
  687.  
  688.     PIN NUMBERING
  689.     When designing with the virtual device, pins do not have to be 
  690.     numbered but they do have to be declared.  Use the normal pin 
  691.     declaration commands but leave out the pin numbers.  If you do want 
  692.     to put pin numbers you are free to do so.
  693.  
  694.  
  695.     Pin  = OE;
  696.     Pin  = [Q2..0];
  697.  
  698.     When pins are declared with CUPL, there is no distinction between 
  699.     input and output pins at the time of declaration. CUPL determines 
  700.     whether pins are input or output depending upon the equations. 
  701.     Therefore, it is necessary to use pins consistently.  The compiler 
  702.     will generate an error if pins are not used consistently.
  703.  
  704.     PARTITIONING
  705.     One of the main uses for the virtual device is for partitioning.  
  706.     Since no device restrictions are placed on a virtual design, the 
  707.     design can be as large as necessary.  The documentation file created 
  708.     by the compiler is fed into the partitioner which can then split the 
  709.     logic among multiple devices.  The virtual device must also be used 
  710.     when FINDPLD is going to be used.  FINDPLD is a one device fitter 
  711.     similar to PLPartition which can find a single PLD for your 
  712.     design.(See Device Independent Design Flow in Chapter U1.)
  713.  
  714.     [Picture]
  715.     Figure B-1.  Using Virtual For Partitioning
  716.  
  717.     [Picture] 
  718.     Figure B-2.  Using Virtual Device With FindPLD
  719.  
  720.     INTERFACING WITH OTHER TOOLS
  721.  
  722.     The virtual device is used to interface with other tools such as 
  723.     XILINX, PLUSTRAN and other FPGA vendor compilers and tools. The 
  724.     output files used vary for each interface.
  725.  
  726.           [Picture]
  727.     Figure B-3.  Using Virtual Device With Other Tools
  728.  
  729.     LIMITATIONS
  730.  
  731.     There are some actual limitations built into the virtual device.  
  732.     The total number of allowable product terms is 9999.  The maximum 
  733.     pins is 200 and the maximum nodes is 200.
  734.  
  735.     POLARITY AND THE VIRTUAL DEVICE
  736.  
  737.     In devices with fixed inverting buffers, CUPL will automatically 
  738.     apply DeMorgan's theorem to active high equations to implement these 
  739.     equations in the active low pin. In devices that have programmable 
  740.     polarity, DeMorgan's theorem is not applied because the polarity bit 
  741.     can be blown to implement the desired logic.
  742.  
  743.     Normally CUPL examines the polarity defined in the pin statement, 
  744.     the polarity of the left side of the equation and the polarity on 
  745.     the right side of the equations to determine the polarity of the 
  746.     final equation.
  747.  
  748.     These will all produce the same results in a P22V10 device
  749.  
  750.  
  751.     Pin 2 = A;
  752.     Pin 2 = A;
  753.     Pin 2 = A;
  754.  
  755.     Pin 3 = B;
  756.     Pin 3 = B;
  757.     Pin 3 = B;
  758.  
  759.     Pin 16 = !X;
  760.     Pin 16 = X;
  761.     Pin 16 = X;
  762.  
  763.  
  764.     X = A & B;
  765.     !X = A & B;
  766.     X = !(A & B);
  767.  
  768.     In a virtual device, CUPL ignores the polarity defined in the pin 
  769.     statement. It only looks at the polarity in the equations.
  770.  
  771.     These will  all  produce the same  results  in  a VIRTUAL device
  772.  
  773.     Pin   = A;
  774.     Pin   = A;
  775.     Pin   = A;
  776.     Pin   = A;
  777.     Pin   = B;
  778.     Pin   = B;
  779.     Pin   = B;
  780.     Pin   = B;
  781.     Pin   = !X;
  782.     Pin   = X;
  783.     Pin   = X;
  784.     Pin   = !X;
  785.  
  786.     !X = A & B;
  787.     !X = A & B;
  788.     X = !(A & B);
  789.     X = !(A & B);
  790.  
  791.     What this means is that you cannot simply change the pin statement 
  792.     if you want to invert the logic of an equation.  The change has to 
  793.     be done in the equation itself.
  794.  
  795.  
  796.