home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 1996 September
/
pcwk_09_96.iso
/
demo
/
elmark
/
cupl
/
manual
/
sb6b.txt
< prev
next >
Wrap
Text File
|
1992-01-17
|
33KB
|
796 lines
.C1. DEVICE USAGE NOTES B
This appendix lists the programmable logic devices (PLDs) that
require special attention when being used with CUPL and CSIM. Many
of these devices are not available in the STARTER KIT but they are
available in the the full package.
Device Mnemonic: CY7C330
See CY7C330 Application Notes for a detailed explanation of this
device and its features.
Device Mnemonic: EP300, P18CV8
1. The registered, internal combinatorial and I/O feedback
paths can be selected by using the .DFB, .INT and
.i.Extensions .IO extensions respectively. If the feedback
type is the same as the output (registered feedback for
registered output), a feedback extension ".IO" is required.
Device Mnemonic: EP312, EP324
1. These devices support allocation of P-terms between adjacent
macrocells. This means, unused P-terms may be borrowed by a
macrocell from each of its adjacent macrocells. CUPL
automatically performs this borrowing of terms whenever a
design requires more than eight terms per macrocell if the
adjacent macrocells use less than five P-terms.
2. This device has T registers and the polarity is placed
before the register. When the pin is defined as active low,
this has the effect of toggling the register when the signal
approaching the register is a binary 0 because the signal is
inverted before it reaches the register. This situation
will cause the design to behave differently rather than just
exhibiting a change in the polarity of the output signals.
3. The TURBO bit is supported. To set the TURBO bit, use the
FUSE statement in the .PLD file for the 312 and 324
respectively as follows:
FUSE(13712, 1);
FUSE(47492 , 1);
Device Mnemonic: EP320
1. Miser bits:
2912-2913
Turbo bits:
2914-2915
Device Mnemonic: EP600, EP900
1. Support for registered mode of the macrocell consists only
of D-type and T-type flip-flops. J-K and S-R flip-flops are
not supported because they don't physically exist in the
device. They must be emulated with exclusive-or equations.
2. The D-type registered, T-type registered, and I/O feedback
paths can be selected by using the .DFB, .TFB and .IO
extensions respectively. If the feedback type is the same
as the output (D-type registered feedback for D-type
registered output), then a feedback extension is not
required.
3. EP600/610 Turbo bits:
6480-6481
EP900/910 Turbo bits:
17400-17401
Device Mnemonic: EP1200/1210
1. Turbo bit: 15145
Device Mnemonic: EP1800/1810
1. Miser bits:
42480-42487
Turbo bits:
42488-42489
2. Please refer to the Application note on the EP1800.
Device Mnemonic: F155,F157, F159, F179
1. Registers may be used as either D-type or JK-type, but not
both (no dynamic conversion).
2. The output enable buffer for all registers is always
controlled by pin 11 (pin 13 for F179).
3. The load control term for loading registers from the output
pins) is not supported.
4. The product term that drives the register control buffer is
fixed and may not be accessed to drive the complement array.
Device Mnemonic: F501,F502
1. Both f501 and f502 contain NAND array architecture. The
NAND gates must be defined as complement array nodes.
2. Although there is only one product term for each output pin
in f501 and f502, multiple product term output can be
implemented using DeMorgan algorithm and NAND node. For
example, to implement the following logical function in
f502:
X = (a & b)
# (c & d)
# (e & f);
Define as follows:
Pin 19 = X;
Pinnode 81 = !X1;
Pinnode 82 = !X2;
Pinnode 83 = !X3;
X = !(!X1 & !X2 & !X3);
X1.ca = a & b;
X2.ca = c & d;
X3.ca = e & f;
Device Mnemonic: F506
1. The registered clock polarity is set by writing one .CKMUX
expression for all registers used in the design. By default,
the clock is treated as positive-edge triggered.
Device Mnemonic: F507
1. The register and counter clock polarity are set by writing
one .CKMUX expression for all registers and counter inputs
used in the design. By default, the clock is treated as
positive-edge triggered.
2. The built-in counter input nodes are defined using the NODE
or PINNODE statements, and the .CNT extension. The counter
clear and hold controls are defined using the NODE or
PINNODE statements and writing either combinatorial or S-R
registered expressions.
3. CSIM generates the counter inputs automatically, based on
the counter control logic.
Device Mnemonic: F16V8, F18V8Z, F20V8
1. These devices emulate two different PAL architectures
with their flexible output macro configuration . If the
F16V8, F18V8Z or F20V8 device mnemonic is used, the device
parameters for the proper sub-mode are automatically
selected according to the following:
A. Registered Mode Specifying any output pin as
registered invokes the registered mode (D).
Specifying any output enable term for a
nonregistered pin invokes the registered mode (D).
Mnemonic:
F16V8D
F18V8ZD
F20V8D
B. Small Mode If neither of the above conditions are
met, the device type defaults to the small mode
(S).
Mnemonic:
F16V8S
F18V8S
F20V8S
2. Either the automatic selection mechanism or the device
mnemonic for the specific sub-mode may be used.
Device Mnemonic: G16V8,G20V8
1. These devices emulate three different PAL architectures with
their flexible output macro configuration . If the G16V8 or
G20V8 device mnemonic is used, the device parameters for the
proper sub-mode are automatically selected according to the
following:
A. Medium Synchronous (Registered) Mode
This mode is automatically chosen when the PLD source
file has registered output. In the medium synchronous
mode, specifying an output enable term for a registered
output pin is not flagged as an error by the compiler or
simulator. In this mode, the output enable control for
registered pins is common to pin 11 (GAL16V8) or pin 13
(GAL20V8).
Mnemonic: G16V8MS
Input only Output only Input/Output
2, 3, 4, 12, 13, 14,
5, 6, 7, 15, 16, 17,
8, 9 18, 19
Pin 1 = common clock
Pin 11 = common output enable
Mnemonic: G20V8MS
Input only Output only Input/Output
2, 3, 4, 15, 16, 17,
5, 6, 7, 18, 19, 20,
8, 9, 10, 21, 22
11, 14, 23
Pin 1 = common clock
Pin 13 = common output enable
B. Medium Asynchronous (Complex) Mode
This mode is automatically chosen when the PLD
source file has an output enable term for
a non-registere d pin and/or.
Mnemonic: G16V8MA
Input only Output only Input/Output
1, 2, 3, 12, 19 13, 14, 15,
4, 5, 6, 16, 17, 18
7, 8, 9,11
Mnemonic: G20V8MA
Input only Output only Input/Output
1, 2, 3, 15, 22 16, 17, 18,
4, 5, 6, 19, 20, 21
7, 8, 9,
10, 11, 13,
14, 23
C. Small (Simple) Mode (Default)
If none of the above are met, the device type defaults
to the small mode. In this mode, the Input/Output pins
are configured as either Input Only or Output only (that
is, no feedback can occur) .
Mnemonic: G16V8S
Input only Output only Input/Output
1, 2, 3, 15, 16 12, 13, 14,
4, 5, 6, 17, 18, 19
7, 8, 9,11
Mnemonic: G20V8S
Input only Output only Input/Output
1, 2, 3, 18, 19 15, 16, 17,
4, 5, 6, 20, 21, 22
7, 8, 9,
10, 11, 13,
14, 23
2. Either the automatic selection mechanism or the device
mnemonic for the specific sub-mode desired can be used.
G20XV10 DEVICE NOTE
THE G20XV10 can emulate the following devices in the corresponding
modes:
Device G20XV10
Mode Mnemonic
P12L10 Input g20xv10i
P20L10 Input g20xv10i
P20X10 Feedback g20xv10f
P20X8 Feedback g20xv10f
P20x4 Feedback g20xv10f
Each output can be configured as registered or combinatorial with
either 3 pterms ORed together or 4 pterms XORed together as input.
The following table shows how to obtain the different configurations
of the Output Logic Macrocell (OLMC):
OLMC Configuration Implementation in Design
------------------ ------------------------
Registered output
XOR input, COE Default
OR input, OE pterm Use OE extension
Combinatorial output
XOR input, COE Use OEMUX extension
OR input, OE pterm Default
If one would like to force CUPL to use a specific mode for the
design, just use the mnemonic that represents that mode.
If the G20XV10 device mnemonic is used, the device parameters for
the proper sub-mode are automatically selected according to the
following:
INPUT MODE
This mode is automatically chosen when the PLD source file has
combinatorial output only.
Device Mnemonic:g20xv10i
Input Only Output Only Input/Output
2, 3, 4, 14, 23 15, 16, 17,
5, 6, 7, 18, 19, 20,
8, 9, 10, 21, 22
11
Pin 1 can be used both as a Synchronous Clock and an Input.
Pin 13 can be used both as a Common Output Enable (COE) and an
input.
FEEDBACK MODE
This mode is automatically chosen when the PLD source file has
registered output.
Device Mnemonic: g20xv10f
Input Only Output Only Input/Output
2, 3, 4, 14, 15, 16,
5, 6, 7, 17, 18, 19,
8, 9, 10, 20, 21, 22,
11 23
Pin 1 is the Synchronous Clock.
Pin 13 is the Common Output Enable (COE).
Device Mnemonic: G6001
See GAL6001 Application Notes for a detailed explanation of this
device and its features.
1. The output logic macrocell feedback paths can be
selected as internal only, I/O only, or both, via the
.INT and .IO extensions. If the feedback type is the
same as the output (internal feedback for registered
output), then a feedback extension is not required.
2. The output logic macrocells can be treated as buried
register or combinatorial nodes, allowing the pins to be
treated as inputs. The buried nodes must be defined in
NODE or PINNODE statements and the input pins defined in
PIN statements.
3. All input pins can be configured as registered
or latched inputs via the .i.G6001:.DQ extension;.DQ and
.LQ extensions, respectively. Each input pin in a group
must be treated in the same manner.
Device Mnemonic: MACH110,MACH210
See Chapter 5, FPGA and High Density PLDs.
Device Mnemonic: P10P8V,P12P6V, P14P4V, P16P2V
1. The output macrocell for these devices is always
configured for the OR path, utilizing double the product
terms of a standard PAL. The default bypass path
(lower power) and XOR path are not supported.
Device Mnemonic: P16P8V, P16RP4V, P16RP6V,P16RP8V
1 . The output macrocell for these devices is always
configured for the default bypass path. The OR path
(double product terms at the expense of an output pin)
and XOR path are not supported.
Device Mnemonic:P20RA10
1. Combinatorial Output: As with any other device that can
have combinatorial output, an extension is not needed to
define an output to be combinatorial . When an output is
defined to be combinatorial , CUPL will automatically
set the AP and AR to 'b'1 enabling the register to be
bypassed.
2. Registered Output: The 20RA10 has only one feedback
path, the I/O feedback. When using registered output
normally the feedback would come from the register, but
in this device the feedback comes from the pin. If the
feedback is needed the IO extension must be added to the
variable name to use the pin feedback path. This follows
the CUPL rules for when to use feedback extensions.
3. Programmable Preset and Reset: In each macrocell, two
product lines are dedicated to asynchronous preset (AP)
and asynchronous reset (AR). If the AP line is HIGH,
the Q output of the register becomes a logic 1. If the
AR line is HIGH, the Q output of the register becomes a
logic 0. If both the AP and AR lines are HIGH, the
flip-flop is bypassed and the output becomes
combinatorial . The operation of AP and AR overrides the
asynchronous clock (CK).
4. Three- State (OE) Outputs: The 20RA10 has a product
term dedicated to local output control (OE) and also a
global output control pin. The output is enabled if
both the global output control pin is LOW and the local
output control product term is HIGH. If the global
output control pin is HIGH, all outputs will be
disabled. If the local output control product t
Device Mnemonic: P20X4,P20X8, P20X10
1. When writing logic equations for devices containing an
XOR gate, the $ operator may not be included inside any
parentheses that change the evaluation order of the
expression.
2. When applying DeMorgan's Theorem to an equation
involving the XOR gate, the expression written first is
the one negated.
Device Mnemonic: P22CV10,P22VP10, P23S8
1. The registered and I/O feedback paths can be selected by
using the .DFB and .IO extensions respectively. If the
feedback type is the same as the output (registered
feedback for registered output), then a feedback
extension is not required.
Device Mnemonic: P29M16
1.
The output feedback paths can be selected as registered
only, latched only, I/O only, registered and I/O or
latched and I/O via the .DFB, .LFB and .IO extensions.
If the feedback type is the same as the output
(registered feedback or registered feedback for
registered output), then a feedback extension is not
required.
2.
The dual feedback outputs can be treated as buried
register or latched nodes, allowing the pins to be
treated as inputs. The buried nodes must be defined in
NODE or PINNODE statements and the input pins defined in
PIN statements.
3.
The dual feedback outputs can be treated as registered
or latched inputs, via the .i.P29M16:DQ extension;.DQ
and .LQ extensions.
4.
Individual clock control is set by writing a .CKMUX
expression. By default, the clock control is set to
clock/latch enable pin1, positive edge triggered.
5.
Individual output enable control is set by writing
either a .OEMUX expression for common control, or a
.i.P29M16:OE extension;.OE expression for banked product
term control. By default, the output enable control is
set to common output enable pin 11.
Device Mnemonic: P29MA16
1.
The output feedback paths can be selected as registered
only, latched only, I/O only, registered and I/O or
latched and I/O via the .DFB, .LFB and .IO extensions.
If the feedback type is the same as the output
(registered feedback for registered output), then a
feedback extension is not required.
2.
The dual feedback outputs can be treated as buried
register or latched nodes, allowing the pins to be
treated as inputs. The buried nodes must be defined in
NODE or PINNODE statements and the input pins defined in
PIN statements.
3. The dual feedback outputs can be treated as registered
or latched inputs via the .DQ and .LQ extensions.
4.
Individual clock or latch enable control is set by
writing either a .CKMUX expression for synchronous
control or a .CK expression for asynchronous control. By
default, the clock control is set to clock/latch enable
pin 1, positive edge triggered.
5.
Individual output enable control is set by writing
either a .OEMUX expression or common control, or by a
.OE expression for banked product term control. By
default, the output enable control is set to common
output enable pin 11.
Device Mnemonic: P32VX10
1. Combinatorial outputs have active low polarity, whereas
registered outputs have programmable polarity.
2. The output feedback paths can be selected as registered
only, I/O only, or both, via the .DFB and .IO
extensions. If the feedback type is the same as the
output (registered feedback for registered output), then
a feedback extension is not required.
3. The outputs can be treated as buried register nodes
allowing the pins to be treated as inputs. The buried
nodes must be defined in NODE or PINNODE statements and
the input pins defined in PIN statements.
Device Mnemonic: PLX448
1. The output feedback paths can be selected as internal
only, I/O only, or both, via the .INT and .IO
extensions. If the feedback type is the same as the
output (internal feedback for registered output), then a
feedback extension is not required.
2. The outputs can be treated as a buried register or
combinatorial nodes, allowing the pins to be treated as
inputs. The buried nodes must be defined in NODE or
PINNODE statements and the input pins defined in PIN
statements.
3. The 48mA output pins can be programmed to behave as open
collector outputs, by writing .TEC expressions.
Device Mnemonic: RA10P8,RA11P8, RA12P8
1.
Active-HI chip enables are simulated as Active-LO.
Device Mnemonic: V750
1.
The output feedback paths can be selected as registered
only, I/O only, or both, via the .DFB and .IO
extensions. If the feedback type is the same as the
output (registered feedback for registered output), then
a feedback extension is not required.
2.
The outputs can be treated as buried register nodes
allowing the pins to be treated as inputs. The buried
nodes must be defined in the NODE or PINNODE statements
and the input pins defined in PIN statements.
3.
When an output requires more product terms than its sum
term provides, CUPL uses the sum term pairing capability
to increase the number of available product terms. This
will cause an incorrect fuse map to be generated if the
associated buried register is also being used.
4.
Shared product term bits:
Pin 23 - S1: 14365 Pin 22 - S1: 14368
Pin 21 - S1: 14371 Pin 20 - S1: 14374
Pin 19 - S1: 14377 Pin 18 - S1: 14380
Pin 17 - S1: 14383 Pin 16 - S1: 14386
Pin 15 - S1: 14389 Pin 14 - S1: 14392
Device Mnemonic V2500
1. The output feedback paths can be selected as registered
with I/O or as combinatorial. When a registered output
is specified, the .IO extension is required for the I/O
feedback.
2. The outputs can be treated as buried
register nodes allowing the pins to be treated as
inputs. The buried nodes must be defined in the NODE or
PINNODE statements and the input pins defined in PIN
statements.
3. When an output requires more product terms than its sum
term provides, CUPL uses the sum term pairing capability
to increase the number of available product terms. This
will cause an incorrect fuse map to be generated if the
associated buried register is also being used.
4. Shared product term bits:
Pin29 - S0-S1: 71552-71553
Pin28 - S0-S1: 71556-71557
Pin27 - S0-S1: 71560-71561
Pin26 - S0-S1: 71564-71565
Pin25 - S0-S1: 71568-71569
Pin24 - S0-S1: 71572-71573
Pin11 - S0-S1: 71576-71577
Pin12 - S0-S1: 71580-71581
Pin13 - S0-S1: 71584-71585
Pin14 - S0-S1: 71588-71589
Pin15 - S0-S1: 71592-71593
Pin16 - S0-S1: 71596-71597
Pin31 - S0-S1: 71600-71601
Pin32 - S0-S1: 71604-71605
Pin33 - S0-S1: 71608-71609
Pin34 - S0-S1: 71612-71613
Pin35 - S0-S1: 71616-71617
Pin36 - S0-S1: 71620-71621
Pin 9 - S0-S1: 71624-71625
Pin 8 - S0-S1: 71628-71629
Pin 7 - S0-S1: 71632-71633
Pin 6 - S0-S1: 71636-71637
Pin 5 - S0-S1: 71640-71641
Pin 4 - S0-S1: 71644-71645
Device Mnemonic: PLD9000
This is an imaginary device designed to represent a generalized PLA.
It is intended to be used for designs which are not targeted for any
particular device. The device contains 100 pins, 45 inputs, 50
outputs, and 5 clocks. Each output has individual output enable
control and can be configured in one of four modes.:
combinatorial/active low, combinatorial/active high,
D-registered/active low, or D-registered/active high. There are no
power and ground pins. The pin organization is as follows:
1.
Pin organization:
Pin 1 - A common register clock input
for output pins 51 - 100.
Pin 2 - A secondary common register clock input for
output pins 61 - 70.
Pin 3 - A secondary common register clock input for
output pins 71 - 80.
Pin 4 - A secondary common register clock input for
output pins 81 - 90.
Pin 5 - A secondary common register clock input for
output pins 91 - 100.
Pins 6 - 50 - Input pins.
Pins 51 - 100 Input-Output pins.
2. Banked clock control is set by writing .CKMUX
expressions. By default the clock control is set to
clock pin 1.
3. There are 200 product terms organized in a PLA format,
so each is available to any output.
Device Mnemonic: VIRTUAL
DESIGNING WITH THE VIRTUAL DEVICE
The virtual device allows the user to create digital designs for
programmable logic without regard to the target architecture. The
virtual device is not a device at all. It is simply a removal of
the restrictions by CUPL, allowing the design to contain unlimited
product terms and pins. With the virtual device, CUPL allows all
register types to be used. The virtual device is useful for
determining the resources needed to implement your design.(See
virtual device design examples in Chapter U5.)
OUTPUT
Valid output files when using virtual are .DOC, .PLA, .PDS, .LST,
and .MX. The following are not valid output file for virtual
device: .JED, .HEX, and .ABS.
DESIGNING STATE MACHINES
When designing state machines with the virtual device, you must
indicate the register type. CUPL will not default the state bits to
any type of register. If a specific register type is not indicated,
compilation will still be completed but the resulting equations will
not represent a state machine design. The following examples
illustrate state machine design with the virtual device.
D REGISTERED
SequenceD bits{
present 'b'0
default next 'b'1;
present 'b'1
default next 'b'0;
}
T REGISTERED
SequenceT bits{
present 'b'0
default next 'b'1;
present 'b'1
default next 'b'0;
}
JK REGISTERED
SequenceJK bits{
present 'b'0
default next 'b'1;
present 'b'1
default next 'b'0;
}
RS REGISTERED
SequenceRS bits{
present 'b'0
default next 'b'1;
present 'b'1
default next 'b'0;
}
PIN NUMBERING
When designing with the virtual device, pins do not have to be
numbered but they do have to be declared. Use the normal pin
declaration commands but leave out the pin numbers. If you do want
to put pin numbers you are free to do so.
Pin = OE;
Pin = [Q2..0];
When pins are declared with CUPL, there is no distinction between
input and output pins at the time of declaration. CUPL determines
whether pins are input or output depending upon the equations.
Therefore, it is necessary to use pins consistently. The compiler
will generate an error if pins are not used consistently.
PARTITIONING
One of the main uses for the virtual device is for partitioning.
Since no device restrictions are placed on a virtual design, the
design can be as large as necessary. The documentation file created
by the compiler is fed into the partitioner which can then split the
logic among multiple devices. The virtual device must also be used
when FINDPLD is going to be used. FINDPLD is a one device fitter
similar to PLPartition which can find a single PLD for your
design.(See Device Independent Design Flow in Chapter U1.)
[Picture]
Figure B-1. Using Virtual For Partitioning
[Picture]
Figure B-2. Using Virtual Device With FindPLD
INTERFACING WITH OTHER TOOLS
The virtual device is used to interface with other tools such as
XILINX, PLUSTRAN and other FPGA vendor compilers and tools. The
output files used vary for each interface.
[Picture]
Figure B-3. Using Virtual Device With Other Tools
LIMITATIONS
There are some actual limitations built into the virtual device.
The total number of allowable product terms is 9999. The maximum
pins is 200 and the maximum nodes is 200.
POLARITY AND THE VIRTUAL DEVICE
In devices with fixed inverting buffers, CUPL will automatically
apply DeMorgan's theorem to active high equations to implement these
equations in the active low pin. In devices that have programmable
polarity, DeMorgan's theorem is not applied because the polarity bit
can be blown to implement the desired logic.
Normally CUPL examines the polarity defined in the pin statement,
the polarity of the left side of the equation and the polarity on
the right side of the equations to determine the polarity of the
final equation.
These will all produce the same results in a P22V10 device
Pin 2 = A;
Pin 2 = A;
Pin 2 = A;
Pin 3 = B;
Pin 3 = B;
Pin 3 = B;
Pin 16 = !X;
Pin 16 = X;
Pin 16 = X;
X = A & B;
!X = A & B;
X = !(A & B);
In a virtual device, CUPL ignores the polarity defined in the pin
statement. It only looks at the polarity in the equations.
These will all produce the same results in a VIRTUAL device
Pin = A;
Pin = A;
Pin = A;
Pin = A;
Pin = B;
Pin = B;
Pin = B;
Pin = B;
Pin = !X;
Pin = X;
Pin = X;
Pin = !X;
!X = A & B;
!X = A & B;
X = !(A & B);
X = !(A & B);
What this means is that you cannot simply change the pin statement
if you want to invert the logic of an equation. The change has to
be done in the equation itself.