Hi everybody,
This is my MMA (Monkey Mode Attestation - was "verification", but MMA
sounds better :) of channels tool in KiCAD v9. My apologize for abusing
the list with this report, but gitlab refused my registration.
So:
1. MMA means, that user did not read the manual but choose to
press/click "at random" to get expected results. Pls take into account,
that although I tried to write down all my "klicks", occasionally I
might have failed to remember to do so. Particularly in cases leading to
nothing.
2. First I've pressed tools->MultiChannel->RepearLayout ... I was
prompted to select the RuleArea to "copy from".
2.1 I clicked to "something" ... nothing happened. May be some sort of
alerts panel popping up would be in order here?
2.2 Surely the Place menu has "Place->Rule Area", so I added two rule
areas on PCB: one covering my "original sheet to copy from" selecting
one subsheet in "placement", the other "somewhere else" selecting the
other sheet as it's "placement".
2.3 now RepeatLayout resulted in components rearrangement ... but
components of "slave" sheet-nr2 weren't moved into the other "rule
area". They stayed more or less where most of them already were - they
only moved slightly to reflect "master" arrangement. This is strange for
an MMA tester - why bother to "draw" the other rule-rectangle ... just
listing the "slave" parts of the schematic when the initial "rule area"
is drawn should be sufficient. Then again, why draw anything at all -
the "master" channel is already correctly laid drawn and the "binding to
slaves" is based on linked "schematic sub-sheets or block", drawing
anything seem superficial.
3. On one occasion I did clicked the design into a state, where the
process of copying worked "the other way around", meaning that my
intended source was used by KiCAD as target for placement and vice
verse. I couldn't find any way to revert that, nor any means of
examination (E) of current state of "repeat layout" tool.
3.1. Whenever I try to examine (E) a selected "rules area", there is no
mention which one is "the source" and which one is "the target". If
there is a way to check it, for MMA tester it's not so easy to guess how.
4. after drawing "rule area" on schematic diagram and then doing "update
PCB", the report of "update process" does not contain anything (as if
nothing was exported). So, how does user know if those areas can be used
by PCB or not?
5. examining (E command) a selected rule area on schematic does not let
putting a name to it. It should be under user control which area's are
the same and which are different and their name is a natural way to
allow for that.
My project is in the attachment together with excerpts from "Design of
CDC6600" book as found at
https://cseweb.ucsd.edu/classes/sp10/cse240c/Papers/DesignOfAComputer_CDC6600.pdf.
My KiCAD files attached are based on register design found on page.26 of
that book.
The other excerpt (pages 108-109) I'm including to suggest an
alternative implementation of "sub-sheets" in KiCAD, which may result in
some optimization (simplification) of multichannel implementation. The
"trick" is to allow a symbol of "array of blocks" on the schematic
diagram and have an assumed scheme for identification of a particular
block in such array. The problem here will arise from the fact, that
every such block may have a BUS of signals entering/exiting it. A bus
is a list (one dimensional array). An array of busses is a two
dimensional array. I'm not sure if KiCAD wire identification schemes can
cope with that now.
I'm bringing the CC6600 drawing as an example because "sub-sheet" on
pages 108/109 of that book are presented as "arrays of identical blocks"
(graphically). Identical to the extend, that anybody doing engineer work
on the design would have much easier job when (say) transistor Q17 in
EVERY block/channel had the same Q17 designation. At the level of
schematic drawings this translated to the fact, that there will be just
ONE sheet (or block) to represent the content of block-nr-0. All other
blocks are the same and will NOT have designated schematics.
Currently, KiCAD annotates all components on identical subsheets with
different labels (see my files: R1 on sheel1, R7 on sheet2). This has
it's merits, but does not work for the above "array of blocks" system.
One would need to have a "block repetition" explicit by some way of
components getting a "block identification" attached. One such way could
turn Q17 transistor label on "first block" into Q17a (or Q17.0, or
something), and into Q17b on second block, etc.
With such "channel representation" as shown on CDC6600 design schematics
it should be easier for Repeat Layout tool to identify which components
belong to the same channel and for user to know what exactly "KiCAD was
thinking". User would just need to indicate a single component that the
process of copying the PCB layout should be repeated for every
channel/block. The "repeat engine" would then copy whatever is indicated
based on current location of that particular component in every channel
and would not get confused since the component would have exactly the
same annotation (like Q17). No selection of "rule area" on PCB would
then be required.
I hope this tests and observations help.
Still, if you already knew about MMA confusion with current
RepeatLayouts tool or had availability/plans-for "arrays of blocks" in
KiCAD, I sincerely apologize for the noise.
with best regards
-R