kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #35441
Re: Differential pairs dimensions
On 04/14/2018 10:46 AM, Jeff Young wrote:
> I still don’t think I’d put netclass dimensions in the schematic.
> However, I do completely agree with putting the netclass *set* (and net
> membership) in the schematic.
I see netclasses as just another constraint. I use the same netclasses
over and over again in my projects so having a way to make them easily
shareable between projects would be useful to me. I'm not sure a
separate method to handle netclasses versus all other constraints makes
sense. I do agree that it should be possible to defined them in the
schematic editor. I would think a properly designed constraint editor
would work equally well in both the schematic and board editors as well
as stand alone. Given what I have learned about the board file design,
saving the netclasses and other constraints in the schematic file
doesn't make sense. This will need to be defined before I can begin
writing the new schematic file format.
>
> For that kind of stuff we could start leaning more heavily on the
> project file, or we could use inter-app communication as we do for the
> netlist.
I would consider inter-app communication a given regardless of where we
store this information. What form the inter-app communication takes is
certainly open for discussion. It could be using our kiway messaging or
it could be a file watcher that updates the constraints when the
constraint file is edited.
>
> From first blush I’d prefer the later (as it makes stand-alone files
> more viable). But, like I said, first blush….
>
>
>> On 14 Apr 2018, at 15:37, Jon Evans <jon@xxxxxxxxxxxxx
>> <mailto:jon@xxxxxxxxxxxxx>> wrote:
>>
>> It's also a somewhat common workflow for design rules to be driven
>> from the schematic (rather than created as part of board layout).
>> Having a separate file for design rules isn't the only way to do that,
>> but I just wanted to mention that use case so that it is also
>> considered. In that workflow, you need a way to define design rules
>> before there is even a PCB design started.
>>
>> On Sat, Apr 14, 2018, 10:29 Wayne Stambaugh <stambaughw@xxxxxxxxx
>> <mailto:stambaughw@xxxxxxxxx>> wrote:
>>
>> It makes sense to me to have importing and exporting constraints
>> as part
>> of the design. I would also add copying a default constraints file as
>> part of the new project and new project by template commands. I think
>> that pretty much covers all of the bases.
>>
>> On 04/14/2018 10:23 AM, Jeff Young wrote:
>> > Good point. A lot of the constraints are defined by the fab
>> house rather than the particular board design.
>> >
>> > FrameMaker had a “Use Formats From” feature which imported page
>> layouts, paragraph formats, variable definitions, etc. from
>> another document. Our customers liked that a lot better than
>> having to manage yet another file.
>> >
>> >> On 14 Apr 2018, at 15:14, Wayne Stambaugh <stambaughw@xxxxxxxxx
>> <mailto:stambaughw@xxxxxxxxx>> wrote:
>> >>
>> >> We definitely should define this before we get too far down the
>> road. I
>> >> would rather not store layout constraints in the board file if
>> at all
>> >> possible. I think this was somewhat shortsighted when I originally
>> >> wrote the current board file format. I would rather the
>> constraints be
>> >> written either to a separate file or into the configuration
>> file so they
>> >> can easily be reused between projects. I find that I reuse the
>> same
>> >> constraints from project to project so being able to easily
>> reuse them
>> >> without having to reenter them every new project or modify the
>> board
>> >> file with a text editor would be rather handy. This would also
>> have a
>> >> nice side effect of the board file format not changing every
>> time we
>> >> want to add a new constraint.
>> >>
>> >> Wayne
>> >>
>> >> On 04/14/2018 09:37 AM, Jon Evans wrote:
>> >>> I see what you are saying, but I also think that if there's
>> any chance
>> >>> we will be able to define a spec/format for design rules this
>> cycle, we
>> >>> can avoid the need for multiple (potentially incompatible)
>> changes to
>> >>> the way rules are stored during the development cycle.
>> >>>
>> >>> On Sat, Apr 14, 2018, 09:25 Jeff Young <jeff@xxxxxxxxx
>> <mailto:jeff@xxxxxxxxx>
>> >>> <mailto:jeff@xxxxxxxxx <mailto:jeff@xxxxxxxxx>>> wrote:
>> >>>
>> >>> Hi Jon,
>> >>>
>> >>> I agree we should have that conversation, but I also don’t
>> want to
>> >>> fall into the trap of doing nothing until you can do
>> everything.
>> >>>
>> >>> We don’t store even the single set of differential pair
>> dimensions
>> >>> in the board right now.
>> >>>
>> >>> Cheers,
>> >>> Jeff.
>> >>>
>> >>>
>> >>>> On 14 Apr 2018, at 14:12, Jon Evans <jon@xxxxxxxxxxxxx
>> <mailto:jon@xxxxxxxxxxxxx>
>> >>>> <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>> wrote:
>> >>>>
>> >>>> I'm not exactly sure what you're planning, but I think
>> before you
>> >>>> go too far down this road we should have a conversation /
>> plan for
>> >>>> how we actually want DRC to work architecturally.
>> >>>>
>> >>>> There are definitely lots of reasons to have multiple diff
>> pair
>> >>>> rules per board, and also have those rules only apply to
>> certain
>> >>>> areas of the board.
>> >>>>
>> >>>> There might not be a specific feature request for this
>> because it
>> >>>> is part of a request for a net class system and rule by
>> area system.
>> >>>>
>> >>>> The ideal DRC system, in my mind at least, has a split
>> between the
>> >>>> "what objects does this rule apply to" part and the "what
>> is this
>> >>>> rule and what are its limits" part. That makes it very
>> flexible
>> >>>> and easy to expand.
>> >>>>
>> >>>> It would be nice to be able to build a rule kind of like a
>> >>>> database query like:
>> >>>>
>> >>>> "If something is part of a diff pair AND "is part of net class
>> >>>> 'USB'" AND is within the polygon 'FlexArea'"
>> >>>>
>> >>>> Then once you have a selector that applies to the objects you
>> >>>> want, you can apply whatever rule is relevant (trace widths,
>> >>>> spacing, what vias are allowed, how close copper pours can
>> come,
>> >>>> and 100 other things if you like)
>> >>>>
>> >>>> (the above selector happens to rely on two features that KiCad
>> >>>> doesn't have yet, but could have for V6: net classes and
>> named areas)
>> >>>>
>> >>>> These selectors would be cascading, like CSS, so you could
>> define
>> >>>> a base set of rules that apply to everything, and more
>> specific
>> >>>> rules that override things defined in the general rules.
>> >>>>
>> >>>> Not a super trivial bit of code to write, but an important
>> one in
>> >>>> my mind since it's the only way to offer the flexibility
>> of rules
>> >>>> that people who are used to tools like
>> Altium/Cadence/Mentor are
>> >>>> used to.
>> >>>>
>> >>>> -Jon
>> >>>>
>> >>>>
>> >>>> On Sat, Apr 14, 2018, 08:57 Jeff Young <jeff@xxxxxxxxx
>> <mailto:jeff@xxxxxxxxx>
>> >>>> <mailto:jeff@xxxxxxxxx <mailto:jeff@xxxxxxxxx>>> wrote:
>> >>>>
>> >>>> I was looking into moving the solder mask and paste
>> >>>> dimensions, courtyard rules, and differential pairs
>> dimensions
>> >>>> to the board for 6.0. It seemed like having multiple
>> sets of
>> >>>> differential pair dimensions (like we do for tracks
>> and vias)
>> >>>> would be good, yet there are no feature requests for
>> this.
>> >>>> Are differential pairs specific enough that there is
>> usually
>> >>>> only one spec per board?
>> >>>>
>> >>>> Thanks,
>> >>>> Jeff.
>> >>>> _______________________________________________
>> >>>> Mailing list: https://launchpad.net/~kicad-developers
>> >>>> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>> >>>> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>> >>>> Unsubscribe : https://launchpad.net/~kicad-developers
>> >>>> More help : https://help.launchpad.net/ListHelp
>> >>>>
>> >>>
>> >>>
>> >>>
>> >>> _______________________________________________
>> >>> Mailing list: https://launchpad.net/~kicad-developers
>> >>> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>> >>> Unsubscribe : https://launchpad.net/~kicad-developers
>> >>> More help : https://help.launchpad.net/ListHelp
>> >>>
>> >>
>> >> _______________________________________________
>> >> Mailing list: https://launchpad.net/~kicad-developers
>> >> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>> >> Unsubscribe : https://launchpad.net/~kicad-developers
>> >> More help : https://help.launchpad.net/ListHelp
>> >
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~kicad-developers
>> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>> Unsubscribe : https://launchpad.net/~kicad-developers
>> More help : https://help.launchpad.net/ListHelp
>>
>
Follow ups
References