What is Schematic Electrical Rule Checking (ERC)?
How does it work?
How is it useful?
Examples in Altium Designer + OutJob scripting is mentioned.
EEVblog Main Web Site: http://www.eevblog.com
The 2nd EEVblog Channel: http://www.youtube.com/EEVblog2
Support the EEVblog through Patreon!
http://www.patreon.com/eevblog
EEVblog Amazon Store (Dave gets a cut):
http://astore.amazon.com/eevblogstore-20
T-Shirts: http://teespring.com/stores/eevblog
๐Ÿ’— Likecoin โ€“ Coins for Likes: https://likecoin.pro/ @eevblog/dil9/hcq3

Hi this is just a little a side video from my Nexi Tube display driver videos I've been doing cuz I Thought some people might find this just interesting in its own right. We're going to talk about Electrical Rules check-in in schematic documents in this case using a powerful tool like our Diem designer and just exactly what is an AR See how does it differ from a design rule? check on a PCB and what advantages it can have. So let's get to it just to show you doing an E Rc on a schematic like this. Now a lot of people will just skip this if you're just doing it quickly and getting up and running.

but hey, you know you couldn't get if you're doing any sort of serious designer, even a one-off like you know. Let's say, we had our grid set incorrectly and we had a fine grid and we didn't connect up this trace to here or something like that and you zoomed out and you didn't notice that it wasn't electrically connected. For example, there could be many other connection faults on a schematic. that's why they have snap grids in here so that everything snaps.

So when you actually then do your netlist for this and pass it through to your PCB and that information, that netlist information of what pin connects to, what does not get sent through to your PCB file and then you won't route the thing. You could easily miss routing that pin and your board won't work because you made a simple error in your schematic and you didn't do an E Rc and fix it. So let's go in and actually do an ER CEO of this thing. You should do it as a matter of course.

Now all programs work differently at this is how Altium Designer works. Now there are two ways to invoke an ER see an Electrical Rules test are one is to actually are right click on here and go compiled document. but as I shown in a previous video on my second channel I think there's a bug with this so we're not going to use that anyway. LTM Recommend actually compiling the PCB the entire PCB project and that will use the rules which won't take a look at.

So the term compile is just another way to actually run an Electrical Rules check. You can think of that you know it's literally like a software compiler. We've written our code, we've drawn our schematic, now, we're compiling, and it's going to tell us if we've done something stupid. and the other more powerful way to actually systematically do this as part of your process is to create and use an out job.

So I'll just show you that here. let's go in and do an out job, shall we? So what we have to do here is go into settings, output job files Now I've created a new out job. Here you just go and file a new out job. So I've created an hour job and what we have to do is that's rather convoluted.

But there's reasons for this. An out job is just a very systematic way of doing all sorts of things. in this case generating netlist simulators, documentation, assembly, fabrication outputs ie. or your Gerber stuff, doing all your reports like your ESC and your DRC s which we're gonna do here and then all sorts of stuff and it's really powerful.
As a professional PCB designer. in the past, I've made extensive use of these out jobs. You know, if your professional designing you want a rigorous process for releasing a new board and these our jobs just force you to generate all these reports and all these different things are very, very powerful and flexible tool for the professional. Probably a little bit annoying just for the one-off, you know, hobbyists making one-off boards or whatever.

But anyway, so we can do stuff like you know, going to fabrication outputs and we can generate our drill drawings, our Gerber files or there's a like update screen bug error I think that's caused by my screen capture here. Anyway, what we want to do is we want to create an ER see in this thing. so we want to go to add new validation output. Now we've got two different types.

Ones are Design Up That's annoying a Design Rules check a DRC but you'll notice that it's only available on our PCB document because DRC's a design rule check is done on PCBs. But if you want to do this basically the same thing on a schematic, it's called an ER See an Electrical Rules Check So you notice. So this is what we want. Electrical Rules check And then it.

We've got one schematic document in our project, so we select that and Bingo! We've got an ER see on our thing in now. we enable this and we can actually send the output of this to a PDF file in one generator report for you know, a meeting, or so you know, or for whatever purpose. Or we can generate a video. But what we'll do is we'll just generate a basically HTML file here.

