This is only a preview of the November 2010 issue of Silicon Chip. You can view 37 of the 112 pages in the full issue, including the advertisments. For full access, purchase the issue for $10.00 or subscribe for access to the latest issues. Items relevant to "Build A Hearing Loop Level Meter":
Items relevant to "Digital Lighting Controller For Christmas Light Shows, Pt.2":
Items relevant to "A High-Quality DAB+/FM Tuner, Pt.2":
Items relevant to "Ultrasonic Anti-Fouling Unit For Boats, Pt.2":
Purchase a printed copy of this issue for $10.00. |
BY MAURO GRASSI
Review . . .
Altium Designer &
the NanoBoard 3000
Altium Designer is software for designing PC boards, circuit
diagrams, Field Programmable Gate Array (FPGA) projects
and embedded software. It can work with the NanoBoard 3000
hardware platform and its supplied software libraries let you
quickly develop, test and debug a device without the need for
any hardware design or manufacturing.
A
RGUABLY THE premier design
package in Australia, Altium
Designer has so many features that
it’s impossible to cover them all in
this review. Basically, it is a comprehensive electronics design package
encompassing a PC board layout and
circuit diagram editor, a Computer
Aided Manufacture (CAM) manager,
and an FPGA and embedded software
Integrated Development Environment
(IDE). Also included are simulation
tools, version control, test instruments, software libraries and more.
This review refers to the features
of the Summer 09 edition. We will
90 Silicon Chip
cover the most important aspects of
the software but will necessarily leave
out others due to space constraints.
If you require further information on
these, take a look at Altium’s online
resources at www.altium.com
Migrating from other software
Many readers will be familiar with
the existing Electronic Computer
Aided Design (ECAD) packages such
as Autotrax, Easytrax, Protel 2.8, Protel 99SE, EAGLE and KiCad. Other
packages include Allegro and OrCAD
from Cadence and PADS from Mentor
Graphics.
Altium Designer is an all-in-one
package which can do what they can
and more. Its import wizards allow
existing Autotrax, Protel, Allegro,
OrCAD and PADS files to be used.
As Altium was formerly known as
Protel, it’s not surprising that Altium
Designer retains some of the elements
of Protel 99SE while adding new
features and improving on old ones.
If you’ve used Protel 99SE, migrating
to Altium Designer will be relatively
straightforward.
3D PC board editing
One of the great features of Altium
siliconchip.com.au
Above: the NanoBoard
3000XN is a comprehensive
hardware development
platform based around
a powerful FPGA. It’s
programmed via a USB cable
from inside Altium Designer.
Designer is its 3D visualisation package. This allows you to see what a PC
board will look like in three dimensions while editing it without having
to build it. The 3D rendering is fast
enough to allow interactive use and
you can even see the layers inside the
PC board.
The 3D capabilities of Altium Designer are best explored with a Space
Navigator™, a joystick-like device
from a company called 3DConnexion
(www.3dconnexion.com). It enables
you to change the viewing position
and zoom distance in an intuitive
way. Altium Designer supports such
devices out of the box but you can also
use a mouse if necessary.
While Protel 99SE could produce
a 3D view of a PC board, Altium Designer has a much better engine that
allows some basic board editing in 3D
mode. For example, components can
be moved or deleted and properties
can be changed.
The 3D view can be used to check
that the PC board fits inside its enclosure, for example. This is done by
superimposing a transparent 3D model
of the enclosure on the board. It is also
useful for checking for electrical errors in the layout of the PC board and
for checking that parts don’t physically interfere with each other. Copper
tracks, vias and pads are rendered
siliconchip.com.au
realistically, as well as any silk screen
layers. This makes it easy to spot common errors, such as overlaying the silk
screen on a pad or via.
While some of the components in
the supplied libraries already have
3D bodies, you can also easily create
a default component body by selecting
which outlines to extrude. This will
be sufficient in most cases but you can
also add realism by using texture mapping, where an image can be attached
to a component’s surface.
However, texture maps cannot be
wrapped around a cylinder, eg, for an
electrolytic capacitor. Components
without a 3D representation are simply
shown as pads and silkscreen outlines.
Interactive routing
Arguably the most important part of
a PC board layout tool is the track routing support and in this respect Altium
Designer is exceptional. Its interactive
routing modes include “Push and
Hug” routing, “Walkaround” (track
hugging) and “Track Slicing”.
“Push and Hug” mode allows you
to literally “push” a number of tracks
to make room for new ones, without
having to delete and re-route them. By
contrast, “Walkaround” allows you to
easily route a track so that it’s adjacent
to existing tracks, to most efficiently
use the available board area, especially
when routing busses.
Finally, “Track Slicing” allows you
to break tracks along a line defined by
the mouse. All these features are great
aids in the sometimes painstaking
work of routing PC boards.
Push and Hug is also handy when
it comes to moving tracks. If there are
several parallel tracks and you try to
move the one at the edge inwards,
they are all automatically moved so
that they remain parallel with the
appropriate clearance. Doing this in
other ECAD packages can require a lot
of manual editing.
There are other time-saving features.
Tracks and pads are automatically
labelled with the net name or pin designator if they are large enough. When
the mouse is moved over a track, its
entire net is highlighted, giving a clear
indication of what it is connected to (a
“net” refers to all the points in a circuit
that are electrically joined).
One problem that many ECAD packages have is that tracks can become
fragmented as they are edited. You can
often end up with a track composed
of separate smaller segments, which
is undesirable.
Altium Designer takes a good approach – a background process is
always running that automatically
detects co-linear track fragments belonging to the same net and converts
them to a single segment.
There are some rare cases where
this process does not correctly merge
segments, eg, if two segments are not
perfectly aligned, so that they do not
share a vertex. This can happen when
changing the measuring unit for the
grid from Imperial to metric or vice
versa, where rounding off errors can
be introduced.
Differential pair routing
For both radio frequency (RF) and
high-speed digital signalling, good
layout techniques are critical. A “differential pair” is a pair of tracks on a
PC board which carry signals which
are opposite in polarity. The same
technique is used in twisted-pair
cables as it reduces crosstalk and
electromagnetic interference (EMI).
Proper differential routing is especially important in high-speed signalling applications such as Hi-Speed
USB (Universal Serial Bus) 2.0. The
USB D+ and D- lines are a differential
pair, a requirement for achieving the
maximum transfer rate of 480Mbps.
November 2010 91
Fig.1: a 2D representation of a PC board in the layout editor. The blue tracks are on the bottom layer and the red
tracks are on the top layer (representing wire links). You can also see the rats’ nest connections corresponding to the
nets in the circuit diagram. Note that, in practice, the colours are much more vivid on-screen than shown here.
This type of routing is becoming increasingly common with the growing
use of faster serial busses like eSATA
and USB 3.0.
Altium Designer allows you to tune
the length and impedance of tracks
as you route them. This is useful for
impedance matching (which reduces
signal reflections and therefore waveform distortion) and laying microstrips
(a form of waveguide made from PC
board tracks). These are especially
important for wireless devices which
can operate at 2.4GHz or more.
Multi-channel design
When designing a PC board, sometimes identical sub-circuits need to be
laid out. For example, in a stereo audio
design, the two channels may require
duplicate circuits. A common solution
is to lay out one channel and then duplicate it. However, this technique is
less than ideal because when changes
have to be made they must be made to
all the copies.
Altium Designer takes a better approach to this with its “multi channel”
design feature. You only maintain a
single copy of the sub-circuit, which
is then linked to multiple parts of the
92 Silicon Chip
PC board or circuit diagram. When you
change the master copy, all the other
copies change too.
Layer stack
A PC board often consists of multiple layers although two layers is the
most common (ie, a double-sided PC
board). Different layers are shown in
different colours, with blue often used
to represent the “bottom” layer and red
the “top” layer.
In order to connect a bottom layer
track to a top layer track, a “via” is
used. This is usually a small pad on
each side of the board, with a copperplated through hole connecting the
two layers.
Vias are used for boards with more
than two layers as well but in this case,
they do not necessarily connect all the
layers of the board. Some may not be
visible on the surface of the PC board
which is formed from a “sandwich” of
substrates. The top and bottom layers
are called “external” layers, while the
rest are called “internal” layers.
While the 2D representation of the
PC board can show the internal layers by using additional colours, as
the layer count increases it becomes
more difficult to see which layers a
via is connected to, especially if it is
a “blind” or “buried” via. A via which
passes through one external layer but
not the other is called a “blind via”,
while a via which is only between internal layers (and thus not externally
visible) is called a “buried via”.
Keeping track of which vias (or
multi-layer pads) connect to which
tracks is made easier by using the
“Layer Stack” feature. This shows a
cross section of the PC board around
the selected via and shows which layers it connects to (see Fig.5).
Pin swapping
The PC board layout tool also allows you to perform “pin swapping”.
This is especially useful for designs
using high pin count FPGAs or micro
controllers. It allows you to swap the
nets (ie, all the connection points)
associated with two pins.
If an IC’s pins can be re-mapped, it’s
possible to greatly simplify the layout
of the PC board by carefully selecting which pins connect where. This
minimises track crossings (resulting in
a much simpler layout), keeps tracks
short and makes differential routing
siliconchip.com.au
Fig.2: a 3D view of the same PC board as in Fig.1. Realism has been added by defining leads for most of the
components and texture maps for the relays and capacitors. The orange cone is the 3D cursor.
easier. Quite a few pins may need to
have their functions swapped before
the ideal layout is achieved, so automating this process is very helpful.
Linking to online databases
An important part of hardware design is selecting and sourcing components and the trend is to do this online.
Altium Designer allows you to access
suppliers’ databases directly and large
suppliers such as Farnell, Newark and
Digikey currently offer access to their
inventory via this software.
Not only can you search their online databases and access technical
information about the component
(including the data sheet) from within
Altium Designer but you can also
check stock levels and place an order.
More importantly, with some of the
newer components, you have access
to component footprint information
and STEP models (Standard for the
Exchange of Product model data).
This allows you to insert the component directly into your design from the
vendor without having to go though
the time-consuming (and error-prone)
process of manually creating component symbols and footprints.
STEP is a standard way of describsiliconchip.com.au
ing the mechanical specifications of
a component. It can be used to give
assembly details too, including any
dependency relationships between
components. For example, a component may need to be installed before
another one, meaning the order of
assembly may be crucial.
Altium Designer can also use these
STEP models to render a 3D model of
the component (for 3D visualisation
of the PC board) and to improve its
“Design Rule Checking”.
Design Rule Checking
Design Rule Checking (DRC) is a
way of verifying a PC board against a
list of rules or “constraints”. For example, you can check whether tracks or
pads are too close together, or whether
tracks that shouldn’t be joined do in
fact join. You can also check whether
pins on a component have been left
unconnected or if one component’s
body interferes with another.
Altium Designer’s DRC is comprehensive and easy to customise. You
can even check the integrity of a signal
using its circuit simulator and any violations of the rules are summarised in
a report file. Clicking on an error in the
report takes you to the relevant place
on the PC board, which is highlighted.
This list is also made available in a
floating window, so that the violations
can easily be checked in turn.
In addition, Altium Designer supports “Live DRC”, with the board being checked against the design rules
as you work on it. This is very handy
as, for example, you can determine
how wide a track can be to fit between
components without violating clearance constraints and so on. Components which violate constraints are
highlighted with a special pattern and
annotated, thereby streamlining the
design process.
Linking circuits & PC boards
Usually, a circuit diagram is drawn
before PC board layout begins. To
draw a circuit, Altium Designer’s
Graphical User Interface (GUI) allows
components to be placed on a “sheet”,
labelled and connected via wires to
form the nets.
Each component has both a symbol
and one or more footprints associated
with it. The symbol is used in the
circuit diagram while one of the footprints is selected to go on the PC board.
Basically, the symbol represents
the component’s electrical properNovember 2010 93
Fig.3: another 3D view, this time from the side. Unplaced components are visible in the background along with their rats’
nest connections. The height of components is more obvious in this view.
ties while the footprint also contains
mechanical information, such as the
physical size of the component and its
pad locations.
For a transistor, the symbol would
be the typical transistor diagram showing the base, emitter and collector. The
footprint, on the other hand, would
typically consist of three pads and a
silk screen outline of the body. It might
also include additional information
to render a more detailed 3D body, as
shown in our screen grabs.
Once the circuit diagram is complete
and has been successfully “compiled”
(which involves creating a complete
global netlist), you can “synchronise”
the schematic to the PC board. This
results in the appropriate footprints
being placed adjacent to the board so
that they can be moved onto it. You
can see some of these unplaced components in Fig.3.
It is then possible to use either an
automatic placement algorithm (which
obeys the design rules) or manually
place the components yourself. Lines
are drawn between pads which need
to be connected (the so-called “rats’
nest”) which can help determine the
best location and orientation for each
component.
94 Silicon Chip
If the circuit is later changed, those
changes can be re-synchronised to the
PC board and vice versa.
Circuit simulation
Altium Designer has integrated
support for simulation environments,
including ModelSim and various flavours of SPICE (Simulation Program
with Integrated Circuit Emphasis).
These numerical simulations, together
with Altium Designer’s virtual instruments and its support for test points,
allow a design to be partly tested before
it is built.
Manufacturing outputs
When the PC board is ready for manufacture, you can use the Computer
Aided Manufacture (CAM) manager to
export Gerber plot files, NC drill files
and data in newer formats like ODB++
(a proprietary format that is increasing
in popularity). These can then be sent
to a PC board manufacturer.
The CAM manager is quite powerful. You can import Gerber files, “panelise” your design (ie, put multiple
boards into one file) and create SMT
(Surface Mount Technology) solder
stencils for reflowing. You can also
generate product assembly informa-
tion, including files to control pick and
place machines for assembly.
Altium Designer also makes it easy
to generate a BOM (Bill Of Materials)
for parts ordering. It can also produce
schematic and PC board hard copies,
manufacturing data, mechanical drawings and so on. You simply select what
kind of data to produce and Altium
Designer will generate the files with
a single click of the mouse.
NanoBoard 3000
The NanoBoard 3000 is a hardware
development platform that’s integrated with Altium Designer. It is ideal
for rapid prototyping but can also be
used for production, especially where
small runs are involved.
This can be economical as the extra
cost of the hardware can be offset by
greatly reduced development time. In
addition, Altium can supply modular
and stackable plastic enclosures for
the NanoBoard.
The NanoBoard 3000 contains an
impressive amount of hardware, the
core being a powerful FPGA. In fact,
there are actually two FPGAs on the
NanoBoard 3000, with one used to
program the other and to control the
peripheral functions.
siliconchip.com.au
As well as generous amounts of
DRAM, SRAM and FLASH memory,
the NanoBoard 3000 also has the following peripherals:
(1) a battery-backed Real Time Clock
(RTC);
(2) a 3-port USB host controller;
(3) a USB 2.0 Hi-Speed device port;
(4) an ethernet controller and port;
(5) an SVGA port;
(6) MIDI input and output ports;
(7) RS485 and RS232 serial ports;
(8) an analog audio output, input and
headphone connector;
(9) PS/2 ports for keyboard and mouse;
(10) S/PDIF digital audio input and
output ports;
(11) a TFT QVGA (320 x 240) LCD
touchscreen;
(12) stereo speakers;
(13) four relay outputs;
(14) two memory card sockets;
(15) analog-to-digital converters
(ADCs) and digital-to-analog converters (DACs);
(16) RGB LEDs and an IR receiver.
In addition, there’s a prototyping
area on the board and external connections can easily be made using the
terminal blocks. It’s also possible to
connect “daughter boards” for WiFi,
GSM modem or bluetooth support
and a USB 2.0 WiFi adapter can also
be used.
PC board layouts and circuit diag
rams for the NanoBoard and the
daughter boards are provided with
Altium Designer, so you can even design your own daughter boards. The
board is supplied with a USB cable,
a switchmode plugpack, a generic
infrared remote control and a stylus
for use with the touchscreen.
Note that there are different NanoBoards available, depending on
which FPGA you prefer. The model
we tested was the NanoBoard 3000XN, equipped with a 676-pin Xilinx
Spartan 3 FPGA in a small Ball Grid
Array (BGA) package.
The Spartan 3 has an equivalent
gate count of 1.4 million and this is
enough to implement a 32-bit CPU
(known as a “soft core”) with room
left over for peripherals. Once the
soft core is loaded onto the FPGA,
you can write firmware for it just like
you would a regular microprocessor,
with the added benefit of customisable
peripherals.
FPGA configuration
The NanoBoard 3000 plugs into
siliconchip.com.au
Fig.4: a screen grab of the online database access window. In this case, we are
accessing the online database of Digikey, looking at a Microchip microcontroller.
your PC using the supplied USB cable
and is configured via Altium Designer.
This includes configuring the FPGA
and loading software into it for any
soft cores being used.
Altium Designer has a GUI for
FPGA design. You can draw a diagram
consisting of logic blocks, inverters,
gates, flipflops, shift registers and so
on, all the way up to soft cores and
peripherals. The “synthesis software”
then configures the FPGA to implement your design. It’s a great teaching
and development tool, as very little
knowledge of the low-level details is
necessary to design a working project.
For more complex designs, Verilog
or VHDL can be used to describe the
desired hardware. Each FPGA vendor provides free synthesis tools for
their range of FPGAs. This must be
installed so that Altium Designer can
work with it.
The FPGA component libraries
included with Altium Designer have
Wishbone-compliant interfaces. This
means that they are compatible with
many of the OpenCores designs.
Wishbone is an open source bus for
connecting hardware blocks. OpenCores is a project that aims to provide
open source hardware components in
the form of verified HDL (Hardware
Description Language) code.
For more information on this, go to
http://opencores.org/ Adhering to this
standard allows freely available code
to be imported into your next design,
thus saving development time.
Embedded software IDE
Altium Designer supports embedded software development by including C and C++ compilers, as well as
various assemblers.
If you are using one of the royaltyfree IP soft cores, the software libraries
include a lot of the low-level driver
software for the hardware interfaces.
This includes a TCP/IP stack, USB pro-
Fig.5: the “Layer
Stack” shows a crosssection of a via or
pad. It can be used
to see what layers
the via connects
to, a feature that’s
especially important
for PC boards with
more than two layers.
November 2010 95
What Is A Field Programmable Gate Array?
An FPGA (Field Programmable Gate Array) is a digital IC that is software configured
using a Hardware Description Language (HDL). You can think of it as a custom digital logic
IC that can be configured to suit your application.
While both FPGAs and microprocessors can be reconfigured to suit the task at hand
(in the latter case, via software), the ability to change an FPGA’s hardware configuration
means that it can usually deliver much greater performance for the same clock speed and
power consumption. This is possible because an FPGA consists of many “logic blocks”
which are connected via multiplexed lines (or “multiplexes”).
There are many general-purpose logic blocks for performing arbitrary operations, as
well as specialised units to perform common tasks such as data storage, multiplication,
shifting, etc. The multiplexes are configured by memory (usually SRAM, EEPROM or
Flash) and this determines how the logic blocks are interconnected, so by writing to this
memory, the circuitry is reconfigured. It is a bit like a giant high-speed breadboard with
programmable wire links.
Virtually any digital circuit can be implemented on an FPGA, as long as it has enough
logic blocks. The “equivalent gate count” statistic is an estimate of how the FPGA compares
to an Application-Specific Integrated Circuit (ASIC, ie, custom IC). If an FPGA is quoted as
having one million equivalent gates, then it can take on the function of a typical ASIC with
one million gates or less.
This statistic is especially useful for comparing FPGAs across different manufacturers
since the internal structure can be different and therefore comparing the number of logic
blocks is not valid.
The best FPGA performance is achieved by making full use of its specialised logic blocks
while keeping the interconnections as short as possible. Fortunately, you don’t have to
worry about that, as the synthesis software provided by the FPGA manufacturer works it
out for you automatically.
A hardware synthesis tool is a program which takes a circuit description and determines
the best way to implement it using the available hardware building blocks. Typically, the
input to a synthesis tool is a Hardware Description Language (HDL) such as Verilog or
VHDL. However, with Altium Designer, you can draw an equivalent circuit diagram and the
software will generate the HDL for you.
Note that hardware synthesis tools are also available for ASIC design so hardware which
is prototyped in an FPGA can later be built into a custom IC which will be smaller and faster.
While custom ICs are cheaper in large quantities, the set-up costs are huge, so FPGAs are
often used for small production runs.
tocol handlers, MIDI and audio codecs,
image processing libraries and much
more. In short, the software support is
truly comprehensive.
Version control
In any project large enough to require multiple designers, version control is critical. Version control systems
allow many people to work on a large
set of files without “stepping on each
others’ toes”. It also helps track down
bugs by storing a history of changes for
each file and assists with upgrades and
testing by keeping track of multiple file
and project revisions.
Altium Designer integrates with
open source version control systems
like CVS and Subversion. These are
also useful for creating automatic
back-ups, while the ability to revert
to an earlier, stable version lets you
add features with minimal risk. Comparison engines allow you to track
96 Silicon Chip
and merge changes between different
file versions.
C-to-hardware compilation
A unique feature of Altium Designer
is its ability to automatically build
hardware acceleration support for C
functions. The compiler can automatically implement hardware in the soft
core to accelerate performance-critical
functions within the software. This is
possible because both the hardware
and software can be reconfigured to
suit each other.
This technique can yield substantial
gains in performance, especially for
computationally-intensive routines.
While there are some limitations as to
what kind of functions can be exported
to hardware, it is a powerful feature.
Online resources
Altium Designer gives you access
to a wealth of online resources. It
includes an integrated web browser
which you can use to access the Altium
Wiki, the “Resource Center” (with
videos and tutorials) and an online
community with forums. There is also
a Support CENTER, accessible with
a valid licence, for better technical
support.
Tutorials are freely available online
and some training will be needed to
use the software effectively. Training
sessions are hosted by Altium on a
regular basis.
Conclusion
Altium Designer is not simply a
suite of tools and substantial effort
has been put into integrating all the
components. There are powerful
cross-probing features, where you can
select an item on the circuit diagram
and have it selected on the PC board
as well. Overall, it is a comprehensive
and well-presented package.
There are various licencing options
for Altium Designer. The standard
perpetual licence costs $A6240 + GST
but you would also usually purchase
a 12-month software assurance for an
extra $A1995 (exc. GST), giving access
to the biannual updates. This software
assurance can (optionally) be renewed
annually.
For students, Altium offers complete versions of Altium Designer on
12-month licenses for $A115 + GST.
The NanoBoard 3000XN costs
$A495 (exc. GST) and includes a
“soft design licence” for 12 months,
allowing you to use the FPGA tools
in Altium Designer for development.
This licence expires after a year unless you renew it for another year for
$A295 (exc. GST).
While Altium Designer is not cheap,
it offers good value for the amount of
software provided. It is a complete solution for almost all general electronic
design and also includes access to
online resources and support.
Although the software has been
optimised for performance, you will
need a reasonably up-to-date system
to use it effectively. Altium’s website
lists the minimum requirements.
Contact details
For further information on Altium
Designer or the NanoBoard 3000, contact Altium. Their website at www.
altium.com contains a lot of information about their products, including
SC
information on new features.
siliconchip.com.au
|