[libre-riscv-dev] [Bug 217] create a "ring" system which allows pad locations to be specified conveniently
bugzilla-daemon at libre-riscv.org
bugzilla-daemon at libre-riscv.org
Mon Apr 6 15:18:36 BST 2020
http://bugs.libre-riscv.org/show_bug.cgi?id=217
--- Comment #50 from Jock Tanner <tanner.of.kha at gmail.com> ---
Sorry for another big delay on my part.
(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.
> 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)'.
> *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. =(
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the libre-riscv-dev
mailing list