Limpkin's blog - Tag - Cadence<div>An electronics geek blog, dedicated to sharing and open source. Check out my stores: <a href="https://lectronz.com/stores/stephanelec" hreflang="en" title="Lectronz store">EU</a> / <a href="https://www.tindie.com/stores/stephanelec" hreflang="en" title="tindie store">EU & US</a>.</div>2024-03-27T19:19:38+00:00Mathieuurn:md5:51de6a3d917257edeff5a252fe925b02DotclearAltium vs Cadence: a totally subjective opinionurn:md5:a605a457350f484c6903dc818777ac7e2012-07-17T20:17:00+01:002024-03-09T10:58:27+00:00limpkinOthersAllegroAltiumCadenceeaglekicadPCB<p>Let's imagine that, for some reason, you'd like to create a 4+ layer PCB, and that free tools such as eagle aren't enough for you (let's say for high speed PCB design or complex schematics).<br>
You'd then have to choose between the two (but <strong>not only</strong>) major softwares available now: <strong>Altium Designer</strong> or <strong>Cadence Orcad Suite</strong>.<br>
This is therefore my opinion about them.<br></p> <p><strong><em>(2012/07/23 edit: thanks to Graham and Dams for their precious remarks, this post has been updated with some additional infos)</em></strong><br></p>
<p>First of all, let's emphasize the fact that this blog post is entirely based <strong>on my experience only</strong>. Therefore, it will be <strong>purely subjective</strong> even if I'll try to define objective grading criterias for schematics/PCB tools ;-) .<br>
It will also cover <strong>a very small portion</strong> of what these softwares can do, as I <strong>want to focus on the features you usually use the most</strong>.<br>
To plant the background, I've already routed 30+ PCBs on Cadence Allegro, some of them being 6 layers. On Altium Designer, I think I've only routed 5 or 6 PCBs, all 4 layers.<br></p>
<p>First, I'll explain here my personal definition of a <strong>good software</strong>, starting with the schematics part.<br>
Well, a schematics editor is usually not that complex. You trace wires, add some net labels, off-page connectors... <strong>basic things</strong>. However, things may get a bit trickier when it comes to adding your own components.<br>
IMHO, a schematics software should provide an easy way to draw your parts, and a clear way to <strong>manage your component library</strong>, to stay organized. The rest (mutiple netlists, multiple properties, pin properties) are just a 'plus' in my opinion. If you are thorough, if you know what you're doing and if you have a clearly defined way of proceeding when doing every single project... well you may choose to not even use them, choosing your own personal method to do without.<br>
A friend of mine is a big fan of Design Rule Checking (DRC) that may warn you from stupid mistakes you may have done (wrong connections, unconnected pins...). Well, I've never done any mistake <strong>that could have been prevented by using it</strong>, so I'll remain skeptical.<br>
As for the whole 'I have a huge pre-existing component library' argument... well I don't buy it. It never takes me more than 3 minutes to draw my own parts, and even if the software already had the part I would spend one minute checking it (right package, right pinout, etc etc...).<br></p>
<p>However, I am way more demanding when it comes to the PCB part.<br>
A PCB routing software should be <strong>easy to use</strong> (o rly?). To define that subjective criteria, I'd like to propose here a simple 'easiness measurement metric' defined as <strong>number of clicks + number of keystrokes + mouse moving distance</strong> to perform a given function.<br>
Why? Well because a good portion of the time you spend routing your PCB (<em>time is money</em>) is the time taken to perform <strong>simple actions</strong>. When you have to click 5 times, move the mouse 5cm to the right and 4cm to the left to do a simple thing, and you have to do this simple thing one hundred times on your PCB... it can get <strong>pretty long and frustrating</strong>.<br>
Obviously you can <strong>design your own keystrokes</strong> for some (but not all) of the software functions. On Altium, it is actually <strong>very easy</strong> (either hold Ctrl + double click on the function you want to assign a shortcut to, or go to DXP > Customize).<br></p>
<p>A PCB routing software should have all these neat little functionalities that make <strong>visualizing your schematics from the layout in front of you easier</strong>. Obviously, <strong>having 2 screens</strong> when routing a PCB is for me a must.<br>
I actually have <strong>three</strong> screens at home (two horizontal and one vertical) in this configuration: schematics > pcb > datasheets (and chats ;-) ).<br></p>
<p>The software should also <strong>provide utilities to display only what you need on the screen</strong>, and <strong>no extra stuff that would mess with your brain processing</strong>. Things should be clear, simple.<br>
For example, why is Altium <strong>requiring me to display the layer I want to put a trace on?</strong>. If I just want to make a simple strap and I know there is nothing on the other layers, I really don't need to spend time switching views...<br></p>
<p>As for the schematics part, database management is also a <strong>very</strong> important part of the PCB software. I personally want to be sure where <strong>all my components are located</strong>.<br>
On this topic, Altium and Allegro do things differently: Altium has a <strong>single file</strong> containing all the footprints of a given library, whereas Allegro create a single file for every component and <strong>pad</strong>. Being a <strong>maniac</strong> and a perfectionist, I prefer the Allegro way.<br></p>
<p>So let's start the comparison.<br><br></p>
<h2>Allegro vs Cadence<br><br></h2>
<p>First, you have to know that I've followed a <strong>eagle > allegro > altium > soon cadstar</strong> trajectory. So I <strong>am/may be biased</strong> :-D .<br>
As <strong>I didn't find any huge difference between Cadence Capture & Altium schematics tools, I choose to only focus on the PCB part</strong>. In my opinion, this is the part where there is a real difference between the two software suites.<br></p>
<h3>The visual aspect<br></h3>
<p>Let's set the scene. You're about to spend several days on a very complex task that is going to use all of your brain (well, only if you have size and cost constraints obviously). You'll be spending all this time looking at your screen and your eyes will inevitably <strong>get tired</strong>.<br>
I personally set all my PCB softwares background <strong>black</strong> and work in a <strong>low light environment</strong>. I find it quite resting and allows me to relax.<br>
I need to be able to <strong>identify my schematics nets</strong> quite easily. Altium directly display the net names <strong>on the traces and component pads</strong>.<br></p>
<p><a href="https://www.limpkin.fr/public/altium_vs_allegro/altium4.png" title="Altium displaying net names"><img src="https://www.limpkin.fr/public/altium_vs_allegro/.altium4_m.jpg" alt="altium4.png" class="media-center" title="altium4.png, juil. 2012"></a><br>
While on Allegro you need to <strong>leave your mouse on the component/net/pad/trace</strong> to know what it is.<br></p>
<p><a href="https://www.limpkin.fr/public/altium_vs_allegro/allegro2.png" title="Allegro displaying a component name"><img src="https://www.limpkin.fr/public/altium_vs_allegro/.allegro2_m.jpg" alt="allegro2.png" class="media-center" title="allegro2.png, juil. 2012"></a><br>
I actually think that both methods are good, as I <strong>always color my power lines</strong> because I route them last. Concerning the high speed signals, I usually route them first so I really don't need to be reminded all the time where they are.<br>
This is where Altium and Allegro differs: <strong>net colouring</strong>. For Allegro, it is quite easy: pick the tool, choose the color and apply it to the net. This net will then have its color <strong>completely changed</strong>.<br>
When you do the same on Altium, on a zoomed out view it looks the same:<br></p>
<p><a href="https://www.limpkin.fr/public/altium_vs_allegro/altium5.png" title="Coloring a net on Altium"><img src="https://www.limpkin.fr/public/altium_vs_allegro/altium5.png" alt="altium5.png" class="media-center" title="altium5.png, juil. 2012"></a><br>
But when you zoom in, things look quite different:<br></p>
<p><a href="https://www.limpkin.fr/public/altium_vs_allegro/altium6.png" title="Coloring a net on Altium"><img src="https://www.limpkin.fr/public/altium_vs_allegro/.altium6_m.jpg" alt="altium6.png" class="media-center" title="altium6.png, juil. 2012"></a><br>
<em><strong>Edit: this can be changed by going in the DXP > preferences > PCB editor > Board insight color overrides menu.</strong></em><br>
Most of the time, I <strong>only display one layer</strong> at a time when routing. On a 4 layers PCB, first layer is for signals, second for GND, third for power supplies and the last for the remaining signals. On a 6 layers PCB, the 2 additional layers are usually dedicated for vertical / horizontal buses.<br>
As a general rule, you want to <strong>optimize as much as you can your first layer use</strong>.<br></p>
<p>Anyway, both softwares provide a <strong>3D view of your circuit</strong>, <strong>useful when creating your enclosure box</strong>.<br>
On Altium, you can <strong>even route in 3D</strong>, but I seriously think it is <strong>pointless</strong>. By the way, Altium 3D view is <strong>much better</strong> than Allegro's.<br></p>
<p><a href="https://www.limpkin.fr/public/altium_vs_allegro/altium7.png" title="Altium 3D view"><img src="https://www.limpkin.fr/public/altium_vs_allegro/.altium7_m.jpg" alt="altium7.png" class="media-center" title="altium7.png, juil. 2012"></a><br></p>
<p><a href="https://www.limpkin.fr/public/altium_vs_allegro/allegro6.png" title="Allegro 3D view"><img src="https://www.limpkin.fr/public/altium_vs_allegro/.allegro6_m.jpg" alt="allegro6.png" class="media-center" title="allegro6.png, juil. 2012"></a><br>
I also fail to see the point of having a <strong>nice</strong> 3D view, except to attract clients with shiny pictures displaying your know-how. A <strong>rough 3D model of your board</strong> is more than enough for the mechanical guys ;-) .<br></p>
<h3>The views<br></h3>
<p>I always <strong>create personallized views</strong> of the PCB i'm working on.<br>
Sometimes I just want to display <strong>the board copper</strong> in order to maximize the space between the traces, and sometimes I just want to display <strong>copper + packages keepouts</strong> to put all the components as close to each other as I can.<br>
<strong>On Altium, the 'easiness metric' result for this function is way higher than in Allegro</strong>. You need to click on the bottom left of the page, click on the top left of the popup window to select the view, and finally click on the bottom right on OK.<br>
In Allegro, things are much easier:<br></p>
<p><a href="https://www.limpkin.fr/public/altium_vs_allegro/allegro7.png" title="allegro7.png"><img src="https://www.limpkin.fr/public/altium_vs_allegro/allegro7.png" alt="allegro7.png" class="media-center" title="allegro7.png, juil. 2012"></a><br>
This panel on the bottom right of your screen allows you to switch on the fly between <strong>your stored views (.color files) and the generated gerber views</strong>. <em>How cool is that.</em><br>
And if you don't want to use this little menu, you can also click on the little boxes to choose what you want to display.<br></p>
<h3>The filters <br></h3>
<p><strong>The what?</strong><br>
Let me explain here. You usually don't want your PCB software to behave the same way throughout the entire routing process. Sometimes you may want to <strong>only</strong> move/stretch/ripup/delete <strong>traces</strong>, sometimes <strong>components</strong>, etc etc...<br>
On Allegro, you have this very neat little panel on your right that allows you to apply a filter:<br></p>
<p><a href="https://www.limpkin.fr/public/altium_vs_allegro/allegro.png" title="Allegro find filter"><img src="https://www.limpkin.fr/public/altium_vs_allegro/allegro.png" alt="allegro.png" class="media-center" title="allegro.png, juil. 2012"></a><br>
This way, you'll <strong>only be able to click on the filtered elements</strong>. This allows <strong>faster mouse movements</strong> as you don't need fine mouse control and thus provides you a better routing performance.<br>
On Altium, <strong>it is +/- inexistant</strong>, as it has a <strong>smarter</strong> filter tool that allows you to <strong>build queries</strong> to select/modify parts of your design.<br>
<em>Great if you want to spend a few minutes building your query (depending on how long you have been using Altium).</em><br></p>
<p>Let's talk about how you know <strong>what you're going to click on</strong>.<br>
Allegro <strong>higlights the element it thinks you want to select</strong>. Simple and logic right? However, it may require you to do some <strong>fine mouse movements</strong> to precisely point to the right element.<br>
Altium <strong>asks you every time what you want to select if there's more than one element around your mouse</strong>. This leads to this:<br></p>
<p><a href="https://www.limpkin.fr/public/altium_vs_allegro/altium1.png" title="Altium selection process"><img src="https://www.limpkin.fr/public/altium_vs_allegro/.altium1_m.jpg" alt="altium1.png" class="media-center" title="altium1.png, juil. 2012"></a><br>
So my mouse is <strong>right in the middle of the via</strong>, i'm double clicking, and <strong>this pops up every f*cking single time</strong>.<br>
<em>Master, do you want to choose the via, the part, or one of the two traces around it?</em> <strong>Major facepalm</strong> here.<br>
One additional thing that may be useful: the ability on <strong>Allegro</strong> to quickly switch the way you move your parts: either <strong>pick it up from symbol origin or from the user pick</strong>.<br>
That means <strong>choosing between one or two clicks</strong> to move your component. Sounds stupid, right? Well, <strong>very useful</strong> to do either fine or coarse positioning. <br></p>
<h3>The debug<br></h3>
<p><em>Ok, this blog post is becoming weirder and weirder</em><br>
I don't know if this already happened to you, but sometimes I fear that the software has done something to my routing and I have no idea what.<br>
I also like to see what the software understands for everything that I do.<br>
Allegro has <strong>just the thing</strong>:<br></p>
<p><a href="https://www.limpkin.fr/public/altium_vs_allegro/allegro5.png" title="Allegro's console"><img src="https://www.limpkin.fr/public/altium_vs_allegro/allegro5.png" alt="allegro5.png" class="media-center" title="allegro5.png, juil. 2012"></a><br>
Yes, <strong>a console</strong>. You can even <strong>enter your own commands in it</strong>! Redefining keystrokes on the fly, seeing debug messages... it is actually perfect for a <strong>geek</strong> like me.<br></p>
<h3>Putting traces on your board<br></h3>
<p>Altium and Allegro have two complete approaches here as well. <br>
Allegro checks that <strong>each end of any trace is properly centered on the destination pin/pad.</strong> while Altium <strong>just checks that the copper is just touching it</strong>.<br>
In my opinion, this encourages easy routing and neglecting proper connections. But it is not that important anyway.<br>
<strong>Let's talk about Altium's stretching algorithm.</strong><br>
Let's say you have this via:<br></p>
<p><a href="https://www.limpkin.fr/public/altium_vs_allegro/altium3.png"><img src="https://www.limpkin.fr/public/altium_vs_allegro/altium3.png" alt="altium3.png" class="media-center" title="altium3.png, juil. 2012"></a><br>
And you want to strech it to the left:<br></p>
<p><a href="https://www.limpkin.fr/public/altium_vs_allegro/altium2.png" title="altium2.png"><img src="https://www.limpkin.fr/public/altium_vs_allegro/.altium2_m.jpg" alt="altium2.png" class="media-center" title="altium2.png, juil. 2012"></a><br>
<strong>(Edit) By default, it is quite annoying.</strong><br>
Luckily, this can be changed by going to DXP > Preferences > PCB Editor > Interactive Routing > Set "Routing Gloss Effort" to Strong.<br>
Allegro has the correct behavior by default.<br></p>
<p>Something I also wanted to show you. As I told you, I only display one layer when routing in Allegro:<br></p>
<p><a href="https://www.limpkin.fr/public/altium_vs_allegro/allegro3.png"><img src="https://www.limpkin.fr/public/altium_vs_allegro/.allegro3_m.jpg" alt="allegro3.png" class="media-center" title="allegro3.png, juil. 2012"></a><br></p>
<p>Let's say I want to <strong>add a via in the center and I have no idea what's under</strong>:<br></p>
<p><a href="https://www.limpkin.fr/public/altium_vs_allegro/allegro4.png"><img src="https://www.limpkin.fr/public/altium_vs_allegro/.allegro4_m.jpg" alt="allegro4.png" class="media-center" title="allegro4.png, juil. 2012"></a><br>
<strong>Not only Allegro shows the bottom trace I'm disturbing, but it is also doing the proper changes to it</strong>. Nice feature right? (<em>I swear I'm not sponsoring Allegro here</em>).<br></p>
<h3>The conclusion<br></h3>
<p><strong>There ain't any.</strong><br>
As I told you, <strong>this is my personal opinion only</strong> and I'm sure that if you <strong>have actually read this post</strong> ;-) you'll understand what I prefer.<br>
People route <strong>in many different ways</strong> and I'm not saying mine is the right one.<br>
For information, I have been told that <strong>Allegro's license is currently cheaper than Altium's</strong>.<br>
It is also worth mentionning that this article is <strong>a bit useless</strong> if you aren't an entrepreneur... when you come to your job, I don't think you have a choice on the tool you're gonna use :-D (<em>well, except at mine!</em>).<br></p>
<h3>(2012/07/24) The conclusion of the conlusion<br></h3>
<p>After being featured <strong>in Hackaday</strong> this post has created <strong>a lot</strong> of reactions.<br>
First, <strong>thanks a lot</strong> to all the people that pointed out <strong>the details I didn't know about</strong>.<br>
<strong>Obviously, I have a better knowledge of Allegro than of Altium.</strong> So I could say more things about what <strong>Allegro had that Altium hadn't</strong> rather than the other way around.<br>
<strong>However</strong>, I think that <strong>everyone will agree</strong> if I say that both <strong>software suites are comparable</strong> in the sense that <strong>there are no important tools that are missing in one or another</strong>. It's a matter of preferences.<br>
Still, there are a few things that will make me prefer Allegro: smarter rat enabling, better debugging, user component placement when going from the schematics to the PCB, <strong>faster</strong> filters, absence of this <strong>annoying popup window</strong> ;-) .</p>
<p>That's all folks!</p>