Appendix Q Philips XPLA Support Supplement Introduction This appendix is intened to give you specific information for user-directed partitioning when targeting Philips XPLA CPLDs. The following table lists the resources for the XPLA family. Table Q-1. XPLA CPLD Resources XPLA32 XPLA64 XPLA128 Pins 44 44/68/84/100 84/100/128/160 I/O Pins 32 16/32 64/96/80 Input/Clock Pins 1 1 1 Input Only Pins 3 3 3 Logic Blocks 2 4 8 Total Macrocells 32 64 128 Buried Macrocells 0 16/32 64/32/48 Pterm Clocks 1 3 3 Automatic or User-Directed Partitioning PLDSynthesis II can take care of the physical partitioning of the design with its patented partitioner. You can also direct the partitioning by means of a Physical Information (.pi) file. With user-directed partitioning, you can assign specific functions/nodes to a device and its internals. For more detailed information on the use and structure of a .pi file, see Chapters 14 through 16. PLDSynthesis II can also use the .pi file to recreate the pinout of a previously automated partition. During the automated partitioning process solution(s) are found and you choose one from the Solutions menu. Placement information, including pinout, is then placed in a new physical information (filename.npi) file. The .npi file becomes a record of how the design is fit onto the device. To recreate a pinout, the .npi file is copied over to the .pi file so that subsequent refits of the design will maintain the older/previous pin-out. PLDSynthesis II User’s Guide (Version 3.8C) Q-1 Appendix Q - Philips XPLA Support Supplement Example DEVICE “ Device Specified is an XPLA32_32 TARGET ’TEMPLATE XPLA32_32 jlcc-44-P32’; “ Input clk has to be on pin 43 INPUT clk:43; “ Input in1 has to be on pin 2 INPUT in1:2; DEFAULT; “place all remaining (unspecified) outputs into this device “ Do not use the following pins NO_CONNECT 4, 5, 6, 7, 9, 10, 11, 12,13, 14, 16, 18, 19, 20, 21, 23, 24, 25, 26, 28; END DEVICE; Using the .pi file with Philips XPLA Devices The Philips fitter for PLDSynthesis II has the following .pi capabilities to increase fitting and refitting of designs: q Logic block assignment for functions. q Pin and node assignments for functions. q Maximum number of product terms. q Utilization of the device specifications. Existing properties are usable with the XPLA32 fitter without modification. These global properties include the following: Table Q-2. Global .PI File Properties for Use With XPLA DEMORGAN_SYNTH DISABLED_ONLY_FOR_TEST FF_SYNTH FIT_AS_OUTPUT FIT_WITH MAX_PTERMS MAX_SYMBOLS MAX_XOR_PTERMS NO_COLLAPSE POLARITY_CONTROL XOR_POLARITY_CONTROL XOR_TO_SOP_SYNTH Assigning Logic Blocks Philips devices require that you be able to specify how a design is partitioned into the various logic blocks. The general syntax is shown below. Syntax TARGET <block_id> Q-2 (Version 3.8C) Appendices Appendix Q - Philips XPLA Support Supplement Example For instance, you can specify the targeted block as follows: TARGET ’TEMPLATE XPLA32_32 jlcc-44-P32’: "place group into XPLA32_32 SECTION TARGET ’B’; q1; END SECTION; SECTION TARGET ’A’; ... out7, out8; END SECTION; END DEVICE; "section targeted at logic block B "force out7..out8 into Philips logic block A "assignment without physical pin or node numbers Assigning Pins Philips devices have: q Physical (absolute) pins - pins on the device package, available to the outside world. q Relative node numbers - node locations within the device. For each node number there is a corresponding node name. Node names are handy because they correspond to the logic block layout and do not require you to memorize node numbers. Note that there are two feedbacks associated with each macrocell in a Philips device: q Macrocell (register) feedback - feedbacks immediately after the macrocell. q Pin feedback - feedback after the tristate buffer. 0 - 16 Product Terms P I/O Cell CLK R To Array ZIA To Array ZIA Register Feedback Pin Feedback Figure Q-1. Simplified Diagram Showing Macrocell and Pin Feedback PLDSynthesis II User’s Guide (Version 3.8C) Q-3 Appendix Q - Philips XPLA Support Supplement Syntax B<block_id><feedback_id> Where: <block_id> is an optional block identifier from a..h <feedback_id> = M<mcell_number> | P<mcell_number> <mcell_number> is the macrocell number from 0 to 15 M<mcell_number> is the macrocell feedback> P<mcell_number> is the pin feedback. The feedback ordering above assumes internal feedback precedes the pin feedback and visible macrocells precede buried macrocells. NOTE ! Specifying pin feedback for buried macrocells will cause the fitter to indicate a semantic error, since there isn’t pin feedback on buried macrocells. If the pin feedback is bonded-out, there is a corresponding absolute pin number for the pin feedback as well. This means the absolute pin numbers can be substituted for the pin feedback. The following table lists relative node names and their virtual pin numbers. These are followed by absolute pin numbers for combinations of I/O and package type. Table Q-3. Relative, Virtual Pins and Absolute for XPLA32_32 Package (JLCC) Relative Node Names Package Pin Number JLCC BaM00..BaM15 BaP00..BaP15 4-9,11-14,16-21 BbM00..BbM15 BbP00..BbP15 41-36,34-31,29-24 Example SECTION TARGET ’A’; "put into block A " Explicitly use buried node to place internal signal in logic block A on macrocell 1 and " explicitly use the feedback path from the macrocell " internalSig:BaM01; END SECTION; PLCC (Plastic Leaded Chip Carrier) is the default package for XPLA devices. Although you can specify any package type for a device, package type information is used only for Timing Path Analysis (found in the fitter report.) As far as pin assignments are concerned, the current fitter accepts pin numbers only for the default packages. This means if a non-default package is used, you must translate the design file pin numbers for that package into equivalent PLCC pin numbers, or use the relative node numbers. For more information on package pin numbering, see the appropriate XPLA documentation. Q-4 (Version 3.8C) Appendices Appendix Q - Philips XPLA Support Supplement Specifying Device Utilization The UTILIZATION property allows you to specify the maximum percentage of internal device resources used. This lets you specify reserve resources in the device. Using the UTILIZATION property affects the use of pterms and macrocells. There are two reasons to reserve some resources in a device: 1) Resources may be reserved to allow for expansion of logic. 2) Resources may be reserved to ease and speed the fitting process. Simply put, it is easier for the Philips XPLA fitter to place and route a solution at 80% utilization, than at 100% utilization. If design iteration speed is more important than density (e.g., earlier in the design cycle), set the utilization factor to a lower value. Syntax {UTILIZATION percent}; Where percent is the maximum percentage of device resources to be used. Values are from 0 to 100. Unused resources are distributed throughout the device. Using the XPLA Global Tri-State The global tri-state (also called Device Under Test or DUT) of the XPLA32 device lets you tri-state all outputs with a single low-true signal. This is most important during circuit board test, since it effectively removes (electrically) the XPLA device from the board under test. The global tri-state enable is on pin 44 of the XPLA32 PLCC package. The following table summarizes the tristate enable’s functions. Table Q-4. XPLA32 Global Tri-State Enable Functions Signal level Function Result Low (not asserted) All I/O pins enabled High (asserted) All I/O pins tri-state Normal operation of all macrocell output enable buffers All I/O pins tri-state, regardless of whether or not each macrocell’s output enable buffer is tri-stated Setting the Global Tri-State in the .pi File PLDSynthesis II provides a .pi file property specifically for controlling the XPLA global tri-state. The property is GLOBAL_ENALBLE and defines which signal in your design will function as the global tri-state enable. The property will be ignored if used with any device other than an XPLA. Syntax { GLOBAL_ENABLE }; The GLOBAL_ENABLE property must be attached to an input signal in the .pi file. The signal to which the property is attached will be placed on the input/GTSN pin of the XPLA device (pin 44 of the XPLA32, PLCC). PLDSynthesis II User’s Guide (Version 3.8C) Q-5 Appendix Q - Philips XPLA Support Supplement If the GLOBAL_ENABLE property is not specified for an XPLA device, the input/GTSN pin on the device can be used as an ordinary input pin. The signal used as the global tri-state and the GLOBAL_ENABLE property attached to it must appear in a DEVICE construct inside the .pi file (the property is ignored if used outside a DEVICE construct.) You can attach the GLOBAL_ENABLE property to only one input signal per device; However, the input signal may be specified any number of times in the DEVICE construct. The input signal used as the global tri-state enable may also be specified inside a SECTION construct. You cannot attach the property on an output in the .pi file. If you attach the GLOBAL_ENABLE property to a signal, the only device pin you can assign that signal to explicitly is the input/GTSN pin. Likewise, if you have assigned the property to an input signal, you cannot assign another signal to the input/GTSN pin. Since PLDSynthesis II’s functional simulator is device independent, the simulator will ignore the GLOBAL_ENABLE property and the special function of the GTSN signal. The GLOBAL_ENABLE property does not affect the functionality or implementation of the ENABLED_BY construct or the DISABLED_FOR_TEST property. The property also does not affect the differentiation of internal and pin feedback. Examples Source File INPUT i[5], gtsn; OUTPUT o[5]; o=i; Physical Information (.pi) Files The following are examples of valid .pi file usage of GLOBAL_ENABLE. Example 1 DEVICE TARGET ’TEMPLATE XPLA32_32 JLCC-44-P32’; o[1]; gtsn {GLOBAL_ENABLE} ; "gtsn is the GTSN for this device END DEVICE; Example 2 DEVICE TARGET ’TEMPLATE XPLA32_32 JLCC-44-P32’; INPUT o[2]:44 { GLOBAL_ENABLE }; " o[2] is the GTSN for this DEVICE, with O[3]; " a valid pin assignment END DEVICE; Q-6 (Version 3.8C) Appendices Appendix Q - Philips XPLA Support Supplement The following are examples of invalid .pi file usage of GLOBAL_ENABLE. Example 3 DEVICE TARGET ’TEMPLATE XPLA32_32 JLCC-44-P32’; i[1]:44; gtsn {GLOBAL_ENABLE} ; "invalid because i[1] is assigned to pin 44 0[2]; END DEVICE; Example 4 DEVICE TARGET ’TEMPLATE XPLA32_32 JLCC-44-P32’; i[1] {GLOBAL_ENABLE}; gtsn:44 {GLOBAL_ENABLE} ; "invalid because i[1] is also "GLOBAL_ENABLE o[4] {GLOBAL_ENABLE}; "invalid because o[4] is an output END DEVICE; Example 5 DEVICE TARGET ’TEMPLATE XPLA32_32 JLCC-44-P32’; SECTION gtsn:01 {GLOBAL_ENABLE} ; gtsn:02 {GLOBAL_ENABLE}; "OK, but redundant END SECTION; END DEVICE; PLDSynthesis II User’s Guide (Version 3.8C) Q-7 Appendix Q - Philips XPLA Support Supplement Q-8 (Version 3.8C) Appendices