Net Class in KiCad

Hi I have only question about Net Class, not generally in KiCad but overall. Is there anyone who can share his knowledge about setting net class. About what think during this. Some step by step method. What take into account. Thank for everyone for any answers :slight_smile:

I encountered a schematic recently where the designer had prefixed net names with things like M2F_ (MCU to FPGA) or F2R_ (FPGA to RAM), etc. I’m not sure whether I like this or not, but if you have one of those pseudo-schematics which are nothing more than a visual netlist, I suppose it would be quite helpful.

I was recently working on some MCU pin configuration code, and found it useful to group signals by their sub-circuit. I had categories like MCU, IMU, Power, Sensor, etc. While this was from the MCU’s point of view, not the whole schematic, I could see such categorization might be helpful, especially on a very large schematic.

Another application of net classes, more closely related to the PCB, would be to group nets by certain physical properties of their traces. For example, these nets in class Z50_SINGLE are 50 ohm controlled impedance single-ended traces, NORMAL are general purpose 8-mil signal traces, etc. Some nets could be problematic, like power nets - some portions of power nets should be wide traces or planes, but other portions of a power net should be treated like signal traces, and yet they all are part of the same net. These kinds of classes are often used by auto-routers, based on my past (not vast :sunglasses: ) experience with them.

Which reminds me of a story - many years ago I was helping a team with a huge 9U VME card that had tons of special routing requirements. It was otherwise well suited for auto routing. Me and another engineer discovered deep in the documentation for the CAD tool (I think it was Cadence, this was back in the 90s) for classes and auto routing. We spend about a week carefully going over the netlist, and assigning the appropriate classes for every net which was to be autorouted. When we finally finished and took it to the PCB guy for routing, we learned that our company didn’t have that feature - it was a huge add-on price-wise.

That’s how I largely use net classes in Altium. Almost always have a Power class, and also a RF class or USB class as needed for 50 ohm or 90 ohm diff-pair.

Net classes are also important when doing high-speed bus designs that require matched distances within the group. Having the tool constantly recalculate and ensure you have matching lengths is a nice feature.

So as I understand correctly we should split net class into Signal(UART, I2C, SPI), Power(12V, 5V, 3.3V, 1.8V) RF Signals, Differential signals and this is everything? :slight_smile: Thank to everyone for reply.