horizon-eda / horizon-pool-convention

0 stars 2 forks source link

When to split units/symbols #8

Open fruchti opened 6 years ago

fruchti commented 6 years ago

There should be some rules clarifying exactly when one physical part should correspond to multiple units/symbols. The classic cases like a hex inverter or quad op-amp won't be questioned, but there are a lot more to consider. Maybe a general rule isn't possible, but some guideline would still be helpful then.

Here's my attempt of a somewhat ordered list of the special cases. Additional suggestions are welcome, I probably missed some which should be considered.

  1. Analogue/glue logic ICs
    1. Multiple identical “gates” in one package, like a dual op-amp or dual shift register. Following the common approach, these would have a separate power unit and multiple identical units.
    2. Multiple different “gates”, e. g. different logic in one package or a comparator plus reference. They are still probably used separately, so it makes sense to keep them as separate units IMHO.
    3. Single gates/op amps/comparators/etc. Personally, I'd use a functional and a power supply unit here as well. The units from a/b can be reused here and swapping out a single gate for a dual one in a schematic later on will be much easier.
    4. Single op-amps with extra pins, e. g. for frequency compensation, shutdown, balance. These often require external circuitry referenced to the op-amp's supply, so should we break the symmetry here and include the power pins as well within the one, single unit?
  2. Large digital ICs
    1. MCUs could be split with each port being one unit plus another unit for all power supply, clocking and analogue stuff. Personally, I'm against that as the ports are not really separate and quite often you'll have functionality spread across several ports.
    2. FPGAs could be split similarly. Here, I/O banks often even have separate supplies. I don't have much experience here.
  3. Discrete/passive networks
    1. Resistor/capacitor networks. If the components are not internally connected, these make sense to end up as multiple units IMHO. If not, the schematic might get a bit convoluted.
    2. Multiple transistors in one package. These are mostly used for thermal matching, so I'd keep them together.
    3. Diode networks are mostly for ESD protection, where the individual diodes would end up in the same place on the schematic anyway, so I'd keep them together as well.
    4. Multi-colour LEDs. Does not make much sense to separate them IMHO.
  4. Misc stuff
    1. Optocouplers, both single and multi. Multiple optocouplers from one package should be their own units IMHO. Do we want to split the transmitting and receiving part? I've seen this in some schematics and liked it pretty much, but it could get confusing with more than one optocoupler per package.
    2. Relays, similarly. I'd personally split coil and each set of contacts.
    3. Switches. I'm not really sure about these, but my gut feeling says to keep them in one unit. Except maybe for stacked rotary switches?
    4. Multi-section potentiometers. These can look pretty awkward in schematics if kept together so I'd use separate units.

I'm interested in what you people think of this topic and what arguments you have for general or specific cases. Anyway, I'm not really fond of putting a huge table in the convention for which parts should be split and which shouldn't. I'd hope that could be condensed into some short guideline.

atoav commented 5 years ago

I agree entirely with section 1. I am too unsure how to approach single opamps, but IMO I would go for consistency here, and make the symbols in such a way that the power pins can be placed onto the opamp symbols.

For section 2 (Large digital ICs), I think there is some value to split them. But there is another value in having them visually represented as one monolithic unit (which in the end, physically they are). Maybe there is a way to get both?

For section 3 I again agree totally, nothing to add.

For section 4 I agree mostly, while I am not sure about the Optocoupler part (4i), below is the LCR-0202 I made:
2018-12-02 13_56_34-schematic - interactive manipulator

If you search google images you will find that most optocoupler symbols are in fact visually coupled. This is IMO for a good reason.

I see a similar problem like the one mentioned in section 2: how can we get the advantage of making units movable while visually making clear that they are part of a bigger thing?

Maybe we could think about a more flexible way, to break out sub-units only if needed or something like that.

fruchti commented 5 years ago

Thanks for the feedback!

For the single op amps, the user would have to smash the components and hide the text for one of them manually after rearranging them on top of each other. That isn't totally pleasant and introduces another source of error (erroneously swapping components, typos while changing the reference designators). On the other hand, it doesn't cost much to include and might be useful for people doing a “prettying up” pass on the schematic before publishing/archiving it.

If you search google images you will find that most optocoupler symbols are in fact visually coupled. This is IMO for a good reason.

You're right. If we allowed separation of transmitter and reciever, we'd need a naming scheme for the reference designators, so a quadruple optocoupler's eight symbols wouldn't get completely confusing.

  • dashed bounding box lines? With these one could get some degree of flexibility.

Could you elaborate? I don't think I understand this one fully.

Maybe we could think about a more flexible way, to break out sub-units only if needed or something like that.

I don't think there is a way to comfortably offer both splitting up monolithic components and drawing them as one without integrated support from Horizon. That, however, could get pretty complicated and opaque to the user. Personally, I'd step back from that idea and take only one way of displaying into account.

atoav commented 5 years ago

On a second thought I agree on the conclusion, that splitting monolithic parts could be a bit too intransparent. In the end we will have to decide for each part anyways – should it be multiple units or one?

For the dashed line idea, I did a quick and dirty mockup: artboard 1

artboard 2

In my imagination that would be something that could be switched on or of on a per Entity, and obviously it would only be meant for special parts (I don't really like the IC example above, but it illustrates the idea).

Maybe this could even work for parts on different pages:
artboard 1 copy

This shows visually that these belong together (in a package sense), while still allowing some degree of movment.

fruchti commented 5 years ago

Ah, I see. This would certainly look nice in some situations, but I think it would add unnecessary visual noise in most cases (and become confusing once the dashed outlines for multiple parts intersect). Reference designators are probably still the best solution…