home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 13 / 13.iso / p / p078 / 7.img / PLDDOCS.PLB / DEVICES.TXT < prev    next >
Encoding:
Text File  |  1991-02-18  |  138.4 KB  |  3,995 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.                                    OrCAD PLD
  7.  
  8.  
  9.                      PROGRAMMABLE DEVICE REFERENCE TABLES
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.           The tables shown here describe the format of programmable
  27.           logic devices processed by the OrCAD PLD compiler.  The
  28.           material is equivalent to the binary .TBL files in directory
  29.           \ORCADESP\PLD\LIBRARY, except here the material appears in
  30.           ASCII text format.  The material is formatted as a booklet,
  31.           with form feeds between pages, suitable for printing at six
  32.           lines per inch and twelve characters per inch on standard
  33.           paper.
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.                                 February, 1991
  53.  
  54.  
  55.  
  56.  
  57.                                TABLE OF CONTENTS
  58.  
  59.  
  60.  
  61.  
  62. 1.  INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . .   1
  63.     Phases of the compiler . . . . . . . . . . . . . . . . . . . . .   1
  64.     Pin keywords . . . . . . . . . . . . . . . . . . . . . . . . . .   2
  65.     Fuse array . . . . . . . . . . . . . . . . . . . . . . . . . . .   3
  66.  
  67. 2.  GENERAL 20-SERIES DEVICES  . . . . . . . . . . . . . . . . . . .   5
  68.  
  69. 3.  SPECIAL 20-SERIES DEVICES  . . . . . . . . . . . . . . . . . . .   9
  70.  
  71. 4.  GENERAL 24-SERIES DEVICES  . . . . . . . . . . . . . . . . . . .  12
  72.  
  73. 5.  SPECIAL 24-SERIES DEVICES  . . . . . . . . . . . . . . . . . . .  19
  74.  
  75. 6.  GENERAL 28-SERIES DEVICES  . . . . . . . . . . . . . . . . . . .  24
  76.  
  77. 7.  SELECTABLE REGISTER DEVICES  . . . . . . . . . . . . . . . . . .  27
  78.  
  79. 8.  GALs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  32
  80.     Automatic selection of modes . . . . . . . . . . . . . . . . . .  32
  81.     Registers and enables  . . . . . . . . . . . . . . . . . . . . .  35
  82.     Forcing a specific mode  . . . . . . . . . . . . . . . . . . . .  37
  83.     Pin assignment . . . . . . . . . . . . . . . . . . . . . . . . .  37
  84.     Signatures . . . . . . . . . . . . . . . . . . . . . . . . . . .  39
  85.  
  86. 9.  RA DEVICES . . . . . . . . . . . . . . . . . . . . . . . . . . .  46
  87.  
  88. 10. EP DEVICES . . . . . . . . . . . . . . . . . . . . . . . . . . .  48
  89.     EP300 series . . . . . . . . . . . . . . . . . . . . . . . . . .  48
  90.     EP320 series . . . . . . . . . . . . . . . . . . . . . . . . . .  49
  91.     EP600 and EP900 series . . . . . . . . . . . . . . . . . . . . .  51
  92.     EP1800 series  . . . . . . . . . . . . . . . . . . . . . . . . .  57
  93.  
  94. 11. MACH DEVICES . . . . . . . . . . . . . . . . . . . . . . . . . .  63
  95.  
  96. 12. EMITTER COUPLED DEVICES  . . . . . . . . . . . . . . . . . . . .  64
  97.  
  98. 13. EXCLUSIVE-OR DEVICES . . . . . . . . . . . . . . . . . . . . . .  67
  99.  
  100. 14. GENERIC DEVICES  . . . . . . . . . . . . . . . . . . . . . . . .  69
  101.  
  102. 15. DEMONSTRATION DEVICE . . . . . . . . . . . . . . . . . . . . . .  71
  103.  
  104. 16. PROGRAMMABLE READ ONLY MEMORIES  . . . . . . . . . . . . . . . .  72
  105.  
  106.     INDEX  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  81
  107.  
  108.  
  109.  
  110.                                    OrCAD PLD
  111.  
  112.  
  113.                      PROGRAMMABLE DEVICE REFERENCE TABLES
  114.  
  115.  
  116.  
  117. 1.  INTRODUCTION
  118.  
  119.     The tables shown here describe the format of programmable logic devices
  120. processed by the OrCAD PLD compiler.  The material is equivalent to the binary
  121. .TBL files in directory \ORCADESP\PLD\LIBRARY, except here the material appears
  122. in ASCII text format.  This is in fact the source material for the .TBL files.
  123. The format of the tables is described in an appendix of the OrCAD PLD reference
  124. guide, with some of the description repeated here.
  125.  
  126.  
  127. Phases of the compiler
  128. ----------------------
  129.  
  130.     For simple devices, architectural configuration is handled within the
  131. compiler under the guidance of these reference tables.  For more advanced
  132. devices, architecture is handled partly by a separate program, loaded as an
  133. overlay to the PLD compiler.  Each class of devices has its own overlay, which
  134. carries a .BIN extension in the library.  When processing a design, the
  135. compiler runs through these phases.
  136.  
  137. 1.  Parsing.  In this phase, the source file is read, checked for proper
  138.     syntax, and converted to a compact form in the computer's memory.
  139.  
  140. 2.  Logic synthesis.  Numerical maps, state machines, truth tables, and other
  141.     abstract definitions are converted to Boolean equations.
  142.  
  143. 3.  Logic reduction.  The Boolean equations are processed to achieve smaller,
  144.     more compact forms without changing the logic.
  145.  
  146. 4.  Architecture.  The reduced equations are examined and the device is
  147.     configured by setting its architectural fuses.  This involves programming
  148.     output macrocells, selecting device modes, and so forth.  For simpler
  149.     devices, the compiler handles this phase directly.  For more elaborate
  150.     devices, an overlay is called upon to do the work.
  151.  
  152. 5.  Fuse generation.  Equations (now possibly altered during the architectural
  153.     phase) are converted to a fuse map and stored in the main fuse array.
  154.     Reports showing the final results are printed, the .VEC and .JED files are
  155.     produced, and a final summary showing time and memory is printed.
  156.  
  157.  
  158.     The most important data for everyday use are the pin lists associated with
  159. `in', `out', `io', and `clock' keywords for each device.  As explained in the
  160. PLD reference guide, pin numbers can be listed explicitly.  However, it is
  161. usually easier to list pin names such as `in' and `io'.  To find out what pin
  162. names to use, you need these reference tables.
  163.  
  164. PROGRAMMABLE DEVICE REFERENCE TABLES                                     Page 2
  165.  
  166.  
  167. Pin keywords
  168. ------------
  169.  
  170.     In the tables that follow, pins for the programmable devices are grouped
  171. into at least seven different categories:
  172.  
  173. Group    Keyword      Description
  174.  
  175.  1       in           Used for pins that are purely input.
  176.  
  177.  2       out          Used for pins that are output, possibly but not
  178.                       necessarily with feedback.
  179.  
  180.  3       io           Used for pins that are output with feedback.
  181.  
  182.  4       clock        Used to clock edge-triggered registers within the
  183.                       device.
  184.  
  185.  5       enable       Used to enable tri-state drivers within the device.
  186.                       This is used only for hard-wired common enable lines.
  187.  
  188.  6       reset        Used to reset internal registers (force them low).  On
  189.                       the PAL22V10 and others, this is not an actual pin but
  190.                       rather is an internal node.
  191.  
  192.  7       preset       Used to preset internal registers (force them high).
  193.                       Like reset, on the PAL22V10 and others, this is not an
  194.                       actual pin but rather is an internal node.
  195.  
  196.  
  197.     To see how the pin names are used, consider the table for a PAL16R6.  (PAL
  198. is a registered trademark of Advanced Micro Devices).  The PAL16R6 has eight
  199. pure input pins (numbered 2 through 9), six registered output pins with
  200. feedback (numbered 13 through 18), and two combinational input/ouput pins
  201. (numbered 12 and 19), also with feedback.  There is a common clock and common
  202. enable for all the registers (pins 1 and 11).  The PAL16R6 table lists the
  203. following groups of pins together with the actual pin numbers in the order they
  204. are assigned by the PLD compiler:
  205.  
  206.     Type             PAL16R6
  207.     Activity         0
  208.  
  209.     Group 1 (in)     2 3 4 5 6 7 8 9
  210.     Group 2 (out)    18 17 16 15 14 13
  211.     Group 3 (io)     19 12
  212.  
  213.     Group 4 (clock)  1
  214.     Group 5 (enable) 11
  215.  
  216.     Columns          2 19 3 18 4 17 5 16 6 15 7 14 8 13 9 12
  217.     Rows             19(1t7) 18(8R) 17(8R) 16(8R) 15(8R) 14(8R) 13(8R) 12(1t7)
  218.  
  219. PROGRAMMABLE DEVICE REFERENCE TABLES                                     Page 3
  220.  
  221.  
  222.     The first two lines of the table simply identify the device and declare
  223. that the device favors active-low signals (output drivers are inverters).  The
  224. next three lines define which pins are connected to signals in Group 1 (in),
  225. Group 2 (out), and Group 3 (io).  Suppose a PLD definition begins like this.
  226.  
  227.     PAL16R6   in:(A, B, C, D, E, F), out:Y[5..0]
  228.  
  229. Then the signals marked `in' will be matched with the Group 1 pins, starting at
  230. the left.  A is assigned to pin 2, B to pin 3, C to pin 4, and so forth.  Pins
  231. 8 and 9 remain disconnected.
  232.  
  233.     Group 1 (in)   2 3 4 5 6 7 8 9
  234.                    : : : : : :
  235.                    A B C D E F
  236.  
  237. Likewise, the signals marked `out' will be matched with the Group 2 pins.  This
  238. time no pins remain disconnected.
  239.  
  240.     Group 2 (out)  18 17 16 15 14 13
  241.                     :  :  :  :  :  :
  242.                    Y5 Y4 Y3 Y2 Y1 Y0
  243.  
  244. Since no signals are marked `io', pins 19 and 12 remain disconnected.
  245.  
  246.  
  247.     It is important to understand that the keywords `in', `out', `io', and so
  248. forth are just symbolic names for pins, and that the precise pin assignment for
  249. each keyword depends upon the device.  To find out precisely what keywords
  250. apply to the device you are using, you must consult the tables that follow.  If
  251. you use keywords that are not defined for a device, or if you attach more
  252. signals to a keyword than available pins permit, the PLD compiler will register
  253. a complaint in the form of a fatal error message.
  254.  
  255.  
  256. Fuse array
  257. ----------
  258.  
  259.     The last two lines of the table are less important for everyday use, since
  260. they represent the internal structure of the device, and since that structure
  261. is defined in data books.  The line labelled Columns describes which pins are
  262. connected to input columns of the fuse array.  As is typical for these devices,
  263. column 0 is connected through a buffer and column 1 is connected through an
  264. inverter.
  265.  
  266.     Columns     2 19 3 18 4 17 5 16 6 15 7 14 8 13 9 12
  267.                 :  : :                                :
  268.                 :  : Columns 3 and 4                  Columns 30 and 31
  269.                 :  Columns 2 and 3
  270.                 Columns 0 and 1
  271.  
  272. PROGRAMMABLE DEVICE REFERENCE TABLES                                     Page 4
  273.  
  274.  
  275.     The line labelled Rows describes which pins are connected to output rows in
  276. the fuse array.  Each row represents a product term.  The pin number appears
  277. first, and it is followed by a parenthesized description of product terms.  For
  278. the PAL16R6, the rows are defined like this:
  279.  
  280.     Rows        19(1t7) 18(8R) 17(8R) 16(8R) 15(8R) 14(8R) 13(8R) 12(1t7)
  281.  
  282. Each item has the following meaning.
  283.  
  284.     19(1t7)     Pin 19 has one tri-state and seven combinational product terms.
  285.     18(8R)      Pin 18 has eight registered product terms.
  286.     17(8R)      Pin 17 has eight registered product terms.
  287.     16(8R)      Pin 16 has eight registered product terms.
  288.     15(8R)      Pin 15 has eight registered product terms.
  289.     14(8R)      Pin 14 has eight registered product terms.
  290.     13(8R)      Pin 13 has eight registered product terms.
  291.     12(1t7)     Pin 12 has one tri-state and seven combinational product terms.
  292.  
  293. If you look at other device tables, you will see other possibilities:
  294.  
  295.     25(1)       Pin 25 has only one combinational product term.
  296.  
  297.     19(1t16R)   Pin 19 has one tri-state and 16 registered product terms.
  298.  
  299.     23(2x2R)    Pin 23 has an exclusive-or gate with two product terms on each
  300.                 input, and the output of the gate is registered.
  301.  
  302.  
  303.     Each row in the device is numbered.  Row numbering starts with zero for the
  304. first pin in the list and advances by the number of product terms in
  305. parentheses.  Thus, for the PAL16R8, where each output pin has eight product
  306. terms total, row numbers advance by eight for each pin:
  307.  
  308.     Rows        19(1t7) 18(8R) 17(8R) 16(8R) 15(8R) 14(8R) 13(8R) 12(1t7)
  309.                     :      :      :      :      :      :      :      :
  310.                     :      :      :      :      :      :      :     Rows 56-63
  311.                     :      :      :      :      :      :     Rows 48-55
  312.                     :      :      :      :      :     Rows 40-47
  313.                     :      :      :      :     Rows 32-39
  314.                     :      :      :     Rows 24-31
  315.                     :      :     Rows 16-23
  316.                     :     Rows 8-15
  317.                    Rows 0-7
  318.  
  319.  
  320.     With 64 rows and 32 columns, the PAL16R6 has 64x32 or 2048 fuses.  Fuse 0
  321. represents row 0, column 0; fuse 1 represents row 0, column 1; fuse 31
  322. represents row 0, column 31; fuse 32 represents row 1, column 0; and so forth.
  323. In general, the fuse number in the main array is the row number times the
  324. number of columns per row plus the column number.  Many devices, such as the
  325. PAL22V10, have additional configuration fuses outside the main array.
  326.  
  327. PROGRAMMABLE DEVICE REFERENCE TABLES                                     Page 5
  328.  
  329.  
  330. 2.  GENERAL 20-SERIES DEVICES
  331.  
  332.     Twenty-pin devices with a complete array of fuses are referred to in these
  333. tables as the "general 20-series".  Devices in this group usually have eight
  334. product terms available for each output, and most outputs include feedback into
  335. the array.  Registers are available, for example in the PAL16R6, but these
  336. registers are hard-wired and cannot be bypassed to form combinational output.
  337.  
  338.     In all the tables that follow, backslash (\) at the end of a line indicates
  339. that the material continues on the next line.  A number in brackets after the
  340. keyword Rows indicates the beginning number for programmable polarity fuses.
  341.  
  342.  
  343. |Type             PAL16L8
  344. |Activity         0
  345. |
  346. |Group 1 (in)     1 2 3 4 5 6 7 8 9 11
  347. |Group 2 (out)    19 12
  348. |Group 3 (io)     18 17 16 15 14 13
  349. |
  350. |Columns          2 1 3 18 4 17 5 16 6 15 7 14 8 13 9 11
  351. |Rows             19(1t7) 18(1t7) 17(1t7) 16(1t7) 15(1t7) 14(1t7) \
  352. |                 13(1t7) 12(1t7)
  353.  
  354.  
  355. |Type             PAL16H8
  356. |Activity         1
  357. |
  358. |Group 1 (in)     1 2 3 4 5 6 7 8 9 11
  359. |Group 2 (out)    19 12
  360. |Group 3 (io)     18 17 16 15 14 13
  361. |
  362. |Columns          2 1 3 18 4 17 5 16 6 15 7 14 8 13 9 11
  363. |Rows             19(1t7) 18(1t7) 17(1t7) 16(1t7) 15(1t7) 14(1t7) \
  364. |                 13(1t7) 12(1t7)
  365.  
  366.  
  367. |Type             PAL16P8
  368. |
  369. |Group 1 (in)     1 2 3 4 5 6 7 8 9 11
  370. |Group 2 (out)    19 12
  371. |Group 3 (io)     18 17 16 15 14 13
  372. |
  373. |Columns          2 1 3 18 4 17 5 16 6 15 7 14 8 13 9 11
  374. |Rows[2048]       19(1t7) 18(1t7) 17(1t7) 16(1t7) 15(1t7) 14(1t7) \
  375. |                 13(1t7) 12(1t7)
  376.  
  377. PROGRAMMABLE DEVICE REFERENCE TABLES                                     Page 6
  378.  
  379.  
  380. |Type             PAL16LD8
  381. |Activity         0
  382. |
  383. |Group 1 (in)     1 2 3 4 5 6 7 8 9 11
  384. |Group 2 (out)    19 12
  385. |Group 3 (io)     18 17 16 15 14 13
  386. |
  387. |Columns          2 1 3 18 4 17 5 16 6 15 7 14 8 13 9 11
  388. |Rows             19(8) 18(8) 17(8) 16(8) 15(8) 14(8) 13(8) 12(8)
  389.  
  390.  
  391. |Type             PAL16HD8
  392. |Activity         1
  393. |
  394. |Group 1 (in)     1 2 3 4 5 6 7 8 9 11
  395. |Group 2 (out)    19 12
  396. |Group 3 (io)     18 17 16 15 14 13
  397. |
  398. |Columns          2 1 3 18 4 17 5 16 6 15 7 14 8 13 9 11
  399. |Rows             19(8) 18(8) 17(8) 16(8) 15(8) 14(8) 13(8) 12(8)
  400.  
  401.  
  402. |Type             PAL18P8
  403. |
  404. |Group 1 (in)     1 2 3 4 5 6 7 8 9 11
  405. |Group 3 (io)     19 18 17 16 15 14 13 12
  406. |
  407. |Columns          2 1 3 18 4 17 5 16 6 15 7 14 8 13 9 11 19 12
  408. |Rows[2592]       19(1t8) 18(1t8) 17(1t8) 16(1t8) 15(1t8) 14(1t8) \
  409. |                 13(1t8) 12(1t8)
  410.  
  411.  
  412. |Type             PAL16R4
  413. |Activity         0
  414. |
  415. |Group 1 (in)     2 3 4 5 6 7 8 9
  416. |Group 2 (out)    17 16 15 14
  417. |Group 3 (io)     19 18 13 12
  418. |Group 4 (clock)  1
  419. |Group 5 (enable) 11
  420. |
  421. |Columns          2 19 3 18 4 17 5 16 6 15 7 14 8 13 9 12
  422. |Rows             19(1t7) 18(1t7) 17(8R) 16(8R) 15(8R) 14(8R) 13(1t7) 12(1t7)
  423.  
  424. PROGRAMMABLE DEVICE REFERENCE TABLES                                     Page 7
  425.  
  426.  
  427. |Type             PAL16R6
  428. |Activity         0
  429. |
  430. |Group 1 (in)     2 3 4 5 6 7 8 9
  431. |Group 2 (out)    18 17 16 15 14 13
  432. |Group 3 (io)     19 12
  433. |Group 4 (clock)  1
  434. |Group 5 (enable) 11
  435. |
  436. |Columns          2 19 3 18 4 17 5 16 6 15 7 14 8 13 9 12
  437. |Rows             19(1t7) 18(8R) 17(8R) 16(8R) 15(8R) 14(8R) 13(8R) 12(1t7)
  438.  
  439.  
  440. |Type             PAL16R8
  441. |Activity         0
  442. |
  443. |Group 1 (in)     2 3 4 5 6 7 8 9
  444. |Group 2 (out)    19 18 17 16 15 14 13 12
  445. |Group 4 (clock)  1
  446. |Group 5 (enable) 11
  447. |
  448. |Columns          2 19 3 18 4 17 5 16 6 15 7 14 8 13 9 12
  449. |Rows             19(8R) 18(8R) 17(8R) 16(8R) 15(8R) 14(8R) 13(8R) 12(8R)
  450.  
  451.  
  452. |Type             PAL16RP4
  453. |Activity         0
  454. |
  455. |Group 1 (in)     2 3 4 5 6 7 8 9
  456. |Group 2 (out)    17 16 15 14
  457. |Group 3 (io)     19 18 13 12
  458. |Group 4 (clock)  1
  459. |Group 5 (enable) 11
  460. |
  461. |Columns          2 19 3 18 4 17 5 16 6 15 7 14 8 13 9 12
  462. |Rows[2048]       19(1t7) 18(1t7) 17(8R) 16(8R) 15(8R) 14(8R) 13(1t7) 12(1t7)
  463.  
  464.  
  465. |Type             PAL16RP6
  466. |Activity         0
  467. |
  468. |Group 1 (in)     2 3 4 5 6 7 8 9
  469. |Group 2 (out)    18 17 16 15 14 13
  470. |Group 3 (io)     19 12
  471. |Group 4 (clock)  1
  472. |Group 5 (enable) 11
  473. |
  474. |Columns          2 19 3 18 4 17 5 16 6 15 7 14 8 13 9 12
  475. |Rows[2048]       19(1t7) 18(8R) 17(8R) 16(8R) 15(8R) 14(8R) 13(8R) 12(1t7)
  476.  
  477. PROGRAMMABLE DEVICE REFERENCE TABLES                                     Page 8
  478.  
  479.  
  480. |Type             PAL16RP8
  481. |
  482. |Group 1 (in)     2 3 4 5 6 7 8 9
  483. |Group 2 (out)    19 18 17 16 15 14 13 12
  484. |Group 4 (clock)  1
  485. |Group 5 (enable) 11
  486. |
  487. |Columns          2 19 3 18 4 17 5 16 6 15 7 14 8 13 9 12
  488. |Rows[2048]       19(8R) 18(8R) 17(8R) 16(8R) 15(8R) 14(8R) 13(8R) 12(8R)
  489.  
  490. PROGRAMMABLE DEVICE REFERENCE TABLES                                     Page 9
  491.  
  492.  
  493. 3.  SPECIAL 20-SERIES DEVICES
  494.  
  495.     Twenty-pin devices which are sparsely populated with fuses are referred to
  496. in these tables as the "special 20-series".  Devices in this group usually have
  497. a limited number of product terms available for each output and the number of
  498. product terms often varies from pin to pin.  Furthermore, feedback within the
  499. device is usually not available.  When using these devices, be sure to study
  500. the tables that follow or the diagrams in your data books to make sure the
  501. devices are suitable for your applications.
  502.  
  503. |Type             PAL10L8
  504. |Activity         0
  505. |
  506. |Group 1 (in)     1 2 3 4 5 6 7 8 9 11
  507. |Group 2 (out)    19 18 17 16 15 14 13 12
  508. |
  509. |Columns          2 1 3 4 5 6 7 8 9 11
  510. |Rows             19(2) 18(2) 17(2) 16(2) 15(2) 14(2) 13(2) 12(2)
  511.  
  512.  
  513. |Type             PAL10H8
  514. |Activity         1
  515. |
  516. |Group 1 (in)     1 2 3 4 5 6 7 8 9 11
  517. |Group 2 (out)    19 18 17 16 15 14 13 12
  518. |
  519. |Columns          2 1 3 4 5 6 7 8 9 11
  520. |Rows             19(2) 18(2) 17(2) 16(2) 15(2) 14(2) 13(2) 12(2)
  521.  
  522.  
  523. |Type             PAL10P8
  524. |
  525. |Group 1 (in)     1 2 3 4 5 6 7 8 9 11
  526. |Group 2 (out)    19 18 17 16 15 14 13 12
  527. |
  528. |Columns          2 1 3 4 5 6 7 8 9 11
  529. |Rows[320]        19(2) 18(2) 17(2) 16(2) 15(2) 14(2) 13(2) 12(2)
  530.  
  531.  
  532. |Type             PAL12L6
  533. |Activity         0
  534. |
  535. |Group 1 (in)     1 2 19 3 4 5 6 7 8 9 12 11
  536. |Group 2 (out)    18 17 16 15 14 13
  537. |
  538. |Columns          2 1 3 19 4 5 6 7 8 12 9 11
  539. |Rows             18(4) 17(2) 16(2) 15(2) 14(2) 13(4)
  540.  
  541. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 10
  542.  
  543.  
  544. |Type             PAL12H6
  545. |Activity         1
  546. |
  547. |Group 1 (in)     1 2 19 3 4 5 6 7 8 9 12 11
  548. |Group 2 (out)    18 17 16 15 14 13
  549. |
  550. |Columns          2 1 3 19 4 5 6 7 8 12 9 11
  551. |Rows             18(4) 17(2) 16(2) 15(2) 14(2) 13(4)
  552.  
  553.  
  554. |Type             PAL12P6
  555. |
  556. |Group 1 (in)     1 2 19 3 4 5 6 7 8 9 12 11
  557. |Group 2 (out)    18 17 16 15 14 13
  558. |
  559. |Columns          2 1 3 19 4 5 6 7 8 12 9 11
  560. |Rows[384]        18(4) 17(2) 16(2) 15(2) 14(2) 13(4)
  561.  
  562.  
  563. |Type             PAL14L4
  564. |Activity         0
  565. |
  566. |Group 1 (in)     1 2 19 3 18 4 5 6 7 8 13 9 12 11
  567. |Group 2 (out)    17 16 15 14
  568. |
  569. |Columns          2 1 3 19 4 18 5 6 7 13 8 12 9 11
  570. |Rows             17(4) 16(4) 15(4) 14(4)
  571.  
  572.  
  573. |Type             PAL14H4
  574. |Activity         1
  575. |
  576. |Group 1 (in)     1 2 19 3 18 4 5 6 7 8 13 9 12 11
  577. |Group 2 (out)    17 16 15 14
  578. |
  579. |Columns          2 1 3 19 4 18 5 6 7 13 8 12 9 11
  580. |Rows             17(4) 16(4) 15(4) 14(4)
  581.  
  582.  
  583. |Type             PAL14P4
  584. |
  585. |Group 1 (in)     1 2 19 3 18 4 5 6 7 8 13 9 12 11
  586. |Group 2 (out)    17 16 15 14
  587. |
  588. |Columns          2 1 3 19 4 18 5 6 7 13 8 12 9 11
  589. |Rows[448]        17(4) 16(4) 15(4) 14(4)
  590.  
  591. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 11
  592.  
  593.  
  594. |Type             PAL16C1
  595. |Activity         1
  596. |
  597. |Group 1 (in)     1 2 19 3 18 4 17 5 6 7 14 8 13 9 12 11
  598. |Group 2 (out)    16
  599. |
  600. |Columns          2 1 3 19 4 18 5 17 6 14 7 13 8 12 9 11
  601. |Rows             16(16)
  602.  
  603.  
  604. |Type             PAL16L2
  605. |Activity         0
  606. |
  607. |Group 1 (in)     1 2 19 3 18 4 17 5 6 7 14 8 13 9 12 11
  608. |Group 2 (out)    16 15
  609. |
  610. |Columns          2 1 3 19 4 18 5 17 6 14 7 13 8 12 9 11
  611. |Rows             16(8) 15(8)
  612.  
  613.  
  614. |Type             PAL16H2
  615. |Activity         1
  616. |
  617. |Group 1 (in)     1 2 19 3 18 4 17 5 6 7 14 8 13 9 12 11
  618. |Group 2 (out)    16 15
  619. |
  620. |Columns          2 1 3 19 4 18 5 17 6 14 7 13 8 12 9 11
  621. |Rows             16(8) 15(8)
  622.  
  623.  
  624. |Type             PAL16P2
  625. |
  626. |Group 1 (in)     1 2 19 3 18 4 17 5 6 7 14 8 13 9 12 11
  627. |Group 2 (out)    16 15
  628. |
  629. |Columns          2 1 3 19 4 18 5 17 6 14 7 13 8 12 9 11
  630. |Rows[512]        16(8) 15(8)
  631.  
  632.  
  633. |Type             PAL16N8
  634. |
  635. |Pins             20
  636. |Activity         0
  637. |
  638. |Group 1 (in)     2 1 3 4 5 6 7 8 9 11
  639. |Group 2 (out)    19 12
  640. |Group 3 (io)     18 17 16 15 14 13
  641. |
  642. |Columns          2 1 3 18 4 17 5 16 6 15 7 14 8 13 9 11
  643. |
  644. |Rows             19(1t1) 18(1t1) 17(1t1) 16(1t1) \
  645. |                 15(1t1) 14(1t1) 13(1t1) 12(1t1)
  646.  
  647. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 12
  648.  
  649.  
  650. 4.  GENERAL 24-SERIES DEVICES
  651.  
  652.     Twenty-four pin devices with a complete array of fuses are referred to in
  653. these tables as the "general 24-series".  Like their 20-pin counterparts,
  654. devices in this group usually have eight product terms available for each
  655. output, and most ouputs include feedback into the array.  Registers are
  656. available, but are hard-wired here too.
  657.  
  658. |Type             PAL20L8
  659. |Activity         0
  660. |
  661. |Group 1 (in)     1 2 23 3 4 5 6 7 8 9 10 11 14 13
  662. |Group 2 (out)    22 15
  663. |Group 3 (io)     21 20 19 18 17 16
  664. |
  665. |Columns          2 1 3 23 4 21 5 20 6 19 7 18 8 17 9 16 10 14 11 13
  666. |Rows             22(1t7) 21(1t7) 20(1t7) 19(1t7) 18(1t7) 17(1t7) \
  667. |                 16(1t7) 15(1t7)
  668.  
  669.  
  670. |Type             PAL20H8
  671. |Activity         1
  672. |
  673. |Group 1 (in)     1 2 23 3 4 5 6 7 8 9 10 11 14 13
  674. |Group 2 (out)    22 15
  675. |Group 3 (io)     21 20 19 18 17 16
  676. |
  677. |Columns          2 1 3 23 4 21 5 20 6 19 7 18 8 17 9 16 10 14 11 13
  678. |Rows             22(1t7) 21(1t7) 20(1t7) 19(1t7) 18(1t7) 17(1t7) \
  679. |                 16(1t7) 15(1t7)
  680.  
  681.  
  682. |Type             PAL20P8
  683. |
  684. |Group 1 (in)     1 2 23 3 4 5 6 7 8 9 10 11 14 13
  685. |Group 2 (out)    22 15
  686. |Group 3 (io)     21 20 19 18 17 16
  687. |
  688. |Columns          2 1 3 23 4 21 5 20 6 19 7 18 8 17 9 16 10 14 11 13
  689. |Rows[2560]       22(1t7) 21(1t7) 20(1t7) 19(1t7) 18(1t7) 17(1t7) \
  690. |                 16(1t7) 15(1t7)
  691.  
  692. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 13
  693.  
  694.  
  695. |Type             PAL20R4
  696. |Activity         0
  697. |
  698. |Group 1 (in)     2 23 3 4 5 6 7 8 9 10 11 14
  699. |Group 2 (out)    20 19 18 17
  700. |Group 3 (io)     22 21 16 15
  701. |Group 4 (clock)  1
  702. |Group 5 (enable) 13
  703. |
  704. |Columns          2 23 3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15 11 14
  705. |Rows             22(1t7) 21(1t7) 20(8R) 19(8R) 18(8R) 17(8R) \
  706. |                 16(1t7) 15(1t7)
  707.  
  708.  
  709. |Type             PAL20R6
  710. |Activity         0
  711. |
  712. |Group 1 (in)     2 23 3 4 5 6 7 8 9 10 11 14
  713. |Group 2 (out)    21 20 19 18 17 16
  714. |Group 3 (io)     22 15
  715. |Group 4 (clock)  1
  716. |Group 5 (enable) 13
  717. |
  718. |Columns          2 23 3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15 11 14
  719. |Rows             22(1t7) 21(8R) 20(8R) 19(8R) 18(8R) 17(8R) \
  720. |                 16(8R) 15(1t7)
  721.  
  722.  
  723. |Type             PAL20R8
  724. |Activity         0
  725. |
  726. |Group 1 (in)     2 23 3 4 5 6 7 8 9 10 11 14
  727. |Group 2 (out)    22 21 20 19 18 17 16 15
  728. |Group 4 (clock)  1
  729. |Group 5 (enable) 13
  730. |
  731. |Columns          2 23 3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15 11 14
  732. |Rows             22(8R) 21(8R) 20(8R) 19(8R) 18(8R) 17(8R) 16(8R) 15(8R)
  733.  
  734. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 14
  735.  
  736.  
  737.     Unlike their 20-pin counterparts, the 24-pin registered devices with
  738. programmable polarity do not necessarily have the same internal fuse structure
  739. as the corresponding devices without programmable polarity.  That is, ignoring
  740. the special polarity fuses, the fuse map for a PAL20RP4 is not necessarily
  741. identical to that of the PAL20R4.  In particular, the PAL20RP4 may use pins 14
  742. and 23 as input/output pins, whereas the PAL20R4 uses pins 14 and 23 as pure
  743. input pins.  You must be sure whether your device uses 14 and 23 as pure input
  744. or as input/output and select the proper table.  Tables with 14 and 23 as pure
  745. input pins end with the letter `I', as in PAL20RP4I.
  746.  
  747. |Type             PAL20RP4
  748. |
  749. |Group 1 (in)     2 3 4 5 6 7 8 9 10 11
  750. |Group 2 (out)    20 19 18 17
  751. |Group 3 (io)     23 22 21 16 15 14
  752. |Group 4 (clock)  1
  753. |Group 5 (enable) 13
  754. |
  755. |Columns          2 23 3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15 11 14
  756. |Rows[3440]       23(1t8) 22(1t8) 21(1t8)     \
  757. |                 20(8R) 19(8R) 18(8R) 17(8R) \
  758. |                 16(1t8) 15(1t8) 14(1t8)
  759.  
  760.  
  761. |Type             PAL20RP6
  762. |
  763. |Group 1 (in)     2 3 4 5 6 7 8 9 10 11
  764. |Group 2 (out)    21 20 19 18 17 16
  765. |Group 3 (io)     23 22 15 14
  766. |Group 4 (clock)  1
  767. |Group 5 (enable) 13
  768. |
  769. |Columns          2 23 3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15 11 14
  770. |Rows[3360]       23(1t8) 22(1t8)                           \
  771. |                 21(8R) 20(8R) 19(8R) 18(8R) 17(8R) 16(8R) \
  772. |                 15(1t8) 14(1t8)
  773.  
  774.  
  775. |Type             PAL20RP8
  776. |
  777. |Group 1 (in)     2 3 4 5 6 7 8 9 10 11
  778. |Group 2 (out)    22 21 20 19 18 17 16 15
  779. |Group 3 (io)     23 14
  780. |Group 4 (clock)  1
  781. |Group 5 (enable) 13
  782. |
  783. |Columns          2 23 3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15 11 14
  784. |Rows[3280]       23(1t8)                                                 \
  785. |                 22(8R) 21(8R) 20(8R) 19(8R) 18(8R) 17(8R) 16(8R) 15(8R) \
  786. |                 14(1t8)
  787.  
  788. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 15
  789.  
  790.  
  791. |Type             PAL20RP10
  792. |
  793. |Group 1 (in)     2 3 4 5 6 7 8 9 10 11
  794. |Group 2 (out)    23 22 21 20 19 18 17 16 15 14
  795. |Group 4 (clock)  1
  796. |Group 5 (enable) 13
  797. |
  798. |Columns          2 23 3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15 11 14
  799. |Rows[3200]       23(8R) 22(8R) 21(8R) 20(8R) 19(8R) \
  800. |                 18(8R) 17(8R) 16(8R) 15(8R) 14(8R)
  801.  
  802.  
  803. |Type             PAL20RP4I
  804. |
  805. |Group 1 (in)     2 23 3 4 5 6 7 8 9 10 11 14
  806. |Group 2 (out)    20 19 18 17
  807. |Group 3 (io)     22 21 16 15
  808. |Group 4 (clock)  1
  809. |Group 5 (enable) 13
  810. |
  811. |Columns          2 23 3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15 11 14
  812. |Rows[2560]       22(1t7) 21(1t7) 20(8R) 19(8R) 18(8R) 17(8R) 16(1t7) 15(1t7)
  813.  
  814.  
  815. |Type             PAL20RP6I
  816. |
  817. |Group 1 (in)     2 23 3 4 5 6 7 8 9 10 11 14
  818. |Group 2 (out)    21 20 19 18 17 16
  819. |Group 3 (io)     22 15
  820. |Group 4 (clock)  1
  821. |Group 5 (enable) 13
  822. |
  823. |Columns          2 23 3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15 11 14
  824. |Rows[2560]       22(1t7) 21(8R) 20(8R) 19(8R) 18(8R) 17(8R) 16(8R) 15(1t7)
  825.  
  826.  
  827. |Type             PAL20RP8I
  828. |
  829. |Group 1 (in)     2 23 3 4 5 6 7 8 9 10 11 14
  830. |Group 2 (out)    22 21 20 19 18 17 16 15
  831. |Group 4 (clock)  1
  832. |Group 5 (enable) 13
  833. |
  834. |Columns          2 23 3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15 11 14
  835. |Rows[2560]       22(8R) 21(8R) 20(8R) 19(8R) 18(8R) 17(8R) 16(8R) 15(8R)
  836.  
  837. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 16
  838.  
  839.  
  840. |Type             PAL22P10
  841. |
  842. |Group 1 (in)     1 2 3 4 5 6 7 8 9 10 11 13
  843. |Group 3 (io)     23 22 21 20 19 18 17 16 15 14
  844. |
  845. |Columns          2 1 3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15 11 13 23 14
  846. |Rows[3960]       23(1t8) 22(1t8) 21(1t8) 20(1t8) 19(1t8) \
  847. |                 18(1t8) 17(1t8) 16(1t8) 15(1t8) 14(1t8)
  848.  
  849.  
  850.     The tables which follow handle devices like the PALR19L8 and PALT19L8,
  851. which have registers or latches on their input pins.  Each table covers both
  852. the input registered (eg. R19L8) and input latched (eg. T19L8) device.  By
  853. default, all registers are enabled and connected to the dedicated input clock
  854. pin.  As described in the data books, these registers can be eliminated and
  855. converted to buffers.  The conversion is done by programming a single
  856. architectural fuse located in each input macrocell.  Following are the JEDEC
  857. fuse numbers to be programmed to convert registered/latched input to buffered
  858. input:
  859.  
  860.     Pin     Column            Type              Fuse
  861.  
  862.      2         0       Registered/Latched       2433
  863.     23         2       Registered/Latched       2432
  864.      3         4       Registered/Latched       2434
  865.      1         6       Combinational            ----
  866.      4         8       Registered/Latched       2435
  867.      5        12       Registered/Latched       2436
  868.      6        16       Registered/Latched       2437
  869.      7        20       Registered/Latched       2438
  870.      8        24       Registered/Latched       2439
  871.      9        28       Registered/Latched       2440
  872.     10        32       Registered/Latched       2441
  873.     13        34       Combinational            ----
  874.     11        36       Registered/Latched       2442
  875.  
  876. Fuses are set explicitly with statements of the form
  877.  
  878.     Fuses:  { numbers -> state }
  879.  
  880. For example, to leave fuses 2432 through 2436 intact and to program fuses 2437
  881. through 2442, the following statement is included in the source.
  882.  
  883.     Fuses:  { 2432 ~ 2436 -> 0        |Enable the buffer
  884.               2437 ~ 2442 -> 1 }      |Enable the register/latch
  885.  
  886. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 17
  887.  
  888.  
  889. |Type             PAL19L8
  890. |
  891. |Pins             24
  892. |Activity         0
  893. |
  894. |Group 1 (in)      2 23  3  1  4  5  6  7  8  9 10 13 11
  895. |Group 2 (out)    22 15
  896. |Group 3 (io)     21 20 19 18 17 16
  897. |Group 4 (clock)  14
  898. |
  899. |Columns           2 23  3  1  4 21  5 20  6 19  7 18 \
  900. |                  8 17  9 16 10 13 11
  901. |
  902. |Rows             22(1t7) 21(1t7) 20(1t7) 19(1t7) 18(1t7) \
  903. |                 17(1t7) 16(1t7) 15(1t7)
  904.  
  905.  
  906.     The next three tables, which cover devices with registers on both input and
  907. output, have the same fuse assignment for converting input register/latches to
  908. buffers:
  909.  
  910.     Pin     Column            Type              Fuse
  911.  
  912.      2         0       Registered/Latched       2433
  913.     23         2       Registered/Latched       2432
  914.      3         4       Registered/Latched       2434
  915.      4         8       Registered/Latched       2435
  916.      5        12       Registered/Latched       2436
  917.      6        16       Registered/Latched       2437
  918.      7        20       Registered/Latched       2438
  919.      8        24       Registered/Latched       2439
  920.      9        28       Registered/Latched       2440
  921.     10        32       Registered/Latched       2441
  922.     11        36       Registered/Latched       2442
  923.  
  924. |Type             PAL19R4
  925. |
  926. |Pins             24
  927. |Activity         0
  928. |
  929. |Group 1 (in)      2 23  3  4  5  6  7  8  9 10 11
  930. |Group 2 (out)    20 19 18 17
  931. |Group 3 (io)     22 21 16 15
  932. |Group 4 (clock)   1 14
  933. |Group 5 (enable) 13
  934. |
  935. |Columns           2 23  3 22  4 21  5 20  6 19  7 18 \
  936. |                  8 17  9 16 10 15 11
  937. |
  938. |Rows             22(1t7) 21(1t7) \
  939. |                 20(8R) 19(8R) 18(8R) 17(8R) \
  940. |                 16(1t7) 15(1t7)
  941.  
  942. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 18
  943.  
  944.  
  945. |Type             PAL19R6
  946. |
  947. |Pins             24
  948. |Activity          0
  949. |
  950. |Group 1 (in)      2 23  3  4  5  6  7  8  9 10 11
  951. |Group 2 (out)    21 20 19 18 17 16
  952. |Group 3 (io)     22 15
  953. |Group 4 (clock)   1 14
  954. |Group 5 (enable) 13
  955. |
  956. |Columns           2 23  3 22  4 21  5 20  6 19  7 18 \
  957. |                  8 17  9 16 10 15 11
  958. |
  959. |Rows             22(1t7) \
  960. |                 21(8R) 20(8R) 19(8R) 18(8R) 17(8R) 16(8R) \
  961. |                 15(1t7)
  962.  
  963.  
  964. |Type             PAL19R8
  965. |
  966. |Pins             24
  967. |Activity          0
  968. |
  969. |Group 1 (in)      2 23  3  4  5  6  7  8  9 10 11
  970. |Group 2 (out)    22 21 20 19 18 17 16 15
  971. |Group 4 (clock)   1 14
  972. |Group 5 (enable) 13
  973. |
  974. |Columns           2 23  3 22  4 21  5 20  6 19  7 18 \
  975. |                  8 17  9 16 10 15 11
  976. |
  977. |Rows             22(8R) 21(8R) 20(8R) 19(8R) \
  978. |                 18(8R) 17(8R) 16(8R) 15(8R)
  979.  
  980. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 19
  981.  
  982.  
  983. 5.  SPECIAL 24-SERIES DEVICES
  984.  
  985.     Twenty-four pin devices which are sparsely populated with fuses are
  986. referred to in these tables as the "special 24-series".  Like the special
  987. 20-series, devices in this group usually have a limited number of product terms
  988. available for each output, the number of product terms often varies from pin to
  989. pin, and feedback within the device is usually not available.
  990.  
  991. |Type             PAL12L10
  992. |Activity         0
  993. |
  994. |Group 1 (in)     1 2 3 4 5 6 7 8 9 10 11 13
  995. |Group 2 (out)    23 22 21 20 19 18 17 16 15 14
  996. |
  997. |Columns          2 1 3 4 5 6 7 8 9 10 11 13
  998. |Rows             23(2) 22(2) 21(2) 20(2) 19(2) 18(2) 17(2) 16(2) 15(2) 14(2)
  999.  
  1000.  
  1001. |Type             PAL12H10
  1002. |Activity         1
  1003. |
  1004. |Group 1 (in)     1 2 3 4 5 6 7 8 9 10 11 13
  1005. |Group 2 (out)    23 22 21 20 19 18 17 16 15 14
  1006. |
  1007. |Columns          2 1 3 4 5 6 7 8 9 10 11 13
  1008. |Rows             23(2) 22(2) 21(2) 20(2) 19(2) 18(2) 17(2) 16(2) 15(2) 14(2)
  1009.  
  1010.  
  1011. |Type             PAL12P10
  1012. |
  1013. |Group 1 (in)     1 2 3 4 5 6 7 8 9 10 11 13
  1014. |Group 2 (out)    23 22 21 20 19 18 17 16 15 14
  1015. |
  1016. |Columns          2 1 3 4 5 6 7 8 9 10 11 13
  1017. |Rows[480]        23(2) 22(2) 21(2) 20(2) 19(2) 18(2) 17(2) 16(2) 15(2) 14(2)
  1018.  
  1019.  
  1020. |Type             PAL14L8
  1021. |Activity         0
  1022. |
  1023. |Group 1 (in)     1 2 23 3 4 5 6 7 8 9 10 11 14 13
  1024. |Group 2 (out)    22 21 20 19 18 17 16 15
  1025. |
  1026. |Columns          2 1 3 23 4 5 6 7 8 9 10 14 11 13
  1027. |Rows             22(4) 21(2) 20(2) 19(2) 18(2) 17(2) 16(2) 15(4)
  1028.  
  1029. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 20
  1030.  
  1031.  
  1032. |Type             PAL14H8
  1033. |Activity         1
  1034. |
  1035. |Group 1 (in)     1 2 23 3 4 5 6 7 8 9 10 11 14 13
  1036. |Group 2 (out)    22 21 20 19 18 17 16 15
  1037. |
  1038. |Columns          2 1 3 23 4 5 6 7 8 9 10 14 11 13
  1039. |Rows             22(4) 21(2) 20(2) 19(2) 18(2) 17(2) 16(2) 15(4)
  1040.  
  1041.  
  1042. |Type             PAL14P8
  1043. |
  1044. |Group 1 (in)     1 2 23 3 4 5 6 7 8 9 10 11 14 13
  1045. |Group 2 (out)    22 21 20 19 18 17 16 15
  1046. |
  1047. |Columns          2 1 3 23 4 5 6 7 8 9 10 14 11 13
  1048. |Rows[560]        22(4) 21(2) 20(2) 19(2) 18(2) 17(2) 16(2) 15(4)
  1049.  
  1050.  
  1051. |Type             PAL16L6
  1052. |Activity         0
  1053. |
  1054. |Group 1 (in)     1 2 23 3 22 4 5 6 7 8 9 10 15 11 14 13
  1055. |Group 2 (out)    21 20 19 18 17 16
  1056. |
  1057. |Columns          2 1 3 23 4 22 5 6 7 8 9 15 10 14 11 13
  1058. |Rows             21(4) 20(4) 19(2) 18(2) 17(4) 16(4)
  1059.  
  1060.  
  1061. |Type             PAL16H6
  1062. |Activity         1
  1063. |
  1064. |Group 1 (in)     1 2 23 3 22 4 5 6 7 8 9 10 15 11 14 13
  1065. |Group 2 (out)    21 20 19 18 17 16
  1066. |
  1067. |Columns          2 1 3 23 4 22 5 6 7 8 9 15 10 14 11 13
  1068. |Rows             21(4) 20(4) 19(2) 18(2) 17(4) 16(4)
  1069.  
  1070.  
  1071. |Type             PAL16P6
  1072. |
  1073. |Group 1 (in)     1 2 23 3 22 4 5 6 7 8 9 10 15 11 14 13
  1074. |Group 2 (out)    21 20 19 18 17 16
  1075. |
  1076. |Columns          2 1 3 23 4 22 5 6 7 8 9 15 10 14 11 13
  1077. |Rows[640]        21(4) 20(4) 19(2) 18(2) 17(4) 16(4)
  1078.  
  1079. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 21
  1080.  
  1081.  
  1082. |Type             PAL18L4
  1083. |Activity         0
  1084. |
  1085. |Group 1 (in)     1 2 23 3 22 4 21 5 6 7 8 9 16 10 15 11 14 13
  1086. |Group 2 (out)    20 19 18 17
  1087. |
  1088. |Columns          2 1 3 23 4 22 5 21 6 7 8 16 9 15 10 14 11 13
  1089. |Rows             20(6) 19(4) 18(4) 17(6)
  1090.  
  1091.  
  1092. |Type             PAL18H4
  1093. |Activity         1
  1094. |
  1095. |Group 1 (in)     1 2 23 3 22 4 21 5 6 7 8 9 16 10 15 11 14 13
  1096. |Group 2 (out)    20 19 18 17
  1097. |
  1098. |Columns          2 1 3 23 4 22 5 21 6 7 8 16 9 15 10 14 11 13
  1099. |Rows             20(6) 19(4) 18(4) 17(6)
  1100.  
  1101.  
  1102. |Type             PAL18P4
  1103. |
  1104. |Group 1 (in)     1 2 23 3 22 4 21 5 6 7 8 9 16 10 15 11 14 13
  1105. |Group 2 (out)    20 19 18 17
  1106. |
  1107. |Columns          2 1 3 23 4 22 5 21 6 7 8 16 9 15 10 14 11 13
  1108. |Rows[720]        20(6) 19(4) 18(4) 17(6)
  1109.  
  1110.  
  1111. |Type             PAL20C1
  1112. |Activity         1
  1113. |
  1114. |Group 1 (in)     1 2 23 3 22 4 21 5 20 6 7 8 17 9 16 10 15 11 14 13
  1115. |Group 2 (out)    19 18
  1116. |
  1117. |Columns          2 1 3 23 4 22 5 21 6 20 7 17 8 16 9 15 10 14 11 13
  1118. |Rows             19(16)
  1119.  
  1120.  
  1121. |Type             PAL20L2
  1122. |Activity         0
  1123. |
  1124. |Group 1 (in)     1 2 23 3 22 4 21 5 20 6 7 8 17 9 16 10 15 11 14 13
  1125. |Group 2 (out)    19 18
  1126. |
  1127. |Columns          2 1 3 23 4 22 5 21 6 20 7 17 8 16 9 15 10 14 11 13
  1128. |Rows             19(8) 18(8)
  1129.  
  1130. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 22
  1131.  
  1132.  
  1133. |Type             PAL20H2
  1134. |Activity         1
  1135. |
  1136. |Group 1 (in)     1 2 23 3 22 4 21 5 20 6 7 8 17 9 16 10 15 11 14 13
  1137. |Group 2 (out)    19 18
  1138. |
  1139. |Columns          2 1 3 23 4 22 5 21 6 20 7 17 8 16 9 15 10 14 11 13
  1140. |Rows             19(8) 18(8)
  1141.  
  1142.  
  1143. |Type             PAL20P2
  1144. |
  1145. |Group 1 (in)     1 2 23 3 22 4 21 5 20 6 7 8 17 9 16 10 15 11 14 13
  1146. |Group 2 (out)    19 18
  1147. |
  1148. |Columns          2 1 3 23 4 22 5 21 6 20 7 17 8 16 9 15 10 14 11 13
  1149. |Rows[640]        19(8) 18(8)
  1150.  
  1151.  
  1152. |Type             PAL20L10
  1153. |Activity         0
  1154. |
  1155. |Group 1 (in)     1 2 3 4 5 6 7 8 9 10 11 13
  1156. |Group 2 (out)    23 14
  1157. |Group 3 (io)     22 21 20 19 18 17 16 15
  1158. |
  1159. |Columns          2 1 3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15 11 13
  1160. |Rows             23(1t3) 22(1t3) 21(1t3) 20(1t3) 19(1t3) 18(1t3) \
  1161. |                 17(1t3) 16(1t3) 15(1t3) 14(1t3)
  1162.  
  1163.  
  1164. |Type             PAL20H10
  1165. |Activity         1
  1166. |
  1167. |Group 1 (in)     1 2 3 4 5 6 7 8 9 10 11 13
  1168. |Group 2 (out)    23 14
  1169. |Group 3 (io)     22 21 20 19 18 17 16 15
  1170. |
  1171. |Columns          2 1 3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15 11 13
  1172. |Rows             23(1t3) 22(1t3) 21(1t3) 20(1t3) 19(1t3) 18(1t3) \
  1173. |                 17(1t3) 16(1t3) 15(1t3) 14(1t3)
  1174.  
  1175.  
  1176. |Type             PAL20P10
  1177. |
  1178. |Group 1 (in)     1 2 3 4 5 6 7 8 9 10 11 13
  1179. |Group 2 (out)    23 14
  1180. |Group 3 (io)     22 21 20 19 18 17 16 15
  1181. |
  1182. |Columns          2 1 3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15 11 13
  1183. |Rows[1600]       23(1t3) 22(1t3) 21(1t3) 20(1t3) 19(1t3) 18(1t3) \
  1184. |                 17(1t3) 16(1t3) 15(1t3) 14(1t3)
  1185.  
  1186. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 23
  1187.  
  1188.  
  1189. |Type             PAL6L16
  1190. |Activity         0
  1191. |
  1192. |Group 1 (in)     4 5 6 7 8 9
  1193. |Group 2 (out)    1 2 23 3 22 21 20 19 18 17 16 10 15 11 14 13
  1194. |
  1195. |Columns          4 5 6 7 8 9
  1196. |Rows             1(1) 23(1) 2(1) 3(1) 22(1) 21(1) 20(1) 19(1) \
  1197. |                 18(1) 17(1) 16(1) 10(1) 15(1) 14(1) 11(1) 13(1)
  1198.  
  1199.  
  1200. |Type             PAL8L14
  1201. |Activity         0
  1202. |
  1203. |Group 1 (in)     3 4 5 6 7 8 9 10
  1204. |Group 2 (out)    1 2 23 22 21 20 19 18 17 16 15 11 14 13
  1205. |
  1206. |Columns          3 4 5 6 7 8 9 10
  1207. |Rows             1(1) 23(1) 2(1) 22(1) 21(1) 20(1) 19(1) 18(1) \
  1208. |                 17(1) 16(1) 15(1) 14(1) 11(1) 13(1)
  1209.  
  1210. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 24
  1211.  
  1212.  
  1213. 6.  GENERAL 28-SERIES DEVICES
  1214.  
  1215.     The following twenty-eight pin devices are analagous to the general
  1216. 20-series and 24-series devices, but with more input and output lines.  Like
  1217. their 20-pin and 24-pin counterparts, devices in this group usually have eight
  1218. product terms available for each output, and most ouputs include feedback into
  1219. the array.  Hard-wired registers are available.
  1220.  
  1221. |Type             PAL24L10
  1222. |Activity         0
  1223. |
  1224. |Group 1 (in)     1 28 2 27 3 4 5 6 8 9 10 11 12 13 14 15
  1225. |Group 2 (io)     25 24 23 22 20 19 18 17
  1226. |Group 3 (out)    26 16
  1227. |Group 4 (clock)  1
  1228. |Group 5 (enable) 15
  1229. |
  1230. |Columns          2 28 3 27 4 1 5 25 6 24 8 23 9 22 \
  1231. |                 10 20 11 19 12 18 13 17 14 15
  1232. |
  1233. |Rows             26(1t7)                         \
  1234. |                 25(1t7) 24(1t7) 23(1t7) 22(1t7) \
  1235. |                 20(1t7) 19(1t7) 18(1t7) 17(1t7) \
  1236. |                 16(1t7)
  1237. |
  1238. |VCC              7
  1239. |GND              21
  1240.  
  1241.  
  1242. |Type             PAL24R10
  1243. |Activity         0
  1244. |
  1245. |Group 1 (in)     28 2 27 3 4 5 6 8 9 10 11 12 13 14
  1246. |Group 2 (out)    26 25 24 23 22 20 19 18 17 16
  1247. |Group 4 (clock)  1
  1248. |Group 5 (enable) 15
  1249. |
  1250. |Columns          2 28 3 27 4 26 5 25 6 24 8 23 9 22 \
  1251. |                 10 20 11 19 12 18 13 17 14 16
  1252. |
  1253. |Rows             26(8R) 25(8R) 24(8R) 23(8R) 22(8R) \
  1254. |                 20(8R) 19(8R) 18(8R) 17(8R) 16(8R)
  1255. |
  1256. |VCC              7
  1257. |GND              21
  1258.  
  1259. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 25
  1260.  
  1261.  
  1262. |Type             PAL24R8
  1263. |Activity         0
  1264. |
  1265. |Group 1 (in)     28 2 27 3 4 5 6 8 9 10 11 12 13 14
  1266. |Group 2 (out)    25 24 23 22 20 19 18 17
  1267. |Group 3 (io)     26 16
  1268. |Group 4 (clock)  1
  1269. |Group 5 (enable) 15
  1270. |
  1271. |Columns          2 28 3 27 4 26 5 25 6 24 8 23 9 22 \
  1272. |                 10 20 11 19 12 18 13 17 14 16
  1273. |
  1274. |Rows             26(1t7)                                                 \
  1275. |                 25(8R) 24(8R) 23(8R) 22(8R) 20(8R) 19(8R) 18(8R) 17(8R) \
  1276. |                 16(1t7)
  1277. |
  1278. |VCC              7
  1279. |GND              21
  1280.  
  1281.  
  1282. |Type             PAL24R6
  1283. |Activity         0
  1284. |
  1285. |Group 1 (in)     28 2 27 3 4 5 6 8 9 10 11 12 13 14
  1286. |Group 2 (out)    24 23 22 20 19 18
  1287. |Group 3 (io)     26 25 17 16
  1288. |Group 4 (clock)  1
  1289. |Group 5 (enable) 15
  1290. |
  1291. |Columns          2 28 3 27 4 26 5 25 6 24 8 23 9 22 \
  1292. |                 10 20 11 19 12 18 13 17 14 16
  1293. |
  1294. |Rows             26(1t7) 25(1t7)                                \
  1295. |                 24(8R)  23(8R)  22(8R)  20(8R)  19(8R)  18(8R) \
  1296. |                 17(1t7) 16(1t7)
  1297. |
  1298. |VCC              7
  1299. |GND              21
  1300.  
  1301. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 26
  1302.  
  1303.  
  1304. |Type             PAL24R4
  1305. |Activity         0
  1306. |
  1307. |Group 1 (in)     28 2 27 3 4 5 6 8 9 10 11 12 13 14
  1308. |Group 2 (out)    23 22 20 19
  1309. |Group 3 (io)     26 25 24 18 17 16
  1310. |Group 4 (clock)  1
  1311. |Group 5 (enable) 15
  1312. |
  1313. |Columns          2 28 3 27 4 26 5 25 6 24 8 23 9 22 \
  1314. |                 10 20 11 19 12 18 13 17 14 16
  1315. |
  1316. |Rows             26(1t7) 25(1t7) 24(1t7)        \
  1317. |                 23(8R)  22(8R)  20(8R)  19(8R) \
  1318. |                 18(1t7) 17(1t7) 16(1t7)
  1319. |
  1320. |VCC              7
  1321. |GND              21
  1322.  
  1323. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 27
  1324.  
  1325.  
  1326. 7.  SELECTABLE REGISTER DEVICES
  1327.  
  1328.     Tables in this group represent devices with simple selectable registers.
  1329. That is, registers connected to output pins can either be used or bypassed.  If
  1330. bypassed, a purely combinational output results.  With these devices, it is
  1331. possible to create forms not otherwise available.  For example, the equivalent
  1332. of a PAL16R7 can be created, with seven registered outputs and one
  1333. combinational output.
  1334.  
  1335.     The first table below represents a 20-pin device with eight input pins down
  1336. the left-hand side, eight input/output pins down the right-hand side, power,
  1337. ground, clock, and enable.  Both clock and enable pins can be taken as normal
  1338. inputs if not otherwise needed, giving ten inputs maximum.  Internally each
  1339. input/output pin has nine product terms available, one dedicated to tri-state
  1340. enable, the others available for normal logic.
  1341.  
  1342.     All input/output pins can be programmed to be either active-high or
  1343. active-low as well as combinational or registered.  Registers are always low on
  1344. power-up.  In addition, two internal nodes can be programmed for asynchronous
  1345. reset (node 21) and for synchronous preset (node 22).  The device is considered
  1346. to be active-high, since the two internal nodes are active-high.
  1347.  
  1348.     Twenty-four special fuses configure the device.  The first fuse in a set
  1349. corresponds to node 19, the second to node 18, and so forth.
  1350.  
  1351.     2664~2671   Register bypass   0=registered      1=combinational
  1352.     2672~2679   Polarity          0=active-low      1=active high
  1353.     2680~2687   Enable            0=array enable    1=direct enable (pin 11)
  1354.  
  1355.     The device has two different tables available.  The first table (PAL18U8)
  1356. is used when at least one register is used.  Input signals are then attached to
  1357. pins 2 through 11, with the clock attached to pin 1.  The second table
  1358. (PAL18U8Z) may be used if no registers are programmed.  Input signals are then
  1359. attached to pins 1 through 11.
  1360.  
  1361.     The asterisk (*) on the row entries for nodes 21 and 22 indicate that
  1362. those nodes are not subject to programmable polarity.
  1363.  
  1364. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 28
  1365.  
  1366.  
  1367. |Type             PAL18U8
  1368. |
  1369. |Pins             20
  1370. |Activity         1
  1371. |Initialization   L
  1372. |
  1373. |Group 1 (in)     2 3 4 5 6 7 8 9 11
  1374. |Group 3 (io)     19 18 17 16 15 14 13 12
  1375. |Group 4 (clock)  1
  1376. |Group 5 (enable) 11
  1377. |Group 6 (reset)  21
  1378. |Group 7 (preset) 22
  1379. |
  1380. |Columns          2 19 3 18 4 17 5 16 6 15 7 14 8 13 9 12 1 11
  1381. |
  1382. |Rows[2672]       19(1t8R) 18(1t8R) 17(1t8R) 16(1t8R) \
  1383. |                 15(1t8R) 14(1t8R) 13(1t8R) 12(1t8R) \
  1384. |                 21(1*) 22(1*)
  1385. |
  1386. |Register bypass[2664]    19 18 17 16 15 14 13 12
  1387. |Column inversion[=68]    19 18 17 16 15 14 13 12
  1388.  
  1389.  
  1390. |Type             PAL18U8Z
  1391. |
  1392. |Pins             20
  1393. |Activity         1
  1394. |Initialization   L
  1395. |
  1396. |Group 1 (in)     1 2 3 4 5 6 7 8 9 11
  1397. |Group 3 (io)     19 18 17 16 15 14 13 12
  1398. |Group 5 (enable) 11
  1399. |Group 6 (reset)  21
  1400. |Group 7 (preset) 22
  1401. |
  1402. |Columns          2 19 3 18 4 17 5 16 6 15 7 14 8 13 9 12 1 11
  1403. |
  1404. |Rows[2672]       19(1t8R) 18(1t8R) 17(1t8R) 16(1t8R) \
  1405. |                 15(1t8R) 14(1t8R) 13(1t8R) 12(1t8R) \
  1406. |                 21(1*) 22(1*)
  1407. |
  1408. |Register bypass[2664]    19 18 17 16 15 14 13 12
  1409. |Column inversion[=68]    19 18 17 16 15 14 13 12
  1410.  
  1411. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 29
  1412.  
  1413.  
  1414.     The next device has programmable polarity and registers as well as internal
  1415. nodes for asynchronous and synchronous reset, but this one has a larger number
  1416. of product terms available for some pins as well as a larger number of output
  1417. pins.  However, the number of product pins varies from pin to pin.  This works
  1418. well for some applications such as counters, but the resulting pin assignment
  1419. may not be ideal for layout and routing.
  1420.  
  1421.     Pin assignment can be done automatically by the PLD compiler on the
  1422. PAL22V10.  As an illustration, consider an 8-bit up/down counter, which
  1423. requires 16 product terms for Q7, 14 product terms for Q6, down to 2 product
  1424. terms for Q0.  On the PAL22V10, some pins have 16 product terms, others have
  1425. 14, and so forth, so the device is suitable for an 8-bit up/down counter, if
  1426. only the pins are assigned properly.
  1427.  
  1428.     To start with, the signals Q[7..0] are assigned to the io pins in numeric
  1429. order, without regard to the number of product terms needed or available.  The
  1430. configuration statement at the end of the source informs the compiler that
  1431. signals Q[7..0] are unassigned.  That is, the pins they are attached to are
  1432. free to be changed.  When this is compiled, therefore, signals Q[7..0] will be
  1433. assigned by the compiler according to the number of product terms in their
  1434. equations.  The algorithm preserves as many of the original pin assignments as
  1435. possible.  For best results, this should be compiled with inversion off (/i0 on
  1436. the command line).
  1437.  
  1438.     |PAL22V10 io:Q[7..0], in:(UP, RESET), clock:CLK
  1439.     |
  1440.     | i=7..1:  Q[i] = CLK // RESET' & ( ((Q[i] ## Q[i-1..0]==-1) & UP)
  1441.     |                                 # ((Q[i] ## Q[i-1..0]== 0) & UP') )
  1442.     |
  1443.     | i=0:     Q[i] = CLK // RESET' & (Q[i] ## 1)
  1444.     |
  1445.     | Configuration:  "Unassigned", Q[7..0]
  1446.     | Reduction 1:     Q[7..0]
  1447.  
  1448.     The reset and preset built into the chip are handled as special nodes
  1449. numbered 25 and 26.  They are named in the list of ports and programmed as
  1450. signals hardwired to all other register nodes.  For example, the following
  1451. example has the reset node named ABR, and ABR is active when both A and B are
  1452. active.  This means that the registered signals X and Y will both be reset when
  1453. A and B are simultaneously active.
  1454.  
  1455.     |PAL22V10 in:(A, B, C, D), io:(X, Y, Z), clock:CLK, reset:ABR
  1456.     |
  1457.     |  ABR = A & B
  1458.     |
  1459.     |  X = CLK // C  & (D # E)
  1460.     |  Y = CLK // C' # (D & E)
  1461.     |
  1462.     |  Z = C ## D
  1463.  
  1464. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 30
  1465.  
  1466.  
  1467. |Type             PAL22V10
  1468. |
  1469. |Pins             24
  1470. |Activity         1
  1471. |Initialization   L
  1472. |Overlay          AUTOPIN
  1473. |
  1474. |Group 1 (in)     2 3 4 5 6 7 8 9 10 11 13 (1)
  1475. |Group 3 (io)     23 22 21 20 19 18 17 16 15 14
  1476. |Group 4 (clock)  (1)
  1477. |Group 6 (reset)  25
  1478. |Group 7 (preset) 26
  1479. |
  1480. |Columns          1 23 2 22 3 21 4 20 5 19 6 18 7 17 8 16 9 15 10 14 11 13
  1481. |
  1482. |Rows[5808(+2)]   25(1*)                                            \
  1483. |                 23(1t8R)  22(1t10R) 21(1t12R) 20(1t14R) 19(1t16R) \
  1484. |                 18(1t16R) 17(1t14R) 16(1t12R) 15(1t10R) 14(1t8R)  \
  1485. |                 26(1*)
  1486. |
  1487. |Register bypass[5809(+2)]    23 22 21 20 19 18 17 16 15 14
  1488. |Column inversion[=68]        23 22 21 20 19 18 17 16 15 14
  1489.  
  1490.  
  1491.     The table below, with an X at the end of the name, is the same as the one
  1492. above except no automatic pin assignment is called for.  If none is needed,
  1493. and if the design is pushing the limits of memory, this table may be useful.
  1494. It conserves memory by not calling the AUTOPIN.BIN overlay.
  1495.  
  1496. |Type             PAL22V10X
  1497. |
  1498. |Pins             24
  1499. |Activity         1
  1500. |Initialization   L
  1501. |
  1502. |Group 1 (in)     2 3 4 5 6 7 8 9 10 11 13 (1)
  1503. |Group 3 (io)     23 22 21 20 19 18 17 16 15 14
  1504. |Group 4 (clock)  (1)
  1505. |Group 6 (reset)  25
  1506. |Group 7 (preset) 26
  1507. |
  1508. |Columns          1 23 2 22 3 21 4 20 5 19 6 18 7 17 8 16 9 15 10 14 11 13
  1509. |
  1510. |Rows[5808(+2)]   25(1*)                                            \
  1511. |                 23(1t8R)  22(1t10R) 21(1t12R) 20(1t14R) 19(1t16R) \
  1512. |                 18(1t16R) 17(1t14R) 16(1t12R) 15(1t10R) 14(1t8R)  \
  1513. |                 26(1*)
  1514. |
  1515. |Register bypass[5809(+2)]    23 22 21 20 19 18 17 16 15 14
  1516. |Column inversion[=68]        23 22 21 20 19 18 17 16 15 14
  1517.  
  1518. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 31
  1519.  
  1520.  
  1521.     Below is another representation of the same part, included only for
  1522. compatibility with version 1.00 of the compiler.  It can be used if no clock is
  1523. required.  Pin one appears first in the list.
  1524.  
  1525. |Type             PAL22V10Z
  1526. |
  1527. |Pins             24
  1528. |Activity         1
  1529. |Initialization   L
  1530. |
  1531. |Group 1 (in)     1 2 3 4 5 6 7 8 9 10 11 13
  1532. |Group 3 (io)     23 22 21 20 19 18 17 16 15 14
  1533. |Group 6 (reset)  25
  1534. |Group 7 (preset) 26
  1535. |
  1536. |Columns          1 23 2 22 3 21 4 20 5 19 6 18 7 17 8 16 9 15 10 14 11 13
  1537. |
  1538. |Rows[5808(+2)]   25(1*)                                            \
  1539. |                 23(1t8R)  22(1t10R) 21(1t12R) 20(1t14R) 19(1t16R) \
  1540. |                 18(1t16R) 17(1t14R) 16(1t12R) 15(1t10R) 14(1t8R)  \
  1541. |                 26(1*)
  1542. |
  1543. |Register bypass[5809(+2)]    23 22 21 20 19 18 17 16 15 14
  1544. |Column inversion[=68]        23 22 21 20 19 18 17 16 15 14
  1545.  
  1546. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 32
  1547.  
  1548.  
  1549. 8.  GALs
  1550.  
  1551.     The GAL devices, which means Generic Array Logic devices, require special
  1552. explanation (GAL is a registered trademark of Lattice Semiconductor).  Some of
  1553. these devices, such as GAL18V10, have more or less straightforward structure
  1554. and can be treated much like the familiar PAL22V10.  However, the GAL16V8,
  1555. GAL20V8, and GAL16Z8 have several distinct modes of operation adapting them to
  1556. be direct substitutes for the smaller PAL devices.  These modes are called
  1557. registered, complex, and simple; they are all explained in the manufacturer's
  1558. data books.
  1559.  
  1560. Automatic selection of modes
  1561. ----------------------------
  1562.  
  1563.     Briefly, registered mode is used for logic that would fit devices like
  1564. PAL16R8, PAL16R6, and PAL16R4.  It is needed whenever the logic employs
  1565. edge-triggered registers, and also in some delicate feedback conditions.
  1566. Complex mode is used for logic that would fit devices like PAL16L8.  It can be
  1567. used when the logic needs no registers but does need three-state gates.  Simple
  1568. mode is for logic that would fit in any of the small-scale devices like
  1569. PAL14H6.
  1570.  
  1571.     The architectural complexity of the GAL devices is a consequence of the
  1572. architectural diversity of the simple PAL devices.  However, you do not have to
  1573. keep all details of internal GAL structures in mind, because the architectural
  1574. mode is selected automatically based on your specification.  Some examples
  1575. illustrate this.
  1576.  
  1577.     |GAL16V8  in:(A, B), io:Y[1..6]
  1578.     |
  1579.     |    Y1 = A & B           |And
  1580.     |    Y2 = A # B           |Or
  1581.     |    Y3 = A ## B          |Exclusive or
  1582.     |    Y4 = A'              |Not
  1583.     |    Y5 = (A & B)'        |Nand
  1584.     |    Y6 = (A # B)'        |Nor
  1585.  
  1586.     Above is an example of basic gates specified for a GAL16V8.  When this
  1587. example is compiled, the architectural phase examines the requirements, selects
  1588. a mode, and indicates the selection with a short message on the screen.
  1589.  
  1590. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 33
  1591.  
  1592.  
  1593.           :
  1594.     5.  Reducing equations
  1595.         Signal Y1
  1596.         Signal Y2
  1597.         Signal Y3
  1598.         Signal Y4
  1599.         Signal Y5
  1600.         Signal Y6
  1601.  
  1602.     6.  Configuring architectural fuses
  1603.         Complex GAL architecture selected.    <--- Mode selection
  1604.  
  1605.     7.  Generating fuse array
  1606.           :
  1607.  
  1608.     Complex mode is selected here, based on the rules in the manufacturer's
  1609. data books.  Complex mode is the preferred mode; if several modes are possible,
  1610. complex mode is the one selected.  To see the modes change, some feedback can
  1611. be added.  First consider feedback on Y2.
  1612.  
  1613.     |GAL16V8  in:(A, B), io:Y[1..6]
  1614.     |
  1615.     |    Y1 = A & B           |And
  1616.     |    Y2 = A # (B & Y2)    |Or with feedback
  1617.     |    Y3 = A ## B          |Exclusive or
  1618.     |    Y4 = A'              |Not
  1619.     |    Y5 = (A & B)'        |Nand
  1620.     |    Y6 = (A # B)'        |Nor
  1621.  
  1622.     In the example above, the OR gate has been changed to a kind of SR
  1623. flip-flop (see the PLD reference guide for an explanation of the SR flip-flop
  1624. equation).  When compiled, the same mode is selected.
  1625.  
  1626.           :
  1627.     6.  Configuring architectural fuses
  1628.         Complex GAL architecture selected.
  1629.           :
  1630.  
  1631. However, see what happens with feedback on Y1 as well.
  1632.  
  1633.     |GAL16V8  in:(A, B), io:Y[1..6]
  1634.     |
  1635.     |    Y1 = A & (B # Y1)    |And with feedback
  1636.     |    Y2 = A # (B & Y2)    |Or with feedback
  1637.     |    Y3 = A ## B          |Exclusive or
  1638.     |    Y4 = A'              |Not
  1639.     |    Y5 = (A & B)'        |Nand
  1640.     |    Y6 = (A # B)'        |Nor
  1641.  
  1642. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 34
  1643.  
  1644.  
  1645.  
  1646.     This is still a kind of SR flip-flop, but with different polarity.  When it
  1647. is compiled, something new happens.
  1648.  
  1649.           :
  1650.     6.  Configuring architectural fuses
  1651.         Registered GAL architecture selected.
  1652.         [Complex mode cannot be used because input appears on
  1653.          macrocell 0.]
  1654.           :
  1655.  
  1656.     The device has switched to registered mode, even though no registers appear
  1657. in the source.  The reason is given in brackets:  In complex mode, macrocell 0
  1658. has no input to the fuse array.  This is the macrocell Y1 is attached to, which
  1659. now feeds back into the array.  Registered mode does support input on this
  1660. macrocell, so registered mode is used instead.  Whenever a mode is selected for
  1661. reasons that may not be obvious, the compiler offers a short explanation of its
  1662. decision.  Sometimes none of the three modes will work, and the explanation
  1663. becomes more elaborate.  For instance, suppose separate input signals C through
  1664. I are used for signals Y3 through Y6.
  1665.  
  1666.     |GAL16V8  in:(A, B, C, D, E, F, G, H, I), io:Y[1..6]
  1667.     |
  1668.     |    Y1 = A & (B # Y1)    |And with feedback
  1669.     |    Y2 = A # (B & Y2)    |Or with feedback
  1670.     |    Y3 = C ## D          |Exclusive or
  1671.     |    Y4 = E'              |Not
  1672.     |    Y5 = (F & G)'        |Nand
  1673.     |    Y6 = (H # I)'        |Nor
  1674.  
  1675.     Now the number of input signals allowed for registered mode has been
  1676. exceeded, so this longer message appears.
  1677.  
  1678.           :
  1679.     6.  Configuring architectural fuses
  1680.         The GAL cannot be correctly configured.
  1681.         [Complex mode cannot be used because input appears on
  1682.          macrocell 0.  Registered mode cannot be used because
  1683.          input appears on the enable line.  Simple mode cannot
  1684.          be used because feedback is needed and this is neither
  1685.          an A nor a B part.]
  1686.           :
  1687.  
  1688.     None of the three modes will work here, so the compiler simply selects
  1689. complex mode and proceeds.  This leads to error messages where the logic does
  1690. not fit, but you can still use the logic tester to see if the logic itself is
  1691. correct.  In this case, an error message like the following arises.
  1692.  
  1693.     E763  Signal Y1 is not input to the array.
  1694.  
  1695.     Because complex mode has been selected, and because complex mode has no
  1696. feedback from macrocell 0, the compiler is notifying you that Y1 does not feed
  1697. into the array.
  1698.  
  1699. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 35
  1700.  
  1701.  
  1702. Registers and enables
  1703. ---------------------
  1704.  
  1705.     The previous example shows automatic selection of registered mode, but does
  1706. not show the use of registers themselves.  To actually use registers, a clock
  1707. signal is also needed.  Suppose Y1 and Y5 are to be conditioned by a clock
  1708. signal named CMAIN.  Then three changes to the source code are required, marked
  1709. with carets (^) below.
  1710.  
  1711.     |GAL16V8  in:(A, B), io:Y[1..6], clock:CMAIN
  1712.     |                                ^^^^^^^^^^^
  1713.     |    Y1  =  CMAIN // A & B     |Registered And
  1714.                 ^^^^^^^^
  1715.     |    Y2  =  A # B              |Or
  1716.     |    Y3  =  A ## B             |Exclusive or
  1717.     |    Y4  =  A'                 |Not
  1718.     |    Y5  =  CMAIN // (A & B)'  |Registered Nand
  1719.                 ^^^^^^^^
  1720.     |    Y6  =  (A # B)'           |Nor
  1721.  
  1722.  
  1723.     In this case, registered mode is selected, as expected, but no explanation
  1724. is offered as to why complex mode was not.  Because registers are actually in
  1725. use, the compiler takes registered mode to be an obvious necessity and does not
  1726. bother explaining why.
  1727.  
  1728.            :
  1729.     6.  Configuring architectural fuses
  1730.         Registered GAL architecture selected.
  1731.            :
  1732.  
  1733.     In the GAL16V8, each registered output is hardwired to a three-state enable
  1734. gate connected to an enable signal on pin 11.  If this pin is to be tied low,
  1735. keeping the registers enabled at all times, then the specification shown above
  1736. is correct.  If pin 11 will be tied to a signal line that is active at some
  1737. times and inactive at others, then it is best to define the operation more
  1738. precisely.  Suppose the enable signal is named BHEN and just the two registered
  1739. signals are to be conditioned by enable.  Then the changes to the source shown
  1740. by carets below are needed.
  1741.  
  1742.     |GAL16V8  in:(A, B), io:Y[1..6], clock:CMAIN, enable:BHEN
  1743.     |                                             ^^^^^^^^^^^
  1744.     |    Active-low:  BHEN
  1745.     |    ^^^^^^^^^^^^^^^^^
  1746.     |    Y1  =  BHEN ?? CMAIN // A & B    |Enabled/registered And
  1747.                 ^^^^^^^
  1748.     |    Y2  =  A # B                     |Or
  1749.     |    Y3  =  A ## B                    |Exclusive or
  1750.     |    Y4  =  A'                        |Not
  1751.     |    Y5  =  BHEN ?? CMAIN // (A & B)' |Enabled/registered Nand
  1752.                 ^^^^^^^
  1753.     |    Y6  =  (A # B)'                  |Nor
  1754.  
  1755. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 36
  1756.  
  1757.  
  1758.     The statement "Active-low: BHEN" is appropriate, for in the actual GAL
  1759. device, the enable signal is hardwired to the registers through an inverter,
  1760. and hence is always active when it is low.  Furthermore, BHEN and CMAIN must be
  1761. written in the order shown for signal Y1.  The expression
  1762.  
  1763.     BHEN ?? CMAIN // A & B
  1764.  
  1765. means that the output of the and gate is attached to a register and the output
  1766. of the register is attached to the three-state enable gate.  If it were written
  1767. in the opposite order, like this,
  1768.  
  1769.     CMAIN // BHEN ??  A & B
  1770.  
  1771. it would mean that the output of the and gate is attached to a three-state gate
  1772. and the three-state output becomes the input to a register.  That would be
  1773. faulty because the GAL macrocells do not support such a configuration.  (In any
  1774. case, such a configuration is not really useful.)
  1775.  
  1776.     Another situation arises if both registered and nonregistered output must
  1777. be conditioned by three-state enable.  In the GAL architecture, three-state
  1778. enable on registered macrocells are hardwired, whereas those on nonregistered
  1779. macrocells eminate from the and/or array.  Therefore, to enable nonregistered
  1780. macrocells, the enable signal must be attached to a pin that enters the and/or
  1781. array, and pin 11 is not such a pin.  The changes marked by carets below will
  1782. enable the nonregistered macrocell associated with Y2.
  1783.  
  1784.     |GAL16V8  in:(A, B, BHEN), io:Y[1..6], clock:CMAIN, enable:BHEN
  1785.     |                   ^^^^
  1786.     |    Active-low:  BHEN
  1787.     |
  1788.     |    Y1 = BHEN ?? CMAIN // A & B     |Enabled/registered And
  1789.     |    Y2 = BHEN ?? A # B              |Enabled Or
  1790.               ^^^^^^^
  1791.     |    Y3 = A ## B                     |Exclusive or
  1792.     |    Y4 = A'                         |Not
  1793.     |    Y5 = BHEN ?? CMAIN // (A & B)'  |Enabled/registered Nand
  1794.     |    Y6 = (A # B)'                   |Nor
  1795.  
  1796.  
  1797.     See the appendix on pin assignment in the reference guide for further
  1798. explanation.  Please also study the manufacturer's data books for clarification
  1799. of the internal structure of the and/or array, of the macrocells, and of the
  1800. feedback paths.
  1801.  
  1802. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 37
  1803.  
  1804.  
  1805. Forcing a specific mode
  1806. -----------------------
  1807.  
  1808.     In some cases, you may not want the compiler to select the mode, but
  1809. instead want complete control yourself.  The Configuration keyword, which is
  1810. general for all device overlays, gives you that power.  It has only three forms
  1811. for GAL devices.
  1812.  
  1813.     Configuration:  "Complex"
  1814.     Configuration:  "Simple"
  1815.     Configuration:  "Registered"
  1816.  
  1817.     Whenever one of these forms is used anywhere in the source code for a GAL,
  1818. the configuration specified will be selected regardless of the structure of the
  1819. equations.  If the configuration is not right for the equations, then normal
  1820. error messages will appear.
  1821.  
  1822.  
  1823. Pin assignment
  1824. --------------
  1825.  
  1826.     Pin assignment for GAL devices is the same as for other devices, but
  1827. because of the separate modes, some additional considerations arise.  The
  1828. introduction to this material explains the subject in general; the GAL16V8 is
  1829. illustrated specifically here.  The GAL16V8 table shows what pins are implied
  1830. when the keywords in, out, and so forth are used.
  1831.  
  1832.     |Group 1 (in)          2 3 4 5 6 7 8 9 (11) (1)
  1833.     |Group 3 (io)          19 18 17 16 15 14 13 12
  1834.     |Group 4 (clock)      (1)
  1835.     |Group 5 (enable)     (11)
  1836.  
  1837.  
  1838.     The first line, marked Group 1, describes which pins are assigned as input
  1839. under the keyword `in'.  The first signal named in the list is assigned to pin
  1840. 2, the next to pin 3, and so forth.  Parentheses surrounding pin numbers 1 and
  1841. 11 mean that those pins can be assigned in more than one way.  Pin 1, for
  1842. example, can be used as input (in complex and simple mode) or as a clock signal
  1843. (in registered mode).  The way these pins are used helps the compiler determine
  1844. the mode.  The last example showed the following symbolic pin assignments.
  1845.  
  1846.     in:(A, B, BHEN), io:Y[1..6], clock:CMAIN, enable:BHEN
  1847.  
  1848.     There are only three signals under the `in' keyword, so these are assigned
  1849. to the first three pins in the Group 1 list, like this.
  1850.  
  1851.     in:(A, B, BHEN)
  1852.         :  :   :
  1853.     Pin 2  3   4
  1854.  
  1855. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 38
  1856.  
  1857.  
  1858.     Six signals are represented with the `io' keyword, shown expanded below and
  1859. assigned to pins 19 through 14.
  1860.  
  1861.     io:(Y1, Y2, Y3, Y4, Y5, Y6),
  1862.          :   :   :   :   :   :
  1863.     Pin 19  18  17  16  15  14
  1864.  
  1865. CMAIN is assigned to pin 1
  1866.  
  1867.     clock:CMAIN
  1868.             :
  1869.         Pin 1
  1870.  
  1871. and BHEN to pin 11.  (BHEN was previously also assigned to pin 4; this just
  1872. means that pins 4 and 11 will be connected together on the circuit board.)
  1873.  
  1874.     enable:BHEN
  1875.              :
  1876.         Pin 11
  1877.  
  1878.     The four lines for Group 1, 3, 4, and 5 in the table are equivalent to the
  1879. following diagram.
  1880.  
  1881.                       _____   ______
  1882.                    ___|    |__|    |__
  1883.         clock/in10 |1 |            |20| VCC
  1884.                    ___|            |__
  1885.               in1  |2 |            |19| io1   <- Macrocell 0
  1886.                    ___|            |__
  1887.               in2  |3 |            |18| io2   <- Macrocell 1
  1888.                    ___|            |__
  1889.               in3  |4 |            |17| io3   <- Macrocell 2
  1890.                    ___|            |__
  1891.               in4  |5 |            |16| io4   <- Macrocell 3
  1892.                    ___|  GAL16V8   |__
  1893.               in5  |6 |            |15| io5   <- Macrocell 4
  1894.                    ___|            |__
  1895.               in6  |7 |            |14| io6   <- Macrocell 5
  1896.                    ___|            |__
  1897.               in7  |8 |            |13| io7   <- Macrocell 6
  1898.                    ___|            |__
  1899.               in8  |9 |            |12| io8   <- Macrocell 7
  1900.                    ___|            |__
  1901.               GND  |10|            |11| in9/enable
  1902.                       |____________|
  1903.  
  1904.  
  1905.     The advantage of symbolic keywords over explicit pin numbers is that
  1906. changing devices becomes easier.  In any case, if you prefer explicit pin
  1907. numbers, this example can be written as follows.
  1908.  
  1909.     2:A, 3:B, 4:BHEN, 19..14:Y[1..6], 1:CMAIN, 11:BHEN
  1910.  
  1911. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 39
  1912.  
  1913.  
  1914. Signatures
  1915. ----------
  1916.  
  1917.     Many GAL devices support electronic signatures.  These are fuses not
  1918. intended for programming the device but reserved for auxiliary information,
  1919. such as the date the device was programmed, its revision level, the author's
  1920. initials, or anything else.  The signature is specified with a special keyword
  1921. and can be given in the form of a character string or an integer, either
  1922. hexadecimal or binary.  Hexadecimal or binary signatures let you pack more
  1923. information into the signature fuses; character signatures are usually easier
  1924. to read.
  1925.  
  1926.     To store a character string as an electronic signature, one line is added
  1927. to the source code.  For example,
  1928.  
  1929.     Signature:  "2/89 LAT"
  1930.  
  1931.     The text within quotation marks is converted to binary as an ASCII string
  1932. and stored in the fuses reserved for electronic signatures.  Some device
  1933. programming machines will read and display the signature when presented with a
  1934. programmed part or with a JEDEC file.  Take the string "2/89 LAT" as an
  1935. example.  Reference to an ASCII chart shows the following values for individual
  1936. characters.
  1937.  
  1938.     Char   Dec  Hex    Binary
  1939.  
  1940.     "2"    50   32    00110010
  1941.     "/"    47   2F    00101111
  1942.     "8"    56   38    00111000
  1943.     "9"    57   39    00111001
  1944.     " "    32   20    00100000
  1945.     "L"    76   4C    01001100
  1946.     "A"    65   41    01000001
  1947.     "T"    84   54    01010100
  1948.  
  1949.    The binary signature can be stored as fuses in one of two ways.  Characters
  1950. are always stored left-to-right, but the bits that make them up can be stored
  1951. either left-to-right or right-to-left.  Which way you choose depends partly on
  1952. what you are accustomed to and what your programming machine prefers.  With
  1953. left-to-right order, the fuses will appear in the JEDEC map like this.
  1954.  
  1955.     00110010 00101111 00111000 00111001 00100000 01001100 ...
  1956.         :        :        :        :        :        :
  1957.        "2"      "/"      "8"      "9"      " "      "L"   ...
  1958.  
  1959. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 40
  1960.  
  1961.  
  1962. With right-to-left order, the characters keep their places, but the individual
  1963. bits they comprise are reversed.
  1964.  
  1965.     01001100 11110100 00011100 10011100 00000100 00110010 ...
  1966.         :        :        :        :        :        :
  1967.        "2"      "/"      "8"      "9"      " "      "L"   ...
  1968.  
  1969. Selection of the order can be made with the /B switch, as described in the
  1970. user's guide.
  1971.  
  1972.     Signatures can also be entered as hexadecimal or binary integers.  In this
  1973. case, the number is padded to the left with the proper number of zeros before
  1974. it is stored as signature fuses.  Consider the following hexadecimal signature
  1975. to be stored as a set of 64 signature fuses.
  1976.  
  1977.     Signature:  173C12B8330Fh
  1978.  
  1979. It is first padded with zeros to make it 64 bits long.  Since it contains
  1980. twelve hexadecimal digits, or 48 bits, it must be padded with 16 more bits, or
  1981. four hexadecimal zeros.
  1982.  
  1983.   Hex   Binary    Fuse offset
  1984.  
  1985.      0    0000       0..3
  1986.      0    0000       4..7
  1987.      0    0000       8..11
  1988.      0    0000      12..15
  1989.      1    0001      16..19
  1990.      7    0111      20..23
  1991.      3    0011      24..27
  1992.      C    1100      28..31
  1993.      1    0001      32..35
  1994.      2    0010      36..39
  1995.      B    1011      40..43
  1996.      8    1000      44..47
  1997.      3    0011      48..51
  1998.      3    0011      52..55
  1999.      0    0000      56..59
  2000.      F    1111      60..63
  2001.  
  2002. Now when it is stored the number is readable in the fuse map or the JEDEC file
  2003. in the usual way.
  2004.  
  2005.     0000 0000 0000 0000 0001 0111 0011 1100 0001 0010 1011 ...
  2006.       :    :    :    :    :    :    :    :    :    :    :
  2007.       0    0    0    0    1    7    3    C    1    2    B  ...
  2008.  
  2009. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 41
  2010.  
  2011.  
  2012.     If you select right-to-left storage (with the appropriate button or with
  2013. the /B switch), the number is reversed, including its individual bits.  This
  2014. makes the number harder to read in the JEDEC file, but it may correspond more
  2015. closely to the way you are accustomed to storing numbers in microcomputers.
  2016.  
  2017.     1111 0000 1100 1100 0001 1101 0100 1000 0011 1100 1110 ...
  2018.       :    :    :    :    :    :    :    :    :    :    :
  2019.       F    0    3    3    8    B    2    1    C    3    7  ...
  2020.  
  2021.  
  2022.    You can use this information on the precise bit format as reference
  2023. material in case you have trouble matching the requirements of your programming
  2024. machine.
  2025.  
  2026.  
  2027. |Type             GAL16V8
  2028. |
  2029. |Overlay          GAL
  2030. |Signature        2056(64)
  2031. |
  2032. |Pins             20
  2033. |Special fuses    146
  2034. |Initialization   L
  2035. |Inversion        Off
  2036. |
  2037. |Group 1 (in)          2 3 4 5 6 7 8 9 (11) (1)
  2038. |Group 3 (io)          19 18 17 16 15 14 13 12
  2039. |Group 4 (clock)      (1)
  2040. |Group 5 (enable)     (11)
  2041. |
  2042. |Columns (Registered)  2 19 3 18 4 17 5 16 6 15 7 14 8 13 9 12
  2043. |Columns (Complex)     2  1 3 18 4 17 5 16 6 15 7 14 8 13 9 11
  2044. |Columns (Simple)      2  1 3 19 4 18 5 17 6 14 7 13 8 12 9 11
  2045. |
  2046. |Rows[2048]           19(8R) 18(8R) 17(8R) 16(8R) 15(8R) 14(8R) 13(8R) 12(8R)
  2047. |Register bypass      19 18 17 16 15 14 13 12
  2048.  
  2049. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 42
  2050.  
  2051.  
  2052. |Type             GAL16V8A
  2053. |
  2054. |Overlay          GAL
  2055. |Signature        2056(64)
  2056. |
  2057. |Pins             20
  2058. |Special fuses    146
  2059. |Initialization   L
  2060. |Inversion        Off
  2061. |
  2062. |Group 1 (in)          2 3 4 5 6 7 8 9 (11) (1)
  2063. |Group 3 (io)          19 18 17 16 15 14 13 12
  2064. |Group 4 (clock)      (1)
  2065. |Group 5 (enable)     (11)
  2066. |
  2067. |Columns (Registered)  2 19 3 18 4 17 5 16 6 15 7 14 8 13 9 12
  2068. |Columns (Complex)     2  1 3 18 4 17 5 16 6 15 7 14 8 13 9 11
  2069. |Columns (Simple)      2  1 3 19 4 18 5 17 6 14 7 13 8 12 9 11
  2070. |
  2071. |Rows[2048]           19(8R) 18(8R) 17(8R) 16(8R) 15(8R) 14(8R) 13(8R) 12(8R)
  2072. |Register bypass      19 18 17 16 15 14 13 12
  2073.  
  2074.  
  2075. |Type             GAL20V8
  2076. |
  2077. |Overlay          GAL
  2078. |Signature        2568(64)
  2079. |
  2080. |Pins             24
  2081. |Special fuses    146
  2082. |Initialization   L
  2083. |Inversion        Off
  2084. |
  2085. |Group 1 (in)          2 23 3 4 5 6 7 8 9 10 11 14 (13) (1)
  2086. |Group 2 (io)          22 21 20 19 18 17 16 15
  2087. |Group 4 (clock)      (1)
  2088. |Group 5 (enable)     (13)
  2089. |
  2090. |Columns (Registered)  2 23 3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15 11 14
  2091. |Columns (Complex)     2  1 3 23 4 21 5 20 6 19 7 18 8 17 9 16 10 14 11 13
  2092. |Columns (Simple)      2  1 3 23 4 22 5 21 6 20 7 17 8 16 9 15 10 14 11 13
  2093. |
  2094. |Rows[2560]           22(8R) 21(8R) 20(8R) 19(8R) 18(8R) 17(8R) 16(8R) 15(8R)
  2095. |Register bypass      22 21 20 19 18 17 16 15
  2096.  
  2097. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 43
  2098.  
  2099.  
  2100. |Type             GAL20V8A
  2101. |
  2102. |Overlay          GAL
  2103. |Signature        2568(64)
  2104. |
  2105. |Pins             24
  2106. |Special fuses    146
  2107. |Initialization   L
  2108. |Inversion        Off
  2109. |
  2110. |Group 1 (in)          2 23 3 4 5 6 7 8 9 10 11 14 (13) (1)
  2111. |Group 2 (io)          22 21 20 19 18 17 16 15
  2112. |Group 4 (clock)      (1)
  2113. |Group 5 (enable)     (13)
  2114. |
  2115. |Columns (Registered)  2 23 3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15 11 14
  2116. |Columns (Complex)     2  1 3 23 4 21 5 20 6 19 7 18 8 17 9 16 10 14 11 13
  2117. |Columns (Simple)      2  1 3 23 4 22 5 21 6 20 7 17 8 16 9 15 10 14 11 13
  2118. |
  2119. |Rows[2560]           22(8R) 21(8R) 20(8R) 19(8R) 18(8R) 17(8R) 16(8R) 15(8R)
  2120. |Register bypass      22 21 20 19 18 17 16 15
  2121.  
  2122.  
  2123. |Type             GAL16Z8
  2124. |
  2125. |Overlay          GAL
  2126. |Signature        2056(64)
  2127. |Object           1
  2128. |
  2129. |Pins             24
  2130. |Special fuses    146
  2131. |Initialization   L
  2132. |Inversion        Off
  2133. |
  2134. |Group 1 (in)          3 4 5 6 7 8 9 10 (13) (1)
  2135. |Group 3 (io)          22 21 20 19 18 17 16 15
  2136. |Group 4 (clock)      (1)
  2137. |Group 5 (enable)     (13)
  2138. |
  2139. |Columns (Registered)  3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15
  2140. |Columns (Complex)     3  1 4 21 5 20 6 19 7 18 8 17 9 16 10 13
  2141. |Columns (Simple)      3  1 4 22 5 21 6 20 7 17 8 16 9 15 10 13
  2142. |
  2143. |Rows[2048]           22(8R) 21(8R) 20(8R) 19(8R) 18(8R) 17(8R) 16(8R) 15(8R)
  2144. |Register bypass      22 21 20 19 18 17 16 15
  2145.  
  2146. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 44
  2147.  
  2148.  
  2149. |Type             GAL16Z8A
  2150. |
  2151. |Overlay          GAL
  2152. |Signature        2056(64)
  2153. |Object           1
  2154. |
  2155. |Pins             24
  2156. |Special fuses    146
  2157. |Initialization   L
  2158. |Inversion        Off
  2159. |
  2160. |Group 1 (in)          3 4 5 6 7 8 9 10 (13) (1)
  2161. |Group 3 (io)          22 21 20 19 18 17 16 15
  2162. |Group 4 (clock)      (1)
  2163. |Group 5 (enable)     (13)
  2164. |
  2165. |Columns (Registered)  3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15
  2166. |Columns (Complex)     3  1 4 21 5 20 6 19 7 18 8 17 9 16 10 13
  2167. |Columns (Simple)      3  1 4 22 5 21 6 20 7 17 8 16 9 15 10 13
  2168. |
  2169. |Rows[2048]           22(8R) 21(8R) 20(8R) 19(8R) 18(8R) 17(8R) 16(8R) 15(8R)
  2170. |Register bypass      22 21 20 19 18 17 16 15
  2171.  
  2172.  
  2173. |Type             GAL18V10
  2174. |
  2175. |Pins             20
  2176. |Activity         1
  2177. |Initialization   L
  2178. |Signature        3476(64)
  2179. |Special fuses    84
  2180. |
  2181. |Group 1 (in)     2 3 4 5 6 7 8 (1)
  2182. |Group 3 (io)     19 18 17 16 15 14 13 9 12 11
  2183. |Group 4 (clock)  (1)
  2184. |Group 6 (reset)  21
  2185. |Group 7 (preset) 22
  2186. |
  2187. |Columns          1 19 2 18 3 17 4 16 5 15 6 14 7 13 8 12 11 9
  2188. |
  2189. |Rows[3456(+2)]   21(1*)                                         \
  2190. |                 19(1t8R)  18(1t8R) 17(1t8R) 16(1t8R) 15(1t10R) \
  2191. |                 14(1t10R) 13(1t8R) 12(1t8R) 11(1t8R)  9(1t8R)  \
  2192. |                 22(1*)
  2193. |
  2194. |Register bypass[3457(+2)]    19 18 17 16 15 14 13 12 11 9
  2195. |Column inversion[=68]        19 18 17 16 15 14 13 12 11 9
  2196.  
  2197. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 45
  2198.  
  2199.  
  2200. |Type             GAL26CV12
  2201. |
  2202. |Pins             28
  2203. |Activity         1
  2204. |Initialization   L
  2205. |Signature        6368(64)
  2206. |Special fuses    88
  2207. |
  2208. |Group 1 (in)     28 2 3 4 5 6 8 9 10 11 12 13 14 (1)
  2209. |Group 3 (io)     27 26 25 24 23 22 20 19 18 17 16 15
  2210. |Group 4 (clock)  (1)
  2211. |Group 6 (reset)  29
  2212. |Group 7 (preset) 30
  2213. |
  2214. |Columns          1 28 2 27 3 26 4 25 5 24 6 23 8 22 \
  2215. |                 9 20 10 19 11 18 12 17 13 16 14 15
  2216. |
  2217. |Rows[6344(+2)]   29(1*)                                                    \
  2218. |                 27(1t8R)  26(1t8R)  25(1t8R) 24(1t8R) 23(1t10R) 22(1t12R) \
  2219. |                 20(1t12R) 19(1t10R) 18(1t8R) 17(1t8R) 16(1t8R)  15(1t8R)  \
  2220. |                 30(1*)
  2221. |
  2222. |Register bypass[6345(+2)]    27 26 25 24 23 22 20 19 18 17 16 15
  2223. |Column inversion[=68]        27 26 25 24 23 22 20 19 18 17 16 15
  2224. |
  2225. |GND              21
  2226. |VCC              7
  2227.  
  2228. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 46
  2229.  
  2230.  
  2231. 9.  RA DEVICES
  2232.  
  2233.     In the RA series, each output macrocell has a D flip-flop with three-state
  2234. enable.  The D input to the flip-flop is connected to a sum-of-products array
  2235. (typically four product terms).  Separate product terms are also reserved for
  2236. the clock, for three-state enable, for asynchronous reset, and for asynchronous
  2237. set (typically a single product term each).  As shown in the databooks, the
  2238. macrocell is structured so that the D flip-flop is bypassed if both the reset
  2239. and the set terms are active simultaneously, rendering the macrocell a
  2240. combinational logic element.
  2241.  
  2242.     With the OrCAD PLD compiler, it is not necessary to explicitly force the
  2243. reset and set terms high to obtain combinational output; if no register is used
  2244. in the source, then these two terms will be forced high automatically by the
  2245. compiler.  If a register is used in the source, however, then reset and set
  2246. will be taken from any values specified in the dff function in the source.
  2247.  
  2248.     For example, to bypass the register in an RA device and obtain purely
  2249. combinational logic, a normal logic statement like the following is used.
  2250.  
  2251.     |   OUT = (A & B') # C
  2252.  
  2253.     If the three-state gate is to be used, then it is specified in the usual
  2254. way.  For example, this statement enables the output whenever EN1 and EN2 are
  2255. both active:
  2256.  
  2257.     |   OUT = EN1&EN2 ?? (A & B') # C
  2258.  
  2259.     To include the register in an RA device, a register is specified in the
  2260. source, either with the rising edge operator (//) or with the dff function.
  2261. Either of these is equivalent.
  2262.  
  2263.     |   OUT = CLK&CLKEN // (A & B') # C
  2264.  
  2265.     |   OUT = dff((A & B') # C, CLK&CLKEN)
  2266.  
  2267. Three-state gates, if needed, are added with the three-state operator (??).
  2268.  
  2269.     |   OUT = EN1&EN2 ?? CLK&CLKEN // (A & B') # C
  2270.  
  2271.     |   OUT = EN1&EN2 ?? dff((A & B') # C, CLK&CLKEN)
  2272.  
  2273. and reset and set are handled as usual for the dff function.
  2274.  
  2275.     |   OUT = EN1&EN2 ?? dff((A & B') # C, CLK&CLKEN, RESET)
  2276.  
  2277.    Of course, if you specify a register and explicitly enable its reset and
  2278. set terms, like this,
  2279.  
  2280.     |   OUT = dff((A & B') # C, CLK&CLKEN, 1, 1)
  2281.  
  2282. then the RA device has no choice but to behave combinationally.  While this
  2283. and other things like it will work, they are not good practice, for they lack
  2284. portability to other series of devices.
  2285.  
  2286. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 47
  2287.  
  2288.  
  2289.    As explained in the reference guide, conditioning statements apply to logic
  2290. synthesized from numerical maps, streams, truth tables, state machines, and so
  2291. forth.  Here is an example.
  2292.  
  2293.     |PAL16RA8  in:(A[2..0], CLK, LOAD, CLR, SET, G2), io:QA[0..2]
  2294.     |
  2295.     |   Conditioning: G2 ?? dff(QA[2..0], CLK, CLR, SET)
  2296.     |
  2297.     |   Map: QA[2..0] -> QA[2..0]
  2298.     |   { n ->      n+1, LOAD'
  2299.     |     n ->  A[2..0], LOAD }
  2300.  
  2301.  
  2302. |Type              PAL16RA8
  2303. |Activity          0
  2304. |Initialization    H
  2305. |
  2306. |Pins              20
  2307. |Special fuses      8
  2308. |Register bypass   RA
  2309. |
  2310. |Group 1 (in)       2  3  4  5  6  7  8  9
  2311. |Group 3 (io)      19 18 17 16 15 14 13 12
  2312. |Group 4 (clock)    1
  2313. |Group 5 (enable)  11
  2314. |
  2315. |Columns           2 19 3 18 4 17 5 16 6 15 7 14 8 13 9 12
  2316. |
  2317. |Rows[2048]        19(tcrs4R) 18(tcrs4R) 17(tcrs4R) 16(tcrs4R) \
  2318. |                  15(tcrs4R) 14(tcrs4R) 13(tcrs4R) 12(tcrs4R)
  2319.  
  2320.  
  2321. |Type              PAL20RA10
  2322. |Activity          0
  2323. |Initialization    H
  2324. |
  2325. |Pins              24
  2326. |Special fuses     10
  2327. |Register bypass   RA
  2328. |
  2329. |Group 1 (in)       2  3  4  5  6  7  8  9 10 11
  2330. |Group 3 (io)      23 22 21 20 19 18 17 16 15 14
  2331. |Group 4 (clock)    1
  2332. |Group 5 (enable)  13
  2333. |
  2334. |Columns            2 23  3 22  4 21  5 20  6 19 \
  2335. |                   7 18  8 17  9 16 10 15 11 14
  2336. |
  2337. |Rows[3200]        23(tcrs4R) 22(tcrs4R) 21(tcrs4R) 20(tcrs4R) 19(tcrs4R) \
  2338. |                  18(tcrs4R) 17(tcrs4R) 16(tcrs4R) 15(tcrs4R) 14(tcrs4R)
  2339.  
  2340. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 48
  2341.  
  2342.  
  2343. 10.  EP DEVICES
  2344.  
  2345.     The EP devices include the EP300, EP600, EP900, and the EP1800 families.
  2346. They range from small devices that replace 16-pin PALs to much larger devices
  2347. with 68 pins and 48 output macrocells.  The databooks published by the
  2348. manufacturers contain material needed to understand the operation of these
  2349. devices.  Further notes here describe how to apply the OrCAD PLD compiler once
  2350. you understand them.
  2351.  
  2352. EP300 series
  2353. ------------
  2354.  
  2355.     The EP300/310 usually needs no special attention.  It has nine product
  2356. terms, one of them dedicated to three-state enable.  Feedback into the array
  2357. can come either from the pin, from the output of the register, or directly from
  2358. the output of the array.  Normally, if you do nothing special, the compiler
  2359. will automatically take feedback from the pin for combinational logic and from
  2360. the output of the register for sequential logic.  This is compatible with the
  2361. operation of simpler PAL devices.  In other words, just using the EP300/310 in
  2362. the normal way will lead to the expected results.
  2363.  
  2364.     If you want to change the way feedback normally works, for example to take
  2365. feedback from the array, then one or more configuration statements are needed
  2366. in the source.  The configuration statements contain conditions and lists of
  2367. signals to which the conditions apply.  For example, to take feedback directly
  2368. from the array for signals Z[3..0] and from the pins for signals Q and S,
  2369. these two configuration statements are placed in the source:
  2370.  
  2371.     |   Configuration:  "Array feedback", Z[3..0]
  2372.     |   Configuration:  "Pin feedback",   Q, S
  2373.  
  2374.     The keywords (e.g., Array feedback) may be upper or lower case as you
  2375. choose, but they must be enclosed in quotation marks ("), must be followed by a
  2376. comma and a list of signals, and must be spelled correctly.  There are only
  2377. three feedback keywords:
  2378.  
  2379.     Pin feedback
  2380.     Register feedback
  2381.     Array feedback
  2382.  
  2383.     In addition to selectable feedback, macrocells on the EP300/310 have one
  2384. global asynchronous reset term and one global synchronous preset term.  (Notice
  2385. that one is asynchronous, the other synchronous.)  These are two additional
  2386. product terms coming from the array and feeding the flip-flop in each macrocell.
  2387. Because the reset and preset lines are global, they are handled specially, the
  2388. same way similar lines are handled in devices like the PAL22V10.  To employ the
  2389. additional reset and preset product terms, you must do two things in the source:
  2390.  
  2391. 1.  Code the term reset or preset (or both) at the beginning of the source
  2392.     followed by an internal signal name you want to use to define the reset or
  2393.     preset condition.
  2394.  
  2395. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 49
  2396.  
  2397.  
  2398. 2.  Write an equation that has the internal signal name at the left and the
  2399.     reset or preset conditions on the right.  Keep in mind that the reset or
  2400.     preset conditions must reduce to a single product term.
  2401.  
  2402.     Consider, for example, a six-bit counter that should be reset asynchronously
  2403. when signal RESET is active and signal WAIT is inactive.  The following code
  2404. will do.
  2405.  
  2406.     |EP310 in:(RESET, WAIT, MODE),
  2407.     |      io:(Q[5..0], WMODE),
  2408.     |      clock:CLK, reset:BEGIN
  2409.     |
  2410.     | WMODE = MODE  & WAIT
  2411.     | BEGIN = RESET & WAIT'
  2412.     |
  2413.     | Registers:  CLK // Q[5..0]
  2414.     | Map:    Q[5..0] -> Q[5..0] { n -> n+1 }
  2415.  
  2416.     In this example, Q[5..0] use registers and WMODE is combinational.  Since
  2417. BEGIN is defined to be a reset signal (reset:BEGIN), when BEGIN is active, all
  2418. registers will be reset, regardless of the state of CLK.  WMODE is
  2419. combinational, so the condition of BEGIN has no effect on it.
  2420.  
  2421.  
  2422. |Type             EP310
  2423. |Overlay          EP300
  2424. |Activity         1
  2425. |
  2426. |Pins             20
  2427. |Special fuses    56
  2428. |
  2429. |Group 1 (in)     2 3 4 5 6 7 8 9 11 (1)
  2430. |Group 3 (io)     19 18 17 16 15 14 13 12
  2431. |Group 4 (clock)  (1)
  2432. |Group 6 (reset)  21
  2433. |Group 7 (preset) 22
  2434. |
  2435. |Columns[-]       1 11 2 19 3 18 4 17 5 16 6 15 7 14 8 13 9 12
  2436. |
  2437. |Rows             19(8,tR) 18(8,tR) 17(8,tR) 16(8,tR) \
  2438. |                 15(8,tR) 14(8,tR) 13(8,tR) 12(8,tR) \
  2439. |                 22(1*) 21(1*)
  2440. |
  2441. |Register bypass  19 18 17 16 15 14 13 12
  2442.  
  2443.  
  2444. EP320 series
  2445. ------------
  2446.  
  2447.     The EP320/330 is simpler than the EP300/310, lacking the selectable
  2448. feedback and the global set and reset terms.  Feedback is hardwired to come
  2449. from the pin for combinational output and from the register for sequential
  2450. output, in the typical way.  On the other hand, the EP320 has special bits
  2451. called turbo bits and miser bits, described in the databooks.  By default, the
  2452.  
  2453. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 50
  2454.  
  2455.  
  2456. PLD compiler sets the turbo bits to 0 and the miser bits to 1 in the JEDEC
  2457. file, but their values can be changed in a configuration statement.  For
  2458. example, to set the turbo bits to 1 and the miser bits to 0, use a statement
  2459. like this in the source.
  2460.  
  2461.     |   Configuration:  "Turbo:1  Miser:0"
  2462.  
  2463.     In this case, no list of signals follows the configuration statement, for
  2464. the statement applies to the entire device, not just to specific signals.
  2465.  
  2466.  
  2467. |Type             EP320
  2468. |Overlay          EP300
  2469. |
  2470. |Activity         1
  2471. |Special fuses    324
  2472. |
  2473. |Group 1 (in)     2 3 4 5 6 7 8 9 11 (1)
  2474. |Group 3 (io)     19 18 17 16 15 14 13 12
  2475. |Group 4 (clock)  (1)
  2476. |
  2477. |Columns[-]       1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 19
  2478. |
  2479. |Rows             19(8,tR) 18(8,tR) 17(8,tR) 16(8,tR) \
  2480. |                 15(8,tR) 14(8,tR) 13(8,tR) 12(8,tR)
  2481. |
  2482. |Register bypass  19 18 17 16 15 14 13 12
  2483.  
  2484.  
  2485. |Type             EP330
  2486. |Overlay          EP300
  2487. |
  2488. |Activity         1
  2489. |Special fuses    324
  2490. |
  2491. |Group 1 (in)     2 3 4 5 6 7 8 9 11 (1)
  2492. |Group 3 (io)     19 18 17 16 15 14 13 12
  2493. |Group 4 (clock)  (1)
  2494. |
  2495. |Columns[-]       1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 19
  2496. |
  2497. |Rows             19(8,tR) 18(8,tR) 17(8,tR) 16(8,tR) \
  2498. |                 15(8,tR) 14(8,tR) 13(8,tR) 12(8,tR)
  2499. |
  2500. |Register bypass  19 18 17 16 15 14 13 12
  2501.  
  2502. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 51
  2503.  
  2504.  
  2505. EP600 and EP900 series
  2506. ----------------------
  2507.  
  2508.     Devices in the EP600/900 class are similar in structure.  Output macrocells
  2509. can be configured to be combinational, D flip-flops, or T flip-flops.  (The
  2510. databooks also show JK flip-flops and a synchronous kind of SR flip-flops as
  2511. options, but these are not hardwired; they are merely implemented as D or T
  2512. flip-flops with the right kind of feedback.)  Each macrocell has eight product
  2513. terms, its own asynchronous reset term, and a combination clock/enable term.
  2514. Feedback is selectable either from the pin or from the output of the register.
  2515. Feedback directly from the array is not available.
  2516.  
  2517.     As in the EP300/310, the compiler automatically takes feedback from the pin
  2518. for combinational logic and from the register for sequential logic.  To
  2519. override the automatic selection, the feedback keywords are used in the same
  2520. way as on the EP300/310.  For example, to take feedback from the pins for
  2521. signals Q and S, this configuration statement is placed in the source:
  2522.  
  2523.     |   Configuration:  "Pin feedback", Q, S
  2524.  
  2525.     Selection of combinational, D flip-flop, or T flip-flop is made by the
  2526. compiler, based on the form of the source.  Either the rising edge operator
  2527. (//) or the function dff will select D flip-flops, the function tff will select
  2528. T flip-flops, and the absence of any such notation will select combinational
  2529. output.
  2530.  
  2531.     Clocking terms can be taken either from the array (if no three-state enable
  2532. term is used for the macrocell) or from a clock pin hardwired to the macrocell,
  2533. as detailed in the databooks.  Fuses controlling the source of the clock are
  2534. configured automatically by the compiler on the basis of the name of the clock
  2535. signal and the pins it is attached to.  If both clock and three-state enable
  2536. must come from the array, the compiler will display an error message to inform
  2537. you of the problem.
  2538.  
  2539.  
  2540.     Three types of pins are used when describing signals at the beginning of
  2541. the source, the exact assignments of which are given in the tables that follow.
  2542. Keyword `in' identifies pure input pins, of which the EP600 has four and the
  2543. EP900 has twelve; keyword `io' identifies input/output macrocells, of which the
  2544. EP600 has sixteen and the EP900 has twenty-four; and keyword `clock' identifies
  2545. clock input pins, of which both devices have two.  Here is a short example of a
  2546. 24-bit registered decoder (not recommended as efficient use of an EP900, but
  2547. given as an illustration of how the signals are connected).  The five input
  2548. signals D[4..0] carry a binary number n in the range 0 to 23.  This number is
  2549. decoded and the nth output line Q[n] is activated on the next rising edge
  2550. (provided EN is also active).
  2551.  
  2552.     |EP900c  in:(D[4..0], EN), io:Q[23..0], clock:(CLK, CLK)
  2553.     |
  2554.     |  n=23..0:  Q[n] = EN ?? CLK // D[4..0]==n
  2555.  
  2556.     The PLD reference guide explains how such a compact indexed equation can
  2557. define such a large decoder.  The only thing special in this case is that the
  2558. signal CLK must be attached to both clock pins; CLK is used in all 24
  2559.  
  2560. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 52
  2561.  
  2562.  
  2563. macrocells, but each clock pin only reaches 12 of the macrocells.  As an
  2564. alternative, the clock could be drawn from the array by attaching it to one of
  2565. the input lines, but because of restrictions within the device, the three-state
  2566. enable term would then be unavailable.  The source would look like this:
  2567.  
  2568.     |EP900c  in:(D[4..0], CLK), io:Q[23..0]
  2569.     |
  2570.     |  n=23..0:  Q[n] = CLK // D[4..0]==n
  2571.  
  2572.     The `c' after the name, by the way, signifies the square JLCC package
  2573. rather than the dip (dual in-line package).  Pin numbering differs between the
  2574. two package types, which affects any test vectors.
  2575.  
  2576.     Parts in this series also have turbo bits, which by default are set to zero
  2577. in the JEDEC file.  Their values can be changed with a configuration statement
  2578. like this:
  2579.  
  2580.     |   Configuration:  "Turbo:1"
  2581.  
  2582.  
  2583. |Type             EP600
  2584. |Overlay          EP900
  2585. |
  2586. |Pins             24
  2587. |Special fuses    82
  2588. |
  2589. |Group 1 (in)     2 23 11 14
  2590. |Group 3 (io)     3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15
  2591. |Group 4 (clock)  1 13
  2592. |
  2593. |Columns[-]       2 3 4 5 6 7 8 9 10 11 14 15 16 17 18 19 20 21 22 23
  2594. |
  2595. |Rows[6400(+5),6404(+5)]                                  \
  2596. |                 22(8,rtR) 21(8,rtR) 20(8,rtR) 19(8,rtR) \
  2597. |                 18(8,rtR) 17(8,rtR) 16(8,rtR) 15(8,rtR) \
  2598. |                  3(8,rtR)  4(8,rtR)  5(8,rtR)  6(8,rtR) \
  2599. |                  7(8,rtR)  8(8,rtR)  9(8,rtR) 10(8,rtR)
  2600.  
  2601. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 53
  2602.  
  2603.  
  2604. |Type             EP600c
  2605. |Overlay          EP900
  2606. |
  2607. |Pins             28
  2608. |Special fuses    82
  2609. |
  2610. |Group 1 (in)     3 27 13 17
  2611. |Group 3 (io)     4 26 5 25 6 24 7 23 8 22 9 21 10 20 12 18
  2612. |Group 4 (clock)  2 16
  2613. |
  2614. |Columns[-]       3 4 5 6 7 8 9 10 12 13 17 18 20 21 22 23 24 25 26 27
  2615. |
  2616. |Rows[6400(+5),6404(+5)]                                  \
  2617. |                 26(8,rtR) 25(8,rtR) 24(8,rtR) 23(8,rtR) \
  2618. |                 22(8,rtR) 21(8,rtR) 20(8,rtR) 18(8,rtR) \
  2619. |                  4(8,rtR)  5(8,rtR)  6(8,rtR)  7(8,rtR) \
  2620. |                  8(8,rtR)  9(8,rtR) 10(8,rtR) 12(8,rtR)
  2621. |
  2622. |VCC              1 28
  2623. |GND              14 15
  2624.  
  2625.  
  2626. |Type             EP610
  2627. |Overlay          EP900
  2628. |
  2629. |Pins             24
  2630. |Special fuses    82
  2631. |
  2632. |Group 1 (in)     2 23 11 14
  2633. |Group 3 (io)     3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15
  2634. |Group 4 (clock)  1 13
  2635. |
  2636. |Columns[-]       2 3 4 5 6 7 8 9 10 11 14 15 16 17 18 19 20 21 22 23
  2637. |
  2638. |Rows[6400(+5),6404(+5)]                                  \
  2639. |                 22(8,rtR) 21(8,rtR) 20(8,rtR) 19(8,rtR) \
  2640. |                 18(8,rtR) 17(8,rtR) 16(8,rtR) 15(8,rtR) \
  2641. |                  3(8,rtR)  4(8,rtR)  5(8,rtR)  6(8,rtR) \
  2642. |                  7(8,rtR)  8(8,rtR)  9(8,rtR) 10(8,rtR)
  2643.  
  2644. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 54
  2645.  
  2646.  
  2647. |Type             EP610c
  2648. |Overlay          EP900
  2649. |
  2650. |Pins             28
  2651. |Special fuses    82
  2652. |
  2653. |Group 1 (in)     3 27 13 17
  2654. |Group 3 (io)     4 26 5 25 6 24 7 23 8 22 9 21 10 20 12 18
  2655. |Group 4 (clock)  2 16
  2656. |
  2657. |Columns[-]       3 4 5 6 7 8 9 10 12 13 17 18 20 21 22 23 24 25 26 27
  2658. |
  2659. |Rows[6400(+5),6404(+5)]                                  \
  2660. |                 26(8,rtR) 25(8,rtR) 24(8,rtR) 23(8,rtR) \
  2661. |                 22(8,rtR) 21(8,rtR) 20(8,rtR) 18(8,rtR) \
  2662. |                  4(8,rtR)  5(8,rtR)  6(8,rtR)  7(8,rtR) \
  2663. |                  8(8,rtR)  9(8,rtR) 10(8,rtR) 12(8,rtR)
  2664. |
  2665. |VCC              1 28
  2666. |GND              14 15
  2667.  
  2668.  
  2669. |Type             EP630
  2670. |Overlay          EP900
  2671. |
  2672. |Pins             24
  2673. |Special fuses    82
  2674. |
  2675. |Group 1 (in)     2 23 11 14
  2676. |Group 3 (io)     3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15
  2677. |Group 4 (clock)  1 13
  2678. |
  2679. |Columns[-]       2 3 4 5 6 7 8 9 10 11 14 15 16 17 18 19 20 21 22 23
  2680. |
  2681. |Rows[6400(+5),6404(+5)]                                  \
  2682. |                 22(8,rtR) 21(8,rtR) 20(8,rtR) 19(8,rtR) \
  2683. |                 18(8,rtR) 17(8,rtR) 16(8,rtR) 15(8,rtR) \
  2684. |                  3(8,rtR)  4(8,rtR)  5(8,rtR)  6(8,rtR) \
  2685. |                  7(8,rtR)  8(8,rtR)  9(8,rtR) 10(8,rtR)
  2686.  
  2687. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 55
  2688.  
  2689.  
  2690. |Type             EP630c
  2691. |Overlay          EP900
  2692. |
  2693. |Pins             28
  2694. |Special fuses    82
  2695. |
  2696. |Group 1 (in)     3 27 13 17
  2697. |Group 3 (io)     4 26 5 25 6 24 7 23 8 22 9 21 10 20 12 18
  2698. |Group 4 (clock)  2 16
  2699. |
  2700. |Columns[-]       3 4 5 6 7 8 9 10 12 13 17 18 20 21 22 23 24 25 26 27
  2701. |
  2702. |Rows[6400(+5),6404(+5)]                                  \
  2703. |                 26(8,rtR) 25(8,rtR) 24(8,rtR) 23(8,rtR) \
  2704. |                 22(8,rtR) 21(8,rtR) 20(8,rtR) 18(8,rtR) \
  2705. |                  4(8,rtR)  5(8,rtR)  6(8,rtR)  7(8,rtR) \
  2706. |                  8(8,rtR)  9(8,rtR) 10(8,rtR) 12(8,rtR)
  2707. |
  2708. |VCC              1 28
  2709. |GND              14 15
  2710.  
  2711.  
  2712. |Type             EP900
  2713. |Overlay          EP900
  2714. |
  2715. |Pins             40
  2716. |Special fuses    122
  2717. |
  2718. |Group 1 (in)     2 39 3 38 4 37 17 24 18 23 19 22
  2719. |Group 3 (io)     5 36 6 35 7 34 8 33 9 32 10 31 11 30 12 29 \
  2720. |                 13 28 14 27 15 26 16 25
  2721. |Group 4 (clock)  1 21
  2722. |
  2723. |Columns[-]       2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 \
  2724. |                 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
  2725. |
  2726. |Rows[17280(+5),17284(+5)]                                \
  2727. |                 36(8,rtR) 35(8,rtR) 34(8,rtR) 33(8,rtR) \
  2728. |                 32(8,rtR) 31(8,rtR) 30(8,rtR) 29(8,rtR) \
  2729. |                 28(8,rtR) 27(8,rtR) 26(8,rtR) 25(8,rtR) \
  2730. |                  5(8,rtR)  6(8,rtR)  7(8,rtR)  8(8,rtR) \
  2731. |                  9(8,rtR) 10(8,rtR) 11(8,rtR) 12(8,rtR) \
  2732. |                 13(8,rtR) 14(8,rtR) 15(8,rtR) 16(8,rtR)
  2733.  
  2734. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 56
  2735.  
  2736.  
  2737. |Type             EP900c
  2738. |Overlay          EP900
  2739. |
  2740. |Pins             44
  2741. |Special fuses    122
  2742. |
  2743. |Group 1 (in)     3 43 4 42 5 41 19 27 20 26 21 25
  2744. |Group 3 (io)     6 40 7 38 8 37 9 36 10 35 11 34 12 33 13 32 \
  2745. |                 14 31 15 30 16 29 18 28
  2746. |Group 4 (clock)  2 24
  2747. |
  2748. |Columns[-]       3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 \
  2749. |                 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41 42 43
  2750. |
  2751. |Rows[17280(+5),17284(+5)]                                \
  2752. |                 40(8,rtR) 38(8,rtR) 37(8,rtR) 36(8,rtR) \
  2753. |                 35(8,rtR) 34(8,rtR) 33(8,rtR) 32(8,rtR) \
  2754. |                 31(8,rtR) 30(8,rtR) 29(8,rtR) 28(8,rtR) \
  2755. |                  6(8,rtR)  7(8,rtR)  8(8,rtR)  9(8,rtR) \
  2756. |                 10(8,rtR) 11(8,rtR) 12(8,rtR) 13(8,rtR) \
  2757. |                 14(8,rtR) 15(8,rtR) 16(8,rtR) 18(8,rtR)
  2758. |
  2759. |VCC              1 44
  2760. |GND              22 23
  2761.  
  2762.  
  2763. |Type             EP910
  2764. |Overlay          EP900
  2765. |
  2766. |Pins             40
  2767. |Special fuses    122
  2768. |
  2769. |Group 1 (in)     2 39 3 38 4 37 17 24 18 23 19 22
  2770. |Group 3 (io)     5 36 6 35 7 34 8 33 9 32 10 31 11 30 12 29 \
  2771. |                 13 28 14 27 15 26 16 25
  2772. |Group 4 (clock)  1 21
  2773. |
  2774. |Columns[-]       2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 \
  2775. |                 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
  2776. |
  2777. |Rows[17280(+5),17284(+5)]                                \
  2778. |                 36(8,rtR) 35(8,rtR) 34(8,rtR) 33(8,rtR) \
  2779. |                 32(8,rtR) 31(8,rtR) 30(8,rtR) 29(8,rtR) \
  2780. |                 28(8,rtR) 27(8,rtR) 26(8,rtR) 25(8,rtR) \
  2781. |                  5(8,rtR)  6(8,rtR)  7(8,rtR)  8(8,rtR) \
  2782. |                  9(8,rtR) 10(8,rtR) 11(8,rtR) 12(8,rtR) \
  2783. |                 13(8,rtR) 14(8,rtR) 15(8,rtR) 16(8,rtR)
  2784.  
  2785. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 57
  2786.  
  2787.  
  2788. |Type             EP910c
  2789. |Overlay          EP900
  2790. |
  2791. |Pins             44
  2792. |Special fuses    122
  2793. |
  2794. |Group 1 (in)     3 43 4 42 5 41 19 27 20 26 21 25
  2795. |Group 3 (io)     6 40 7 38 8 37 9 36 10 35 11 34 12 33 13 32 \
  2796. |                 14 31 15 30 16 29 18 28
  2797. |Group 4 (clock)  2 24
  2798. |
  2799. |Columns[-]       3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 \
  2800. |                 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41 42 43
  2801. |
  2802. |Rows[17280(+5),17284(+5)]                                \
  2803. |                 40(8,rtR) 38(8,rtR) 37(8,rtR) 36(8,rtR) \
  2804. |                 35(8,rtR) 34(8,rtR) 33(8,rtR) 32(8,rtR) \
  2805. |                 31(8,rtR) 30(8,rtR) 29(8,rtR) 28(8,rtR) \
  2806. |                  6(8,rtR)  7(8,rtR)  8(8,rtR)  9(8,rtR) \
  2807. |                 10(8,rtR) 11(8,rtR) 12(8,rtR) 13(8,rtR) \
  2808. |                 14(8,rtR) 15(8,rtR) 16(8,rtR) 18(8,rtR)
  2809. |
  2810. |VCC              1 44
  2811. |GND              22 23
  2812.  
  2813.  
  2814. EP1800 series
  2815. -------------
  2816.  
  2817.     When the level of the EP1800 is reached, the options have increased.  There
  2818. are 48 macrocells divided into four quadrants, with local feedback among all
  2819. members of a quadrant and global feedback among some members.  The macrocells
  2820. with global feedback also have a local feedback path that allows them to be
  2821. used as a buried registers.  All this is explained in the databooks; the
  2822. purpose here is only to show how to access these features with the OrCAD PLD
  2823. compiler.
  2824.  
  2825.     Inspection of the tables for the EP1800/1810/1830 series shows the three
  2826. types of ports available in earlier series (in, io, and clock), but shows five
  2827. additional types as well (ioa, iob, ioc, iod, and internal):
  2828.  
  2829.     Type of   Number of    Type of
  2830.     port      pins         signal
  2831.  
  2832.     in         12        Pure input signals.
  2833.     io         16        Output of global macrocells.
  2834.     clock       4        Input signals with clock.
  2835.  
  2836.     ioa         8        Quadrant A local macrocells.
  2837.     iob         8        Quadrant B local macrocells.
  2838.     ioc         8        Quadrant C local macrocells.
  2839.     iod         8        Quadrant D local macrocells.
  2840.  
  2841.     internal   16        Buried local feedback from global macrocells.
  2842.  
  2843. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 58
  2844.  
  2845.  
  2846.     The twelve `in' ports are easy; they represent the pure input pins.  The
  2847. sixteen `io' ports represent the pins attached to the macrocells with global
  2848. feedback; they therefore behave like the io ports of the EP600/900 series.  The
  2849. four `clock' ports carry clock signals to the four quadrants, but unlike the
  2850. earlier series, these clock ports also act as normal global input ports.
  2851.  
  2852.     The ports labelled `ioa', `iob', `ioc', and `iod' represent the 32 local
  2853. macrocells in quadrants A, B, C, and D respectively.  Their use is relatively
  2854. simple, the only restriction being that any feedback such a cell provides must
  2855. be used within its own quadrant.  Any attempt to use local feedback outside the
  2856. applicable quadrant will generate an error message.
  2857.  
  2858.     The ports labelled internal represent local internal feedback of the global
  2859. macrocells (the ones whose pins are represented by `io').  If one of the signals
  2860. defined as `io' is used purely as input, then an entirely different signal can
  2861. be defined as `internal' in the corresponding position.  The internal signal is
  2862. treated as a normal signal with feedback to its local quadrant, but it is
  2863. connected to no real pin.  Internal node numbers in the range 69 through 84 are
  2864. used instead of real pin numbers. (The EP1800/1810/1830 has 68 pins, so any pin
  2865. numbers above 68 represent internal nodes.) The macrocell associated with the
  2866. internal node is said to be buried.
  2867.  
  2868.     Below is a table of pin numbers associated with each type of port.  As
  2869. described in the PLD reference guide and in the introduction at the beginning
  2870. of this material, signals attached to each type of port are assigned pin
  2871. numbers from left to right.  Remember that, in this device, numbers 69 through
  2872. 84 represent internal nodes rather than real pins.
  2873.  
  2874.     Type      Pin numbers
  2875.  
  2876.     in        14 15 16 20 21 22 48 49 50 54 55 56
  2877.     io        10 11 12 13 23 24 25 26 44 45 46 47 57 58 59 60
  2878.     internal  69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
  2879.     clock     17 19 51 53
  2880.  
  2881.     ioa        2  3  4  5  6  7  8  9
  2882.     iob       27 28 29 30 31 32 33 34
  2883.     ioc       36 37 38 39 40 41 42 43
  2884.     iod       61 62 63 64 65 66 67 68
  2885.  
  2886.     As a simple example, here is the decode shown earlier, now expanded to 48
  2887. bits.  (Again, this is not proposed as an efficient use of an EP1810.)  The six
  2888. input signals D[5..0] carry a binary number n in the range 0 to 47.  This
  2889. number is decoded and the nth output line Q[n] is activated on the next rising
  2890. edge (provided EN is also active).
  2891.  
  2892. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 59
  2893.  
  2894.  
  2895.     |EP1810c  in:(D[5..0], EN),
  2896.     |         io: Q[47..32],
  2897.     |         ioa:Q[31..24],
  2898.     |         iob:Q[23..16],
  2899.     |         ioc:Q[15..8],
  2900.     |         iod:Q[7..0],
  2901.     |         clock:(CLK, CLK, CLK, CLK)
  2902.     |
  2903.     |  n=47..0:  Q[n] = EN ?? CLK // D[4..0]==n
  2904.  
  2905.     The only fundamental difference between this version for the EP1810c and
  2906. the version shown earlier for the EP900c is that the 48 output signals are
  2907. divided among various sets of input/output ports.  The only problem with
  2908. locality arises with the signal CLK, which is attached to four separate clock
  2909. pins to let it reach all quadrants directly.  If it were not so attached, it
  2910. could still reach all quadrants through the array, but the use of the enable
  2911. signal EN would then be affected, since it also comes from the array.
  2912.  
  2913.     For an example using internal nodes, consider a four-bit counter with
  2914. signals Q[3..0] attached to the global macrocells of Quadrant A.  Suppose only
  2915. a signal telling when the counter reaches zero is needed, not the actual output
  2916. of the counter itself.  Therefore, the pins attached to the global macrocells
  2917. are not needed for output of the counter and instead can be used for input
  2918. signals D[3..0] to load the counter.  On each clock cycle, the counter
  2919. decrements by one until it reaches zero, when it stops decrementing.  The
  2920. combinational output signal ZERO in Quadrant A becomes active when the counter
  2921. reaches zero.  When the example is coded as shown below, the compiler assigns
  2922. signals D3, D2, D1, and D0 to pins 10, 11, 12, and 13, respectively, but
  2923. assigns signals Q3, Q2, Q1, and Q0 to the local feedback paths of the
  2924. macrocells for those same pins.
  2925.  
  2926.     |EP1810c  in:(CLK, LOAD), ioa:ZERO,
  2927.     |         io:D[3..0], internal:Q[3..0]
  2928.     |
  2929.     |  ZERO = Q[3..0]==0
  2930.     |
  2931.     |  Map:  Q[3..0] -> Q[3..0]
  2932.     |  { n -> n-1,     LOAD' & n>0
  2933.     |    n -> 0,       LOAD' & n==0
  2934.     |    n -> D[3..0], LOAD  }
  2935.     |
  2936.     |  Registers:  CLK // Q[3..0]
  2937.  
  2938. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 60
  2939.  
  2940.  
  2941. |Type               EP1800c
  2942. |Overlay            EP1800
  2943. |
  2944. |Pins               68
  2945. |Special fuses      250
  2946. |Activity           1
  2947. |
  2948. |Group 1 (in)       14 15 16 20 21 22 \         |Pure input signals.
  2949. |                   48 49 50 54 55 56
  2950. |
  2951. |Group 4 (clock)    17 19 51 53                 |Input signals with clock.
  2952. |
  2953. |Group 3 (ioa)       2  3  4  5  6  7  8  9     |Quadrant A local macrocells.
  2954. |Group 3 (iob)      27 28 29 30 31 32 33 34     |Quadrant B local macrocells.
  2955. |Group 3 (ioc)      36 37 38 39 40 41 42 43     |Quadrant C local macrocells.
  2956. |Group 3 (iod)      61 62 63 64 65 66 67 68     |Quadrant D local macrocells.
  2957. |
  2958. |Group 3 (io)       10 11 12 13 \               |Pin output and global
  2959. |                   23 24 25 26 \               |feedback from global
  2960. |                   44 45 46 47 \               |macrocells.
  2961. |                   57 58 59 60
  2962. |
  2963. |Group 3 (internal) 69 70 71 72 \               |Buried local feedback from
  2964. |                   73 74 75 76 \               |global macrocells.
  2965. |                   77 78 79 80 \
  2966. |                   81 82 83 84
  2967. |
  2968. |Columns[-]         72,73,80,81 71,74,79,82 70,75,78,83 69,76,77,84 \
  2969. |                    9,27,43,61  8,28,42,62  7,29,41,63  6,30,40,64 \
  2970. |                    5,31,39,65  4,32,38,66  3,33,37,67  2,34,36,68 \
  2971. |                   47 46 45 44 23 24 25 26 13 12 11 10 57 58 59 60 \
  2972. |                   50 49 48 20 21 22 16 15 14 54 55 56 51 19 17 53
  2973. |
  2974. |Rows[42240(+5)]    2(8,rtR)  3(8,rtR)  4(8,rtR)  5(8,rtR)              \
  2975. |                   6(8,rtR)  7(8,rtR)  8(8,rtR)  9(8,rtR)              \
  2976. |                   10,69(8,rtR) 11,70(8,rtR) 12,71(8,rtR) 13,72(8,rtR) \
  2977. |                   23,73(8,rtR) 24,74(8,rtR) 25,75(8,rtR) 26,76(8,rtR) \
  2978. |                   27(8,rtR) 28(8,rtR) 29(8,rtR) 30(8,rtR)             \
  2979. |                   31(8,rtR) 32(8,rtR) 33(8,rtR) 34(8,rtR)             \
  2980. |                   36(8,rtR) 37(8,rtR) 38(8,rtR) 39(8,rtR)             \
  2981. |                   40(8,rtR) 41(8,rtR) 42(8,rtR) 43(8,rtR)             \
  2982. |                   44,77(8,rtR) 45,78(8,rtR) 46,79(8,rtR) 47,80(8,rtR) \
  2983. |                   57,81(8,rtR) 58,82(8,rtR) 59,83(8,rtR) 60,84(8,rtR) \
  2984. |                   61(8,rtR) 62(8,rtR) 63(8,rtR) 64(8,rtR)             \
  2985. |                   65(8,rtR) 66(8,rtR) 67(8,rtR) 68(8,rtR)
  2986. |
  2987. |Register bypass     2  3  4  5  6  7  8  9 10 69 11 70 12 71 13 72 \
  2988. |                   23 73 24 74 25 75 26 76 27 28 29 30 31 32 33 34 \
  2989. |                   36 37 38 39 40 41 42 43 44 77 45 78 46 79 47 80 \
  2990. |                   57 81 58 82 59 83 60 84 61 62 63 64 65 66 67 68
  2991. |
  2992. |VCC                18 52
  2993. |GND                 1 35
  2994.  
  2995. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 61
  2996.  
  2997.  
  2998. |Type               EP1810c
  2999. |Overlay            EP1800
  3000. |
  3001. |Pins               68
  3002. |Special fuses      250
  3003. |Activity           1
  3004. |
  3005. |Group 1 (in)       14 15 16 20 21 22 \         |Pure input signals.
  3006. |                   48 49 50 54 55 56
  3007. |
  3008. |Group 4 (clock)    17 19 51 53                 |Input signals with clock.
  3009. |
  3010. |Group 3 (ioa)       2  3  4  5  6  7  8  9     |Quadrant A local macrocells.
  3011. |Group 3 (iob)      27 28 29 30 31 32 33 34     |Quadrant B local macrocells.
  3012. |Group 3 (ioc)      36 37 38 39 40 41 42 43     |Quadrant C local macrocells.
  3013. |Group 3 (iod)      61 62 63 64 65 66 67 68     |Quadrant D local macrocells.
  3014. |
  3015. |Group 3 (io)       10 11 12 13 \               |Pin output and global
  3016. |                   23 24 25 26 \               |feedback from global
  3017. |                   44 45 46 47 \               |macrocells.
  3018. |                   57 58 59 60
  3019. |
  3020. |Group 3 (internal) 69 70 71 72 \               |Buried local feedback from
  3021. |                   73 74 75 76 \               |global macrocells.
  3022. |                   77 78 79 80 \
  3023. |                   81 82 83 84
  3024. |
  3025. |Columns[-]         72,73,80,81 71,74,79,82 70,75,78,83 69,76,77,84 \
  3026. |                    9,27,43,61  8,28,42,62  7,29,41,63  6,30,40,64 \
  3027. |                    5,31,39,65  4,32,38,66  3,33,37,67  2,34,36,68 \
  3028. |                   47 46 45 44 23 24 25 26 13 12 11 10 57 58 59 60 \
  3029. |                   50 49 48 20 21 22 16 15 14 54 55 56 51 19 17 53
  3030. |
  3031. |Rows[42240(+5)]    2(8,rtR)  3(8,rtR)  4(8,rtR)  5(8,rtR)              \
  3032. |                   6(8,rtR)  7(8,rtR)  8(8,rtR)  9(8,rtR)              \
  3033. |                   10,69(8,rtR) 11,70(8,rtR) 12,71(8,rtR) 13,72(8,rtR) \
  3034. |                   23,73(8,rtR) 24,74(8,rtR) 25,75(8,rtR) 26,76(8,rtR) \
  3035. |                   27(8,rtR) 28(8,rtR) 29(8,rtR) 30(8,rtR)             \
  3036. |                   31(8,rtR) 32(8,rtR) 33(8,rtR) 34(8,rtR)             \
  3037. |                   36(8,rtR) 37(8,rtR) 38(8,rtR) 39(8,rtR)             \
  3038. |                   40(8,rtR) 41(8,rtR) 42(8,rtR) 43(8,rtR)             \
  3039. |                   44,77(8,rtR) 45,78(8,rtR) 46,79(8,rtR) 47,80(8,rtR) \
  3040. |                   57,81(8,rtR) 58,82(8,rtR) 59,83(8,rtR) 60,84(8,rtR) \
  3041. |                   61(8,rtR) 62(8,rtR) 63(8,rtR) 64(8,rtR)             \
  3042. |                   65(8,rtR) 66(8,rtR) 67(8,rtR) 68(8,rtR)
  3043. |
  3044. |Register bypass     2  3  4  5  6  7  8  9 10 69 11 70 12 71 13 72 \
  3045. |                   23 73 24 74 25 75 26 76 27 28 29 30 31 32 33 34 \
  3046. |                   36 37 38 39 40 41 42 43 44 77 45 78 46 79 47 80 \
  3047. |                   57 81 58 82 59 83 60 84 61 62 63 64 65 66 67 68
  3048. |
  3049. |VCC                18 52
  3050. |GND                 1 35
  3051.  
  3052. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 62
  3053.  
  3054.  
  3055. |Type               EP1830c
  3056. |Overlay            EP1800
  3057. |
  3058. |Pins               68
  3059. |Special fuses      250
  3060. |Activity           1
  3061. |
  3062. |Group 1 (in)       14 15 16 20 21 22 \         |Pure input signals.
  3063. |                   48 49 50 54 55 56
  3064. |
  3065. |Group 4 (clock)    17 19 51 53                 |Input signals with clock.
  3066. |
  3067. |Group 3 (ioa)       2  3  4  5  6  7  8  9     |Quadrant A local macrocells.
  3068. |Group 3 (iob)      27 28 29 30 31 32 33 34     |Quadrant B local macrocells.
  3069. |Group 3 (ioc)      36 37 38 39 40 41 42 43     |Quadrant C local macrocells.
  3070. |Group 3 (iod)      61 62 63 64 65 66 67 68     |Quadrant D local macrocells.
  3071. |
  3072. |Group 3 (io)       10 11 12 13 \               |Pin output and global
  3073. |                   23 24 25 26 \               |feedback from global
  3074. |                   44 45 46 47 \               |macrocells.
  3075. |                   57 58 59 60
  3076. |
  3077. |Group 3 (internal) 69 70 71 72 \               |Buried local feedback from
  3078. |                   73 74 75 76 \               |global macrocells.
  3079. |                   77 78 79 80 \
  3080. |                   81 82 83 84
  3081. |
  3082. |Columns[-]         72,73,80,81 71,74,79,82 70,75,78,83 69,76,77,84 \
  3083. |                    9,27,43,61  8,28,42,62  7,29,41,63  6,30,40,64 \
  3084. |                    5,31,39,65  4,32,38,66  3,33,37,67  2,34,36,68 \
  3085. |                   47 46 45 44 23 24 25 26 13 12 11 10 57 58 59 60 \
  3086. |                   50 49 48 20 21 22 16 15 14 54 55 56 51 19 17 53
  3087. |
  3088. |Rows[42240(+5)]    2(8,rtR)  3(8,rtR)  4(8,rtR)  5(8,rtR)              \
  3089. |                   6(8,rtR)  7(8,rtR)  8(8,rtR)  9(8,rtR)              \
  3090. |                   10,69(8,rtR) 11,70(8,rtR) 12,71(8,rtR) 13,72(8,rtR) \
  3091. |                   23,73(8,rtR) 24,74(8,rtR) 25,75(8,rtR) 26,76(8,rtR) \
  3092. |                   27(8,rtR) 28(8,rtR) 29(8,rtR) 30(8,rtR)             \
  3093. |                   31(8,rtR) 32(8,rtR) 33(8,rtR) 34(8,rtR)             \
  3094. |                   36(8,rtR) 37(8,rtR) 38(8,rtR) 39(8,rtR)             \
  3095. |                   40(8,rtR) 41(8,rtR) 42(8,rtR) 43(8,rtR)             \
  3096. |                   44,77(8,rtR) 45,78(8,rtR) 46,79(8,rtR) 47,80(8,rtR) \
  3097. |                   57,81(8,rtR) 58,82(8,rtR) 59,83(8,rtR) 60,84(8,rtR) \
  3098. |                   61(8,rtR) 62(8,rtR) 63(8,rtR) 64(8,rtR)             \
  3099. |                   65(8,rtR) 66(8,rtR) 67(8,rtR) 68(8,rtR)
  3100. |
  3101. |Register bypass     2  3  4  5  6  7  8  9 10 69 11 70 12 71 13 72 \
  3102. |                   23 73 24 74 25 75 26 76 27 28 29 30 31 32 33 34 \
  3103. |                   36 37 38 39 40 41 42 43 44 77 45 78 46 79 47 80 \
  3104. |                   57 81 58 82 59 83 60 84 61 62 63 64 65 66 67 68
  3105. |
  3106. |VCC                18 52
  3107. |GND                 1 35
  3108.  
  3109. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 63
  3110.  
  3111.  
  3112. 11.  MACH DEVICES
  3113.  
  3114.     MACH devices are the first example of a new method of configuring complex
  3115. programmable logic devices.  The compiler does not produce a JEDEC file
  3116. directly, but rather produces a PLA file, which is in turn processed by a
  3117. logic-fitting program to obtain the actual JEDEC file.  The logic-fitting
  3118. program, called simply the fitter, is written by the manufacturer based on
  3119. specialized knowledge of the internal structure of the device.  This gives the
  3120. compiler an open architecture, allowing manufacturers to add parts to the
  3121. compiler themselves.
  3122.  
  3123.     Use of the MACH fitter is beyond the scope of this material and is
  3124. described in a separate publication (available in the future).  Structure of
  3125. the PLA file is described in the PLD reference guide, though for ordinary use,
  3126. specifics can be ignored.
  3127.  
  3128.     The table below shows pin structures as they are on the actual part, but
  3129. shows rows and columns only in abstract form.  Actual row and column
  3130. assignment, as well as pin assignment in most cases, is handled by the fitter.
  3131.  
  3132. |Type                MACH110
  3133. |Overlay             MACH
  3134. |
  3135. |Pins                44
  3136. |Activity            1
  3137. |Object              2                              |PLA object format
  3138. |
  3139. |Group 1 (in)        10 11 32 33
  3140. |
  3141. |Group 3 (io)         2  3  4  5  6  7  8  9 14 15 16 17 18 19 20 21 \
  3142. |                    24 25 26 27 28 29 30 31 36 37 38 39 40 41 42 43
  3143. |
  3144. |Group 3 (internal)  46 47 48 49 50 51 52 53 58 59 60 61 62 63 64 65 \
  3145. |                    68 69 70 71 72 73 74 75 80 81 82 83 84 85 86 87
  3146. |
  3147. |Group 4 (clock)     13 35
  3148. |
  3149. |Columns              2,46  3,47  4,48  5,49  6,50  7,51  8,52  9,53 10 11 \
  3150. |                    13,57 14,58 15,59 16,60 17,61 18,62 19,63 20,64 21,65 \
  3151. |                    24,68 25,69 26,70 27,71 28,72 29,73 30,74 31,75 32 33 \
  3152. |                    35,79 36,80 37,81 38,82 39,83 40,84 41,85 42,86 43,87
  3153. |
  3154. |Rows[40000(+8)]      9,53(12DT)  8,52(12DT)  7,51(12DT)  6,50(12DT) \
  3155. |                     5,49(12DT)  4,48(12DT)  3,47(12DT)  2,46(12DT) \
  3156. |                    14,58(12DT) 15,59(12DT) 16,60(12DT) 17,61(12DT) \
  3157. |                    18,62(12DT) 19,63(12DT) 20,64(12DT) 21,65(12DT) \
  3158. |                    31,75(12DT) 30,74(12DT) 29,73(12DT) 28,72(12DT) \
  3159. |                    27,71(12DT) 26,70(12DT) 25,69(12DT) 24,68(12DT) \
  3160. |                    36,80(12DT) 37,81(12DT) 38,82(12DT) 39,83(12DT) \
  3161. |                    40,84(12DT) 41,85(12DT) 42,86(12DT) 43,87(12DT)
  3162. |
  3163. |GND                 1 12 23 34
  3164. |VCC                 22
  3165.  
  3166. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 64
  3167.  
  3168.  
  3169. 12.  EMITTER COUPLED DEVICES
  3170.  
  3171.     Tables in this group represent emitter-coupled programmable logic devices
  3172. (National Semiconductor ECL).  Dashes (-) in the table represent phantom rows
  3173. and columns used by the manufacturer to achieve portability of fuse maps among
  3174. devices.  Because this is ECL, the enable pins represent logical-and rather
  3175. than three-state logic.
  3176.  
  3177.     The two devices PAL16P4N and PAL16P8N represent devices named PAL16P4 and
  3178. PAL16P8 by the manufacturer.  The letter `N' is appended to make the names
  3179. unique (A PAL16P8 already exists as a general 20-series device).  Note that
  3180. these devices were simply called PAL16N4 and PAL16N8 in versions earlier than
  3181. 1.20.
  3182.  
  3183. |Type             PAL12C4
  3184. |
  3185. |Group 1 (in)     1 2 23 3 22 9 16 10 15 11 14 13
  3186. |Group 2 (out)    5 20 7 18
  3187. |Group 9 (nc)     4 21 8 17
  3188. |
  3189. |Columns          1 23 2 22 3 - - - - 16 9 15 10 14 11 13
  3190. |Rows             -(8) -(8) 20(8) 5(8) 18(8) 7(8) -(8) -(8)
  3191. |
  3192. |VCC              24
  3193. |VCCO             6 19
  3194. |VEE              12
  3195.  
  3196.  
  3197. |Type             PAL16P4N
  3198. |
  3199. |Group 1 (in)     1 2 23 3 22 4 21 8 17 9 16 10 15 11 14 13
  3200. |Group 2 (out)    5 20 7 18
  3201. |
  3202. |Columns          1 23 2 22 3 21 4 17 8 16 9 15 10 14 11 13
  3203. |Rows[2048]       -(8) -(8) 20(8) 5(8) 18(8) 7(8) -(8) -(8)
  3204. |
  3205. |VCC              24
  3206. |VCCO             6 19
  3207. |VEE              12
  3208.  
  3209.  
  3210. |Type             PAL16P8N
  3211. |
  3212. |Group 1 (in)     1 2 23 3 22 9 16 10 15 11 14 13
  3213. |Group 2 (out)    5 20 7 18
  3214. |Group 3 (io)     4 21 8 17
  3215. |
  3216. |Columns          1 23 2 22 3 21 4 17 8 16 9 15 10 14 11 13
  3217. |Rows[2048]       21(8) 4(8) 20(8) 5(8) 18(8) 7(8) 17(8) 8(8)
  3218. |
  3219. |VCC              24
  3220. |VCCO             6 19
  3221. |VEE              12
  3222.  
  3223. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 65
  3224.  
  3225.  
  3226. |Type             PAL16RC4
  3227. |
  3228. |Group 1 (in)     2 23 3 22 10 15 11 14
  3229. |Group 2 (out)    5 20 7 18
  3230. |Group 3 (io)     4 21 8 17
  3231. |Group 4 (clock)  9 16
  3232. |Group 5 (enable) 13
  3233. |Group 6 (reset)  1
  3234. |
  3235. |Columns          5 23 2 22 3 21 4 17 8 20 7 15 10 14 11 18
  3236. |Rows[2048]       21(8) 4(8) 20(8R) 5(8R) 18(8R) 7(8R) 17(8) 8(8)
  3237. |
  3238. |VCC              24
  3239. |VCCO             6 19
  3240. |VEE              12
  3241.  
  3242.  
  3243. |Type             PAL16RD4
  3244. |
  3245. |Group 1 (in)     2 23 3 22 10 15 11 14
  3246. |Group 2 (out)    5 20 7 18
  3247. |Group 3 (io)     4 21 8 17
  3248. |Group 4 (clock)  9 16
  3249. |Group 5 (enable) 13
  3250. |Group 6 (reset)  1
  3251. |
  3252. |Columns          5 23 2 22 3 21 4 17 8 20 7 15 10 14 11 18
  3253. |Rows[2048]       21(8) 4(8) 20(8R) 5(8R) 18(8R) 7(8R) 17(8) 8(8)
  3254. |
  3255. |VCC              24
  3256. |VCCO             6 19
  3257. |VEE              12
  3258.  
  3259.  
  3260. |Type             PAL16RC8
  3261. |
  3262. |Group 1 (in)     2 23 3 22 10 15 11 14
  3263. |Group 2 (out)    4 21 5 20 7 18 8 17
  3264. |Group 4 (clock)  9 16
  3265. |Group 5 (enable) 13
  3266. |Group 6 (reset)  1
  3267. |
  3268. |Columns          5 23 2 22 3 21 4 17 8 20 7 15 10 14 11 18
  3269. |Rows[2048]       21(8R) 4(8R) 20(8R) 5(8R) 18(8R) 7(8R) 17(8R) 8(8R)
  3270. |
  3271. |VCC              24
  3272. |VCCO             6 19
  3273. |VEE              12
  3274.  
  3275. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 66
  3276.  
  3277.  
  3278. |Type             PAL16RD8
  3279. |
  3280. |Group 1 (in)     2 23 3 22 10 15 11 14
  3281. |Group 2 (out)    4 21 5 20 7 18 8 17
  3282. |Group 4 (clock)  9 16
  3283. |Group 5 (enable) 13
  3284. |Group 6 (reset)  1
  3285. |
  3286. |Columns          5 23 2 22 3 21 4 17 8 20 7 15 10 14 11 18
  3287. |Rows[2048]       21(8R) 4(8R) 20(8R) 5(8R) 18(8R) 7(8R) 17(8R) 8(8R)
  3288. |
  3289. |VCC              24
  3290. |VCCO             6 19
  3291. |VEE              12
  3292.  
  3293.  
  3294. |Type             PAL16RM4
  3295. |
  3296. |Group 1 (in)     2 23 3 22 4 21 8 17 10 15 11 14
  3297. |Group 2 (out)    5 20 7 18
  3298. |Group 4 (clock)  9 16 13
  3299. |Group 6 (reset)  1
  3300. |
  3301. |Columns          5 23 2 22 3 21 4 17 8 20 7 15 10 14 11 18
  3302. |Rows[2048]       -(8) -(8) 20(8R) 5(8R) 18(8R) 7(8R) -(8) -(8)
  3303. |
  3304. |VCC              24
  3305. |VCCO             6 19
  3306. |VEE              12
  3307.  
  3308. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 67
  3309.  
  3310.  
  3311. 13.  EXCLUSIVE-OR DEVICES
  3312.  
  3313.     Devices in this group have hardware exclusive-or gates at the final stage,
  3314. just before the output cells.  If the Boolean equation has either an
  3315. exclusive-or operation (##) or an exclusive-nor operation (##') at the highest
  3316. level, then the hardware exclusive-or gate will be applied to it.  If the
  3317. Boolean equation has neither exclusive-or nor exclusive-nor at the highest
  3318. level, then the exclusive-or gate will be used to select the polarity for the
  3319. signal.  Thus, the exclusive-or devices can be handy even if no exclusive-or
  3320. operations appear in the source code.
  3321.  
  3322.     For example, the logical sum of nine terms would normally overflow the
  3323. available product terms in smaller devices.  However, the equation
  3324.  
  3325.     Q = A # B # C # D # E # F # G # H # I
  3326.  
  3327. can be rephrased as
  3328.  
  3329.     Q = (A # B # C # D # E # F # G # H # I)' ## 1
  3330.  
  3331. which can then be written
  3332.  
  3333.     Q = (A' & B' & C' & D' & E' & F' & G' & H' & I') ## 1
  3334.  
  3335. which requires only one product term instead of nine.  The PLD compiler will
  3336. carry out the algebra automatically if the original form does not fit.
  3337.  
  3338.  
  3339.  
  3340. |Type             PAL20X4
  3341. |Activity         0
  3342. |
  3343. |Group 1 (in)     2 3 4 5 6 7 8 9 10 11
  3344. |Group 2 (out)    20 19 18 17
  3345. |Group 3 (io)     23 22 21 16 15 14
  3346. |Group 4 (clock)  1
  3347. |Group 5 (enable) 13
  3348. |
  3349. |Columns          2 23 3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15 11 14
  3350. |
  3351. |Rows             23(1t3) 22(1t3) 21(1t3)             \
  3352. |                 20(2x2R) 19(2x2R) 18(2x2R) 17(2x2R) \
  3353. |                 16(1t3) 15(1t3) 14(1t3)
  3354.  
  3355. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 68
  3356.  
  3357.  
  3358. |Type             PAL20X8
  3359. |Activity         0
  3360. |
  3361. |Group 1 (in)     2 3 4 5 6 7 8 9 10 11
  3362. |Group 2 (out)    22 21 20 19 18 17 16 15
  3363. |Group 3 (io)     23 14
  3364. |Group 4 (clock)  1
  3365. |Group 5 (enable) 13
  3366. |
  3367. |Columns          2 23 3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15 11 14
  3368. |
  3369. |Rows             23(1t3)  22(2x2R) 21(2x2R) 20(2x2R) 19(2x2R) \
  3370. |                 18(2x2R) 17(2x2R) 16(2x2R) 15(2x2R) 14(1t3)
  3371.  
  3372.  
  3373. |Type             PAL20X10
  3374. |Activity         0
  3375. |
  3376. |Group 1 (in)     2 3 4 5 6 7 8 9 10 11
  3377. |Group 2 (out)    23 22 21 20 19 18 17 16 15 14
  3378. |Group 4 (clock)  1
  3379. |Group 5 (enable) 13
  3380. |
  3381. |Columns          2 23 3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15 11 14
  3382. |Rows             23(2x2R) 22(2x2R) 21(2x2R) 20(2x2R) 19(2x2R) \
  3383. |                 18(2x2R) 17(2x2R) 16(2x2R) 15(2x2R) 14(2x2R)
  3384.  
  3385.  
  3386.     Following is a specialized arithmetic device.  Outputs from the four
  3387. exclusive-or pins (17, 16, 15, and 14) are normal, but feedback signals from
  3388. those pins are combined by hard-wired combinational logic with inputs from pins
  3389. 4, 5, 6, and 7, respectively.  This device must be used with great care, since
  3390. additional logic beyond that shown in the source code is added by the hardware.
  3391.  
  3392. |Type             PAL16X4
  3393. |Activity         0
  3394. |
  3395. |Group 1 (in)     2 3 4 5 6 7 8 9
  3396. |Group 2 (out)    17 16 15 14
  3397. |Group 3 (io)     19 18 13 12
  3398. |Group 4 (clock)  1
  3399. |Group 5 (enable) 11
  3400. |
  3401. |Columns          2 19 3 18 4 17 5 16 6 15 7 14 8 13 9 12
  3402. |Rows             19(1t7) 18(1t7)                     \
  3403. |                 17(4x4R) 16(4x4R) 15(4x4R) 14(4x4R) \
  3404. |                 13(1t7) 12(1t7)
  3405.  
  3406. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 69
  3407.  
  3408.  
  3409. 14.  GENERIC DEVICES
  3410.  
  3411.     The generic devices are included for compatibility with earlier versions of
  3412. the compiler.  They are large devices with logic arrays of over 256,000 fuses
  3413. arranged in a symmetric fashion.  The devices are intended for testing
  3414. equations before an actual device is assigned.  In recent versions of the
  3415. compiler, the generic devices are largely replaced by device-free design, as
  3416. described in the PLD reference guide.
  3417.  
  3418. |Type               GEN40RP40
  3419. |Pins               48
  3420. |
  3421. |Group 3 (io)       1 2 3 4 5 6 7 8 9 10 \
  3422. |                   11 12 13 14 15 16 17 18 19 20 \
  3423. |                   21 22 23 24 25 26 27 28 29 30 \
  3424. |                   31 32 33 34 35 36 37 38 39 40
  3425. |
  3426. |Group 4 (clock)    41
  3427. |
  3428. |GND                45 44 43
  3429. |VCC                48 47 46
  3430. |
  3431. |Columns            1 2 3 4 5 6 7 8 9 10 \
  3432. |                   11 12 13 14 15 16 17 18 19 20 \
  3433. |                   21 22 23 24 25 26 27 28 29 30 \
  3434. |                   31 32 33 34 35 36 37 38 39 40
  3435. |
  3436. |Rows[256000]       1(1t79R)  2(1t79R)  3(1t79R)  4(1t79R)  5(1t79R) \
  3437. |                   6(1t79R)  7(1t79R)  8(1t79R)  9(1t79R) 10(1t79R) \
  3438. |                  11(1t79R) 12(1t79R) 13(1t79R) 14(1t79R) 15(1t79R) \
  3439. |                  16(1t79R) 17(1t79R) 18(1t79R) 19(1t79R) 20(1t79R) \
  3440. |                  21(1t79R) 22(1t79R) 23(1t79R) 24(1t79R) 25(1t79R) \
  3441. |                  26(1t79R) 27(1t79R) 28(1t79R) 29(1t79R) 30(1t79R) \
  3442. |                  31(1t79R) 32(1t79R) 33(1t79R) 34(1t79R) 35(1t79R) \
  3443. |                  36(1t79R) 37(1t79R) 38(1t79R) 39(1t79R) 40(1t79R)
  3444. |
  3445. |Register bypass[256040]    1 2 3 4 5 6 7 8 9 10 \
  3446. |                           11 12 13 14 15 16 17 18 19 20 \
  3447. |                           21 22 23 24 25 26 27 28 29 30 \
  3448. |                           31 32 33 34 35 36 37 38 39 40
  3449.  
  3450. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 70
  3451.  
  3452.  
  3453. |Type               GEN20RP20
  3454. |Pins               24
  3455. |
  3456. |Group 3 (io)       1 2 3 4 5 6 7 8 9 10 \
  3457. |                   11 12 13 14 15 16 17 18 19 20
  3458. |
  3459. |Group 4 (clock)    21
  3460. |
  3461. |GND                22
  3462. |VCC                24
  3463. |
  3464. |Columns            1 2 3 4 5 6 7 8 9 10 \
  3465. |                   11 12 13 14 15 16 17 18 19 20
  3466. |
  3467. |Rows[256000]       1(1t319R)  2(1t319R)  3(1t319R)  4(1t319R)  5(1t319R) \
  3468. |                   6(1t319R)  7(1t319R)  8(1t319R)  9(1t319R) 10(1t319R) \
  3469. |                  11(1t319R) 12(1t319R) 13(1t319R) 14(1t319R) 15(1t319R) \
  3470. |                  16(1t319R) 17(1t319R) 18(1t319R) 19(1t319R) 20(1t319R)
  3471. |
  3472. |Register bypass[256040]    1 2 3 4 5 6 7 8 9 10 \
  3473. |                           11 12 13 14 15 16 17 18 19 20
  3474.  
  3475. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 71
  3476.  
  3477.  
  3478. 15.  DEMONSTRATION DEVICE
  3479.  
  3480.     The OrCAD PLD demonstration package uses a device called PLD21D10, which is
  3481. a pseudo-device for demonstration and learning.  It is included here for
  3482. completeness.  The table represents a 24-pin chip with eleven input pins down
  3483. the left-hand side, ten input/output pins down the right-hand side, power,
  3484. ground, and a clock.  Internally each input/output pin has 16 product terms
  3485. available, one dedicated to tri-state enable, the others available for normal
  3486. logic.  The input/output pins can be programmed to be either active-high or
  3487. active-low as well as combinational or registered.  Registers are set low on
  3488. power-up.
  3489.  
  3490.     The device has 6720 fuses in the main array, arranged in 10 sets of 16x42
  3491. and numbered 0 to 6719.  Ten additional fuses numbered 6720 to 6729 determine
  3492. the output polarity, and ten more numbered 6730 to 6739 determine the type of
  3493. output [combinational or registered].
  3494.  
  3495. |Type             PLD21D10
  3496. |Pins             24
  3497. |
  3498. |Initialization   L
  3499. |
  3500. |Group 1 (in)     1 2 3 4 5 6 7 8 9 10 11
  3501. |Group 3 (io)     23 22 21 20 19 18 17 16 15 14
  3502. |Group 4 (clock)  13
  3503. |
  3504. |VCC              24
  3505. |GND              12
  3506. |
  3507. |Columns          1 2 3 4 5 6 7 8 9 10 11 23 22 21 20 19 18 17 16 15 14
  3508. |
  3509. |Rows[6720]       23(1t15R) 22(1t15R) 21(1t15R) 20(1t15R) 19(1t15R) \
  3510. |                 18(1t15R) 17(1t15R) 16(1t15R) 15(1t15R) 14(1t15R)
  3511. |
  3512. |Register bypass[6730]    23 22 21 20 19 18 17 16 15 14
  3513.  
  3514. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 72
  3515.  
  3516.  
  3517. 16.  PROGRAMMABLE READ ONLY MEMORIES
  3518.  
  3519.     Following is a collection of PROM tables in various sizes.  For purposes of
  3520. the PLD compiler, the precise pin-out of a PROM is unimportant, since the .HEX
  3521. file is organized by address, not by pin.  Therefore, the tables here allow any
  3522. PROM from 32 by 4 to 16K by 8 to be processed by the PLD compiler, regardless
  3523. of its pinout.
  3524.  
  3525.     Widths of the PROMs represented are 4, 8, and 16 bits, allowing up to
  3526. sixteen output signals.  If two separate 8-bit PROMS are to be used to carry
  3527. the sixteen signals, then a program to break the file into even and odd bytes
  3528. is useful.  Such programs are available with many device programming machines.
  3529.  
  3530.     In all the PROMs here, the input pins are labelled `in' and the output pins
  3531. are labelled `out'.  The PLD compiler accepts the keyword "Registers" with any
  3532. signal in a PROM, and takes the keyword as an indication that the actual PROM
  3533. either contains internal registers or that a register will be connected
  3534. externally to the outputs of the PROM.  The keyword "Registers" makes no
  3535. difference in the .HEX file, but it does insure that the correct logic is
  3536. written to the .VEC file for testing.
  3537.  
  3538.     As as example, consider a map to generate logic for a binary to sine wave
  3539. converter, say for a digital power inverter.  A counter external to the logic
  3540. will generate step numbers that run 0, 1, 2, ..., 254, 255, 0.  Given the step
  3541. number n, the logic will consider it to represent an angle of (n/256)*360
  3542. degrees, and will compute the trigonometric sin of the angle (see the PLD
  3543. reference guide for a description of the function isin).  The result will be
  3544. presented in 8 bits of precision according to the following twos-complement
  3545. encoding.
  3546.  
  3547.      Binary     Decimal    Rational   Decimal
  3548.      Value       Value     Fraction   Fraction
  3549.  
  3550.     01111111b     127      127/127    1.0
  3551.     01111110b     126      126/127     .99212598...
  3552.         :           :         :        .
  3553.     00000001b       1        1/127     .00787401...
  3554.     00000000b       0         0        .0
  3555.     11111111b      -1       -1/127    -.00787401...
  3556.         :           :         :       -.
  3557.     10000010b    -126     -126/127    -.99212598...
  3558.     10000001b    -127     -127/127   -1.0
  3559.  
  3560. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 73
  3561.  
  3562.  
  3563.     Because this logic has eight input bits and eight output bits, it requires
  3564. at least a 256 x 8 PROM (the logic is too complex to fit in a PAL).  The input
  3565. signals become address lines, with high-order bit first.  The output signals
  3566. become data lines, also with high-order bit first.  The following map will do.
  3567.  
  3568.     |PROM256B8   in:STEP[7~0], out:SIN[7~0]
  3569.     |
  3570.     | Map:  STEP[7~0] -> SIN[7~0]  { n -> isin(n, 256, 127) }
  3571.     |
  3572.     | Vectors:
  3573.     | { Display "127 * sin(", (STEP[7~0])d, "/256) = ", (SIN[7~0])d
  3574.     |   Test STEP[7~0]
  3575.     |   End }
  3576.  
  3577.  
  3578.     The logic tester VECTORS can process logic in a PROM, but there is no
  3579. provision in the standard hexadecimal format for the test vectors themselves.
  3580. Therefore, with PROMs, VECTORS is used only as a logic simulator.
  3581.  
  3582.  
  3583. 32 by 4 PROM
  3584.  
  3585. |Type             PROM32B4
  3586. |
  3587. |Group 1 (in)     2 3 4 5 6
  3588. |Group 2 (out)    23 22 21 20
  3589. |Group 4 (clock)  1
  3590. |
  3591. |Address          2 3 4 5 6
  3592. |Data             23 22 21 20
  3593.  
  3594.  
  3595. 32 by 8 PROM
  3596.  
  3597. |Type             PROM32B8
  3598. |
  3599. |Group 1 (in)     2 3 4 5 6
  3600. |Group 2 (out)    23 22 21 20 19 18 17 16
  3601. |Group 4 (clock)  1
  3602. |
  3603. |Address          2 3 4 5 6
  3604. |Data             23 22 21 20 19 18 17 16
  3605.  
  3606.  
  3607. 32 by 16 PROM
  3608.  
  3609. |Type             PROM32B16
  3610. |
  3611. |Group 1 (in)     2 3 4 5 6
  3612. |Group 2 (out)    23 22 21 20 19 18 17 16 15 14 13 11 10 9 8 7
  3613. |Group 4 (clock)  1
  3614. |
  3615. |Address          2 3 4 5 6
  3616. |Data             23 22 21 20 19 18 17 16 15 14 13 11 10 9 8 7
  3617.  
  3618. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 74
  3619.  
  3620.  
  3621. 64 by 4 PROM
  3622.  
  3623. |Type             PROM64B4
  3624. |
  3625. |Group 1 (in)     2 3 4 5 6 7
  3626. |Group 2 (out)    23 22 21 20
  3627. |Group 4 (clock)  1
  3628. |
  3629. |Address          2 3 4 5 6 7
  3630. |Data             23 22 21 20
  3631.  
  3632.  
  3633. 64 by 8 PROM
  3634.  
  3635. |Type             PROM64B8
  3636. |
  3637. |Group 1 (in)     2 3 4 5 6 7
  3638. |Group 2 (out)    23 22 21 20 19 18 17 16
  3639. |Group 4 (clock)  1
  3640. |
  3641. |Address          2 3 4 5 6 7
  3642. |Data             23 22 21 20 19 18 17 16
  3643.  
  3644.  
  3645. 64 by 16 PROM
  3646.  
  3647. |Type             PROM64B16
  3648. |
  3649. |Group 1 (in)     2 3 4 5 6 7
  3650. |Group 2 (out)    27 26 25 24 23 22 21 20 19 18 17 16 15 13 12 11
  3651. |Group 4 (clock)  1
  3652. |
  3653. |Address          2 3 4 5 6 7
  3654. |Data             27 26 25 24 23 22 21 20 19 18 17 16 15 13 12 11
  3655.  
  3656.  
  3657. 128 by 4 PROM
  3658.  
  3659. |Type             PROM128B4
  3660. |
  3661. |Group 1 (in)     2 3 4 5 6 7 8
  3662. |Group 2 (out)    23 22 21 20
  3663. |Group 4 (clock)  1
  3664. |
  3665. |Address          2 3 4 5 6 7 8
  3666. |Data             23 22 21 20
  3667.  
  3668. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 75
  3669.  
  3670.  
  3671. 128 by 8 PROM
  3672.  
  3673. |Type             PROM128B8
  3674. |
  3675. |Group 1 (in)     2 3 4 5 6 7 8
  3676. |Group 2 (out)    23 22 21 20 19 18 17 16
  3677. |Group 4 (clock)  1
  3678. |
  3679. |Address          2 3 4 5 6 7 8
  3680. |Data             23 22 21 20 19 18 17 16
  3681.  
  3682.  
  3683. 128 by 16 PROM
  3684.  
  3685. |Type             PROM128B16
  3686. |
  3687. |Group 1 (in)     2 3 4 5 6 7 8
  3688. |Group 2 (out)    27 26 25 24 23 22 21 20 19 18 17 16 15 13 12 11
  3689. |Group 4 (clock)  1
  3690. |
  3691. |Address          2 3 4 5 6 7 8
  3692. |Data             27 26 25 24 23 22 21 20 19 18 17 16 15 13 12 11
  3693.  
  3694.  
  3695. 256 by 4 PROM
  3696.  
  3697. |Type             PROM256B4
  3698. |
  3699. |Group 1 (in)     2 3 4 5 6 7 8 9
  3700. |Group 2 (out)    23 22 21 20
  3701. |Group 4 (clock)  1
  3702. |
  3703. |Address          2 3 4 5 6 7 8 9
  3704. |Data             23 22 21 20
  3705.  
  3706.  
  3707. 256 by 8 PROM
  3708.  
  3709. |Type             PROM256B8
  3710. |
  3711. |Group 1 (in)     2 3 4 5 6 7 8 9
  3712. |Group 2 (out)    23 22 21 20 19 18 17 16
  3713. |Group 4 (clock)  1
  3714. |
  3715. |Address          2 3 4 5 6 7 8 9
  3716. |Data             23 22 21 20 19 18 17 16
  3717.  
  3718. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 76
  3719.  
  3720.  
  3721. 256 by 16 PROM
  3722.  
  3723. |Type             PROM256B16
  3724. |
  3725. |Group 1 (in)     2 3 4 5 6 7 8 9
  3726. |Group 2 (out)    27 26 25 24 23 22 21 20 19 18 17 16 15 13 12 11
  3727. |Group 4 (clock)  1
  3728. |
  3729. |Address          2 3 4 5 6 7 8 9
  3730. |Data             27 26 25 24 23 22 21 20 19 18 17 16 15 13 12 11
  3731.  
  3732.  
  3733. 512 by 4 PROM
  3734.  
  3735. |Type             PROM512B4
  3736. |
  3737. |Group 1 (in)     2 3 4 5 6 7 8 9 10
  3738. |Group 2 (out)    23 22 21 20
  3739. |Group 4 (clock)  1
  3740. |
  3741. |Address          2 3 4 5 6 7 8 9 10
  3742. |Data             23 22 21 20
  3743.  
  3744.  
  3745. 512 by 8 PROM
  3746.  
  3747. |Type             PROM512B8
  3748. |
  3749. |Group 1 (in)     2 3 4 5 6 7 8 9 10
  3750. |Group 2 (out)    23 22 21 20 19 18 17 16
  3751. |Group 4 (clock)  1
  3752. |
  3753. |Address          2 3 4 5 6 7 8 9 10
  3754. |Data             23 22 21 20 19 18 17 16
  3755.  
  3756.  
  3757. 512 by 16 PROM
  3758.  
  3759. |Type             PROM512B16
  3760. |
  3761. |Group 1 (in)     2 3 4 5 6 7 8 9 10
  3762. |Group 2 (out)    27 26 25 24 23 22 21 20 19 18 17 16 15 13 12 11
  3763. |Group 4 (clock)  1
  3764. |
  3765. |Address          2 3 4 5 6 7 8 9 10
  3766. |Data             27 26 25 24 23 22 21 20 19 18 17 16 15 13 12 11
  3767.  
  3768. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 77
  3769.  
  3770.  
  3771. 1K by 4 PROM
  3772.  
  3773. |Type             PROM1KB4
  3774. |
  3775. |Group 1 (in)     2 3 4 5 6 7 8 9 10 11
  3776. |Group 2 (out)    23 22 21 20
  3777. |Group 4 (clock)  1
  3778. |
  3779. |Address          2 3 4 5 6 7 8 9 10 11
  3780. |Data             23 22 21 20
  3781.  
  3782.  
  3783. 1K by 8 PROM
  3784.  
  3785. |Type             PROM1KB8
  3786. |
  3787. |Group 1 (in)     2 3 4 5 6 7 8 9 10 11
  3788. |Group 2 (out)    23 22 21 20 19 18 17 16
  3789. |Group 4 (clock)  1
  3790. |
  3791. |Address          2 3 4 5 6 7 8 9 10 11
  3792. |Data             23 22 21 20 19 18 17 16
  3793.  
  3794.  
  3795. 1K by 16 PROM
  3796.  
  3797. |Type             PROM1KB16
  3798. |
  3799. |Group 1 (in)     2 3 4 5 6 7 8 9 10 11
  3800. |Group 2 (out)    31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 15
  3801. |Group 4 (clock)  1
  3802. |
  3803. |Address          2 3 4 5 6 7 8 9 10 11
  3804. |Data             31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 15
  3805.  
  3806.  
  3807. 2K by 4 PROM
  3808.  
  3809. |Type             PROM2KB4
  3810. |
  3811. |Group 1 (in)     2 3 4 5 6 7 8 9 10 11 13
  3812. |Group 2 (out)    23 22 21 20
  3813. |Group 4 (clock)  1
  3814. |
  3815. |Address          2 3 4 5 6 7 8 9 10 11 13
  3816. |Data             23 22 21 20
  3817.  
  3818. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 78
  3819.  
  3820.  
  3821. 2K by 8 PROM
  3822.  
  3823. |Type             PROM2KB8
  3824. |
  3825. |Group 1 (in)     2 3 4 5 6 7 8 9 10 11 13
  3826. |Group 2 (out)    23 22 21 20 19 18 17 16
  3827. |Group 4 (clock)  1
  3828. |
  3829. |Address          2 3 4 5 6 7 8 9 10 11 13
  3830. |Data             23 22 21 20 19 18 17 16
  3831.  
  3832.  
  3833. 2K by 16 PROM
  3834.  
  3835. |Type             PROM2KB16
  3836. |
  3837. |Group 1 (in)     2 3 4 5 6 7 8 9 10 11 12
  3838. |Group 2 (out)    31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 15
  3839. |Group 4 (clock)  1
  3840. |
  3841. |Address          2 3 4 5 6 7 8 9 10 11 12
  3842. |Data             31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 15
  3843.  
  3844.  
  3845. 4K by 4 PROM
  3846.  
  3847. |Type             PROM4KB4
  3848. |
  3849. |Group 1 (in)     2 3 4 5 6 7 8 9 10 11 13 14
  3850. |Group 2 (out)    23 22 21 20
  3851. |Group 4 (clock)  1
  3852. |
  3853. |Address          2 3 4 5 6 7 8 9 10 11 13 14
  3854. |Data             23 22 21 20
  3855.  
  3856.  
  3857. 4K by 8 PROM
  3858.  
  3859. |Type             PROM4KB8
  3860. |
  3861. |Group 1 (in)     2 3 4 5 6 7 8 9 10 11 13 14
  3862. |Group 2 (out)    23 22 21 20 19 18 17 16
  3863. |Group 4 (clock)  1
  3864. |
  3865. |Address          2 3 4 5 6 7 8 9 10 11 13 14
  3866. |Data             23 22 21 20 19 18 17 16
  3867.  
  3868. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 79
  3869.  
  3870.  
  3871. 4K by 16 PROM
  3872.  
  3873. |Type             PROM4KB16
  3874. |
  3875. |Group 1 (in)     2 3 4 5 6 7 8 9 10 11 12 13
  3876. |Group 2 (out)    31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 15
  3877. |Group 4 (clock)  1
  3878. |
  3879. |Address          2 3 4 5 6 7 8 9 10 11 12 13
  3880. |Data             31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 15
  3881.  
  3882.  
  3883. 8K by 4 PROM
  3884.  
  3885. |Type             PROM8KB4
  3886. |
  3887. |Group 1 (in)     2 3 4 5 6 7 8 9 10 11 13 14 15
  3888. |Group 2 (out)    23 22 21 20
  3889. |Group 4 (clock)  1
  3890. |
  3891. |Address          2 3 4 5 6 7 8 9 10 11 13 14 15
  3892. |Data             23 22 21 20
  3893.  
  3894.  
  3895. 8K by 8 PROM
  3896.  
  3897. |Type             PROM8KB8
  3898. |
  3899. |Group 1 (in)     2 3 4 5 6 7 8 9 10 11 13 14 15
  3900. |Group 2 (out)    23 22 21 20 19 18 17 16
  3901. |Group 4 (clock)  1
  3902. |
  3903. |Address          2 3 4 5 6 7 8 9 10 11 13 14 15
  3904. |Data             23 22 21 20 19 18 17 16
  3905.  
  3906.  
  3907. 8K by 16 PROM
  3908.  
  3909. |Type             PROM8KB16
  3910. |
  3911. |Group 1 (in)     2 3 4 5 6 7 8 9 10 11 12 13 14
  3912. |Group 2 (out)    31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 15
  3913. |Group 4 (clock)  1
  3914. |
  3915. |Address          2 3 4 5 6 7 8 9 10 11 12 13 14
  3916. |Data             31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 15
  3917.  
  3918. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 80
  3919.  
  3920.  
  3921. 16K by 4 PROM
  3922.  
  3923. |Type             PROM16KB4
  3924. |
  3925. |Group 1 (in)     2 3 4 5 6 7 8 9 10 11 12 13 15 16
  3926. |Group 2 (out)    27 26 25 24
  3927. |Group 4 (clock)  1
  3928. |
  3929. |Address          2 3 4 5 6 7 8 9 10 11 12 13 15 16
  3930. |Data             27 26 25 24
  3931.  
  3932.  
  3933. 16K by 8 PROM
  3934.  
  3935. |Type             PROM16KB8
  3936. |
  3937. |Group 1 (in)     2 3 4 5 6 7 8 9 10 11 12 13 15 16
  3938. |Group 2 (out)    27 26 25 24 23 22 21 20
  3939. |Group 4 (clock)  1
  3940. |
  3941. |Address          2 3 4 5 6 7 8 9 10 11 12 13 15 16
  3942. |Data             27 26 25 24 23 22 21 20
  3943.  
  3944. PROGRAMMABLE DEVICE REFERENCE TABLES                                    Page 81
  3945.  
  3946.  
  3947. 17.  INDEX TO DEVICE TYPES
  3948.  
  3949.  
  3950.     Within the text, related devices are grouped together.  Here the devices
  3951. are indexed alphabetically.  If the alphabetical order seems strange in places,
  3952. it is because the device types are alphabetized strictly from left to right.
  3953. Therefore, the word PAL12H10 precedes the word PAL12H6, because the digit `1'
  3954. alphabetically precedes the digit `6'.
  3955.  
  3956.  
  3957. EP1800c, 60         PAL14H4, 10         PAL18P8, 6           PAL24R4, 26
  3958. EP1810c, 61         PAL14H8, 20         PAL18U8, 28          PAL24R6, 25
  3959. EP1830c, 62         PAL14L4, 10         PAL18U8Z, 28         PAL24R8, 25
  3960. EP310, 49           PAL14L8, 19         PAL19L8, 17          PAL6L16, 23
  3961. EP320, 50           PAL14P4, 10         PAL19R4, 17          PAL8L14, 23
  3962. EP330, 50           PAL14P8, 20         PAL19R6, 18          PLD21D10, 71
  3963. EP600, 52           PAL16C1, 11         PAL19R8, 18          PROM1KB16, 77
  3964. EP600c, 53          PAL16HD8, 6         PAL20C1, 21          PROM1KB4, 77
  3965. EP610, 53           PAL16H2, 11         PAL20H10, 22         PROM1KB8, 77
  3966. EP610c, 54          PAL16H6, 20         PAL20H2, 22          PROM128B16, 75
  3967. EP630, 54           PAL16H8, 5          PAL20H8, 12          PROM128B4, 74
  3968. EP630c, 55          PAL16LD8, 6         PAL20L10, 22         PROM128B8, 75
  3969. EP900, 55           PAL16L2, 11         PAL20L2, 21          PROM16KB4, 80
  3970. EP900c, 56          PAL16L6, 20         PAL20L8, 12          PROM16KB8, 80
  3971. EP910, 56           PAL16L8, 5          PAL20P10, 22         PROM2KB16, 78
  3972. EP910c, 57          PAL16N8, 11         PAL20P2, 22          PROM2KB4, 77
  3973. GAL16V8, 41         PAL16P2, 11         PAL20P8, 12          PROM2KB8, 78
  3974. GAL16V8A, 42        PAL16P4N, 64        PAL20RA10, 47        PROM256B16, 76
  3975. GAL16Z8, 43         PAL16P6, 20         PAL20RP10, 15        PROM256B4, 75
  3976. GAL16Z8A, 44        PAL16P8, 5          PAL20RP4, 14         PROM256B8, 75
  3977. GAL18V10, 44        PAL16P8N, 64        PAL20RP4I, 15        PROM32B16, 73
  3978. GAL20V8, 42         PAL16RA8, 47        PAL20RP6, 14         PROM32B4, 73
  3979. GAL20V8A, 43        PAL16RC4, 65        PAL20RP6I, 15        PROM32B8, 73
  3980. GAL26CV12, 45       PAL16RC8, 65        PAL20RP8, 14         PROM4KB16, 79
  3981. GEN20RP20, 70       PAL16RD4, 65        PAL20RP8I, 15        PROM4KB4, 78
  3982. GEN40RP40, 69       PAL16RD8, 66        PAL20R4, 13          PROM4KB8, 78
  3983. MACH110, 63         PAL16RM4, 66        PAL20R6, 13          PROM512B16, 76
  3984. PAL10H8, 9          PAL16RP4, 7         PAL20R8, 13          PROM512B4, 76
  3985. PAL10L8, 9          PAL16RP6, 7         PAL20X10, 68         PROM512B8, 76
  3986. PAL10P8, 9          PAL16RP8, 8         PAL20X4, 67          PROM64B16, 74
  3987. PAL12C4, 64         PAL16R4, 6          PAL20X8, 68          PROM64B4, 74
  3988. PAL12H10, 19        PAL16R6, 7          PAL22P10, 16         PROM64B8, 74
  3989. PAL12H6, 10         PAL16R8, 7          PAL22V10, 30         PROM8KB16, 79
  3990. PAL12L10, 19        PAL16X4, 68         PAL22V10X, 30        PROM8KB4, 79
  3991. PAL12L6, 9          PAL18H4, 21         PAL22V10Z, 31        PROM8KB8, 79
  3992. PAL12P10, 19        PAL18L4, 21         PAL24L10, 24
  3993. PAL12P6, 10         PAL18P4, 21         PAL24R10, 24
  3994.  
  3995.