So we'll generate a file and we can just go generate content. So what we're going to do is run the Electrical rules check using the rules that are already set up which I'll show you in a minute and we can just go generate content so it actually runs in ERC and Bingo. Here's our report and you'll notice that there's not - there's no major errors. Warning: Will Robinson Error error.

We've only got some warnings here. hidden net added to VCC and ground. That's nothing that's to do with the 7 for HC chip which has a couple of hidden pins. No problem.

but then these all. what are we got here? Look no driving source? Pin you 118, Huh? And basically every one of those 595 chips and a couple on the module as well. So let's go in and take a look at that, shall we, right? So let's put all these errors in our messages output here so we can actually go in and have a look. you know what one of these errors is.

so we can go in there and we can go cross, probe and bingo. It takes us as zooms us all the way in, which is rather rather annoying here. But anyway, it zooms us and then highlights the particular error. So oops, I see the problem D Out: yeah, oops, that was a peb kak error when I was creating this symbol.
I created pin 18 there. the D out I've actually set it as an input pin. You see that arrow going. Input: So what's happened here is it's flagged this as a warning.

It says basically there is no driving sauce I've got two inputs tied together but there's no signal driving that line so it knows that it's electrical rule check in your schematic. So yeah, we need to fix that and I've done that because they I've just placed the same chip is populated. All that error and I think we had an error on the module as well. So yeah, probably a couple of these inputs weren't.

You know the pins weren't set as inputs and outputs. We'll just fix that in the component and we'll update. So here we go. This is a real easy thing to fix.

We just our data output, pen and cheese I'm dumb I Set it to a input. Here it is electrical type. You can set all the different pens now usually by default they're like passive and then the warning wouldn't of. We wouldn't have got any warnings whatsoever.

but you know if you're doing this professionally you creating symbols professionally, you want to gonna want to set the output to a particular type so we can ever set that to passive and the warning will go away. But we'll set that to output because we're happy with. And there we go. It's changed.

the arrow pointing out when so shows us that we've got the output like that. So d out bingo fixed. We can save that and then we can just go update Schematic sheets. Boom.

There's 11 components in one schematic document. Yep, okay, we're updated. We're all good. We'll notice that our symbols have now changed.

There we go. Data out: Pin Pin 18 is now output. so if we run our our job again, we'll find generate content. Boom.

Our errors are gone for those particular chips but still got no driving source for the module. But I don't you know I can go in and fix that. but and get down to zero errors. And if you're a professional designer and a lot of companies will enforce this to go to the next step the PCB step you have to show that you've got zero errors on your ERC And of course you can fudge that.

A lot of you know a lot of designers will rightly in some cases just fudge that until the errors go away. and huh, you know I I know what I'm doing, you know and so you can fudge it. But yeah, if you do it properly, your goal is to get all the errors and warnings to go away before you go on to the PCB layout step. But anyway, that is now fixed I'm happy with that now.

Of course we can use this ERC to find as I said, a whole slew of it like I could go through maybe a hundred different examples of different variations of errors that you know the system can find here. but like a very sit, let's do a very serious one. For example, let's say you weren't thinking and you connected an output pin 18d out here to another output. oops, you shorted two outputs.
the other you could release the magic smoke. So I've deliberately added that error in here and also another error here. look on this chip, u6d out pin 18. I've actually shorted that down the ground.

So once again, yeah, you could release the magic smoke. You really want to pick an error like this up. I've got another one Dean here which is that floating and it's got you can do online check-in as what like it shows it on the schematic. That's what that red squiggle is that shows where the errors are.

So what we can do is, we can just compile our project here and Bingo! look. ground contains output pin and well, it's power source so we can actually go there, have a look at that and tada. It's a bit hard to find the actual thing. It doesn't point out exactly where your error is.

You've got to scroll around until I Ha. There it is. Our output is shorted down to ground, so that's a real big deal that you want to get rid of. And where's the other one we've got contains has no, It contains floating.

It contains multiple output pins. Here we go. this is the one we want. We've got two outputs shorted together and Bingo! It's found that multiple output pins shorted together for us, so it just can pick up really gross errors like that As so.

This is why a RCS are incredibly important. Just as important, if not more so than PCB DRC Errors: If you miss things in the schematic, they can flow through to the PCB, go through to the netlist, your route, your board, and you get it manufactured in multiple steps. Could be multiple weeks or even months down the process before you build up your prototype and find that error when you should have actually captured it in your schematic. So ERC Electrical rules, check in Very very important thing and good quality package like I'm out him designer will have extensive ear C capability.

