MainMenu
Tutorial: Schematic Design Flow
This tutorial will introduce you to the features of the ProChip tool that allow
you to create a Schematic File using Altium's (formerly Protel Inc.) Design
Explorer 99SE by walking you through the Compilation and Fitting process of
one of the Example files included with the Product. This tutorial also allows
you to use the Schematic Editor tool to add more functionality to the Design.
Step I: Create a Sample Project using New Project Wizard
Step II: Add a Schematic File and overview of Schematic Editor
Step III: Modify the Schematic File
Step IV: Compile(Synthesize) the Schematic Module
Step V: Use ATMEL Fitter to fit Synthesized Design File
Tutorial: CUPL Design Flow
This tutorial will introduce you to the features of the ProChip tool that allow
you to create a Schematic File using Altium's (formerly Protel Inc.) Design
Explorer 99SE by walking you through the Compilation and Fitting process of
one of the Example files included with the Product. This tutorial also allows
you to use the Schematic Editor tool to add more functionality to the Design.
Step I: Create a Sample Project using New Project Wizard
Step II: Add a CUPL File
Step III: Modify the CUPL File
Step IV: Compile(Synthesize) the CUPL Module
Use ATMEL Fitter to fit Synthesized Design File
Tutorial 1: Altium VHDL Design Flow
This tutorial will introduce you to the features of ProChip Designer software with the Altium
PeakFPGA used as the VHDL synthesis and simulation tools by walking you through the
Synthesis, Place-and-Route and Simulation processes of an example VHDL Project included
with the software.
Step I : Create a Project Using the "New Project Wizard"
Step II : Add a VHDL Design File
Step III : Synthesize the VHDL Design
Step IV : Place-and-route the Synthesized Design File
Step V : Functional Simulation
Tutorial: VHDL Design Flow with LeonardoSpectrum
This tutorial will introduce you to the basic features of the ProChip Designer software with
Mentor Graphics LeonardoSpectrum used as the VHDL synthesis tool. You will be going
through step-by-step the synthesis and device fitting processes of an example VHDL project
included with the software. Before starting this tutorial, you MUST have LeonardoSpectrum properly installed and the Atmel CPLD library setup as specified in the instructions provided in the ProChip Designer Installation Guide.
Step I : Create a Project Using the "New Project Wizard"
Step II : Add a VHDL Design File
Step III : Synthesize the VHDL Design
Step IV : Place-and-route the Synthesized Design File
Tutorial: CPLD Design Flow Tutorial
This tutorial will guide you through a complete design cycle for the Atmel ATF15xx CPLD with Logic Doubling
architecture. It will step-by-step go through each phase of the design cycle from design entry, logic synthesis, device fitting, in-system programming, and finally verifying the design on the Atmel CPLD Development/Programming Board.
Note: To complete this tutorial, ProChip Designer V4.0 or later and Atmel-ISP Software (ATMISP) V4.0 or
later are required.
I : Create a Project using ProChip Designer's New Project Wizard
II : Add a Design File
III : Compile the Design
IV : Fit the Synthesized Design File
V : Program and Verify Design
Converting ABEL Design Files to CUPL
Converting Xilinx Coolrunner Designs to Atmel ATF15xx low power Family of CPLDs.
Converting ABEL Design Files to CUPL
Installation Guide for ProChip Designer 4.0
© Atmel Corporation
The fitter controls

