From: bugzilla-daemon@libre-riscv.org
To: libre-riscv-dev@lists.libre-riscv.org
Subject: [libre-riscv-dev] [Bug 217] create a "ring" system which allows pad locations to be specified conveniently
Date: Mon, 06 Apr 2020 16:53:42 +0000
Message-ID: <bug-217-13-tEKu95AGYE@http.bugs.libre-riscv.org/> (raw)
In-Reply-To: <bug-217-13@http.bugs.libre-riscv.org/>
http://bugs.libre-riscv.org/show_bug.cgi?id=217
--- Comment #52 from Luke Kenneth Casson Leighton <lkcl@lkcl.net> ---
(In reply to Jock Tanner from comment #50)
> Sorry for another big delay on my part.
no problem. we still need to get the MoU signed. money's allocated,
just not accessible yet.
>
> (In reply to Luke Kenneth Casson Leighton from comment #45)
> > so could you track down that auto-box-size computing function and then
> > look at removing all hard-coded parameters?
>
> 'Module.compute_ab()' added.
great.
> > you'll likely need to run add.build() manually, then sub.build() manually,
>
> I kinda anticipated such changes in workflow, so I divided the submodules
> processing into 'build()' and 'place()' phases beforehand. Now I added an
> utilities such as 'Module.submodules' iterator and
> 'Module.find_submodule(name)'.
excellent
> > *then* in ALU16()'s build constructor it will have access to the
> > (computed) width+height of each,
>
> Also not a problem: after 'build_submodules()' it can be accessed via
> submodule's 'ab' property.
>
> > *then* it can compute its width and
> > height.
>
> Here I stumbled on how to get the end result.
>
> > ALU16 computes its height based on:
> > max(Add.H, Sub.H, middle-stuff-H) + 100 (to give room for the routing)
> >
> > and its width based on:
> > Add.W + Sub.W + middle-stuff-W + 20-or-so
>
> I tried this approach, but middle stuff size calculates as 650×650 and
> everything bloats. And there are many “unplaced design” errors. =(
yes.
ok, you'll see i've done a lot of experimentation, i went back to using
an iterative try-it-and-see approach
hum
also i did this:
* changed the I/O pins for ALU16 so that they are closer to the middle
* put all the pins for add and sub at the top (this needed experimentation
just to get an I/O config for each that would "pass" routing)
* made add's pins a *mirror* of sub's pins (you'll see why, next)
* *ROTATED* add and sub so that their inputs/outputs "faced" each other
* put in a hard-coded positioning for the "middle" placement (ALU16
little stuff)
* called place *only* (for all the little stuff)
* after the place, *only* call route *not* place-and-route
what happens if you call place-and-route after place, the entire box is
filled with "dummy cells" that go *underneath* (overlap) the add() and
sub() boxes.
whoops
this only showed up because of the rotation of add() and sub().
the reason for doing the rotate (and mirror) is to get the add() and sub()
I/O to try to "connect" with dead-straight lines, right across the
middle-stuff.
however this (if you think about it carefully) creates an artificial barrier
where no VIAs can be properly placed.
whoops.
ah.
just found what might be a serious bug: two routes trying to occupy the
same space.
jean-paul, i will raise a bugreport on gitlap.lip6.fr
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
libre-riscv-dev mailing list
libre-riscv-dev@lists.libre-riscv.org
http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev
next prev parent reply index
Thread overview: 87+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-12 11:57 [libre-riscv-dev] [Bug 217] New: " bugzilla-daemon
2020-03-12 16:39 ` [libre-riscv-dev] [Bug 217] " bugzilla-daemon
2020-03-12 16:57 ` bugzilla-daemon
2020-03-12 17:07 ` bugzilla-daemon
2020-03-12 17:24 ` bugzilla-daemon
2020-03-12 17:37 ` bugzilla-daemon
2020-03-13 11:36 ` bugzilla-daemon
2020-03-16 22:01 ` bugzilla-daemon
2020-03-16 23:06 ` bugzilla-daemon
2020-03-16 23:25 ` bugzilla-daemon
2020-03-16 23:38 ` bugzilla-daemon
2020-03-17 0:05 ` bugzilla-daemon
2020-03-17 0:19 ` bugzilla-daemon
2020-03-17 0:24 ` bugzilla-daemon
2020-03-17 0:30 ` bugzilla-daemon
2020-03-17 1:38 ` bugzilla-daemon
2020-03-17 1:54 ` bugzilla-daemon
2020-03-17 6:53 ` bugzilla-daemon
2020-03-17 7:17 ` bugzilla-daemon
2020-03-17 7:26 ` bugzilla-daemon
2020-03-17 7:43 ` bugzilla-daemon
2020-03-17 13:04 ` bugzilla-daemon
2020-03-17 13:48 ` bugzilla-daemon
2020-03-17 14:19 ` bugzilla-daemon
2020-03-17 14:22 ` bugzilla-daemon
2020-03-17 14:52 ` bugzilla-daemon
2020-03-17 14:58 ` bugzilla-daemon
2020-03-17 15:12 ` bugzilla-daemon
2020-03-17 15:24 ` bugzilla-daemon
2020-03-17 16:06 ` bugzilla-daemon
2020-03-17 16:41 ` bugzilla-daemon
2020-03-17 17:06 ` bugzilla-daemon
2020-03-17 17:24 ` bugzilla-daemon
2020-03-17 17:28 ` bugzilla-daemon
2020-03-17 17:42 ` bugzilla-daemon
2020-03-17 17:53 ` bugzilla-daemon
2020-03-17 18:07 ` bugzilla-daemon
2020-03-17 18:55 ` bugzilla-daemon
2020-03-18 14:31 ` bugzilla-daemon
2020-03-18 15:15 ` bugzilla-daemon
2020-03-18 22:09 ` bugzilla-daemon
2020-03-18 23:39 ` bugzilla-daemon
2020-03-20 12:09 ` bugzilla-daemon
2020-03-26 21:39 ` bugzilla-daemon
2020-03-26 22:58 ` bugzilla-daemon
2020-03-27 0:03 ` bugzilla-daemon
2020-03-27 0:38 ` bugzilla-daemon
2020-03-27 1:27 ` bugzilla-daemon
2020-03-27 2:17 ` bugzilla-daemon
2020-04-06 14:18 ` bugzilla-daemon
2020-04-06 16:53 ` bugzilla-daemon [this message]
2020-04-06 16:58 ` bugzilla-daemon
2020-04-06 17:15 ` bugzilla-daemon
2020-04-07 8:12 ` bugzilla-daemon
2020-04-07 9:46 ` bugzilla-daemon
[not found] <bug-217-13@https.bugs.libre-soc.org/>
2020-04-20 14:16 ` bugzilla-daemon
2020-04-20 15:55 ` bugzilla-daemon
2020-04-20 17:15 ` bugzilla-daemon
2020-04-20 18:10 ` bugzilla-daemon
2020-04-20 18:25 ` bugzilla-daemon
2020-04-20 18:33 ` bugzilla-daemon
2020-04-20 19:00 ` bugzilla-daemon
2020-04-20 19:08 ` bugzilla-daemon
2020-04-20 19:16 ` bugzilla-daemon
2020-04-20 19:20 ` bugzilla-daemon
2020-04-20 19:52 ` bugzilla-daemon
2020-04-20 20:45 ` bugzilla-daemon
2020-04-20 21:00 ` bugzilla-daemon
2020-04-20 22:17 ` bugzilla-daemon
2020-04-21 12:12 ` bugzilla-daemon
2020-04-21 13:17 ` bugzilla-daemon
2020-04-21 14:32 ` bugzilla-daemon
2020-04-21 15:12 ` bugzilla-daemon
2020-04-21 15:22 ` bugzilla-daemon
2020-04-21 15:49 ` bugzilla-daemon
2020-04-21 16:16 ` bugzilla-daemon
2020-04-21 16:55 ` bugzilla-daemon
2020-04-21 17:03 ` bugzilla-daemon
2020-04-21 17:40 ` bugzilla-daemon
2020-04-21 18:05 ` bugzilla-daemon
2020-04-21 19:24 ` bugzilla-daemon
2020-04-21 20:23 ` bugzilla-daemon
2020-04-21 20:43 ` bugzilla-daemon
2020-04-21 21:19 ` bugzilla-daemon
2020-04-21 22:00 ` bugzilla-daemon
2020-04-21 22:21 ` bugzilla-daemon
2020-05-20 12:20 ` bugzilla-daemon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bug-217-13-tEKu95AGYE@http.bugs.libre-riscv.org/ \
--to=bugzilla-daemon@libre-riscv.org \
--cc=libre-riscv-dev@lists.libre-riscv.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Libre RISC-V Mailing list Archives (accessible via public-inbox)
Archives are clonable: git clone --mirror https://inbox.libre-soc.org/libre-riscv-dev
Example config snippet for mirrors
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git