And as I said, there's just a ton of stuff in here with all these reports with the ones to do with busses. If you've got busses, code symbols, actual components, stuff like subparts and being used and all sorts of you know can set these. - Warning: no report, error, Fatal error, whatever you want, you might have company rules for these sorts of things. You know you might be forced to use a particular rule set when you if you're a professional PCB Designer at a company or something like that.

So you're real serious. Companies will take this extremely serious because once bitten, twice shy, and ERC's can really save your butt. So well worth doing. And documents and configurations, harnesses and various nets and you can detect all sorts of weird and wonderful things with the connection matrix and we won't go into so that other stuff.

But yeah, it's a fantastically powerful tool. Now as you may have already gathered, the quality of your ERC is really only as good as the quality of your component libraries. in this case, actually going there and setting all of these pins to inputs, outputs, or setting them to you know, open collector and bus power. You know, whatever it is.
and if you've got a really generic component library that doesn't have any of these things set, then ERC is going to be of limited value. Of every single pin in here is set to passive for example. then it's not gonna do anything for you, so it's gonna miss a whole ton of stuff. So yeah, it pays to actually put effort into your component libraries to ensure that all these things are set correct.

And of course, nothing stops you. You know, no ERC is going to save you if this Pin 20 here you've accidentally labeled at pin 19 in your component library. But that's why companies put a lot of effort and often they'll have our dedicated library design people or person who will just design libraries. And once the library is designed, that never gets touched again.

and it's once it's verified, they will never touch that thing again. So just be aware of that. It's worth putting in the extra effort. But yeah, be aware what your ERC is capable of and not capable of based on the information you're giving it.

garbage in garbage out. A fantastically powerful tool? Yeah, see, so have a play with it next time you do a schematic in your package of choice. Of course, not all packages will be this extensive and powerful, but your professional ones most certainly are, and they are for a reason. I Hope you enjoyed that.

Catch you next time you.

Avatar photo

By YTB

