[libre-riscv-dev] [Bug 178] first coriolis2 tutorial, workflow and "test project" page

bugzilla-daemon at libre-riscv.org bugzilla-daemon at libre-riscv.org
Tue Feb 25 22:43:09 GMT 2020


http://bugs.libre-riscv.org/show_bug.cgi?id=178

--- Comment #125 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Jean-Paul.Chaput from comment #124)

>   Not sure I understand what you want to do here. Do you:
> 
>   1. Want to create placed and routed blocks of "add" & "sub", then
>      place them to build the whole core.

3. create P&R'd blocks of *type* add.ap and aub.ap which in the previous
function had just been created (from add.vst and sub.vst) AS IF they were in
{insert cell library name}.lib

in other words what in effect i need is the exact same effect as if add.ap/vst
and sub.ap/vst had been added to a Cell Library...

... now i want alu_hier.ap to P&R *using* the two blocks...

... and then alu_hier.ap to be written...

*and then we do it all over again at the next level of the hierarchy*.

a cell library made from a cell library nade from a cell library and finally
only get to the top level floorplan.

so for example:

* the FP ALU is made from a MUL unit, DIV unit, etc.
* the IEEE754 MUL ALU is made from 5 blocks (denormalise, mul stage 0, mul
stage 1, normalise, packing)
* denormalise is made from 3 blocks, including 2 SHIFTER blocks.
* SHIFTER block is made from...

etc etc.  layer layer layer layer.

every layer i want to be automatically P&R'd, to be used in the layer above.

>   For option 1., the placer can only handle standard cells, not blocks
>   (or "macros").

which is why i wondered, can add.ap/vst and sub.ap/vst be added *to* a Cell
Library, and then used in the next level?

repeat, repeat, repeat 

if add.ap/vst and sub.ap/vst can be added to a fake (temporary) Cell Library,
even if it means using a Makefile to do so, then adding that new Cell Library
to the ap Environment, we have a way to do what i want.


> In that case you have to manually build the placement
>   of the blocks (floorplaning).

that would be impractical because it means manual placement at every level of
hierarchy.

we have maybe 20 levels of hierarchy, and maybe... 1000 or more blocks to place
across those 20 levels.

doing all of them manually, even placement, in hierarchical floorplans, one
level at a time, is not practical.

what *is* practical is to create increasingly large blocks, P&R'd
automatically, moving on to the next level and finally ONLY doing manual
placement at the very last top level floorplan.


> The router can manage block routing.

ok i noticed that the router might be able to reposition blocks. (is that
correct?)

so another way would be to build the placement in fake (dummy) locations, then
ask the router to move them to better locations.

is that possible?

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the libre-riscv-dev mailing list