JTAG:
JTAG: Default setting is ON. The device will turn on the ISP port [4 pins are reserved for the JTAG port].
TDI Pull-up Default is Off. When turned ON, the setting enables weak pull up on TDI pin.
TMS Pull-up Default is Off. When turned ON, the setting enables weak pull up on TMS pin.
In order to enable the weak pull up Resistors on TDI, TMS, the JTAG option box must have a .
Power Save:
Pin Power Down 1,2 Default setting is Off for Standard power devices. Use this option to use PD1 or the PD2 pin to power down the device to standby mode (Icc is less than 1 mA).
Auto Wake Default setting is Off for Standard power devices. Devices that have the low power feature such as the ATF15xxL should use this feature to further reduce the Icc (power consumption) since low power devices have Input transition Detection [ITD] circuitry..
GCK1, GCK2, GCK3 Wake Default setting is OFF. This enables ITD on Global clock pin. When turned off, the ITD circuitry is disabled. The device will thus not wake up on a transition on a GCK pin and thus minimize power consumption.
Simulation:
Generate Sim Files A check in this box indicates that simulation files for Post Route Simulation are generated. Useful for VHDL flow and if user has created a test bench file.
Security:
Secure Part: The default setting is Off. Enable this option if you want to generate a JEDEC (programming file) with the Security bit [set].
More fitter controls
Power Reset:
Large Hysteresis This is the default selection. Also helps in reducing the Standby power, especially for low voltage devices. Power Cycling requires that you power up from below 0.7 V.
Small Hysteresis The device has a single voltage level below which the Chip will be Reset. Not recommended for Low Voltage devices.
Pin Fit Control:
Keep Preassignments are always kept.
Ignore Preassignments are ignored.
Try (Default Choice.) Preassignments are kept whenever possible
Device Logic Options:
Pin Keeper: The default setting will enable the Pin Keeper Circuits on all Inputs and I/Os. Floating pins will thus be at known states [either logic high or low]
Optimize: The default setting is Enabled. When this feature is enabled, the fitter will perform the XOR Synthesis, Node Collapsing, Foldback and Cascade Logic optimization strategies to fit the design. If this feature is disabled, the fitter will use no logic reduction strategies and map the design logic exactly as written in the source file.
Latch Synthesis: The default setting is disabled. When enabled, the Fitter tries to implement a Combinatorial Latch using the Latch provided in the Macrocell.
Global Reset: Use GCLEAR to reset the flip flops.
Logic Double:
if necessary: allows the Device fitter to use Logic doubling if it helps to pack in more logic
always: The Fitter will try to implement Logic doubling features.
Logic doubling allows user to implement Combinatorial Latches while using the Buried latch available in a Macrocell. Individual Output Enable control, Dual independent feedback paths for buried and pin feedback paths are key logic doubling features.
Logic nodes / Fitter
Logic Node Defaults
These are default settings for all Nodes. If individual control is desired , please click on the Pin/Node optimization Tab (Advanced options)
Fast Input: Default setting is Off. When turned on, it allows for fast setup times to a D Flip Flop within a Macrocell and thus improves timing performance.
Power Save: Default setting is Off. When turned on, all Macrocells operate in a reduced power mode. There is a speed penalty. If the Reduced power option box is left unchecked, then the Speed of the device increases.
Fast Slew Rate: The Fast Slew Rate for all Outputs property allows the user to specify all outputs in the design to switch at a fast slew rate. The default setting for this property is Disabled. When this property is enabled all output pins will operate at maximum speed. If this property is disabled, all outputs will switch at a slow slew rate. Pins that use slow slew rate help in reducing switching noise.
Soft Buffer: The fitter has a node collapsing feature which attempts to collapse as many combinatorial nodes as possible to minimize resource usage. The Soft Buffer property, when enabled, will prevent the fitter from collapsing all nodes in a design. If this feature is disabled, (default setting) all nodes in the design may be collapsed at the fitters discretion.
Enable Foldback: Enables Foldback logic to be used for all Macrocells in a Logic Array Block. This is a general setting which allows the Fitter to use Foldback nodes if available.
Force Foldback: Defines a node(s) as a Foldback node in a Logic Array Block.
Enable Cascade: Enables Cascade feature on all outputs in the Design.
Enable XOR Synthesis: The XOR synthesis property when enabled, allows the fitter to use this reduction strategy for all pin and nodes in the design. If this property is disabled (default setting) the fitter will attempt the map the logic in a sum of products form.The fitter employs various strategies to reduce design logic to map into the hardware XOR gate within the device and can lead to efficient resource usage for Comparison or Arithmetic logic designs.
Open Collector: Allows an output to be configured as an Open collector. If unchecked (default), the output is a normal output.
Global Output Enable: Use GOE[0-5] to enable the Buffers. The Signal that feeds the most TRI state buffers is chosen as one of the global OE signals.
Schematic tutorial
ATMEL-PROCHIP DESIGNER™
Tutorial: Schematic Design Flow
This tutorial will introduce you to the features of the ProChip tool that allow
you to create a Schematic File using Altium's (formerly Protel Inc.) Design
Explorer 99SE by walking you through the Compilation and Fitting process of
one of the Example files included with the Product. This tutorial also allows
you to use the Schematic Editor tool to add more functionality to the Design.
Step I: Create a Sample Project using New Project Wizard
Step II: Add a Schematic File and overview of Schematic Editor
Step III: Modify the Schematic File
Step IV: Compile(Synthesize) the Schematic Module
Step V: Use ATMEL Fitter to fit Synthesized Design File
Step I: Create a Sample Project using New Project Wizard
Step I: Create a Sample Project using New Project Wizard
The Prochip Designer tool has a built in Wizard that shows Designers a very easy way of
creating a Project file (File with extension .APJ). This Project file must be created prior
to starting the Design process.
After installation of Prochip Designer System (via a CD or directly from the Atmel
website), the PC desktop will have an Icon for 'Prochip' as well as 'Protel 99 Atmel
Edition' as shown in Fig. 1. These short-cuts allow the user to launch the tools in a
seamless manner.
Note:
Users are not recommended to launch the Atmel edition of Protel 99SE tool unless they
want to target devices that are not part of the Prochip Device selection menu.
Fig. 1
1. Click on the START….PROGRAMS……Prochip4.0 Icon as shown in Fig. 2
to launch Prochip OR double-click on the PROCHIP icon on the desktop (see
Fig. 1).
Fig. 2
2. Click on the PROJECT.......NEW or on the Shortcut button as shown in Fig. 3.
Fig. 3
3. This will launch the NEW PROJECT WIZARD to guide the users through the
project creation process. Click on the Next button (Fig. 4) to start the process of
creating a PROJECT FILE.
Fig. 4
4. Click on the BROWSE button to open the browser window as shown in Fig. 5.
Use \PROCHIP\DESIGNS\SCH\LCD as the directory of the project. Enter
LCD.APJ as the project file name. The extension of a project file must be .APJ.
Fig. 5
The name and directory of the design project is specified in this window. All design,
simulation, and other project files must be placed in this project directory.
5. Choose a Part for the Project [ATF1502AS-7JC44]. Also review the Filters that
allow for selection of a specific or a Package type. The Device in the
Part Number field must be highlighted in order to go to the next step in the
Wizard as shown in Fig. 6.
Fig. 6
Select the Project
directory and enter
the Project name
6. Select Schematic-Altium as the Software tool for this Design flow.
Fig. 7
With ProChip Designer V4.0 and later, the five possible design flows and their
corresponding design entry types supported are listed in the table below:
Design Flow Design Entry Type
CUPL - Altium CUPL design entry through Altium Protel Design Explorer 99SE
Verilog - Exemplar* Verilog design entry through Exemplar Leonardo Spectrum
VHDL - Altium VHDL design entry through the Altium PeakFPGA
VHDL - Exemplar* VHDL design entry through Exemplar Leonardo Spectrum
Schematic - Altium Schematic design entry through Altium Protel Design Explorer 99SE
• Requires Mentor Graphics Leonardo Spectrum software with Atmel CPLD support.
Table 1
7. Click on the !"#$% Done with Parts Button as shown in Fig. 8. The User has the
option of including more parts to the current Project Directory. Click once again
on the Next button.
Fig. 8
8. Proceed to click on the Finish Button to complete the New Project
Wizard and the project creation process.
9. This closes the New Project Wizard and opens the Prochip Designer Window.
The Sources in the Project are shown in the Left window in Fig. 9. The Source
Manager, Logic Synthesis and other Processes are listed in the Left window.
Fig. 9
All Project files created by a process reside under the directory structure of the
Process window. You may then click on the + or - buttons to view the files.
Device
Icon
10. Click on the Device Icon as shown in Fig. 9 [ATF1502AS-7JC44] to view the
Design Flow as shown in Fig. 10. All Design processes for the Prochip Designer
tool are shown in the Design Flow window.
Fig. 10
11. Click on the Device View Tab to view the Device architecture of the device.
Fig. 11
This completes Step 1 of this Tutorial.
Step II: Add a Schematic File and overview of Schematic Editor
Step II: Add a Schematic File and Brief overview of Schematic Editor
Schematic capture is the process of capturing a design as a schematic in a computer-aided
design environment. In Altium's Design Explorer Tool (launched through the Atmel
Prochip Designer Interface), the basic workspace for capturing a schematic is called a
schematic sheet. A complete circuit design can use just a single sheet, or it can comprise
a number of electrically linked sheets. Altium (Protel) allows you to create complex
hierarchical and modular designs by linking any number of sheets to form a complete
project.
The Focus of this exercise is to use the Tool to work with Schematics for Programmable
Logic. Once the Project file is created, the next step is to add the Design Source file(s)
into your project. For this tutorial, we will be adding a single Schematic Design file into
the Project.
1. Click on the ADD/EDIT button from the SOURCE MANAGER to open the
Source Manager window. You can also view the Source Manager Help File by
clicking on the Help button within the Source Manager Window to view the
description for different processes.
Fig. 11
Click on the ADD button to add an Altium (Protel) Schematic File to the Project. Select
the LCD.sch file since this is the Source Schematic file.
2. As soon as you click on the 'ADD' button you will see the Altium Design
Explorer 99SE tool being launched (This will do some processing and then
automatically close). This process can take a few seconds. In this process, Prochip
is setting up its environment since the Altium Schematic tool is one of the several
third party tool interfaces.
Fig. 12
3. Select the LCD.sch file (file is highlighted). Once a file is selected, the EDIT tab
becomes visible. Click once on the EDIT tab to launch Altium's Design
Explorer 99SE tool. Once the Altium tool is launched, Prochip interface remains
in the background. It is possible to view or edit the Schematic files in the Altium-
Design Explorer 99SE environment.
Please note that for users who have previously used Altium's tools or are current
users, it is possible to launch the Atmel edition of the tool directly without going
through the Prochip Designer interface. This is useful if you are targeting an Atmel
EPLD that is not directly supported via the Prochip Designer interface. When
launched independently (Simply click on the Atmel Edition of Protel 99SE tool from
the Start programs menu), users will be required to create a .DDB file (MS access
database format file).
Working with documents & folders in a design
Using Design Explorer to manage documents and folders within a design database is
very similar to using the Windows Explorer to manage files and folders on your hard
disk. There are, however important differences. Documents within a design database
do not exist as separate files on the hard disk. They are fully stored within the database
structure, which is contained in the .DDB design database file.
4. After the Schematic Editor window opens, the file is ready for editing. Fig. 13
shows a snapshot view of the Altium Schematic Design environment.
Fig. 13
5. Altium Schematic Editor Features> Viewing Toolbars:
Click on View .…..Toolbars from the Design Explorer Main Menu. Click once
on Toolbars and select Wiring Tools as shown in Fig. 14.
For ATMEL-PLD Schematics, you will only require the Wiring tool to draw and
place your Symbols.
{Please note that all Symbols are from the generic Pldsymbols.ddb library}
This library includes all the functional blocks required to create a schematic.
Project
Sources in
LCD.ddb
Use the Wiring
Toolbar to create
the Schematic
Fig. 14
The Wiring Tool Bar is shown as an active toolbar in Fig.15. One may similarly activate
the PLD Toolbar but this is not required, unless you want to view the Pin Assignments in
the Source File.
Fig. 15
To view or assign pin assignments, click once on the 'LOC' button within the
"PLDTools" toolbar. It is also possible to customize so that only the toolbars of
relevance to the Atmel EPLDs for schematic flow can be displayed to allow the designer
to quickly complete the source design.
To customize, click once on View .…..Toolbars from the Design Explorer Main Menu.
With 'Toolbars' option highlighted, select the 'Customize..' option.
Fig. 16
Fig. 16 shows the available toolbars.
6. Managing Schematic Components and Using the Symbol Library
Schematic component descriptions are stored in schematic libraries, which can be
stored within a design database or as external files named with a .LIB extension.
The default schematic libraries supplied with Atmel edition of Protel 99 SE are
stored within a series of design databases located in the Design Explorer 99
SE\Library\Sch folder in your Protel installation directory. Components are
created and modified in the schematic library editor, an independent document
editor that includes tools for managing and editing libraries. You can open a
schematic sheet and the schematic library editor simultaneously.
Fig. 17 shows how a user can view the libraries available for designing a
schematic.
To access the components in the schematic
libraries, the libraries must first be added to the
list of available libraries in the schematic sheet
editor.
To view a list of currently available libraries, set
the Browse scope to Libraries in the
schematic panel. A list of currently loaded
libraries will be shown. Click on a library name
in the list to show a list of all components it
contains in the lower list box.
To add libraries to the available libraries list,
click the Add/Remove button on the panel, or
select Design » Add/Remove Library from
the menus. This opens the Change Library List
dialog, where libraries can be added and
removed from the Current File List. Once
libraries have been added, parts from those
libraries can be placed on the sheet.
Fig. 17
Use the PLDSymbols.lib only for creating designs that target the ATF15xx family of
devices. The Symbol libraries shown are specific to the Atmel version of Design
Explorer Tool. For a more comprehensive library for other vendors, please contact
Altium International.
The symbols used to create a schematic representation of PLDs are found in the PLD
Symbols .Lib schematic library file. There are over 360 symbols in this library, covering
all standard functional groups, such as buffers, comparators, flip-flops, and so on, as well
as symbols for defining the connections to the physical pins of the PLD device.
Note: It is important that you are familiar with the architecture of the device that your
design is targeted for, to ensure that you only use symbols that can be implemented in
that device.
The symbols are named in one of two ways. Most are named using a set of descriptors,
with different letters to indicate the various functions supported by that symbol. The
others are named using standard TTL 74 series logic names. These are preceded with the
letter X, for example X74_138.
7. Setting Sheet Options and Preferences for the Schematic:
The Schematic preferences affect the schematic editing environment .To set the
schematic environment preferences you must have a schematic sheet as the active
document. Select Tools » Preferences [shortcut T P] from the menu to open the
Preferences dialog as shown in Fig. 18
Fig. 18
The bottom Right Side of the Schematic Sheet shows the Strings for
Organization, documentation, address, Time, Date. These Strings can be
modified and the information for your Organization can be shown here by
clicking on the 'Graphical Editing Tab' and inserting a Check for 'Convert
Special Strings' as shown in Fig. 18. Fig. 19 show an example of entering
Information for the String Information for your Organization.
Fig. 19
o Use schematic electrical design objects to define all circuit elements.
o Use schematic drawing objects to define any non-electrical objects
that you want to appear on your schematic sheet.
To set the options for the active schematic sheet, select Design » Options from
the menus to open the Document Options dialog. This dialog has two tabs:
Sheet Options tab - In this tab you configure the sheet size and orientation,
border style, title block, grid ranges, background color, and system font.
Click one on Design Options..and verify that the Schematic Sheet Size is set to
SIZE B (17.00 IN x 11.00 IN) as shown in Fig. 20. You can increase the size of
the sheet by choosing a different Size or go with Standard A4 size.
Fig. 20
8. Interfacing from internal PLD logic to component pins
Special input (IPAD), output (OPAD), and input/output (IOPAD) symbols are
used to interface from the internal logic to the pins of the target programmable
device. These symbols are available from the PLD Symbols.Lib schematic library
file. Place one of the appropriate pad symbols at each point that connects to a
component pin, and give each PAD symbol a unique designator.
To define the pin number of the component that the pad connects, double-click on
the pad symbols on the schematic to open its properties dialog. In the Part Fields
1-8 tab of the properties dialog, enter a value into the first part field using the
following syntax:
LOC=PIN[pin_number]
where pin_number is the device pin number you wish to connect to. For example,
to specify that the pad connects to pin 7 of the device, enter LOC=PIN[7] into
the symbol's part field.
The syntax for defining the pins of a multiple pad symbols is as follows:
LOC=PIN[pin_1, pin_2,...,pin_n]
where pin_1 is the pin number for the first pad, pin_2 is the pins number for the
second pad, etc.
This completes Step II.
Step III: Modify the Schematic File
Step III: Modify the Schematic File
1. In this section, use the EDITOR to modify the LCD.sch file. Use the
PLDSYMBOLS library to add the following components:
• 3-Input AND Gate {AND3B2 - is a 3-input AND gate with 2 bubbles
(inverted).
• An IBUF (Input buffer) and an OBUF (Output Buffer)
• A D-type Flip flop {FD} which is clocked with signal GCLK already
shown in the LCD.sch schematic
• An IPAD and OPAD
• Change text in the Schematic from g22v10 to f1502plcc44 ( ATF1502ASPLCC44)
Assign the following Pin numbers:
Pin12 to Signal D2, Pin 33 to NOUT,
Change U6 for signal D0 from Pin 2 to Pin 6,
Change signal D1 from Pin 3 to Pin 7.
Change the U1 Clock Signal from Pin 1 to pin 2.
2. Brief Review of the Hot Buttons required to modify the Schematic is shown
in Fig. 21.
Use schematic electrical design objects to
define all circuit elements. (Basically this
means use Icons from the Wiring Tool Bar)
Toolbar: Wiring tools - Menu: Place »
Wire [P W]
Description: A wire forms an electrical
connection between points on a schematic
Note: A wire is an electrical object and
should ONLY be used to make electrical
connections between points on a
schematic. To draw a non-electrical line
on a schematic, use the Line object.
Action Mouse Keyboard
General
To place object (or vertex of complex object).
Left-Click ENTER
Quit current mode. Right-Click ESC
Toolbar: Wiring tools - Menu: Place »
Part
Description: A part is a schematic
symbol.
To place: Once in part placement mode, a
Zoom In/Out - PG UP/PG DN
Flip object along the x-axis. - X
Flip object along the y-axis. - Y
Edit properties of object currently on cursor -
TAB
Rotate the object currently on the cursor -
SPACE BAR
representation of the part will appear
floating on the cursor. Position and rotate
the part using the keyboard shortcut keys.
Left-click or press ENTER to place the
part. Continue placing other parts of the
same type, or right-click or press ESC to
exit part placement mode.
Press the TAB key during placement to
edit the object's properties.
Net label (Schematic electrical design object)
Toolbar: Wiring tools - Menu: Place » Net
Label [P N]
Description: A net label assigns a particular
net name to an electrical object. When a net list
is generated, default names will be given to
each net in the schematic. Manually placing a
net label on your schematic defines the name
of the net to which it is attached.
To place: Once in net label placement mode,
position the cursor so that it touches the object
to which you want to assign the label. Left click
or press ENTER to place the label.
Continue placing further net labels, or right click
or press ESC to exit placement mode.
Press the TAB key during placement to edit
the object's properties.
Graphical editing: When a net label is in
focus, one can Click anywhere within the
dashed box to "pick up" the net label and
reposition it.
Junction
Toolbar: Wiring tools Menu: Place »
Junction [P J]
Description: A junction forms an
electrical connection where two or more
wires cross. A junction is automatically
inserted when a wire starts or terminates
anywhere along the length of another
wire. When a wire crosses other wires, no
junction is inserted. If you want to create a
connection between crossed wires, place a
junction at the crossing point.
To place: Once in junction placement
mode, simply left-click or press ENTER
to place a junction at the cursor position.
Right-click or press ESC to exit junction
placement mode.
Press the TAB key during placement to
edit the object's properties.
Graphical editing: When a junction is in
focus one can Click anywhere within the
dashed box to "pick up" the junction and
reposition it
Fig. 21
3. By default, the part fields for schematic components are generally hidden. For
input, output or IO PLD pad symbols, however, you can easily show or hide the
pin assignment statements on your schematic. To toggle the pin assignment
statements between hidden and displayed, from the schematic select PLD »
Toggle Pin LOC from the menus.
4. Zoom into the left portion of the Schematic by clicking on the + Icon from the
Main Tool Bar.
Fig. 21
The Schematic currently shows the IPAD with certain Designators. Note that
each Symbol that is placed in the Schematic must have a Name.
For e.g.
The Input Pad Symbol U6 [Name]
chosen has a Pin Number assigned as
Pin 7.
To disable View, click on PLD...Toggle
Pin LOC as shown in Figure 22.
Alternatively one can access the same
menu item from the PLD Tool Bar.
Fig. 22
5. Adding Library components
Before we Proceed, ensure that you have enough Room in your schematic to add
additional components. You can use the Zoom button to view the Schematic.
!! Check if you have already re sized your Sheet Size from B to C , thus enlarging
it.
Click on the Gate Symbol from within the Wiring Toolbar as shown in Fig. 23.
Fig. 23
6. This brings up the PLACE PART User Interface. Click on Browse to view the
Different Part Types. In this step we will add all the components required and
then proceed to interconnect them. This brings up the Browse Schematic Library
box as shown in Fig. 24
Fig. 24
7. Click on the Add/Remove button to view the Libraries that are available for
adding. See Fig. 25
Fig. 25
For this Tutorial, verify that the PLD.ddb library is seen as a Selected File. It
should be visible in the bottom half of the Screen snapshot. If not, proceed to add
the PLD.ddb. Note: It is possible to add/remove libraries of Components.
Click on the Cancel button to view the Symbols for the PLD.ddb library of
Components. Select the AND3B2 symbol as shown in Fig. 26
Fig. 26
8. Click once on Close. This immediately brings up the Place Part box. Change the
Designator Field from U? to U100 as shown in Fig. 27. Click on OK.
Fig. 27
9. This immediately places a Symbol on the Cursor. Proceed to the top half of your
Schematic sheet and place the component by clicking once on the Schematic
sheet. See Fig. 28
Fig. 28
10. As soon as you are done with placing this AND3B2 component, the Place Part
box User Interface box shows up. The Designator filed in this box automatically
increments to 101. However since we do not need another of the AND3B2
components, you may click on Browse to select the FD symbol (D type Flip
Flop). Place this to the right side of the AND3B2 component. The FD Symbol
thus has the designator U101.
Similarly place an OBUF (U102), IBUF (assign designator U103) , IPAD
(U104) and OPAD (U105) as shown in Fig. 29. Note the User can always choose
these designators in any order.
Fig. 29
11. Drawing a Wire
To place: Once in wire placement mode, left-click or press ENTER to anchor the
starting point for the wire, then position the mouse and left-click or press ENTER
to anchor a series of vertex points that define the shape of the wire. When you
have finished drawing the wire, right-click or press ESC.
Click once on the WIRE component to interconnect the Pins as shown in Fig.
30.{You may refer to the Table in Fig. 21 that lists the different Hot buttons}
Fig. 30
12. Repeat the previous steps to draw another wire object, or right-click or press ESC
to exit wire placement mode. Complete wiring of all the components as shown in
Fig. 31.
Fig. 31
13. Proceed to complete the Wiring Process as shown in Fig. 32.
One input D0 must also be routed to the Bubble input of the AND3B2 symbol.
Tap a line (you can use a Junction). The other input of this AND (AND3B2) gate
must be connected to the Output of the OR Gate (U31) as shown in Fig. 32.
Note that U31 is a 3 input OR gate shown in the right hand side of the
Schematic.
Fig. 32
14. Assigning Names (Net Name)
Assign Net name D2 to the Input Signal U104. Similarly assign a Net name
GCLK for the Clock input of the D Register (Fig. 33).
Refer to the Net Label button description listed in the Hot button section of this
tutorial. (Fig. 21)
Fig. 33
15. Assign a Net name for the output of the AND gate. Name it 'INTER'.
Assigning Pin Numbers
Click on the PLD Toolbar to "Toggle Pin LOC". This allows you to see all the
Pin assignments associated with various signals as shown in Fig. 34.
Fig. 34
16. Double click on the [*] with the Cursor next to the LOC button . This will launch
the properties box (fig. 35) and will allow one to assign specific pin numbers.
Fig. 35
Assign pin
numbers in
this text box
You can now assign Pins12 to Signal D2, Pin 33 to NOUT
Change existing assignment :
Change U6 for signal D0 from Pin 2 to Pin 6,
Change signal D1 from Pin 3 to Pin 7.
Also change the Clock Signal (U1) Pin from pin 1 to pin 2.
17. Change the text Description from Device=g22v10 to f1502plcc44 in the main
Schematic sheet.
Fig. 36
18. Select the text box by double clicking anywhere within the box. This brings up
the Annotation box. Type the information in the text box. See Fig. 37
Fig. 37
19. Verify that you have completed the Pin assignments defined in Step III - 1.
20. Click on Save button within Atmel Edition of Design Explorer 99SE to Save
your Schematic project file. Then proceed to Close the Design Explorer tool
by clicking once on the x button.
21. This completes Step III. Now proceed to Step IV - Compiling the Schematic
File
Step IV: Compile(Synthesize) the Schematic Module
Step IV: Compile(Synthesize) the Schematic Module
Since our Target devices are the ATF15xx family, we will use the Design Flow
from the Prochip Design Tool to compile the Schematic and generate a .PLA file
which is required for the Device Fitter.
Note:
Once a schematic-based PLD design is complete, you can also run the PLD compiler
directly from the schematic to produce the JEDEC source file used to program the PLD.
The general setup of the PLD compiler options is the same as for a CUPL-based PLD
design. See Compiling a PLD design in the Design Explorer 99 Help section for
information on setting the general compiler options. There are, however, specific compiler
options that pertain only to schematic-based designs.
If your PLD design uses multiple schematic sheets, you must set the Net Identifier Scope
of the PLD compiler to correctly identify the sheet hierarchy. From the schematic select
PLD » Configure from the menus. In the Options tab of the Configure Advanced PLD
dialog, select the correct Net Identifier Scope from the drop down list. See the topic
Connectivity in a mufti-sheet schematic design in the Design Explorer 99SE Tool for
details of the various scope options. If you wish to include all sheets of a mufti-sheet
design in the compile, uncheck the Current Sheet Only option. From the schematic, select
PLD » Compile the PLD compilation process. The design is first translated from a
schematic to a CUPL compiler source file. The resulting CUPL document
(file name.PLD) is then compiled to produce the selected output files.
1. After completion of Step 3, the Design Explorer SE Tool closes and returns you
to the Prochip Designer Tool flow (Fig. 38).
Fig. 38
2. Click on the Compile Logic {Logic Synthesis} Button. This opens the Logic
Synthesis Window.
Fig. 39
3. Click on CUPL options (Click on the CUPL TAB as seen in Fig. 39) from within
the Logic Synthesis Process to view the CUPL Compiler strategies. Verify that
Minimization is set to Quick and Optimization has no Checks in any box.
4. Summary of CUPL strategies can be viewed in the Help file.
Minimization levels
Quine-McCluskey and Presto will perform multiple
output minimization in PLD devices. This maximizes
product term sharing in these types of devices.
Enabling None defeats all logic minimization during
a compilation. It is useful when you want to keep
contained product terms from being eliminated.
Expresso provides a higher level of reduction
efficiency. It requires more memory to compile than
Presto, but requires less time for compilation.
Optimization
Best for Polarity: This is useful if
User knows the Device
architecture of the Target device.
XOR Equations is useful for XOR
Synthesis.
Demorgan: This use
Demorganisation to implement a
logic equation using Sum of
Products or vice versa.
5. Logic Synthesis requires an Input File (LCD.sch). Synthesis will convert the
Schematic Source code (LCD.sch)into a PLA file (LCD.tt2). Synthesis runs the
Compilation process by translating the Schematic File first into a .PLD (CUPL)
Source file. Any errors in this process require the user to go back into the
Schematic Editor and view the Listing files.
Output: LCD.PLA (.TT2) file. This file will be used by the Device Fitter.
Click on the Compile button. This immediately launches the Design Explorer
Environment and if the Compilation is successful, Success is indicated.
All Compilation is done with the Virtual Device type. Individual Device mnemonics can
also be specified from within the Design Explorer Tool.
Fig. 40
6. Close the Design Explorer 99 Window and return to the Design Flow of Prochip
Designer tool. If a box pops up requesting you to save the updated Schematic File,
click on Yes and proceed to save the Schematic File.
This completes Step 4 of this tutorial.
Step V: Use ATMEL Fitter to Fit the Synthesized Design File
Step V: Use ATMEL Fitter to Fit the Synthesized Design File
1. In Step IV we completed the Logic Synthesis portion of the Design Flow. Upon
successful compilation, a PLA output file (with extension .pla/.tt2) is produced by the
Altium CUPL synthesis tool.
2. A .PLA file is an optimized net list of the minimized logic equations that were
generated for a virtual device type by the Compiler. We now need to map this net list
into a specific Atmel PLD architecture using the Atmel fitter.
Proceed to the Device Fitter portion of the Design Flow (Fig. 38).
In Step 2, we completed the Logic Synthesis portion of the Design Flow.
Upon successful compilation, a PLA output file (with extension .pla/.tt2) is
produced by the Altium CUPL synthesis tool.
3. Click once to launch the Device Fitter Window (Fig. 41). Normally you can use the
Default options to fit the Design.
Fig. 41
4. Click once on the Global Device Tab and review the Fitter strategies.
Fig. 42
Verify that Pin Fit Control is set to Keep. Also click on Pin/Node optimization to
review the pin assignments.
5. Click on the RUNFITTER button. Review the FITTER Report file and verify that
the Pin assignments match the Schematic Pin Assignments and use the Jedec file to
program an ATF1502AS in PLCC package.
6. The Report File is a scrollable window, meaning you can view the Pin assignments in
the Screen shot shown above. This completes Step 5.
7. Congratulations on Completion !! You are now ready to begin Designing with
ATMEL PLDs using the Schematic Editor.
CUPL tutorial
ATMEL-PROCHIP DESIGNER™
Tutorial: Schematic Design Flow
This tutorial will introduce you to the features of the ProChip tool that allow
you to create a Schematic File using Altium's (formerly Protel Inc.) Design
Explorer 99SE by walking you through the Compilation and Fitting process of
one of the Example files included with the Product. This tutorial also allows
you to use the Schematic Editor tool to add more functionality to the Design.
Step I: Create a Sample Project using New Project Wizard
Step II: Add a CUPL File
Step III: Modify the CUPL File
Step IV: Compile(Synthesize) the CUPL Module
Use ATMEL Fitter to fit Synthesized Design File
Step I: Create a Sample Project using New Project Wizard
Step I: Create a Sample Project using New Project Wizard
The Prochip Designer tool has a built in Wizard that shows Designers a very easy way of
creating a Project file (File with extension .APJ). This Project file must be created prior
to starting the Design process.
After installation of Prochip Designer System (via a CD or directly from the Atmel
website), the PC desktop will have an Icon for 'Prochip' as well as 'Protel 99 Atmel
Edition' as shown in Fig. 1. These short-cuts allow the user to launch the tools in a
seamless manner.
Note:
Users are not recommended to launch the Atmel edition of Protel 99SE tool unless they
want to target devices that are not part of the Prochip Device selection menu.
Fig. 1
1. Click on the START….PROGRAMS……Prochip4.0 Icon as shown in Fig. 2
to launch Prochip OR double-click on the PROCHIP icon on the desktop (see
Fig. 1).
Fig. 2
2. Click on the PROJECT.......NEW or on the Shortcut button as shown in Fig. 3.
Fig. 3
3. This will launch the NEW PROJECT WIZARD to guide the users through the
project creation process. Click on the Next button (Fig. 4) to start the process of
creating a PROJECT FILE.
Fig. 4
4. Click on the BROWSE button to open the browser window as shown in Fig. 5.
Use \PROCHIP\DESIGNS\SCH\LCD as the directory of the project. Enter
LCD.APJ as the project file name. The extension of a project file must be .APJ.
Fig. 5
The name and directory of the design project is specified in this window. All design,
simulation, and other project files must be placed in this project directory.
5. Choose a Part for the Project [ATF1502AS-7JC44]. Also review the Filters that
allow for selection of a specific Speed grade or a Package type. The Device in the
Part Number field must be highlighted in order to go to the next step in the
Wizard as shown in Fig. 6.
Fig. 6
Select the Project
directory and enter
the Project name
6. Select Schematic-Altium as the Software tool for this Design flow.
Fig. 7
With ProChip Designer V4.0 and later, the five possible design flows and their
corresponding design entry types supported are listed in the table below:
Design Flow Design Entry Type
CUPL - Altium CUPL design entry through Altium Protel Design Explorer 99SE
Verilog - Exemplar* Verilog design entry through Exemplar Leonardo Spectrum
VHDL - Altium VHDL design entry through the Altium PeakFPGA
VHDL - Exemplar* VHDL design entry through Exemplar Leonardo Spectrum
Schematic - Altium Schematic design entry through Altium Protel Design Explorer 99SE
Requires Mentor Graphics Leonardo Spectrum software with Atmel CPLD support.
Table 1
7. Click on the nmlkj Done with Parts Button as shown in Fig. 8. The User has the
option of including more parts to the current Project Directory. Click once again
on the Next button.
Fig. 8
8. Proceed to click on the Finish Button to complete the New Project
Wizard and the project creation process.
9. This closes the New Project Wizard and opens the Prochip Designer Window.
The Sources in the Project are shown in the Left window in Fig. 9. The Source
Manager, Logic Synthesis and other Processes are listed in the Left window.
Fig. 9
All Project files created by a process reside under the directory structure of the
Process window. You may then click on the + or - buttons to view the files.
Device
Icon
10. Click on the Device Icon as shown in Fig. 9 [ATF1502AS-7JC44] to view the
Design Flow as shown in Fig. 10. All Design processes for the Prochip Designer
tool are shown in the Design Flow window.
Fig. 10
11. Click on the Device View Tab to view the Device architecture of the device.
Fig. 11
This completes Step 1 of this Tutorial.
Step II: Add a CUPL File
Step II: Add a CUPL File
Schematic capture is the process of capturing a design as a schematic in a computer-aided
design environment. In Altium's Design Explorer Tool (launched through the Atmel
Prochip Designer Interface), the basic workspace for capturing a schematic is called a
schematic sheet. A complete circuit design can use just a single sheet, or it can comprise
a number of electrically linked sheets. Altium (Protel) allows you to create complex
hierarchical and modular designs by linking any number of sheets to form a complete
project.
The Focus of this exercise is to use the Tool to work with Schematics for Programmable
Logic. Once the Project file is created, the next step is to add the Design Source file(s)
into your project. For this tutorial, we will be adding a single Schematic Design file into
the Project.
1. Click on the ADD/EDIT button from the SOURCE MANAGER to open the
Source Manager window. You can also view the Source Manager Help File by
clicking on the Help button within the Source Manager Window to view the
description for different processes.
Fig. 11
Click on the ADD button to add an Altium (Protel) Schematic File to the Project. Select
the LCD.sch file since this is the Source Schematic file.
2. As soon as you click on the 'ADD' button you will see the Altium Design
Explorer 99SE tool being launched. This process can take a few seconds. In this
process, Prochip is setting up its environment since the Altium Schematic tool is
one of the several third party tool interfaces.
Fig. 12
3. Select the LCD.sch file (file is highlighted). Once a file is selected, the EDIT tab
becomes visible. Click once on the EDIT tab to launch Altium's Design
Explorer 99SE tool. Once the Altium tool is launched, Prochip interface remains
in the background. It is possible to view or edit the Schematic files in the Altium-
Design Explorer 99SE environment.
Please note that for users who have previously used Altium's tools or are current
users, it is possible to launch the Atmel edition of the tool directly without going
through the Prochip Designer interface. When launched independently, users will be
required to create a .DDB file (MS access database format file). When a Project is first
opened, users will be asked if Files are to be
Step III: Modify the CUPL File
Step III: Modify the CUPL File
1. In this section, use the EDITOR to modify the LCD.sch file. Use the
PLDSYMBOLS library to add the following components:
3-Input AND Gate {AND3B2 - is a 3-input AND gate with 2 bubbles
(inverted).
An IBUF (Input buffer) and an OBUF (Output Buffer)
A D-type Flip flop {FD} which is clocked with signal GCLK already
shown in the LCD.sch schematic
An IPAD and OPAD
Assign the following Pin numbers:
VHDL tutorial
ProChip Designer - VHDL Quick-Start Tutorial P. 1
ATMEL-PROCHIP DESIGNER
Tutorial 1: Altium VHDL Design Flow
This tutorial will introduce you to the features of ProChip Designer software with the Altium
PeakFPGA used as the VHDL synthesis and simulation tools by walking you through the
Synthesis, Place-and-Route and Simulation processes of an example VHDL Project included
with the software.
Step I : Create a Project Using the "New Project Wizard"
Step II : Add a VHDL Design File
Step III : Synthesize the VHDL Design
Step IV : Place-and-route the Synthesized Design File
Step V : Functional Simulation
Step I: Create a Project using the "New Project Wizard"
Step I: Create a Project using the "New Project Wizard"
Before the design process can be started, a Project File must be created. The ProChip
Designer's New Project Wizard gives designers a very easy way to create a Project File.
1. Click on the START….PROGRAMS….PROCHIP Icon to launch ProChip Designer.
Or double-click on the PROCHIP icon on the desktop.
(1) Click to launch
ProChip Designer
ProChip Designer - VHDL Quick-Start Tutorial P. 2
2. Click on PROJECT .... NEW or double-click on the NEW PROJECT shortcut button to
launch the New Project Wizard.
3. Click on the NEXT button to start the project file creation process.
4. Click on the BROWSE button to open the browser window.
5. Use C:\PROCHIP\DESIGNS\VHDL as the directory of the project.
6. Enter SHIFT.APJ as the project file name. The extension of a project file must be .APJ.
The name and directory of the design project is specified in this window. All design,
simulation, and other project files must be placed in this project directory.
(2) Click to
create new
project
(3) Click NEXT
to start
(5) Select the project
directory
(6) Enter the project
file name
(4) Click on
BROWSE
ProChip Designer - VHDL Quick-Start Tutorial P. 3
7. Choose a device for the project. [ATF1502AS-7AC44]. Also review the Filters that allow
for selection of a specific Speed Grade or Package Type.
8. Select VHDL - ALTIUM as the software tool for this design flow.
With ProChip Designer V4.0 and later, the five possible design flows and their corresponding
design entry types supported are listed in the table below:
(7) Select the
device type
(8) Select the
design flow
ProChip Designer - VHDL Quick-Start Tutorial P. 4
Design Flow Design Entry Type
CUPL - Altium CUPL design entry through Altium Protel Design Explorer 99SE
Verilog - Mentor Graphics* Verilog design entry through Mentor Graphics LeonardoSpectrum
VHDL - Altium VHDL design entry through the Altium PeakFPGA
VHDL - Mentor Graphics* VHDL design entry through Mentor Graphics LeonardoSpectrum
Schematic - Altium Schematic design entry through Altium Protel Design Explorer 99SE
* Requires Mentor Graphics Leonardo Spectrum software with Atmel CPLD support.
9. Select DONE WITH PARTS so that there will be only one device in this project.
On the other hand, users can select ADD MORE PARTS to include more parts to the
current Project Directory.
10. Click the FINISH button to finish the New Project Wizard and the project creation process.
This closes the New Project Wizard and opens the ProChip Designer window. The Sources
in the project are shown in the Left window.
(9) Select "Done
with parts"
(10) Click FINISH
to end New
Project Wizard
ProChip Designer - VHDL Quick-Start Tutorial P. 5
11. Click on the Device Icon [ATF1502AS-7AC44] to view the Design Flow.
This completes Step I of this Tutorial.
Project Sources Window Information Dialog Box
Message Log Window Project Device Icon
Design Flow Window Project File Window
ProChip Designer - VHDL Quick-Start Tutorial P. 6
Step II: Add a VHDL Design File
Step II: Add a VHDL Design File
Once the Project File is created, the next step is to add the design source file(s) into your project.
For this tutorial, we will be adding a single-level hierarchy VHDL design file into the project.
1. Click on the ADD/EDIT button from Source Manager to open the Source Manager Window.
You can view the Source Manager Help File by clicking on the Help button within the
Source Manager Window to view the description for the different processes.
2. In the Source Manager Window, click on the ADD button to add a VHDL design file to the
project.
3. In the File Manager Window, select SHIFTER.VHD from the [~\Prochip\designs\vhdl]
directory as the source design file for this project.
The Source Manager Window must have all source VHDL files included with the first file as the
Top-Order VHDL file. You should not include Test bench files in the Source Manager Window.
When adding files, ensure that Top-Down order is maintained. Ordering of the design files can
be arranged in the ProChip Project Window by drag-and-drop the files into the appropriate
location after all the files are added through the Source Manager.
4. To edit the VHDL design file, first select the VHDL file (SHIFT.VHD) that you want to edit
in the Source Manager window.
(1) Click Add/Edit
to open Source
Manger
Window
(2) Click Add
to add
design file
(3) Select
VHDL
source file
ProChip Designer - VHDL Quick-Start Tutorial P. 7
5. Click on the EDIT button to view the VHDL file using the Atmel HDL Planner Editor.
This shift register VHDL design has an 8-bit data input and an 8-bit data output. The registers are
asynchronously reset using the Rst input. When Rst is not active, the registers shift (rotate) one
bit to the left whenever there is a rising edge detected on the Clock (CLK) input.
After reviewing the 8-bit Barrel Shifter example, click on the OK button and proceed to the
LOGIC SYNTHESIS portion of the Design Flow.
You have now completed Step II of this Tutorial.
(4) Select
VHDL
source file
(5) Click Edit
to edit
source file
HDL Planner
Editor Window
ProChip Designer - VHDL Quick-Start Tutorial P. 8
Step III: Synthesize the VHDL Design
Step III: Synthesize the VHDL Design
In this step, you will synthesize your VHDL design into optimized/minimized logic equations
through the Altium VHDL synthesis tool (Metamor).
1. Click on the VHDL - METAMOR button in the Design Flow Window to open the Logic
Synthesis Window.
2. Click on the COMPILE button to start the VHDL Synthesis process.
Logic Synthesis requires an Input File: Shifter.vhd (VHDL Source File)
Action: Synthesis will compile the VHDL Source code into an EDIF file. The default tool is
Altium Metamor Synthesis tool. Synthesis is a straightforward process, particularly when
dealing with a single VHDL source file. The result of Synthesis is an EDIF net list, which is used
by the Device Fitter to place and route your design.
Output: Shifter.EDF file. This will be the Top-level VHDL file name.edf. Examine the options
available and proceed to compile your source file. You may refer to the HELP file for more
description.
(1) Launch Logic
Synthesis tool
(2) Start the
Synthesis
process
ProChip Designer - VHDL Quick-Start Tutorial P. 9
Upon the completion of the synthesis process, the synthesis LOG and/or the net list EDIF files
will open in NOTEPAD as shown below if the "view file when compiled" options are checked in
the Logic Synthesis window.
The EDIF Version supported is 2.00
This completes Step III of this Tutorial.
ProChip Designer - VHDL Quick-Start Tutorial P. 10
Step IV: Use ATMEL Fitter to Fit the Synthesized Design File
Step IV: Use ATMEL Fitter to Fit the Synthesized Design File
In Step III, we completed the Logic Synthesis portion of the Design Flow. Upon successful
compilation, an EDIF output file (with extension .edf) is produced by the VHDL synthesis tool.
An EDIF file contains the net list of the optimized and minimized logic equations. We now need
to map this net list into a specific Atmel PLD architecture using the ATMEL FITTER.
1. You can now proceed to the Device Fitter portion of the Design Flow by clicking on the
ATMEL FITTER button.
You can either use the Default options or specify Fitter properties. Without an EDIF file
selected, the Fitter will not run. In this example, since our target device is an ATF1502AS, the
Tool selected will be the FIT1502.EXE device fitter.
Output files created are JEDEC (.JED) and a FITTER REPORT (.FIT) file. Both these files are
important for you to figure out the Pin assignments for Board Layout and for programming the
Device (In-system or on a Third Party Device Programmer)
(1) Open the
Atmel Fitter
Window
ProChip Designer - VHDL Quick-Start Tutorial P. 11
Please review the Global Device Parameters and Pin/Node Options as well. The Help Files also
show the Device Pin_Node lists for each of the ATMEL CPLDs.
Check the box for GENERATE SIM FILES. The files required for Post-Route Timing [Timing
Simulation] are .VHO and .SDO.
.VHO is a VHDL Output file and .SDO is a Standard Delay Output Format file. At the
minimum, you only need a VHDL Source file for you to generate a JEDEC file and program a
device.
2. When all the fitter options are set, click on the RUN FITTER button to fit the design.
(2) Start the
fitting process
Check "Generate
Sim Files"
ProChip Designer - VHDL Quick-Start Tutorial P. 12
The Fitter Report File is shown below.
This completes Step IV of this Tutorial.
ProChip Designer - VHDL Quick-Start Tutorial P. 13
Step V: Functional Simulation
Step V: Functional Simulation
In this step, you will do a functional simulation of your VHDL design to verify the functionality
of your design. Your VHLD design will be simulated by applying stimulus to your design
through the VHDL Test bench.
1. Click on the ADD/EDIT button in the Test bench Manager box of the Design Flow to add a
Test bench File to the design project.
2. In the Test bench Manager Window, click ADD to add a Test bench file into your project.
3. In the File Selection Window, select TESTSHIF.VHD in the
C:\PROCHIP\DESIGNS\VHDL directory as the VHDL Test bench.
4. Now you can start the VHDL simulator by clicking the VHDL - PEAKFPGA button in the
Functional Simulation box within the Design Flow.
5. In the Functional Simulation Window, click on the "+" mark next to the Test bench file
(testshif.vhd), select TESTROT as the Test bench, and then click on the SIMULATE button
to open the simulator with the selected Test bench file loaded.
(2) Click to open
Test bench
Manager
(3) Click ADD to
add Test bench
(4) Select the
Test bench file
ProChip Designer - VHDL Quick-Start Tutorial P. 14
You must first select/highlight the Test bench File before clicking on the SIMULATE button in
the Functional Simulation Window.
The Test bench File must be associated with the source VHDL file specified in the Source
Manager.
Now the PeakFPGA tool (VHDL synthesis and simulation) opens and the appropriate Design
and Test bench files will be loaded automatically as shown below.
6. Click on the REBUILD HIERARCHY button and then select the TESTSHIF.VHD file.
Note that the Project Name has now changed to SHIFT_PRE.ACC. The .ACC extension is used
by the Altium Simulation tool to remember the hierarchy.
(5) Click on the
VHDL -
PeakFPGA
button
(6) Select the
Test bench and
click Simulate
Test bench File
Source Design File
ProChip Designer - VHDL Quick-Start Tutorial P. 15
7. Click on the LINK button. A transcript window opens behind the scenes and a shifter.vx file,
which is the simulation executable, is created.
8. Click on LOAD SELECTED SIMULATION button (this button is located next to the
LINK button) to start the simulator.
9. In the SELECT DISPLAY OBJECTS WINDOW, click on the ADD ALL button to view
the waveforms for all the signals. Then click on the CLOSE button to close this window.
The ADD ALL button adds all the signals in the Available Objects Window to the waveform.
The ADD PRIMARIES button adds all signals found in the highest level of your design to the
waveform.
You can use the UP, DOWN buttons to arrange order of the signals to be displayed in the
waveform.
(6) Click on the
Rebuild Hierarchy
button
Select
TESTSHIF.VHD
(7) Click on the
Link button
(8) Click on the Load
Selected Simulation
button
(9) Select Add All
Then Close to
close window
ProChip Designer - VHDL Quick-Start Tutorial P. 16
You only need to select and order the signals once for a given project. By default, the simulator
remembers your most recent signal selections and ordering, and if needed, you can also use the
Save Objects and Load Objects feature to save specific collections of object names and
orderings.
As you can see, the VHDL SIMULATOR window is split into four distinct panes. The top-most
two panes are the Object Display and Waveform windows, respectively. These two windows
are linked for scrolling purposes, and provide you with an up-to-date view of the value (in both
text and waveform formats) of the value of each object you selected previously. Features of these
windows include the ability to zoom and pan through the waveform, drop measurement cursors
and rearrange objects (in terms of their vertical display order) at will.
The center window is the Source Code Display window. This window shows the current line of
code that is being executed in your VHDL design. This window is also where you set
breakpoints. A drop-down list of source files (located up in the toolbar) allows you to select
alternate source files for setting of breakpoints. Single-step features (also controlled from the
toolbar) let you advance simulation one line at a time and see the results in the Source Code
Display and Waveform windows.
The bottom-most window is the Transcript window. This window displays simulator status
messages, and also displays any text I/O output (entered as statements in your VHDL code) that
are directed to the console. VHDL assertion/report statements also appear in this window.
10. Before proceeding with Simulation, click on the SIMULATION OPTIONS button.
Waveform
window
Object Display
window
Source Code
Display window
Transcript
window
(10) Open
Simulation Options
ProChip Designer - VHDL Quick-Start Tutorial P. 17
Vector display format This option specifies how mufti-bit VHDL values (vectors) are to be
displayed. Valid options are binary, octal, decimal and
hexadecimal.
Time unit This option specifies the default time unit to be displayed in
simulation waveforms.
Run to time This option specifies the default end time for simulation. This is the
time value to which the simulator will advance when started using
the Go button. (This value can be changed from within the VHDL
simulator interface if needed.)
Step time This option specifies the default step time. This is the amount of
time that the simulator will advance when the Step button is
selected. (This value can be changed from within the VHDL
simulator interface if needed.)
Max signal depth This option allows you to control how deeply in the hierarchy the
simulator should go when extracting and displaying signals for
possible viewing. For simulation models such as post-route models,
this option can speed the time needed for the simulator to load your
design. [ This is not really relevant for this Tutorial]
ProChip Designer - VHDL Quick-Start Tutorial P. 18
11. To start the simulation process and advance the time to the previously specified simulation
end time (the Run to time), click on the green GO button.
As the simulation progresses, the current simulation time is displayed in the status bar at the
bottom of the application frame, and status messages (if any) are displayed in the Transcript
window.
After the simulation has finished, a waveform showing the simulation results is displayed as
shown below:
At this point you may be satisfied with the results of simulation (as shown in the Waveform
window), or you may need to investigate the results further. The VHDL simulator has various
features allowing more detailed analysis. For example, you can use the Source Code Display
window to set one or more break points in the code to investigate the control flow through your
design.
The Step button is useful for advancing simulation by a predetermined amount of time, such as
one or more clock cycles. For this project, we have previously set the Step time to 100ns. The
Step time value and other simulation values can be changed at any time by selecting the Options
dialog from within the VHDL simulator.
We can set a Break point as shown above [Notice the red ball icon at line 49] and then press the
Step button until this break point is triggered. Note that a break point can also be set by double clicking
on the line in the window or using the menu.
If you wish to advance the simulator one source file line at a time (to investigate control flow
through conditional statements, for example), you can use the Single-Step buttons (Step Over
and/or Step Into). We could set additional break points, or we could compare the results of
(11) Click on the
Go button
Simulation
results
Break point
is set
ProChip Designer - VHDL Quick-Start Tutorial P. 19
simulation (the values seen on various signals and variables) against our expectations to track
down logic problems.
The VHDL simulator has other features that are documented in the on-line help. For now,
however, let's assume that this design is working as expected and move on to the Post-route
Timing Simulation phase of the tutorial. You can close the VHDL simulator application window
at this point.
This completes Step V of this Tutorial and this is the end of this VHDL Tutorial.
Tutorial: VHDL Design Flow with LeonardoSpectrum
ProChip Designer - LeonardoSpectrum VHDL Quick-Start Tutorial P. 1
ATMEL-PROCHIP DESIGNER
Tutorial: VHDL Design Flow with LeonardoSpectrum
This tutorial will introduce you to the basic features of the ProChip Designer software with
Mentor Graphics LeonardoSpectrum used as the VHDL synthesis tool. You will be going
through step-by-step the synthesis and device fitting processes of an example VHDL project
included with the software.
Before starting this tutorial, you MUST have LeonardoSpectrum properly installed and the
Atmel CPLD library setup as specified in the instructions provided in the ProChip Designer
Installation Guide.
Step I : Create a Project Using the "New Project Wizard"
Step II : Add a VHDL Design File
Step III : Synthesize the VHDL Design
Step IV : Place-and-route the Synthesized Design File
Instructions on how to setup Atmel CPLD libraries in LeonardoSpectrum:
----------------------------------------------------------------------
1. Copy $Prochip\Leonardo_update\cpld.syn to
$MGC\LeoSpec\LS2002c_49\lib directory
2. Copy $Prochip\Leonardo_update\atmlcpld.ini to
$MGC\LeoSpec\LS2002c_49\lib directory
3. Copy $Prochip\Leonardo_update\cpld.vhd to
$MGC\LeoSpec\LS2002c_49\data\modgen directory
4. Copy the text from below to the appropriate place in
$MGC\LeoSpec\LS2002c_49\lib\devices.ini
a)-Attach the line below to the end of device declaration section. The device number "179" is the last device number plus one. If the last device number in original devices.ini file is a different number than "178", the device number should be change to appropriate number.
DEVICE_179=atmel_cpld
b)-Attach the lines below to the end of devices.ini file.
[atmel_cpld]
CONTACT=EPLD Applications\nATMEL Corporatn\n2325 Orchard Parkway\nSan Jose, CA 95131\n\nTel: (408) 436-4333\nFax: (408) 436-4200\nEmail: pld@atmel.com
DIRECTION=BOTH
FAMILY=CPLD
FORM=FPGA
HTML_PAGE=http://www.atmel.com
INI_FILE=atmlcpld
LIBRARY_NAME=cpld
LICENSE_PACKAGE_NAME=atmel
MANUFACTURER=Atmel
NUMBEROFPASSES=4
PROPTIONS=FALSE
SYMBOL_LIBRARY=none
TECHNOLOGY_TYPE=FPGA
VENDOR_NAME=ATMEL Corporation
BMPFILE=atmel16.bmp
Note:
$Prochip points to the directory where Prochip is installed on your machine
$MGC points to the directory where Leonardo Spectrum is installed on your machine.
Step I: Create a Project using the "New Project Wizard"
Step I: Create a Project using the "New Project Wizard"
Before the design process can be started, a Project File must be created. The ProChip
Designer's New Project Wizard gives designers a very easy way to create a Project File.
1. Click on the START….PROGRAMS….PROCHIP Icon to launch ProChip Designer.
Or double-click on the PROCHIP icon on the desktop.
(1) Click to launch
ProChip Designer
ProChip Designer - LeonardoSpectrum VHDL Quick-Start Tutorial P. 2
2. Click on PROJECT .... NEW or double-click on the NEW PROJECT shortcut button to
launch the New Project Wizard.
3. Click on the NEXT button to start the project file creation process.
4. Click on the BROWSE button to open the browser window.
5. Use C:\PROCHIP\DESIGNS\VHDL as the directory of the project.
6. Enter SHIFT.APJ as the project file name. The extension of a project file must be .APJ.
The name and directory of the design project is specified in this window. All design,
simulation, and other project files must be placed in this project directory.
(2) Click to create
new project
(3) Click NEXT
to start
(5) Select the project
directory
(6) Enter the project
file name
(4) Click on
BROWSE
ProChip Designer - LeonardoSpectrum VHDL Quick-Start Tutorial P. 3
7. Choose a device for the project. [ATF1502AS-7AC44]. Also review the Filters that allow
for selection of a specific Speed Grade or Package Type.
8. Select VHDL - Mentor Graphics as the software tool for this design flow.
With ProChip Designer V4.0 and later, the five possible design flows and their corresponding
design entry types supported are listed in the table below:
(7) Select the
device type
(8) Select the
design flow
ProChip Designer - LeonardoSpectrum VHDL Quick-Start Tutorial P. 4
Design Flow Design Tool Type
CUPL - Altium CUPL design entry through Altium Protel Design Explorer 99SE
Verilog - Mentor Graphics* Verilog design entry through Mentor Graphics LeonardoSpectrum
VHDL - Altium VHDL design entry through the Altium PeakFPGA
VHDL - Mentor Graphics* VHDL design entry through Mentor Graphics LeonardoSpectrum
Schematic - Altium Schematic design entry through Altium Protel Design Explorer 99SE
* Requires Mentor Graphics LeonardoSpectrum software with a mufti-vendor Level 3 license.
9. Select DONE WITH PARTS so that there will be only one device in this project.
On the other hand, users can select ADD MORE PARTS to include more parts to the
current Project Directory.
10. Click the FINISH button to finish the New Project Wizard and the project creation process.
This closes the New Project Wizard and opens the ProChip Designer window. The Sources
in the project are shown in the Left window.
(9) Select "Done
with parts"
(10) Click FINISH
to end New
Project Wizard
ProChip Designer - LeonardoSpectrum VHDL Quick-Start Tutorial P. 5
11. Click on the Device Icon [ATF1502AS-7AC44] to view the Design Flow.
This completes Step I of this Tutorial.
Project Sources Window Information Dialog Box
Message Log Window Project Device Icon
Design Flow Window Project File Window Tool Configuration button
ProChip Designer - LeonardoSpectrum VHDL Quick-Start Tutorial P. 6
Step II: Add a VHDL Design File
Step II: Add a VHDL Design File
Once the Project File is created, the next step is to add the design source file(s) into your project.
For this tutorial, we will be adding a single-level hierarchy VHDL design file into the project.
1. Click on the ADD/EDIT button from Source Manager to open the Source Manager Window.
You can view the Source Manager Help File by clicking on the Help button within the
Source Manager Window to view the description for the different processes.
2. In the Source Manager Window, click on the ADD button to add a VHDL design file to the
project.
3. In the File Manager Window, select SHIFTER.VHD from the [~\Prochip\designs\vhdl]
directory as the source design file for this project.
The Source Manager Window must have all source VHDL files included with the first file as the
Top-Order VHDL file. You should not include Test bench files in the Source Manager Window.
When adding files, ensure that Top-Down order is maintained. Ordering of the design files can
be arranged in the ProChip Project Window by drag-and-drop the files into the appropriate
location after all the files are added through the Source Manager.
4. To edit the VHDL design file, first select the VHDL file (SHIFT.VHD) that you want to edit
in the Source Manager window.
(1) Click Add/Edit
to open Source
Manger Window
(2) Click Add
to add design
file
(3) Select
VHDL source
file
ProChip Designer - LeonardoSpectrum VHDL Quick-Start Tutorial P. 7
5. Click on the EDIT button to view the VHDL file using the Atmel HDL Planner Editor.
This shift register VHDL design has an 8-bit data input and an 8-bit data output. The registers are
asynchronously reset using the Rst input. When Rst is not active, the registers shift (rotate) one
bit to the left whenever there is a rising edge detected on the Clock (CLK) input.
After reviewing the 8-bit Barrel Shifter example, close the HDL Planner window and proceed to
the LOGIC SYNTHESIS portion of the Design Flow.
You have now completed Step II of this Tutorial.
(4) Select
VHDL source
file
(5) Click Edit
to edit source
file
HDL Planner
Editor Window
ProChip Designer - LeonardoSpectrum VHDL Quick-Start Tutorial P. 8
Step III: Synthesize the VHDL Design
Step III: Synthesize the VHDL Design
In this step, you will synthesize your VHDL design into optimized/minimized logic equations
through the Mentor Graphics LeonardoSpectrum VHDL synthesis tool.
1. Click on the VHDL - Leonardo button in the Design Flow Window to open the Logic
Synthesis Window.
2. Click on the COMPILE button to launch LeonardoSpectrum.
3. In the LeonardoSpectrum window, go to the Tools menu and enable the Quick Setup setting
or click on the Quick Setup button. This setting allows the user to very easily and quickly
setup the LeonardoSpectrum software to synthesize the target design.
4. In the Technology dialog box, choose FPGA/CPLD Atmel CPLD to target the
VHDL design into the Atmel CPLD (ATF15xx) device.
(1) Launch Logic
Synthesis tool
(2) Click on COMPILE
to launch
LeonardoSpecdtrum
ProChip Designer - LeonardoSpectrum VHDL Quick-Start Tutorial P. 9
5. The Input, Output files and the Working Directory settings are automatically entered into
the LeonardoSpectrum software by ProChip Designer. Therefore, the next step would be to
click on the Run Flow button to synthesize the VHDL design.
When the synthesis process is completed successfully, you can then exit the LeonardoSpectrum
software.
Upon the completion of the synthesis process, the synthesis LOG and/or the net list EDIF files
will open in NOTEPAD as shown below if the "view file when compiled" options are checked in
the Logic Synthesis window.
(4) Select Atmel
CPLD library
(3) Select "Quick
Setup"
(5) Click "Run Flow"
ProChip Designer - LeonardoSpectrum VHDL Quick-Start Tutorial P. 10
The EDIF Version supported is 2.00
This completes Step III of this Tutorial.
ProChip Designer - LeonardoSpectrum VHDL Quick-Start Tutorial P. 11
Step IV: Place-and-route the Synthesized Design File
Step IV: Place-and-route the Synthesized Design File
In Step III, we completed the Logic Synthesis portion of the Design Flow. Upon successful
compilation, an EDIF output file (with extension .edf) is produced by the VHDL synthesis tool.
An EDIF file contains the net list of the optimized and minimized logic equations. We now need
to map this net list into a specific Atmel PLD architecture using the ATMEL FITTER.
1. You can now proceed to the Device Fitter portion of the Design Flow by clicking on the
ATMEL FITTER button.
You can either use the Default options or specify Fitter properties. Without an EDIF file
selected, the Fitter will not run. In this example, since our target device is an ATF1502AS, the
Tool selected will be the FIT1502.EXE device fitter.
Output files created are JEDEC (.JED) and a FITTER REPORT (.FIT) file. Both these files are
important for you to figure out the Pin assignments for Board Layout and for programming the
Device (In-system or on a Third Party Device Programmer)
(1) Open the
Atmel Fitter
Window
ProChip Designer - LeonardoSpectrum VHDL Quick-Start Tutorial P. 12
Please review the Global Device Parameters and Pin/Node Options as well. The Help Files also
show the Device Pin_Node lists for each of the ATMEL CPLDs.
Check the box for GENERATE SIM FILES. The files required for Post-Route Timing [Timing
Simulation] are .VHO and .SDO.
.VHO is a VHDL Output file and .SDO is a Standard Delay Output Format file. At the
minimum, you only need a VHDL Source file for you to generate a JEDEC file and program a
device.
2. When all the fitter options are set, click on the RUN FITTER button to fit the design.
(2) Start the
fitting process
Check "Generate
Sim Files"
ProChip Designer - LeonardoSpectrum VHDL Quick-Start Tutorial P. 13
The Fitter Report File is shown below.
This completes this Tutorial.
Converting ABEL Design Files to CUPL
Converting ABEL Design Files to CUPL
This application note is intended to assist users in converting designs written in ABELHDL
language to CUPL. It also includes an example in ABEL and equivalent representation
in CUPL. Atmel® no longer offers ABEL compilers. Instead users are
encouraged to convert their designs to CUPL and use Atmel Design software tools
such as Atmel-WinCUPL™ or ProChip Designer™.
Background for ABEL and CUPL
ABEL-HDL and CUPL-HDL are behavioral design languages used to describe logic
circuits at a high level. ABEL evolved over the eighties and early nineties as a language
that was written to take advantage of the architectural features of an EPLD. As
late as 1995, Atmel continued to offer ABEL V5.1 (DOS-based program). This
required a Dongle (Key from Data I/O™ Corp. WA) to be plugged into the parallel port
of a PC. Subsequently, Atmel offered an EDA package called Atmel-Synario™ that
included a windows version of the ABEL compiler until the year 2000. Atmel-Synario
V4.11 was an OEM version specific for Atmel EPLDs and ABEL 6.5 (windows version)
was the last version of ABEL-HDL offered by Atmel as part of this package. Subsequently,
Data I/O spun off Synario as an EDA company and a little later Synario's
assets became a part of MINC Inc., another EDA Company. MINC then re-sold specific
tools from the Synario package to Xilinx®, Inc.
Logical Devices, Inc. developed CUPL and the structure of the language has not
changed much for the last two decades. Atmel offered a DOS version of CUPL until
the late nineties. The most recent DOS version of Atmel-WinCUPL shipped by Atmel
was Rev 4.8. Subsequently a windows version of CUPL (Rev 5.x) was offered and
called Atmel-WinCUPL.
ABEL/CUPL
Design File
Conversion
Application
Note
Rev. 3303A-PLD-08/02
2 ABEL/CUPL Design File Conversion
3303A-PLD-08/02
Compiler and Tool
Options
The CUPL compiler is available in Atmel-WinCUPL Version 5.2.16 software as well as
part of Atmel-ProChip Designer that uses a Third Party tool from Altium™ called Design
Explorer™ 99SE.
For simple designs, users are encouraged to use Atmel-WinCUPL which is a free tool
and available for download from Atmel's website.
The ABEL compiler (Rev. 6.5) used to compile the ABEL example was part of Atmel-
Synario Version 4.11 software, which is no longer offered.
Process of Conversion of
an ABEL Example File to
CUPL
The conversion is presented in the form of a Table (Table 1) and shows comparative
implementation in ABEL and CUPL. Users can first go through this example and then
refer to "Overview of Syntax Differences between ABEL and CUPL" on page 7 for Syntax
details. Simulation files are not required for every design unless users specifically
want to functionally generate a set of Test Vectors that can be applied on a Third Party
Programmer hardware. The process of writing Test vector files is listed in the section
titled "Converting an ABEL Simulation Input File to CUPL" on page 5.
Please note that in ABEL, it is possible to include Test vectors as part of the main
source file. The ABEL compiler will then extract the test vectors (.TMV) for simulation
purposes and to append the test vectors to the Jedec file.
Description of Example The following example in Table 1 shows how to implement a 4-bit loadable counter that
can count up (from 0-15 in decimal mode) as well as count down (15-0). In this example,
the counter resets to zero if rst is one. If ld is set, then the output (q3..q0) will be set to
the input (d3..d0). If cnten is set, then the counter is enabled and will count up/down
depending on the state of u_d (control pin). If cnten is not set the output will be held to
the last count.
3
ABEL/CUPL Design File Conversion
3303A-PLD-08/02
Table 1. 4-bit Loadable Counter Implementation
ABEL Source File (.ABL) CUPL Source File (.pld)
Module unicnt
Interface (d3..d0, clk, rst, cnten, ld, u_d -> q3..q0);
Title '4 bit counter with load, reset, count up, count down';
//Constants
X, C, Z = .X., .C., .Z. ;
Name counter;
Part no 00 ;
Date 6/30/02;
Revision 01;
Designer Engineer;
Company XYZ;
Assembly None;
Location San Jose;
Device virtual;
/*See Table 6 for description of each field in the header section*/
//Inputs
d3..d0 pin;
clk pin;
rst pin;
cnten pin;
ld pin;
u_d pin;
/* Input */
pin = [d3..0];
pin = clk;
pin = rst;
pin = cnten;
pin = ld;
pin = u_d;
//Output
q3..q0 pin is_type 'reg';
//Counter output, user can choose reg_d to select //D type
registers or reg_t for T-type Registers.
/* Output */
pin = [q3..0];
//Sets
data = [d3..d0]; //Data Set
count = [q3..q0]; //Counter Set
// Forming group of signals into a vector
MODE = [cnten,ld,u_d];
/* Data Set */
field data = [d3..0];
field count = [q3..0]; /* field is a way to group a set of signals */
/* Forming a group of signals into a vector */
field MODE = [cnten,ld,u_d];
// Selecting different modes base on vector values
// possible values are 0, 1, or don't cares
LOAD = (MODE == [X, 1, X]);
HOLD = (MODE == [0, 0, X]);
UP = (MODE == [1, 0, 1]);
DOWN = (MODE == [1, 0, 0]);
/* Selecting different modes based on vector values possible
values are 0, 1, or don't cares */
load = MODE:'b'X1X;
hold = MODE:'b'00X;
up = MODE:'b'101;
down = MODE:'b'100;
4 ABEL/CUPL Design File Conversion
3303A-PLD-08/02
Equations
when LOAD then count := data;
// Abel does things sequentially
else when UP then count := count + 1;
// Count up logic
else when DOWN then count := count - 1;
// Count down logic
else when HOLD then count := count;
// Hold otherwise
count.clk = clk; // Assign Flip-Flop clock pin
count.ar = rst; // Assign asynchronous reset for Flip-Flop
END unicnt //This specifies the end of the //equations section of
the module
/* The following will create a Moore FSM where the output will be
a function of the state */
SequenceD count { /* Explicitly choose D-FF, */
$REPEAT i = [0..15] /* This macro will expand from 0 to 15 */
Present 'h'{i} /* similar to case statement for each state */
If !load & up Next 'h'{(i+1)%16}; /* Logic for count up */
If !load & down Next 'h'{((i-1)+16)%16}; /* Logic for count down */
If !load & hold Next 'h'{i}; /* Logic for hold */
$REPEND}
APPEND count.d = load & data; /* This is when we want to load */
count.AR = rst; /* Asynchronous reset */
count.ck = clk;
ABEL Test Vectors CUPL Test Vectors
test_vectors ([clk, rst, cnten, ld, u_d, data] -> count)
[.c., 1, 0, 0, 0, 0] -> 0;
[.c., 0, 0, 1, 0, 8] ->8 ;
[.c., 0, 1, 0, 1, 8] -> 9;
[.c., 0, 1, 0, 1, 8] -> 10;
[.c., 0, 1, 0, 1, 8] -> 11;
[.c., 0, 1, 0, 1, 8] -> 12;
[.c., 0, 0, 1, 0, 15] -> 15;
[.c., 0, 1, 0, 0, 15] -> 14;
[.c., 0, 1, 0, 0, 15] -> 13;
[.c., 0, 1, 0, 0, 15] -> 12;
[.c., 1, 0, 0, 0, 15] -> 0;
// The abel test vectors can be included in the source code
file(.abl).
See "Converting an ABEL Simulation Input File to CUPL" on
page 5 for further information.
CUPL test vectors cannot be part of the Source file. A separate
(.si) file must be created as described on page 5.
See "Converting an ABEL Simulation Input File to CUPL" on
page 5 for further information.
Table 1. 4-bit Loadable Counter Implementation (Continued)
ABEL Source File (.ABL) CUPL Source File (.pld)
5
ABEL/CUPL Design File Conversion
3303A-PLD-08/02
Converting an ABEL
Simulation Input File
to CUPL
This section describes the features of ABEL and CUPL Simulation input files and the
process of converting an ABEL Simulation input file to a CUPL file. Test vectors must be
created for the simulator to function and they specify the expected functional operation
of a PLD by defining the outputs as a function of the inputs. Test vectors are also used
to do functional testing of a device once it has been programmed, to see if the device
functions as expected.
CUPL There are two tools within Atmel-WinCUPL that can be used to simulate the test vectors.
• WinSim® is a windows-based graphical tool used for creating and editing simulator
(.si) input files and for displaying the results of the simulation in the form of a
waveform. The CUPL simulator requires that a CUPL source file be successfully
compiled prior to running simulation. The CUPL compiler generates an intermediate
file (with extension .ABS) that is used by the simulator to run functional simulation.
• CSIM is a device-specific simulator and VSIM is a virtual simulator (virtual device)
that is text-based and inherently a DOS process. A test specification source file
(file name.si) is the input to CSIM/VSIM. The ATF15xx family of Atmel devices only
runs VSIM.
The source file may be created using a standard text editor in non-document mode. The
source specification file contains three major parts: header information and title block,
ORDER statement and a VECTORS statement.
A .si file must have the same header information as .pld (source) to ensure that the
proper files, including current revision level, are being compared against each other.
Therefore, first copy .pld to .si and then use a text editor to delete everything in .si,
except the header and title block.
ABEL There are two ways to specify test vectors. The most common method is to place test
vectors in the ABEL source file. If the user decides to use this method, the Project Navigator
(Atmel-Synario) will detect the presence of test vectors in the source file and
create a "dummy" test vector file. This file indicates to the system that the actual test
vectors are in the ABEL source file.
The other way to specify test vectors is to create a "real" test vector file by selecting the
"New" menu item in the Source menu and then choosing test vectors. Note that test vector
files have the .ABV file extension and must have the same name as the top-level
module. The user must use the Module and End statements exactly as he does when
creating an ABEL source file.
Table 2 shows comparative implementation of describing test vectors for ABEL simulation
(.ABV) and CUPL simulation (.SI) for the 4-bit counter.
6 ABEL/CUPL Design File Conversion
3303A-PLD-08/02
Table 2. Test Vector Description
Counter.abv Counter.si
Module unicnt
"Constants
X, C, Z = .X., .C., .Z.;
//Inputs
d3..d0 pin;
clk pin;
rst pin;
cnten pin;
ld pin;
u_d pin;
//Output
q3..q0 pin istype 'reg';
//Counter output,
//Sets
data = [d3..d0]; //Data Set
count = [q3..q0]; //Counter Set
test_vectors
([clk, rst, cnten, ld, u_d, data] -> count)
[.c., 1, 0, 0, 0, 0] -> 0;
[.c., 0, 0, 1,0, 8] ->8;
[.c., 0, 1, 0,1, 8] ->9;
[.c., 0, 1, 0,1, 8] ->10;
[.c., 0, 1, 0,1, 8] ->11;
[.c., 0, 1, 0,1, 8] ->12;
[.c., 0, 0, 1, 0, 15] -> 15;
[.c., 0, 1, 0, 0, 15] -> 14;
[.c., 0, 1, 0, 0, 15] -> 13;
[.c., 0, 1, 0, 0, 15] -> 12;
[.c., 1, 0, 0, 0, 15] -> 0;
End
Name counter;
Part no 00 ;
Date 6/30/02 ;
Revision 01 ;
Designer Engineer ;
Company XYZ ;
Assembly None ;
Location San Jose;
Device virtual ;
ORDER: clk, rst, cnten, ld, u_d, d3, d2, d1,
d0, q3, q2, q1, q0;
VECTORS:
c 1000 0000 LLLL
c 0010 1000 HLLL
c 0101 1000 HLLH
c 0101 1000 HLHL
c 0101 1000 HLHH
c 0101 1000 HHLL
c 0010 1111 HHHH
c 0100 1111 HHHL
c 0100 1111 HHLH
c 0100 1111 HHLL
c 1000 1111 LLLL
7
ABEL/CUPL Design File Conversion
3303A-PLD-08/02
Overview of Syntax
Differences between
ABEL and CUPL
The following section includes various tables that show the syntax differences between
the two languages pertaining to extensions, operators and keywords.
Reserved Identifiers
(Keywords)
Table 3. Syntax Differences
ABEL Keyword CUPL Keyword
ASYNCH_RESET None
CASE IF (in a CONDITION statement)
DECLARATIONS None
DEVICE PART NO
ELSE ELSE
END }
ENDCASE }
ENDWITH None
EQUATIONS None
EXTERNAL None
FLAG (OBSELETE) None
FUNCTIONAL_BLOCK None
FUSES FUSES
GOTO PRESENT, NEXT
IF IF (In a CONDITION statement)
IN None
INTERFACE None
ISTYPE Note 1
LIBRARY None
MACRO FUNCTION
MODULE None
NODE NODE/PINNODE
OPTIONS None
PIN PIN
PROPERTY PROPERTY (Note 2)
STATE PRESENT and $DEFINE
STATE_DIAGRAM SEQUENCE
STATE_REGISTER No equivalent but can be achieved with FIELD
SYNC_RESET None
TEST_VECTORS Generated .SI file
THEN NEXT
8 ABEL/CUPL Design File Conversion
3303A-PLD-08/02
Notes: 1. Instead of using "ISTYPE" in ABEL, one can use a suitable extension in CUPL.
Extensions such as .D (specify input to a D-type flip flop) can be used with any pin
name. The compiler will determine whether it is valid. The ISTYPE statement defines
attributes (characteristics) of signals (pins and nodes) in ABEL. Please refer to Table
4 for further details on ATTRIBUTES. The user should use signal attributes to remove
ambiguities in architecture-independent designs. Even when a device has been specified,
using attributes ensures that the design operates consistently if the device is
changed later.
2. Property statements are used specifically for the ATF1500A and the ATF15xx family
of devices to describe specific feature of the device that can be used by the Device
Fitter to generate the appropriate FITTER and Jedec files.
For Example:
Atmel-ABEL defines such as: ATMEL property 'DEDICATED_INPUT ON';
Atmel-CUPL defines such as: Property ATMEL {DEDICATED_INPUT ON};
TITLE NAME
TRACE None
TRUTH_TABLE TABLE
WHEN No equivalent but can be replaced by
CONDITION {}
WITH None
Table 4. Attributes Table
Signal Attributes Description
'buffer' No Inverter in Target Device
'collapse' Collapse (remove) this signal
'com' Combinational output
'dc' Unspecified logic is don't care
'invert' Inverter in Target Device
'keep' Do not collapse this signal from equations
'neg' Unspecified logic is 1
'pos' Unspecified logic is 0.
'retain' Do not minimize this output. Preserve redundant product
terms
'reg' Clocked Memory Element
'reg_d' D Flip-flop Clocked Memory Element
'reg_g' D Flip-flop Gated Clocked Memory Element
'reg_jk' JK Flip-flop Clocked Memory Element
'reg_sr' SR Flip-flop Clocked Memory Element
'reg_t' T Flip-flop Clocked Memory Element
'xor' XOR Gate in Target Device
Table 3. Syntax Differences (Continued)
ABEL Keyword CUPL Keyword
9
ABEL/CUPL Design File Conversion
3303A-PLD-08/02
Comments in ABEL and
CUPL
ABEL: Comments begin with a double quotation mark (") or double forward slash (//).
CUPL: Comments begin with /* and end with */.
Number Representation
in Different Bases
Header Information
Keywords
Logical Operator
Table 5. Number Representation in Different Bases
Base Name Base
Symbol
ABEL CUPL
Binary 2 ^b 'b'
Octal 8 ^o 'o'
Decimal 10 ^d 'd'
Hexadecimal 16 ^h 'h'
Table 6. Header Information Keywords
ABEL CUPL Description
Module Name Just a file name.
Title None
Used to give a title or description for the
module. (Optional)
None Part no
The part number for the particular PLD
design.
None Revision
Begin with 01 when first creating a file and
increment each time a file is altered.
None Date
Change to the current date each time a
source file is altered.
None Designer Specify the designer's name.
None Company Specify the company's name.
None Assembly
Give the assembly name or number of the PC
board.
None Location The abbreviation LOC can be used.
None Device
Used to set the default device type for the
compilation.
Table 7. Logical Operator
ABEL CUPL Description
! ! NOT (ones complement)
& & AND
# # OR
$ $ XOR(exclusiveOR)
! $ ! $ XNOR (exclusive NOR)
10 ABEL/CUPL Design File Conversion
3303A-PLD-08/02
Arithmetic Operators CUPL arithmetic operators can only be used inside $REPEAT and $MACRO blocks.
Relational Operators
Assignment Operators
Table 8. Arithmetic Operators
ABEL CUPL Description
- - Subtraction
+ + Addition
* * Multiplication
/ / Division
% % Modulus
<< None Shift left by bits
>> None Shift right by bits
Table 9. Relational Operators
ABEL CUPL Description
== None Equal
! = None Not equal
< None Less than
<= None Less than or equal
> None Greater than
>= None Greater than or equal
Table 10. Assignment Operators
ABEL CUPL Set Description
= = ON(1) Combinational or detailed assignment
: = = ON(1) Implied registered assignment
? = None DC(X) Combinational or detailed assignment
?:= None DC(X) Implied registered assignment
?:= None DC(X) Implied registered assignment
11
ABEL/CUPL Design File Conversion
3303A-PLD-08/02
Operator Priority
Dot Extension The dot extensions valid for pins or specific signals in CUPL as well as ABEL are listed
in Table 12.
Table 11. Operator Priority
ABEL CUPL Priority Description
- None 1 Negate
! ! 1 NOT
& & 2 AND
<< None 2 Shift left
>> None 2 Shift right
* * 2 Multiply
/ / 2 Unsigned division
% % 2 Modulus
+ + 3 Add
- - 3 Subtract
# # 3 OR
$ $ 3/4 XOR: exclusive OR
!$ None 3 XNOR: exclusive NOR
== None 4 Equal
!= None 4 Not equal
< None 4 Less than
<= None 4 Less than or equal
> None 4 Greater than
>= None 4 Greater than or equal
Table 12. Dot Extension
ABEL CUPL Description
.ACLR None Asynchronous clear
.ASET None Asynchronous set
.CLK .CK Clock input to an edge-triggered flip-flop
.CLR None Synchronous clear
.COM None
Combinational feedback normalized to the pin
value
.OE .OE Output enable
.PIN None Pin feedback
.SET None Synchronous set
.AP .AP Asynchronous preset
.AR .AR Asynchronous reset
12 ABEL/CUPL Design File Conversion
3303A-PLD-08/02
Notes: 1. The .CKMUX dot extension used in CUPL is specific to the Atmel ATV750B and
ATF750C devices. The .CKMUX extension is used to connect the clock input of a register
to the Synchronous clock pin. This is needed because some devices have a
multiplexer for connecting the clock to one set of pins.
2. .DFB and .DQ on CUPL are only used for D-type flip-flop. However, .FB and .Q in
ABEL can be used for any type of flip-flops such as D, T, JK, SR flip-flops.
.CE .CE Clock-enable input to a gated-clock flip-flop
.D .D Data input to a D-type flip-flop
.J .J J input to a JK-type flop-flop
.K .K K input to a JK-type flip-flop
.LD None Register load input
.LE None Latch-enable input to a latch
.LH .LE Latch-enable (high) to a latch
.PR .PR Register preset
.Q None Register feedback
.R .R R input to an SR-type flip-flop
.RE None Register reset
.S .S S input to an SR-type flip-flop
.SP .SP Synchronous register preset
.SR .SR Synchronous register reset
.T .T T input to a T-type (toggle) flip-flop
Note 1 .CKMUX Clock multiplexer selection
.FB (Note 2) .DFB D registered feedback path selection
.Q (Note 2) .DQ Q output of D-type flip-flop
None .INT Internal feedback path for registered macro cell
None .IO Pin feedback path selection
None .IOCK Clock for pin feedback register
None .IOD Pin feedback path through D register
None .IOL Pin feedback path through latch
None .L D input of transparent latch
None .LEMUX Latch enable multiplexer selection
None .LFB Latched feedback path selection
None .LQ Q output of transparent input latch
None .OEMUX Tri-state multiplexer selection
None .TFB T registered feedback path selection
Table 12. Dot Extension (Continued)
ABEL CUPL Description
13
ABEL/CUPL Design File Conversion
3303A-PLD-08/02
Extensions Applicable
for Atmel EPLD Devices
Table 13 lists specific extensions valid for Atmel EPLD devices.
Table 13. Valid Atmel EPLD Device Extensions
Atmel PLDs Valid Extensions
ATF16V8B/BQ/BQL OE, D
ATF16V8C/CZ
ATF20V8B/BQ/BQL
ATF20V8C/CQ/CQZ
ATF22V10C/CQ/CQZ OE, D, AR, SP
ATF22LV10C/CZ/CQZ
ATV750/L D, AR, CK, OE, SP, DFB, IO
ATV750B/BL D, T, AR, CK, CKMUZ, OE, SP, DFB, IO
ATF750C/CL/LVC/LVCL
ATF1500A/AL/ABV D, AR, CK, CE, OE, AP, IO, T, L, LE
ATV2500B/BL/BQ/BQL D, T, AR, CK, OE, SP, IO, CE
ATF2500C/CQ/CQL
ATF1502AS/ASL/ASV/ASVL D, T, S, R, OE, OEMUX, CK, CKMUX, AR,
DQ, LQ, IO
ATF1504AS/ASL/ASV/ASVL
ATF1508AS/ASL/ASV/ASVL
Printed on recycled paper.
© Atmel Corporation 2002.
Atmel Corporation makes no warranty for the use of its products, other than those expressly contained in the Company's standard warranty
which is detailed in Atmel's Terms and Conditions located on the Company's web site. The Company assumes no responsibility for any errors
which may appear in this document, reserves the right to change devices or specifications detailed herein at any time without notice, and does
not make any commitment to update the information contained herein. No licenses to patents or other intellectual property of Atmel are granted
by the Company in connection with the sale of Atmel products, expressly or by implication. Atmel's products are not authorized for use as critical
components in life support devices or systems.
Converting Xilinx Coolrunner Designs to Atmel ATF15xx low
Converting Xilinx Coolrunner Designs to Atmel ATF15xx low
power Family of CPLDs.
______________________________________________________________________________________
This application note shows a user the process of converting a discontinued Xilinx
Coolrunner(formerly Phillips family of CPLDs) Family of Programmable Logic Devices to Atmel
ATF15xx Family.
! Introduction
! Table of Devices with Atmel Equivalents
! Low Power benefits of Atmel ATF15xx Family of CPLDs
! Design Conversion Steps
! Conversion Issues
Introduction
In Q4 2000, Xilinx announced that production of a family of PLDs that had been acquired from
Phillips Semiconductor Corporation would be discontinued. The affected Xilinx products for which
Atmel equivalents are available include:
1. XCR3xxx/5xxx (3.3V & 5V XPLA Original)
2. XCR5xxxA/3xxxC/5xxxC (3.3V & 5V XPLA Enhanced)
3. XCR22LV10/22V10 (3.3V & 5V 22V10)
Atmel ATF15xxASL is a pin compatible replacement for the XCR5xxx (5V XPLA Original) and
XCR5xxxC (5V XPLA Enhanced). PCB boards do not require a re-spin for design migration to the
Atmel equivalents. Users can re-compile their ABEL, PHDL (Phillips version of ABEL), VHDL, or
Synario Schematic design files into ATF15xxASL using Atmel Software Design tools.
Atmel's ATF22LV10C/CQ/CQZ (3.3V version of the standard 22V10) and the
ATF22V10C/CQ/CQZ (5V version of the standard 22V10) are drop-in replacements for the
XCR22LV10 and XCR22V10 respectively. Since the 22V10s are JEDEC-compatible, no redesign
is required. Users can use the appropriate Atmel device type from the Third Party Programmer
menu(for e.g. Data-I/O Uni site, BP-1200) to program the Atmel ATF22V10C with the same
JEDEC file (programming file).
Table of Devices with Atmel Equivalents
Table 1 lists two alternative Atmel device for each Xilinx coolrunner device.
Use the "Speed match" column if power consumption is not an important design constraint.
However, devices in this column are all standard power devices, meaning that the Icc
consumption will be higher compared to their Coolrunner counterparts.
Use the low power Atmel equivalents, if Current consumption is an important Design criteria.
However there is a speed penalty. Table 2 is a representative snapshot of equivalent devices.
Please refer to an Atmel data sheet for detailed offering of speed grades. The same applies to the
Coolrunner devices
Xilinx P/N Atmel Cross (Speed Match)
Use this if Speed is an
important factor
Atmel Cross (Power Match)
Use this if Icc is an important
Design constraint
XCR22LV10-10PC28C ATF22LV10C-10JC ATF22LV10CQZ-30JC
XCR22V10-7PC28C ATF22V10C-7JC ATF22V10CQZ-20JC
XCR5032-7PC44C ATF1502AS-7JC44 ATF1502ASL-25JC44
XCR5032-7VQ44C ATF1502AS-7AC44 ATF1502ASL-25AC44
XCR5032C-7PC44C ATF1502AS-7JC44 ATF1502ASL-25JC44
XCR5032C-7VQ44C ATF1502AS-7AC44 ATF1502ASL-25AC44
XCR5064-7PC44C ATF1504AS-7JC44 ATF1504ASL-20JC44
XCR5064-7PC68C ATF1504AS-7JC68 ATF1504ASL-20JC68
XCR5064-7PC84C ATF1504AS-7JC84 ATF1504ASL-20JC84
XCR5064-7PQ100C ATF1504AS-7QC100 ATF1504ASL-20QC100
XCR5064-7VQ44C ATF1504AS-7AC44 ATF1504ASL-20AC44
XCR5064C-7PC44C ATF1504AS-7JC44 ATF1504ASL-20JC44
XCR5064C-7PQ100C ATF1504AS-7QC100 ATF1504ASL-20QC100
XCR5064C-7VQ44C ATF1504AS-7AC44 ATF1504ASL-20AC44
XCR5128-10PC84C ATF1508AS-10JC84 ATF1508ASL-20JC84
XCR5128-10PQ100C ATF1508AS-10QC100 ATF1508ASL-20QC100
XCR5128-10PQ160C ATF1508AS-10QC160 ATF1508ASL-20QC160
XCR5128-10VQ100C ATF1508AS-10AC100 ATF1508ASL-20AC100
XCR5128-7PC84C ATF1504AS-7JC84 ATF1508ASL-20JC84
XCR5128-7PQ100C ATF1508AS-7QC100 ATF1508AS-20QC100
XCR5128-7PQ160C ATF1508AS-7QC160 ATF1508ASL-20QC160
XCR5128-7VQ100C ATF1508AS-7AC100 ATF1508ASL-20AC100
XCR5128C-10VQ100C ATF1508AS-10AC100 ATF1508ASL-20AC100
XCR5128C-15VQ100C ATF1508AS-15AC100 ATF1508ASL-20AC100
XCR5128C-7VQ100C ATF1508AS-7AC100 ATF1508ASL-20AC100
XCR3032-12PC44C ATF1500ABV-12JC44 ATF1502ASV-20JC44
XCR3032-12VQ44C ATF1500ABV-12AC44 ATF1502ASV-20AC44
XCR3032A-10PC44C ATF1500ABV-12JC44 ATF1502ASV-20JC44
XCR3032A-10VQ44C ATF1500ABV-12AC44 ATF1502ASV-20AC44
XCR3032C-10PC44C ATF1500ABV-12JC44 ATF1502ASV-20JC44
XCR3032C-10VQ44C ATF1500ABV-12AC44 ATF1502ASV-20AC44
XCR3032C-12PC44C ATF1500ABV-12JC44 ATF1502ASV-20JC44
XCR3032C-12VQ44C ATF1500ABV-12AC44 ATF1502ASV-20AC44
The ATF1500ABV (non-ISP) is suggested to match the speed offering. The ATF1500ABV should be
considered if the Design is not using JTAG port pins for ISP.
XCR3064-12PC44C ATF1504ASV-15JC44 ATF1504ASVL-20JC44
XCR3064-12PQ100C ATF1504ASV-15QC100 ATF1504ASVL-20QC100
XCR3064-12VQ44C ATF1504ASV-15AC44 ATF1504ASVL-20AC44
XCR3064A-10PC44C ATF1504ASV-15JC44 ATF1504ASVL-20JC44
XCR3064A-10VQ100C ATF1504ASV-15AC100 ATF1504ASVL-20AI100
XCR3064A-10VQ44C ATF1504ASV-15AC44 ATF1504ASVL-20AC44
XCR3218-12PC84C ATF1508ASV-15JC84 ATF1508ASVL-20JC84
XCR3128-12PQ100C ATF1508ASV-15QC100 ATF1508ASVL-20QC100
XCR3128-12PQ160C ATF1508ASV-15QC160 ATF1508ASVL-20QC160
XCR3128-12VQ100C ATF1508ASV-15AC100 ATF1508ASVL-20AC100
XCR3128-12VQ100C ATF1508ASV-15AI100 ATF1508ASVL-20AC100
XCR3128-15PC84C ATF1508ASV-15JC84 ATF1508ASVL-20JI84
XCR3128-15PQ100C ATF1508ASV-15QC100 ATF1508ASVL-20QC100
XCR3128-15PQ160C ATF1508ASV-15QC160 ATF1508ASVL-20QC160
XCR3128-15VQ100C ATF1508ASV-15AC100 ATF1508ASVL-20AC100
XCR3128A-7VQ100C ATF1508ASV-15AC100 ATF1508ASVL-20AI100
Table 1
Low Power benefits of Atmel ATF15xx Family of CPLDs
The ATF15xx family includes the ATF1502AS, ATF1504AS and the ATF1508AS. The devices
have In-system programming (ISP) capability and are offered in low voltage/low power variations
and varying speed grades. The "L" mode (also called standby or sleep mode) refers to the low
power mode whereas "PD" refers to the use of specific Pins to power down the device. Standard
power devices are typically offered in faster speed grades and burn more power.
The current (Icc) consumption of a PLD in varying modes of operation is shown in Table 2.
Please refer to the individual device Data sheets for more information on power consumption. The
Atmel devices use approximately the same Icc when operating in the L mode when compared to
their Coolrunner counterparts.
Device Description "L" Mode PD Mode
ATF150xASL 5 V low power device 10µA (typ) Not applicable
ATF150xASVL 3.3 V low power device 5µA (typ) Not applicable
ATF150xASV 3.3 V standard power device Not applicable 750 µA
ATF150xAS 5 V standard power device Not applicable 1 mA
Note: x can be either 2, 4, 8, 16.
For example, the ATF1502 is offered as an ATF1502AS, ATF1502ASV, ATF1502ASL and ATF1502ASVL.
Table 2
DESIGN CONVERSION STEPS
Table 3 lists the Atmel conversion process using Atmel PLD Design tools.
Type of Design File
Source File
Extension
Xilinx
Design
Tools
Atmel Solution
ABEL .ABL Web fitter,
Synario
" Use Atmel-Synario to recompile Source ABEL file
" Download the latest fitters from the Atmel website
(SNPCH411.exe file)
" Refit the Design using the existing Pin assignments.
" Use Fitter property "Pin Preassignment = keep"
Note: User can also translate their ABEL Design to
CUPL or VHDL and use Atmel-WinCupl or Atmel
Prochip Designer Tool.
PHDL .PHD XPLA
(Phillips
tool)
" PHDL is similar to ABEL. Change the .PHD file
extension to .ABL and use the solution already
suggested for ABEL files
" Please see the section on Conversion issues for
more details on caveats of converting .PHD to .ABL
VHDL .VHD Web fitter,
Other EDA
vendors
Solution A:
" Use Prochip Designer Tool Environment to
resynthesize your Source design file.
" Use the EDIF (EDIF version 2.00) file with the Atmel
Device Fitter to fit your Design
Solution B:
" Use Atmel Synario tool with VHDL Synthesis option
to recompile your Source VHDL file and proceed
with the Synario tool flow.
Web fitter,
Synario
Solution A:
" Use Atmel-Synario to recompile Source Schematic
file
" Ensure that you have the latest fitters from the
Atmel website (download SNPCH411.exe file)
" Refit the Design using the existing Pin assignments.
" Use Fitter property "Pin Preassignment = keep"
Solution B:
" Use Prochip Designer to launch Design Explorer
and then redraw the schematic.
Schematic .SCH
Protel " Use Atmel Prochip Designer to launch Design
Explorer. Import the Source schematic and proceed
with the compile option.
" The resulting PLD file is first translated to CUPL
source and a .PLA and .EDIF file are created.
" Use the Device Fitter from the Prochip Design Flow
to use the .EDF file for fitting.
Note: Alternatively the Protel tool can also use the .PLA
file with the appropriate Device type to generate the
Fitter report file.
CUPL .PLD Protel/
Logical
Devices
Solution A:
" Recompile the source file using Atmel WinCupl.
" Use the Atmel Property {Preassign = keep} in the
source .PLD file.
Solution B:
" Use Atmel Prochip Designer to launch Design
Explorer. Import the Source .PLD file and proceed
with the compile option.
" The PLD file is compiled and a .PLA and .EDIF file
are created.
" Use the Device Fitter from the Prochip Design Flow
to use the .EDF file for fitting.
Note: Alternatively the Protel Design Explorer tool can
also use the .PLA file with the appropriate Device type
to generate the Fitter report file.
Table 3 Design Conversion Process
CONVERSION ISSUES
1. The Atmel ATF1504AS in 100-pin TQFP package is not entirely pin-compatible with the Xilinx
Cool-runner 64 macrocell device. The Coolrunner device pins 1 and 2 are connected to I/O
pins and pins 99, 100 are no-connects(NC) whereas in the Atmel device pins 99 and 100 are
I/Os and pins 1, 2 are NC pins. The workaround is to either use a Jumper or use the Board
trace to connect pins 99 and 100 to pins 1 and 2.
2. Working with .PHDL (formerly Phillips Hardware Description Language) files: The .X1
extension (applicable to XOR function in Coolrunner) is not supported in ABEL. Instead you
should rely on using an appropriate property in the source ABEL file to enable the Fitter to
use the XOR gate in the ATF15xx Macrocell for a particular Output pin.
Usage in ABEL:
PROPERTY ATMEL 'fitter option';
The fitter option for XOR Synthesis is:
-str xor_synthesis [on | OFF | = signal1, signal2,…]
Converting ABEL Design Files to CUPL
Converting ABEL Design Files to CUPL
This application note is intended to assist users in converting designs written in ABELHDL
language to CUPL. It also includes an example in ABEL and equivalent representation
in CUPL. Atmel® no longer offers ABEL compilers. Instead users are
encouraged to convert their designs to CUPL and use Atmel Design software tools
such as Atmel-WinCUPL™ or ProChip Designer™.
Background for ABEL and CUPL
ABEL-HDL and CUPL-HDL are behavioral design languages used to describe logic
circuits at a high level. ABEL evolved over the eighties and early nineties as a language
that was written to take advantage of the architectural features of an EPLD. As
late as 1995, Atmel continued to offer ABEL V5.1 (DOS-based program). This
required a Dongle (Key from Data I/O™ Corp. WA) to be plugged into the parallel port
of a PC. Subsequently, Atmel offered an EDA package called Atmel-Synario™ that
included a windows version of the ABEL compiler until the year 2000. Atmel-Synario
V4.11 was an OEM version specific for Atmel EPLDs and ABEL 6.5 (windows version)
was the last version of ABEL-HDL offered by Atmel as part of this package. Subsequently,
Data I/O spun off Synario as an EDA company and a little later Synario's
assets became a part of MINC Inc., another EDA Company. MINC then re-sold specific
tools from the Synario package to Xilinx®, Inc.
Logical Devices, Inc. developed CUPL and the structure of the language has not
changed much for the last two decades. Atmel offered a DOS version of CUPL until
the late nineties. The most recent DOS version of Atmel-WinCUPL shipped by Atmel
was Rev 4.8. Subsequently a windows version of CUPL (Rev 5.x) was offered and
called Atmel-WinCUPL.
ABEL/CUPL
Design File
Conversion
Application
Note
Rev. 3303A-PLD-08/02
2 ABEL/CUPL Design File Conversion
3303A-PLD-08/02
Compiler and Tool
Options
The CUPL compiler is available in Atmel-WinCUPL Version 5.2.16 software as well as
part of Atmel-ProChip Designer that uses a Third Party tool from Altium™ called Design
Explorer™ 99SE.
For simple designs, users are encouraged to use Atmel-WinCUPL which is a free tool
and available for download from Atmel's website.
The ABEL compiler (Rev. 6.5) used to compile the ABEL example was part of Atmel-
Synario Version 4.11 software, which is no longer offered.
Process of Conversion of
an ABEL Example File to
CUPL
The conversion is presented in the form of a Table (Table 1) and shows comparative
implementation in ABEL and CUPL. Users can first go through this example and then
refer to "Overview of Syntax Differences between ABEL and CUPL" on page 7 for Syntax
details. Simulation files are not required for every design unless users specifically
want to functionally generate a set of Test Vectors that can be applied on a Third Party
Programmer hardware. The process of writing Test vector files is listed in the section
titled "Converting an ABEL Simulation Input File to CUPL" on page 5.
Please note that in ABEL, it is possible to include Test vectors as part of the main
source file. The ABEL compiler will then extract the test vectors (.TMV) for simulation
purposes and to append the test vectors to the Jedec file.
Description of Example The following example in Table 1 shows how to implement a 4-bit loadable counter that
can count up (from 0-15 in decimal mode) as well as count down (15-0). In this example,
the counter resets to zero if rst is one. If ld is set, then the output (q3..q0) will be set to
the input (d3..d0). If cnten is set, then the counter is enabled and will count up/down
depending on the state of u_d (control pin). If cnten is not set the output will be held to
the last count.
3
ABEL/CUPL Design File Conversion
3303A-PLD-08/02
Table 1. 4-bit Loadable Counter Implementation
ABEL Source File (.ABL) CUPL Source File (.pld)
Module unicnt
Interface (d3..d0, clk, rst, cnten, ld, u_d -> q3..q0);
Title '4 bit counter with load, reset, count up, count down';
//Constants
X, C, Z = .X., .C., .Z. ;
Name counter;
Part no 00 ;
Date 6/30/02;
Revision 01;
Designer Engineer;
Company XYZ;
Assembly None;
Location San Jose;
Device virtual;
/*See Table 6 for description of each field in the header section*/
//Inputs
d3..d0 pin;
clk pin;
rst pin;
cnten pin;
ld pin;
u_d pin;
/* Input */
pin = [d3..0];
pin = clk;
pin = rst;
pin = cnten;
pin = ld;
pin = u_d;
//Output
q3..q0 pin is_type 'reg';
//Counter output, user can choose reg_d to select //D type
registers or reg_t for T-type Registers.
/* Output */
pin = [q3..0];
//Sets
data = [d3..d0]; //Data Set
count = [q3..q0]; //Counter Set
// Forming group of signals into a vector
MODE = [cnten,ld,u_d];
/* Data Set */
field data = [d3..0];
field count = [q3..0]; /* field is a way to group a set of signals */
/* Forming a group of signals into a vector */
field MODE = [cnten,ld,u_d];
// Selecting different modes base on vector values
// possible values are 0, 1, or don't cares
LOAD = (MODE == [X, 1, X]);
HOLD = (MODE == [0, 0, X]);
UP = (MODE == [1, 0, 1]);
DOWN = (MODE == [1, 0, 0]);
/* Selecting different modes based on vector values possible
values are 0, 1, or don't cares */
load = MODE:'b'X1X;
hold = MODE:'b'00X;
up = MODE:'b'101;
down = MODE:'b'100;
4 ABEL/CUPL Design File Conversion
3303A-PLD-08/02
Equations
when LOAD then count := data;
// Abel does things sequentially
else when UP then count := count + 1;
// Count up logic
else when DOWN then count := count - 1;
// Count down logic
else when HOLD then count := count;
// Hold otherwise
count.clk = clk; // Assign Flip-Flop clock pin
count.ar = rst; // Assign asynchronous reset for Flip-Flop
END unicnt //This specifies the end of the //equations section of
the module
/* The following will create a Moore FSM where the output will be
a function of the state */
SequenceD count { /* Explicitly choose D-FF, */
$REPEAT i = [0..15] /* This macro will expand from 0 to 15 */
Present 'h'{i} /* similar to case statement for each state */
If !load & up Next 'h'{(i+1)%16}; /* Logic for count up */
If !load & down Next 'h'{((i-1)+16)%16}; /* Logic for count down */
If !load & hold Next 'h'{i}; /* Logic for hold */
$REPEND}
APPEND count.d = load & data; /* This is when we want to load */
count.AR = rst; /* Asynchronous reset */
count.ck = clk;
ABEL Test Vectors CUPL Test Vectors
test_vectors ([clk, rst, cnten, ld, u_d, data] -> count)
[.c., 1, 0, 0, 0, 0] -> 0;
[.c., 0, 0, 1, 0, 8] ->8 ;
[.c., 0, 1, 0, 1, 8] -> 9;
[.c., 0, 1, 0, 1, 8] -> 10;
[.c., 0, 1, 0, 1, 8] -> 11;
[.c., 0, 1, 0, 1, 8] -> 12;
[.c., 0, 0, 1, 0, 15] -> 15;
[.c., 0, 1, 0, 0, 15] -> 14;
[.c., 0, 1, 0, 0, 15] -> 13;
[.c., 0, 1, 0, 0, 15] -> 12;
[.c., 1, 0, 0, 0, 15] -> 0;
// The abel test vectors can be included in the source code
file(.abl).
See "Converting an ABEL Simulation Input File to CUPL" on
page 5 for further information.
CUPL test vectors cannot be part of the Source file. A separate
(.si) file must be created as described on page 5.
See "Converting an ABEL Simulation Input File to CUPL" on
page 5 for further information.
Table 1. 4-bit Loadable Counter Implementation (Continued)
ABEL Source File (.ABL) CUPL Source File (.pld)
5
ABEL/CUPL Design File Conversion
3303A-PLD-08/02
Converting an ABEL
Simulation Input File
to CUPL
This section describes the features of ABEL and CUPL Simulation input files and the
process of converting an ABEL Simulation input file to a CUPL file. Test vectors must be
created for the simulator to function and they specify the expected functional operation
of a PLD by defining the outputs as a function of the inputs. Test vectors are also used
to do functional testing of a device once it has been programmed, to see if the device
functions as expected.
CUPL There are two tools within Atmel-WinCUPL that can be used to simulate the test vectors.
• WinSim® is a windows-based graphical tool used for creating and editing simulator
(.si) input files and for displaying the results of the simulation in the form of a
waveform. The CUPL simulator requires that a CUPL source file be successfully
compiled prior to running simulation. The CUPL compiler generates an intermediate
file (with extension .ABS) that is used by the simulator to run functional simulation.
• CSIM is a device-specific simulator and VSIM is a virtual simulator (virtual device)
that is text-based and inherently a DOS process. A test specification source file
(file name.si) is the input to CSIM/VSIM. The ATF15xx family of Atmel devices only
runs VSIM.
The source file may be created using a standard text editor in non-document mode. The
source specification file contains three major parts: header information and title block,
ORDER statement and a VECTORS statement.
A .si file must have the same header information as .pld (source) to ensure that the
proper files, including current revision level, are being compared against each other.
Therefore, first copy .pld to .si and then use a text editor to delete everything in .si,
except the header and title block.
ABEL There are two ways to specify test vectors. The most common method is to place test
vectors in the ABEL source file. If the user decides to use this method, the Project Navigator
(Atmel-Synario) will detect the presence of test vectors in the source file and
create a "dummy" test vector file. This file indicates to the system that the actual test
vectors are in the ABEL source file.
The other way to specify test vectors is to create a "real" test vector file by selecting the
"New" menu item in the Source menu and then choosing test vectors. Note that test vector
files have the .ABV file extension and must have the same name as the top-level
module. The user must use the Module and End statements exactly as he does when
creating an ABEL source file.
Table 2 shows comparative implementation of describing test vectors for ABEL simulation
(.ABV) and CUPL simulation (.SI) for the 4-bit counter.
6 ABEL/CUPL Design File Conversion
3303A-PLD-08/02
Table 2. Test Vector Description
Counter.abv Counter.si
Module unicnt
"Constants
X, C, Z = .X., .C., .Z.;
//Inputs
d3..d0 pin;
clk pin;
rst pin;
cnten pin;
ld pin;
u_d pin;
//Output
q3..q0 pin istype 'reg';
//Counter output,
//Sets
data = [d3..d0]; //Data Set
count = [q3..q0]; //Counter Set
test_vectors
([clk, rst, cnten, ld, u_d, data] -> count)
[.c., 1, 0, 0, 0, 0] -> 0;
[.c., 0, 0, 1,0, 8] ->8;
[.c., 0, 1, 0,1, 8] ->9;
[.c., 0, 1, 0,1, 8] ->10;
[.c., 0, 1, 0,1, 8] ->11;
[.c., 0, 1, 0,1, 8] ->12;
[.c., 0, 0, 1, 0, 15] -> 15;
[.c., 0, 1, 0, 0, 15] -> 14;
[.c., 0, 1, 0, 0, 15] -> 13;
[.c., 0, 1, 0, 0, 15] -> 12;
[.c., 1, 0, 0, 0, 15] -> 0;
End
Name counter;
Part no 00 ;
Date 6/30/02 ;
Revision 01 ;
Designer Engineer ;
Company XYZ ;
Assembly None ;
Location San Jose;
Device virtual ;
ORDER: clk, rst, cnten, ld, u_d, d3, d2, d1,
d0, q3, q2, q1, q0;
VECTORS:
c 1000 0000 LLLL
c 0010 1000 HLLL
c 0101 1000 HLLH
c 0101 1000 HLHL
c 0101 1000 HLHH
c 0101 1000 HHLL
c 0010 1111 HHHH
c 0100 1111 HHHL
c 0100 1111 HHLH
c 0100 1111 HHLL
c 1000 1111 LLLL
7
ABEL/CUPL Design File Conversion
3303A-PLD-08/02
Overview of Syntax
Differences between
ABEL and CUPL
The following section includes various tables that show the syntax differences between
the two languages pertaining to extensions, operators and keywords.
Reserved Identifiers
(Keywords)
Table 3. Syntax Differences
ABEL Keyword CUPL Keyword
ASYNCH_RESET None
CASE IF (in a CONDITION statement)
DECLARATIONS None
DEVICE PART NO
ELSE ELSE
END }
ENDCASE }
ENDWITH None
EQUATIONS None
EXTERNAL None
FLAG (OBSELETE) None
FUNCTIONAL_BLOCK None
FUSES FUSES
GOTO PRESENT, NEXT
IF IF (In a CONDITION statement)
IN None
INTERFACE None
ISTYPE Note 1
LIBRARY None
MACRO FUNCTION
MODULE None
NODE NODE/PINNODE
OPTIONS None
PIN PIN
PROPERTY PROPERTY (Note 2)
STATE PRESENT and $DEFINE
STATE_DIAGRAM SEQUENCE
STATE_REGISTER No equivalent but can be achieved with FIELD
SYNC_RESET None
TEST_VECTORS Generated .SI file
THEN NEXT
8 ABEL/CUPL Design File Conversion
3303A-PLD-08/02
Notes: 1. Instead of using "ISTYPE" in ABEL, one can use a suitable extension in CUPL.
Extensions such as .D (specify input to a D-type flip flop) can be used with any pin
name. The compiler will determine whether it is valid. The ISTYPE statement defines
attributes (characteristics) of signals (pins and nodes) in ABEL. Please refer to Table
4 for further details on ATTRIBUTES. The user should use signal attributes to remove
ambiguities in architecture-independent designs. Even when a device has been specified,
using attributes ensures that the design operates consistently if the device is
changed later.
2. Property statements are used specifically for the ATF1500A and the ATF15xx family
of devices to describe specific feature of the device that can be used by the Device
Fitter to generate the appropriate FITTER and Jedec files.
For Example:
Atmel-ABEL defines such as: ATMEL property 'DEDICATED_INPUT ON';
Atmel-CUPL defines such as: Property ATMEL {DEDICATED_INPUT ON};
TITLE NAME
TRACE None
TRUTH_TABLE TABLE
WHEN No equivalent but can be replaced by
CONDITION {}
WITH None
Table 4. Attributes Table
Signal Attributes Description
'buffer' No Inverter in Target Device
'collapse' Collapse (remove) this signal
'com' Combinational output
'dc' Unspecified logic is don't care
'invert' Inverter in Target Device
'keep' Do not collapse this signal from equations
'neg' Unspecified logic is 1
'pos' Unspecified logic is 0.
'retain' Do not minimize this output. Preserve redundant product
terms
'reg' Clocked Memory Element
'reg_d' D Flip-flop Clocked Memory Element
'reg_g' D Flip-flop Gated Clocked Memory Element
'reg_jk' JK Flip-flop Clocked Memory Element
'reg_sr' SR Flip-flop Clocked Memory Element
'reg_t' T Flip-flop Clocked Memory Element
'xor' XOR Gate in Target Device
Table 3. Syntax Differences (Continued)
ABEL Keyword CUPL Keyword
9
ABEL/CUPL Design File Conversion
3303A-PLD-08/02
Comments in ABEL and
CUPL
ABEL: Comments begin with a double quotation mark (") or double forward slash (//).
CUPL: Comments begin with /* and end with */.
Number Representation
in Different Bases
Header Information
Keywords
Logical Operator
Table 5. Number Representation in Different Bases
Base Name Base
Symbol
ABEL CUPL
Binary 2 ^b 'b'
Octal 8 ^o 'o'
Decimal 10 ^d 'd'
Hexadecimal 16 ^h 'h'
Table 6. Header Information Keywords
ABEL CUPL Description
Module Name Just a file name.
Title None
Used to give a title or description for the
module. (Optional)
None Part no
The part number for the particular PLD
design.
None Revision
Begin with 01 when first creating a file and
increment each time a file is altered.
None Date
Change to the current date each time a
source file is altered.
None Designer Specify the designer's name.
None Company Specify the company's name.
None Assembly
Give the assembly name or number of the PC
board.
None Location The abbreviation LOC can be used.
None Device
Used to set the default device type for the
compilation.
Table 7. Logical Operator
ABEL CUPL Description
! ! NOT (ones complement)
& & AND
# # OR
$ $ XOR(exclusiveOR)
! $ ! $ XNOR (exclusive NOR)
10 ABEL/CUPL Design File Conversion
3303A-PLD-08/02
Arithmetic Operators CUPL arithmetic operators can only be used inside $REPEAT and $MACRO blocks.
Relational Operators
Assignment Operators
Table 8. Arithmetic Operators
ABEL CUPL Description
- - Subtraction
+ + Addition
* * Multiplication
/ / Division
% % Modulus
<< None Shift left by bits
>> None Shift right by bits
Table 9. Relational Operators
ABEL CUPL Description
== None Equal
! = None Not equal
< None Less than
<= None Less than or equal
> None Greater than
>= None Greater than or equal
Table 10. Assignment Operators
ABEL CUPL Set Description
= = ON(1) Combinational or detailed assignment
: = = ON(1) Implied registered assignment
? = None DC(X) Combinational or detailed assignment
?:= None DC(X) Implied registered assignment
?:= None DC(X) Implied registered assignment
11
ABEL/CUPL Design File Conversion
3303A-PLD-08/02
Operator Priority
Dot Extension The dot extensions valid for pins or specific signals in CUPL as well as ABEL are listed
in Table 12.
Table 11. Operator Priority
ABEL CUPL Priority Description
- None 1 Negate
! ! 1 NOT
& & 2 AND
<< None 2 Shift left
>> None 2 Shift right
* * 2 Multiply
/ / 2 Unsigned division
% % 2 Modulus
+ + 3 Add
- - 3 Subtract
# # 3 OR
$ $ 3/4 XOR: exclusive OR
!$ None 3 XNOR: exclusive NOR
== None 4 Equal
!= None 4 Not equal
< None 4 Less than
<= None 4 Less than or equal
> None 4 Greater than
>= None 4 Greater than or equal
Table 12. Dot Extension
ABEL CUPL Description
.ACLR None Asynchronous clear
.ASET None Asynchronous set
.CLK .CK Clock input to an edge-triggered flip-flop
.CLR None Synchronous clear
.COM None
Combinational feedback normalized to the pin
value
.OE .OE Output enable
.PIN None Pin feedback
.SET None Synchronous set
.AP .AP Asynchronous preset
.AR .AR Asynchronous reset
12 ABEL/CUPL Design File Conversion
3303A-PLD-08/02
Notes: 1. The .CKMUX dot extension used in CUPL is specific to the Atmel ATV750B and
ATF750C devices. The .CKMUX extension is used to connect the clock input of a register
to the Synchronous clock pin. This is needed because some devices have a
multiplexer for connecting the clock to one set of pins.
2. .DFB and .DQ on CUPL are only used for D-type flip-flop. However, .FB and .Q in
ABEL can be used for any type of flip-flops such as D, T, JK, SR flip-flops.
.CE .CE Clock-enable input to a gated-clock flip-flop
.D .D Data input to a D-type flip-flop
.J .J J input to a JK-type flop-flop
.K .K K input to a JK-type flip-flop
.LD None Register load input
.LE None Latch-enable input to a latch
.LH .LE Latch-enable (high) to a latch
.PR .PR Register preset
.Q None Register feedback
.R .R R input to an SR-type flip-flop
.RE None Register reset
.S .S S input to an SR-type flip-flop
.SP .SP Synchronous register preset
.SR .SR Synchronous register reset
.T .T T input to a T-type (toggle) flip-flop
Note 1 .CKMUX Clock multiplexer selection
.FB (Note 2) .DFB D registered feedback path selection
.Q (Note 2) .DQ Q output of D-type flip-flop
None .INT Internal feedback path for registered macro cell
None .IO Pin feedback path selection
None .IOCK Clock for pin feedback register
None .IOD Pin feedback path through D register
None .IOL Pin feedback path through latch
None .L D input of transparent latch
None .LEMUX Latch enable multiplexer selection
None .LFB Latched feedback path selection
None .LQ Q output of transparent input latch
None .OEMUX Tri-state multiplexer selection
None .TFB T registered feedback path selection
Table 12. Dot Extension (Continued)
ABEL CUPL Description
13
ABEL/CUPL Design File Conversion
3303A-PLD-08/02
Extensions Applicable
for Atmel EPLD Devices
Table 13 lists specific extensions valid for Atmel EPLD devices.
Table 13. Valid Atmel EPLD Device Extensions
Atmel PLDs Valid Extensions
ATF16V8B/BQ/BQL OE, D
ATF16V8C/CZ
ATF20V8B/BQ/BQL
ATF20V8C/CQ/CQZ
ATF22V10C/CQ/CQZ OE, D, AR, SP
ATF22LV10C/CZ/CQZ
ATV750/L D, AR, CK, OE, SP, DFB, IO
ATV750B/BL D, T, AR, CK, CKMUZ, OE, SP, DFB, IO
ATF750C/CL/LVC/LVCL
ATF1500A/AL/ABV D, AR, CK, CE, OE, AP, IO, T, L, LE
ATV2500B/BL/BQ/BQL D, T, AR, CK, OE, SP, IO, CE
ATF2500C/CQ/CQL
ATF1502AS/ASL/ASV/ASVL D, T, S, R, OE, OEMUX, CK, CKMUX, AR,
DQ, LQ, IO
ATF1504AS/ASL/ASV/ASVL
ATF1508AS/ASL/ASV/ASVL
Printed on recycled paper.
© Atmel Corporation 2002.
Atmel Corporation makes no warranty for the use of its products, other than those expressly contained in the Company's standard warranty
which is detailed in Atmel's Terms and Conditions located on the Company's web site. The Company assumes no responsibility for any errors
which may appear in this document, reserves the right to change devices or specifications detailed herein at any time without notice, and does
not make any commitment to update the information contained herein. No licenses to patents or other intellectual property of Atmel are granted
by the Company in connection with the sale of Atmel products, expressly or by implication. Atmel's products are not authorized for use as critical
components in life support devices or systems.
Atmel Headquarters Atmel Operations
Corporate Headquarters
Tutorial: CPLD Design Flow Tutorial
Tutorial: CPLD Design Flow Tutorial
This tutorial will guide you through a complete design cycle for the Atmel ATF15xx CPLD with Logic Doubling
architecture. It will step-by-step go through each phase of the design cycle from design entry, logic synthesis, device
fitting, in-system programming, and finally verifying the design on the Atmel CPLD Development/Programming
Board.
Note: To complete this tutorial, ProChip Designer V4.0 or later and Atmel-ISP Software (ATMISP) V4.0 or
later are required.
I : Create a Project using ProChip Designer's New Project Wizard
II : Add a Design File
III : Compile the Design
IV : Fit the Synthesized Design File
V : Program and Verify Design
I. Create a Project using the "New Project Wizard"
I. Create a Project using the "New Project Wizard"
Before starting the design process, a Project File must be created within ProChip Designer. ProChip Designer's
New Project Wizard provides a very easy way to create a new Project File.
1. Click on the START …. PROGRAMS …. PROCHIP Icon to launch ProChip Designer.
Or double-click on the PROCHIP icon on the desktop.
(1) Click to
launch
ProChip
Designer
Atmel CPLD Development Kit - CPLD Design Flow Tutorial P. 2
2. Click on PROJECT .... NEW or double-click on the NEW PROJECT shortcut button to launch the New
Project Wizard.
3. Click on the NEXT button to start the project file creation process.
4. Click on the BROWSE button to open the browser window.
5. Use C:\PROCHIP\DESIGNS\CUPL as the directory of the project.
6. Enter DEV_KIT.APJ as the project file name. The extension of a project file must be .APJ.
Note: The name and directory of the design project is specified in this window. All design, simulation, and
other project files must be placed in this project directory.
(2) Click to
create new
project
(3) Click NEXT
to start
(5) Select the
project directory
(6) Enter the project
file name
(4) Click on
BROWSE
Atmel CPLD Development Kit - CPLD Design Flow Tutorial P. 3
7. Choose [ATF1508AS-10JC84] as the target device type for the project. Also review the Filters that allow for
selection of a specific Speed Grade or Package Type.
8. Select CUPL - ALTIUM as the software tool for this design flow.
With ProChip Designer V4.0 and later, the five possible design flows and their corresponding design entry types
supported are listed in the table below:
Design Flow Design Entry Type
CUPL - Altium CUPL design entry through Altium Protel 99SE
Verilog - Mentor Graphics* Verilog design entry through Mentor Graphics LeonardoSpectrum
VHDL - Altium VHDL design entry through the Altium PeakFPGA
VHDL - Mentor Graphics* VHDL design entry through Mentor Graphics LeonardoSpectrum
Schematic - Altium Schematic design entry through Altium Protel 99SE
* Requires Mentor Graphics LeonardoSpectrum software with Atmel CPLD support.
(7) Select the
device type
(8) Select the
design flow
Atmel CPLD Development Kit - CPLD Design Flow Tutorial P. 4
9. Select DONE WITH PARTS so that there will be only one device in this project.
On the other hand, users can select ADD MORE PARTS to include more parts to the current Project Directory.
10. Click the FINISH button to finish the New Project Wizard and the project creation process.
This closes the New Project Wizard and opens the ProChip Designer window. The Sources in the project are
shown in the Left window.
(9) Select "Done
with parts"
(10) Click FINISH to
end New
Project Wizard
Atmel CPLD Development Kit - CPLD Design Flow Tutorial P. 5
11. Click on the Device Icon [ATF1508AS-10JC84] to view the Design Flow window.
Project Sources Window Information Dialog Box
Message Window (11) Click on the Device Icon
Design Flow Window Project File Window
Atmel CPLD Development Kit - CPLD Design Flow Tutorial P. 6
II. Add a Design File
II. Add a Design File
Once the Project File is created, the next step is to add the design source file(s) into your project. For this tutorial, a
single CUPL design file will be added into the project.
1. Click on the ADD/EDIT button from Source Manager to open the Source Manager Window. You can view the
Source Manager Help File by clicking on the Help button within the Source Manager Window to view the
description for the different processes.
2. In the Source Manager Window, click on the ADD button to add a CUPL design file to the project.
3. In the File Manager Window, select LOGIC_D8.PLD from the C:\PROCHIP\DESIGNS\CUPL directory as the
source design file for this project.
This "LOGIC_D8.PLD" is a CUPL design that uses the eight 8-segment LED displays and the built-in oscillator on
the Atmel CPLD Development/Programmer Board to generate a scrolling message that displays the words "logic
doubling" on the LEDs. The GOE push-button switch is used to control the direction that the message scrolls in
(left or right). The GCLR push-button switch is used to reset the counter registers. When the GCLR push-button
switch is depressed, the message will stop scrolling. This CUPL design can be compiled using either the ProChip
Designer or the Atmel-WinCUPL software.
The first section of the LOGIC_D8.PLD as shown below pre-defines which segments of the LED should be asserted
in order to display the desired letter or number. For example, to display the upper case letter "C", segments A, D, E,
and F need to be set to low (active low) and the remaining segments need to be set to high.
$define Font0 'b'1000000 /* = ( _f_e_d_c_b_a ); 0 */
$define Font1 'b'1111001 /* = ( _c_b ); 1 */
:
$define FontA 'b'0001000 /* = (_g_f_e _c_b_a ); A */
(1) Click
Add/Edit to
open Source
Manger
Window
(2) Click Add
to add
design file
(3) Select
CUPL
source file
Atmel CPLD Development Kit - CPLD Design Flow Tutorial P. 7
The next section of this CPLD design as shown below illustrates how to declare and assign pin numbers in the
CUPL language to the input and output signals. The input and output pin assignments are assigned according to the
connections between the CPLD and the eight 8-segment LED's as shown in the connection tables (Table 2-1 to 2-8)
in Section 2.
/* Inputs */
pin 1 = GCLR; /* Global Clear input */
pin 83 = MCLK; /* Global Clock input */
pin 84 = GOE; /* GOE1 button used as direction control */
/* Outputs */
/* DSP1 */
pin 49 = LED1A; /* LED1 segment A */
pin 46 = LED1B; /* LED1 segment B */
pin 48 = LED1C; /* LED1 segment C */
pin 50 = LED1D; /* LED1 segment D */
pin 52 = LED1E; /* LED1 segment E */
pin 51 = LED1F; /* LED1 segment F */
pin 54 = LED1G; /* LED1 segment G */
Next the buried signals for the counter and state machine are declared as Pin node's as shown below. The
feedback and/or the foldback paths available in each macrocell implement these buried signals. For the listing of the
pin node numbers, please refer to the "ATF15xx Device Help" section of the ProChip Designer Help File.
pin node [618,634,650,687]= [CA20..CA17];
pin node = [CA16..CA0];
pin node = [SM7..SM0];
After assigning the input, output and buried signals, the related signals (e.g. the LED segments and buried counter)
are grouped together as shown below to make the design source code more readable and manageable. In CUPL, the
"Field" declaration can be used to group a specific set of signals.
Field DSP1 = [LED1G,LED1F,LED1E,LED1D,LED1C,LED1B,LED1A];
Field DSP2 = [LED2G,LED2F,LED2E,LED2D,LED2C,LED2B,LED2A];
:
Field CNT_A = [CA20..CA0];
Field SM = [SM7..SM0];
Next a 21-bit buried up-counter implemented using D-type Flip-flops is shown below and it is used to divide the
2.0MHz clock into a 0.954Hz (2MHz ¸ 221 = 0.954Hz) signal that can be used to display the text messages. The last
bit of this counter is used as the clock for the state machine that controls the display sequence of the messages on the
LEDs.
CA0.d = !CA0;
CA1.d = CA0 $ CA1;
:
CA7.d = (CA6 & CA5 & CA4 & CA3 & CA2 & CA1 & CA0) $ CA7;
:
CNT_A.ck = MCLK;
CNT_A.ar = !GCLR;
The next section of this PLD design is a state machine with 15 states to control the display sequence of the text
messages on the LEDs. The GOE push-button switch on the CPLD Development/Programmer Board controls the
flow of this state machine. When this switch is in the "up" position, the state machine will go from RESET to State-
Atmel CPLD Development Kit - CPLD Design Flow Tutorial P. 8
0 to State-1 to State-2 and so on until it reaches State-14 and then it will go back to State-0. On the other hand, if
the GOE switch is in the "down" position, the state machine will go in the opposite direction (e.g. State-14 to
State13 .. etc).
SM.ck = COUNTER_1;
sequence SM
{
present RESET
next S0;
present S0
if SM_DIR next S1;
if !SM_DIR next S14;
:
present S14
if SM_DIR next S0;
if !SM_DIR next S13;
}
Finally, the last section of the PLD design will assign the appropriate letters or numbers to the eight 8-segment
LEDs to be displayed during the different states of the state machine. You can easily change the letters/numbers to
be displayed by changing this section of the code to the appropriate pre-defined letters/numbers.
LED1 = FontBK & SM:[RESET]
# FontBK & SM:[S0]
# FontLl & SM:[S1]
# FontLo & SM:[S2]
# FontLg & SM:[S3]
# FontLi & SM:[S4]
# FontLc & SM:[S5]
# FontBK & SM:[S6]
# FontLd & SM:[S7]
# FontLo & SM:[S8]
# FontLu & SM:[S9]
# FontLb & SM:[S10]
# FontLl & SM:[S11]
# FontLi & SM:[S12]
# FontLn & SM:[S13]
# FontLg & SM:[S14];
Atmel CPLD Development Kit - CPLD Design Flow Tutorial P. 9
III. Compile the CUPL Design
III. Compile the CUPL Design
In this part of the tutorial, the CUPL design will be compiled through the Logic Synthesis process into a set of
optimized/minimized logic equations.
1. Click on the CUPL - DESIGN EX. button in the Design Flow Window to open the Logic Synthesis Window.
2. Make sure all of the options in the Optimization section are unchecked.
3. Make sure the Minimization setting is set to QUICK.
4. Click on the COMPILE button to start the CUPL compile process.
You can click on the SET DEFAULTS button and it will automatically specify the Synthesis tool in the Tool Text
box.
If you click on the CUPL Tab, it shows the various Synthesis options. You may refer to the HELP file for further
description.
(1) Open Logic
Synthesis
Window
(4) Start the
Compile
process
(2) Make sure these
options are
unchecked
(3) Set to
Quick
Atmel CPLD Development Kit - CPLD Design Flow Tutorial P. 10
IV. Fit the Synthesized Design File
IV. Fit the Synthesized Design File
In Section 3.3, the Logic Synthesis portion of the CPLD Design Flow was completed. On successful compilation,
the CUPL compiler tool produces a PLA output file (with extension .pla). A PLA file contains the net list of the
optimized and minimized logic equations. We now need to map this net list into a specific Atmel PLD architecture
using the ATMEL FITTER.
1. You can now proceed to the Device Fitter portion of the Design Flow by clicking on the ATMEL FITTER
button.
You can either use the Default options or specify Fitter properties. ProChip Designer will automatically select the
PLA file associated to the current design project and the tool type. In this example, since our target device is an
ATF1508AS, and we will select the fit1508.exe device fitter.
The fitter creates the important JEDEC and FIT REPORT output files. They contain the data for programming the
Device (using In-System Programming or on a third party device programmer) and the pin assignments required for
board layout respectively.
Please review the Global Device Parameters and Pin/Node Options as well. The Help Files also show the Device
Pin_Node lists for each of the ATMEL CPLDs.
2. Make sure the JTAG box is checked. This enables the JTAG port for ISP programming.
3. Make sure the PIN FIT CONTROL setting is set to KEEP. This will ensure that the pin assignments in the PLD
file will be kept during the Place-and-Route process.
4. Make sure the Logic Double setting is set to ALWAYS. This enables the fitter to use the ATF15xx Logic
Doubling features at the beginning of the first fitter pass.
5. When all the fitter options are set, click on the RUN FITTER button to fit the design.
(1) Open the Atmel
Fitter Window
Atmel CPLD Development Kit - CPLD Design Flow Tutorial P. 11
The Fitter Report (.FIT) File generated for this design is shown below.
Atmel ATF1508AS Fitter Version 1.8.7.1 ,running Fri Jun 14 15:15:23 2002
:
Logic Array Block Logic Cells I/O Pins Fold backs TotalPT FanIN
Cascades
A: LC1 - LC16 16/16(100%) 8/16(50%) 5/16(31%) 46/80(57%) (19) 0
B: LC17 - LC32 16/16(100%) 8/16(50%) 3/16(18%) 51/80(63%) (38) 0
C: LC33 - LC48 16/16(100%) 8/16(50%) 2/16(12%) 48/80(60%) (38) 0
D: LC49 - LC64 16/16(100%) 6/16(37%) 2/16(12%) 40/80(50%) (38) 0
E: LC65 - LC80 16/16(100%) 6/16(37%) 6/16(37%) 55/80(68%) (32) 0
F: LC81 - LC96 16/16(100%) 8/16(50%) 2/16(12%) 47/80(58%) (38) 0
G: LC97 - LC112 16/16(100%) 8/16(50%) 3/16(18%) 43/80(53%) (25) 0
H: LC113- LC128 16/16(100%) 8/16(50%) 2/16(12%) 42/80(52%) (34)
0
Total dedicated input used: 3/4 (75%)
Total I/O pins used 60/64 (93%)
Total Logic cells used 128/128 (100%)
Total Flip-Flop used 31/128 (24%)
Total Foldback logic used 25/128 (19%)
Total Nodes+FB/MCells 153/128 (119%)
Total cascade used 0
Total input pins 7
Total output pins 56
Total Pts 372
:
(3) Set the Pin
Fit Control
setting to
KEEP
(5) Start the
fitting process
(2) Check the
JTAG box
(4) Set Logic Double
to "always"
Atmel CPLD Development Kit - CPLD Design Flow Tutorial P. 12
The ATF15xx Family devices Logic Doubling features provide extra I/O connectivity and logic re usability. Some
of the Logic Doubling features available in the ATF15xx family of CPLDs are:
§ Bury either Register or Combinatorial signal while using the other for output
§ Dual independent feedback allows multiple latch functions per macrocell
§ 5 product terms per macrocell, expandable to 40 per macrocell with cascade logic, plus 15 more with foldback
logic
§ D/T/Latch configurable flip-flops plus transparent latches
§ Global and/or per macrocell Output Enable
§ Single level Switch Matrix
§ Up to 40 inputs per Logic Block
In the LOGIC_D8.PLD example given in this tutorial, some of the Logic Blocks have 37 signal inputs (Fan-In's) as
shown in the .FIT file. The availability of wide Fan-In's to the Logic Blocks is one of the many Logic Doubling
features. This feature improves the possibility of routing all the necessary signals from the Global Bus to the Logic
Blocks.
In addition, macrocells 37 and 59 of the ATF1508 are able to implement both combinatorial outputs (LED1G and
LED8D) and buried registered signals (CA0 and RST) within the same macrocells. This is shown in the Resource
Usage section of the .FIT file.
For more examples of design techniques that utilize the Logic Doubling features of the ATF15xx Family, refer to
Atmel's Logic Doubling White Paper and Reference Designs available on the Atmel website. These examples show
how to apply Logic Doubling techniques to new product designs, and obtain the benefits of more features in a
smaller, and possibly less expensive chip, or spare logic resources for future revisions and reduce the risk of PCB respin.
Atmel CPLD Development Kit - CPLD Design Flow Tutorial P. 13
V. Program and Verify Design
V. Program and Verify Design
In this step of the tutorial, you will program an ATF1508AS 84-pin PLCC device on the Atmel CPLD
Development/Programmer Board through ISP and then verify the design by observing the text messages displayed on the eight 8-segment LED displays of the CPLD Development/Programmer Board.
You will need to follow the steps below to setup the ATMISP software in order to program the ATF1508AS 84-pin PLCC on the CPLD Development/Programmer Board.
1. To create a new chain file, the ATMISP Software first needs to be launched either through the PROGRAM
CHIP button in the ProChip Designer window, the ATMISP desktop icon or the Start … Programs .. Atmel ISP
menu.
Note: If ATMISP is launched through ProChip Designer, then the appropriate chain (.CHN) file will be
automatically created by ProChip Designer. Therefore, Steps 2 to 6 can be skipped.
2. To create a new chain file, select the New command under the File menu or click on the New shortcut button.
3. The first piece of information that the software asks for when creating a new chain is the number of devices in the JTAG chain. Therefore, enter 1 and then click OK since you will be programming a 1-device JTAG chain.
(1) Launch ATMISP
(2) Create new chain file
(3) Enter the number of device
Atmel CPLD Development Kit - CPLD Design Flow Tutorial P. 14
4. Next you will need to specify the properties of each JTAG device in the Device Properties window. First, you
will need to select the target device type of the first device in the JTAG chain. For this tutorial, please select
ATF1508AS as the target device type.
5. In the JTAG Instruction field, you can specify which JTAG instruction to be executed on this device in the
chain. Please select Program/Verify to program and verify the ATF1508AS.
6. The next step is to specify the JEDEC file to be programmed into the target device in the JEDEC File field.
Click on the Browse button, change the directory to [..\PROCHIP\DESIGNS\CUPL"] and then select
LOGIC_D.JED as the JEDEC file. Click OK to close the JTAG Device Properties window when all properties
are specified. The next step requires you to setup the Atmel CPLD Development/Programmer Board to program the ATF1508AS through ISP.
7. Connect the 25-DB side of the Atmel-ISP Cable to the PC's parallel port and the 10-pin header side to the
Atmel-ISP Cable to the Atmel CPLD Development Board as shown Figure 2-5.
8. Connect a 9V AC/DC power adapter to the power connector (JPower) of the Atmel CPLD
Development/Programmer Board.
9. Set the 5V/3.3V jumper to 5V to set the system Vcc to 5V.
10. Set the JPCLK jumper to GCLK1 so that the output of the crystal oscillator will go to Pin 83 of the
ATF1508AS.
11. Connect the 84-pin PLCC Socket Adapter Board onto the main Development/Programmer Board.
Note: If a device in a different package type is to be programmed, then the appropriate Socket Adapter Board
must be used.
12. Switch the Power Switch to the ON position.
13. Select which LPT port is being used for ISP in the Port Setting field. LPT 1 is the default port.
14. Select the ISP download cable type in the Cable Types field. The default cable type is the Atmel ISP Cable but it can be changed to the Altera Byte blaster cable if you are using the Byte blaster cable.
(4) Specify target device type
(5) Specify JTAG instruction
(6) Select JEDEC file
Atmel CPLD Development Kit - CPLD Design Flow Tutorial P. 15
Now both your software and hardware are setup for ISP programming, and you can execute the
PROGRAM/VERIFY instruction to program the ATF1508AS on the Atmel CPLD Development/Programmer
Board.
15. Click on the RUN button in the ATMISP main window to execute the JTAG instruction to program the
ATF1508AS on the CPLD Development/Programmer Board.
After the successfully programming the ATF1508AS with the LOGIC_D8.JED file, the eight 8-segment LED's
should start to display the words "logic doubling". If these two text messages are correctly displayed on the CPLD Development/Programmer Board, then you have successfully completed this tutorial.
(12) Select LPT port number
(13) Select cable type
(14) Click on the RUN button
Installation Guide for ProChip Designer 4.0
Installation Guide for ProChip Designer® Version 4.0
Thank you for choosing Atmel ProChip Designer. This document provides the instructions for installing or
updating ProChip Designer and other related PLD software.
I. Installing ProChip Designer from EPLD Software CD.
II. Installing ProChip Designer Trial Version from Atmel Website (PCDTrial.ZIP).
III. Installing ProChip Designer Full License Version from Atmel FTP Site
(PCDPermanent.ZIP).
IV. Updating ProChip Designer with the Patch file (PROCHIPUPDATE.PAT).
V. Installing and setting up Mentor Graphics LeonardoSpectrum.
VI. Installing Mentor Graphics ModelSim.
IMPORTANT:
1. After installing ProChip Designer, the PC must be re-started.
2. ProChip Designer cannot be installed onto PC's that already have either Accolade PeakFPGA or
Protel Design Explorer from Altium (formerly Protel International) installed. Please either uninstall
these software before installing ProChip Designer or install ProChip Designer onto a different PC.
3. Reinstalling ProChip Designer Trial version IS NOT ALLOWED even if the 30-day trial period has not
expired.
4. During the installation of ProChip Designer, both the PeakFPGA and Protel99SE software must be
installed in order for ProChip Designer to work properly.
5. For PCs with WinNT4.0 or Win2000 operating system, users must have permission to modify system
files in order to install ProChip Designer.
6. ProChip Designer cannot be installed into a directory with space(s) in any part of the directory
name (e.g. C:\Program Files).
7. During the installation of PeakFPGA, users must select PeakFPGA Design Suite (VHDL,
Simulation and Synthesis) in the PeakFPGA Design Suite Installation options dialog box.
8. Only LeonardoSpectrum with a LEVEL 3 (mufti-vendor) license will work with ProChip Designer.
9. For designers using Mentor Graphics LeonardoSpectrum, the Atmel CPLD library MUST be setup
again as described in Section V (Setup Library for Mentor Graphics LeonardoSpectrum) after
installing the ProChip Designer Patch (RPOCHIPUDPATE.PAT).
10. For Full License users, the same Access Code should be used for both the PeakFPGA and
Protel99SE software.
11. For Full License software users, the same Access Code used for the ProChip Designer V3.0 Full
License software can be used for V4.0. Please make sure that the Access Code is available before
uninstalling ProChip Designer V3.0. To retrieve the Access Code:
a. Launch PeakFPGA independently or through ProChip Designer.
b. Open an existing project or create a new project.
c. Select the Options System menu item
d. Select the Registration tab and save the PeakFPGA serial number. This is your Access Code.
Atmel Corporation 2325 Orchard Parkway San Jose, CA 95131 USA
I. Installing ProChip Designer from EPLD Software CD
Install ProChip Designer Trial version onto PC's that have never had neither the Full License
nor Trial version of ProChip Designer installed:
1. From the "Install Products" screen, click on the PROCHIP DESIGNER ~ 30 DAY TRIAL button.
Install ProChip Designer V4.0 Full License version onto PC's that have never had neither the
Full License nor Trial version of ProChip Designer installed:
1. From the "Install Products" screen, click on the PROCHIP DESIGNER ~ FULL LICENSE button.
Note: An Access Code (Permanent License) is required to install the Full License version software.
This can be obtained by contacting your Atmel Sales Representative or Distributor.
Update ProChip Designer V3.0 or V4.0 Trial version to ProChip Designer V4.0 Full version
or update ProChip Designer V3.0 Full version to ProChip Designer V4.0 Full version
or uninstall ProChip Designer V4.0 Full version and reinstall ProChip Designer V4.0 Full version
1. Remove PeakFPGA using Control Panel Add\Remove Program.
2. Remove Protel 99SE using Control Panel Add\Remove Program.
3. Remove ProChip Designer using Control Panel Add\Remove Program.
4. Manually delete the entire ProChip Designer folder. THIS IS REQUIRED. The default location is
"C:\PROCHIP".
5. Install ProChip Designer Full version. From the "Install Products" screen, click on PROCHIP
DESIGNER ~ FULL LICENSE button.
Note: An Access Code (Permanent License) is required to install the Full License version software.
This can be obtained by contacting your Atmel Sales Representative or Distributor.
Uninstall ProChip Designer V3.0 or V4.0 Trial version and reinstall ProChip Designer V3.0 or
V4.0 Trial version.
Reinstalling ProChip Designer Trial version IS NOT ALLOWED even though the 30-day trial period has
not expired.
II. Installing ProChip Designer Trial Version from Atmel Website - PCDTrial.ZIP
Installing ProChip Designer Trial Version onto PC's that have never had neither the Full License
nor Trial version of ProChip Designer installed:
1. Register on-line at http://www.atmel.com/atmel/products/prod2r.htm, and then download
PCDTrial.ZIP from our website.
2. Use WinZip to extract ZIP file. The file PROCHIP40.EXE will be extracted.
3. Double-click on PROCHIP40.EXE in Windows Explorer to start the installation process.
4. Follow the instructions in the Install shield Wizard throughout the installation process.
5. When installation is completed, re-start PC.
Note: Reinstalling ProChip Designer Trial version IS NOT ALLOWED even if the 30-day trial period
has not expired.
Atmel Corporation 2325 Orchard Parkway San Jose, CA 95131 USA
III. Installing/Updating ProChip Designer Full License Version from Atmel FTP
Site - PCDPermanent.ZIP
Installing ProChip Designer Full License Version onto PC's that have never had neither the Full
License nor Trial version of ProChip Designer installed:
1. Obtain Permanent License from Atmel.
2. Download "pcdpermanent.zip" from Atmel FTP Site at ftp://www.atmel.com/pub/atmel.
3. Use WinZip to extract ZIP file.
4. Double-click on PROCHIP40.EXE in Windows Explorer to start the installation process.
5. Follow the instructions in the Install shield Wizard throughout the installation process.
6. When installation is completed, re-start PC.
Updating ProChip Designer V3.0 or V4.0 Trial Version to ProChip Designer V4.0 Full Version
or updating ProChip Designer V3.0 Full Version to ProChip Designer V4.0 Full Version
or reinstalling ProChip Designer V4.0 Full Version
1. Remove PeakFPGA using Control Panel Add\Remove Program.
2. Remove Protel 99SE using Control Panel Add\Remove Program.
3. Remove ProChip Designer using Control Panel Add\Remove Program.
4. Manually delete the entire ProChip Designer folder. THIS IS REQUIRED. The default location is
"C:\PROCHIP".
5. Install ProChip Designer V4.0 Full version. Double-click on PROCHIP40.EXE in Windows Explorer
to start the installation process.
6. When installation is completed, re-start PC.
Note: An Access Code (Permanent License) is required to install the Full License version software.
This can be obtained by contacting your Atmel Sales Representative or Distributor.
IV. To update ProChip Designer V4.0 with the Patch file - PROCHIPUPDATE.PAT:
Update ProChip Designer via Atmel website
1. Launch ProChip Designer.
2. Select the Help Update Via Web menu item to install the latest updates on-line.
Note: Internet connection is required to execute this command.
Update ProChip Designer via file
1. Launch ProChip Designer.
2. Download the file "PROCHIPUPDATE.PAT" from Atmel's website at
http://www.atmel.com/atmel/products/prod147.htm to the [~\Prochip\updates] folder.
3. Select the Help Update Via File menu item. Then select the downloaded
"PROCHIPUPDATE.PAT" file and answer 'Yes' to save the image at the end of the update
process.
Note: For designers using Mentor Graphics LeonardoSpectrum, the Atmel CPLD library MUST be setup
again as described in Section V (Setup Library for Mentor Graphics LeonardoSpectrum) after
installing the ProChip Designer Patch (RPOCHIPUDPATE.PAT).
Atmel Corporation 2325 Orchard Parkway San Jose, CA 95131 USA
V. To install and setup Mentor Graphics LeonardoSpectrum:
Install Mentor Graphics LeonardoSpectrum
1. From the "Install Products" screen, click on the LeonardoSpectrum - Evaluation button.
Note: If a regular full license for LeonardoSpectrum Level 3 is available, then Steps 2 to 3 below can
be skipped.
2. Upon the completion of the software installation, the web browser will launch automatically bringing
the users to the Mentor Graphics' Evaluation License Registration site.
3. Fill out all the required fields and click on the "I agree" button at the bottom of this page.
Note: If you had previously requested an Evaluation License from Mentor Graphics for
LeonardoSpectrum, you cannot request for another Evaluation License again. You will have to
purchase a license from Mentor Graphics in order to use LeonardoSpectrum with ProChip Designer.
4. After receiving the license file from Mentor Graphics via email, follow the license setup instructions
provided in the email.
5. Follow the instructions provided in the "Setup Library for Mentor Graphics LeonardoSpectrum"
section below.
Setup Library for Mentor Graphics LeonardoSpectrum
1. Copy 'cpld.syn' from [~\Prochip\Leonardo_update] to [~\MGC\LeoSpec\LS2002c_49\lib].
2. Copy 'atmlcpld.ini' from [~\Prochip\Leonardo_update] to [~\MGC\LeoSpec\LS2002c_49\lib].
3. Copy 'cpld.vhd' from [~\Prochip\Leonardo_update] to [~\MGC\LeoSpec\LS2002c_49\data\modgen].
4. Modify the 'devices.ini' file in the [~\MGC\LeoSpec\LS2002c_49\lib] directory as described below:
a. Attach the line below to the end of device declaration section. The device number "179" is the
last device number plus one. If the last device number in original devices.ini file is a different
number than "178", the device number should be change to appropriate number.
DEVICE_179=atmel_cpld
b. Attach the lines below to the end of devices.ini file.
[atmel_cpld]
CONTACT=EPLD Applications\nATMEL Corporatn\n2325 Orchard Parkway\nSan Jose, CA 95131\n\nTel: (408)
436-4333\nFax: (408) 436-4200\nEmail: pld@atmel.com
DIRECTION=BOTH
FAMILY=CPLD
FORM=FPGA
HTML_PAGE=http://www.atmel.com
INI_FILE=atmlcpld
LIBRARY_NAME=cpld
LICENSE_PACKAGE_NAME=atmel
MANUFACTURER=Atmel
NUMBEROFPASSES=4
PROPTIONS=FALSE
SYMBOL_LIBRARY=none
TECHNOLOGY_TYPE=FPGA
VENDOR_NAME=ATMEL Corporation
BMPFILE=atmel16.bmp
Note: The lines of text above can be copied from the README.TXT file in the
[~\Prochip\Leonardo_update] folder to the DEVICES.INI file.
Note: The Atmel CPLD library MUST be setup again as described above after installing the ProChip
Designer Patch (RPOCHIPUDPATE.PAT).
Atmel Corporation 2325 Orchard Parkway San Jose, CA 95131 USA
VI. To install Mentor Graphics ModelSim:
Install Mentor Graphics ModelSim (30-Day Trial Version)
1. From the "Install Products" screen, click on the 30-Day Free trial version of ModelSim button.
2. Click on the Evaluation Edition button in the "Welcome to the ModelSim Install" window.
3. Select YES in the "License Request" window.
4. Fill out all the required fields in the ModelSim SE Evaluation License Request website and then
click on the Request Evaluation button to submit the request.
5. After receiving the license file from Mentor Graphics via email, follow the license setup instructions
provided in the email.
Install Mentor Graphics ModelSim (Full License Version)
1. From the "Install Products" screen, click on the 30-Day Free trial version of ModelSim button.
2. Click on the Full Product button in the "Welcome to the ModelSim Install" window.
3. Select the appropriate license type in the "Select Components" window.
4. Click on the Continue button in the "Model Technology License Wizard" window.
5. Find and select the appropriate license file in the "License File Location" window.
6. If the selected license file is successfully recognized, then click on the Close button to close the "
Model Technology License Wizard" window.
For technical support on Atmel PLD related inquiries, please contact Atmel PLD Applications at:
Hot line : 1-408-436-4333
Email : pld@atmel.com
Logic doubling
Atmel Headquarters Atmel Operations
Atmel Headquarters Atmel Operations
Corporate Headquarters
2325 Orchard Parkway
San Jose, CA 95131
TEL 1(408) 441-0311
FAX 1(408) 487-2600
Europe
Atmel Sarl
Route des Arsenaux 41
Case Postale 80
CH-1705 Fribourg
Switzerland
TEL (41) 26-426-5555
FAX (41) 26-426-5500
Asia
Room 1219
Chinachem Golden Plaza
77 Mody Road Tsimshatsui
East Kowloon
Hong Kong
TEL (852) 2721-9778
FAX (852) 2722-1369
Japan
9F, Tonetsu Shinkawa Bldg.
1-24-8 Shinkawa
Chuo-ku, Tokyo 104-0033
Japan
TEL (81) 3-3523-3551
FAX (81) 3-3523-7581
Memory
2325 Orchard Parkway
San Jose, CA 95131
TEL 1(408) 441-0311
FAX 1(408) 436-4314
Microcontrollers
2325 Orchard Parkway
San Jose, CA 95131
TEL 1(408) 441-0311
FAX 1(408) 436-4314
La Chantrerie
BP 70602
44306 Nantes Cedex 3, France
TEL (33) 2-40-18-18-18
FAX (33) 2-40-18-19-60
ASIC/ASSP/Smart Cards
Zone Industrielle
13106 Rousset Cedex, France
TEL (33) 4-42-53-60-00
FAX (33) 4-42-53-60-01
1150 East Cheyenne Mtn. Blvd.
Colorado Springs, CO 80906
TEL 1(719) 576-3300
FAX 1(719) 540-1759
Scottish Enterprise Technology Park
Maxwell Building
East Kilbride G75 0QR, Scotland
TEL (44) 1355-803-000
FAX (44) 1355-242-743
RF/Automotive
Theresienstrasse 2
Postfach 3535
74025 Heilbronn, Germany
TEL (49) 71-31-67-0
FAX (49) 71-31-67-2340
1150 East Cheyenne Mtn. Blvd.
Colorado Springs, CO 80906
TEL 1(719) 576-3300
FAX 1(719) 540-1759
Biometrics/Imaging/Hi-Rel MPU/
High Speed Converters/RF Datacom
Avenue de Rochepleine
BP 123
38521 Saint-Egreve Cedex, France
TEL (33) 4-76-58-30-00
FAX (33) 4-76-58-34-80
e-mail
literature@atmel.com
Web Site
http://www.atmel.com
3303A-PLD-08/02 xM
ATMEL® is the registered trademark of Atmel; Atmel-WinCUPL™, Atmel-Synario™ and ProChip Designer™ are
the trademarks of Atmel.
Xilinx® is the registered trademark of Xilinx, Inc. WinSim® is the registered trademark of WinSim, Inc. Altium™
and Design Explorer™ are the trademarks of Altium Limited. Data I/O™ is the trademark of Data I/O Corporation.
Other terms and product names may be the trademarks of others.3303A