28 thoughts on “Eevblog #953 – what is schematic erc?”
  1. Avataaar/Circle Created with python_avatars PinBallReviewer says:

    I may go to this.
    But for right now I use Express PCB and Express SHC for my boards and or schematics.
    I made up a flipper board schematic for my pinball machine I am working on.
    Allthough for now I am going to use Open Pinball Project's boards until I can make up my own and etch the copper clad myself.
    And not knowing much although I have learned a lot from repairing Pinball Machines that I own I have a better idea of how to get a board to work in my game. xD

    I am hoping to have it up and going so I can stick it out and see how well it does.

  2. Avataaar/Circle Created with python_avatars hachidori 106 says:

    you're back to Altium mate?! (^_^)

  3. Avataaar/Circle Created with python_avatars Herby1620 says:

    Do any schematic packages distinguish between "power" grounds and "signal" grounds. In something like a 4 layer board, I would like the power to be on the planes inside, but the signals (if I need to alter them) to be outside. The same goes for Vcc/Vdd as well.

  4. Avataaar/Circle Created with python_avatars silvermica says:

    I didn't know that you could update the schematics directly from the library.

  5. Avataaar/Circle Created with python_avatars Stephen Newberry says:

    Haha – I saw the menu bug and thought, "Oh, he must be running Altium 17…"

  6. Avataaar/Circle Created with python_avatars Maya Posch says:

    ERC reminds me a lot of the validation that automatically occurs when you compile & synthesise a VHDL design for an FPGA or similar. I am assuming that it is basically the same general idea.

    I don't honestly know why anyone would want to even breadboard a design before having one's tools run a sanity check on it ๐Ÿ™‚

  7. Avataaar/Circle Created with python_avatars Magor Keszthelyi says:

    nice thanks for this, i wonder pads sowftware has any advantage in erc (vs altium)

  8. Avataaar/Circle Created with python_avatars Learning Engineering says:

    that great!

  9. Avataaar/Circle Created with python_avatars sp906d dev says:

    Why check design from output job file ? Right click proj/sch,
    compile all, and the message box will update with all warning/errors,
    no need to go to output job file for that. Bobs your uncle.

  10. Avataaar/Circle Created with python_avatars Dgc2003 says:

    I work at a design center for a company that produces semiconductors for RF applications. I do software development for them and entered with 0 knowledge of the IC world. Oh man is verification a serious thing. Every day I hear all about DRC/ERC/LVS/LUP/XOR/ANT/Stress/Density/Data Extent verification results.

    It's also cool to actually see what running an ERC can look like since I'm often dealing with the results rather than the process.

  11. Avataaar/Circle Created with python_avatars dablakh0l says:

    I've used many different schematic capture programs over the years, and recently was introduced to Altium. All I can say is "what a load of crap!" Everything you need to do requires so much convoluted ways to get anything done. Plus, it crashes whenever possible, and the help file is for 3 revisions earlier, or you get the 'coming soon, notice. WTH? Even trying to print a schematic page requires bending over backwards. That is IF it decides that it's not going to popup a useless error message and lock up the system. I would take Eagle over Altium any day. Even OrCad with all its foibles at least doesnt crash and take all your hard work with it.

  12. Avataaar/Circle Created with python_avatars slap_my_hand says:

    Why the fuck did youtube change the notification system? It looks ugly and it is worse than before. It's time to search for an alternative to youtube. Google doesn't know what the users of their websites want.

  13. Avataaar/Circle Created with python_avatars awefjlx says:

    Love the new 'project' series like this and the Pi Cluster one, you showing a professional approach to kind of silly problems! The uC ones were nice, but a bit dry for me as a casual viewer. Hope to see a lot more of these projects

  14. Avataaar/Circle Created with python_avatars FutabaGP says:

    i will give it a bow

  15. Avataaar/Circle Created with python_avatars Matt Symesy says:

    Wow Dave, such an extensive and powerful package you have there.

  16. Avataaar/Circle Created with python_avatars Sixta16 says:

    When uSupply and other projects get finished?

  17. Avataaar/Circle Created with python_avatars pvc says:

    Look like you still have that bug where the most bottom inverter is U14A instead of U12F

  18. Avataaar/Circle Created with python_avatars Yaghiyah Brenner says:

    I knew nothing about Altium, I took a basic course from Robert Feranec, I will recommend anyone to take he's course, its fantastic seriously! Its hard to understand how to use two programs with limited time, choose one and try and master it.

  19. Avataaar/Circle Created with python_avatars james lawrence says:

    20 seconds into the vid… nope. gonna be way too above my level to begin to comprehend. i shall return, but in the meantime i shall learn. thanks dave ๐Ÿ™‚

  20. Avataaar/Circle Created with python_avatars dem0n1k says:

    Good video Dave. It annoys the hell outta me when engineers just fudge the ERC by placing ERC suppression parameter sets on all the pins that cause errors.

  21. Avataaar/Circle Created with python_avatars Alex says:

    These videos are great, I would love to see more schematic and PCB stuff like this. Thanks for sharing this ๐Ÿ™‚

  22. Avataaar/Circle Created with python_avatars SidneyCritic ComedyHound says:

    The more I see of Altium, the more it seams too much for the hobbyist. I have a 100 component project and it seams too much for that.

  23. Avataaar/Circle Created with python_avatars Alyx says:

    Altium, continuing to make simple tasks pointlessly complicated ๐Ÿ˜‰

  24. Avataaar/Circle Created with python_avatars Jack Zimmermann says:

    Why can't Altium have a reasonably priced version of Altium for hobbyists/makers? I'm in the transition from hobbyist to actually start selling stuff and is stuck with Eagle…

  25. Avataaar/Circle Created with python_avatars Andrea Zambon says:

    @EEVBlog: maybe I'm missing something, but no 3.3V regulator/voltage source for the WiFi module?

  26. Avataaar/Circle Created with python_avatars TubiCal says:

    True for that company ERC/DRC pre-set rule check….boss always wanted a "clean" ERC/DRC first.

  27. Avataaar/Circle Created with python_avatars ossiebird0 says:

    A fantastic program, I wish I had a copy.

  28. Avataaar/Circle Created with python_avatars Andrew Kowalczyk says:

    Even on hobbyist boards, ERCs have saved me from making some very stupid mistakes. Great video, would love to see more like this (maybe one on DRC as well to go with?)

Leave a Reply

Your email address will not be published. Required fields are marked *