From: Luke Kenneth Casson Leighton <lkcl@lkcl.net>
To: Libre-RISCV General Development <libre-riscv-dev@lists.libre-riscv.org>
Subject: Re: [libre-riscv-dev] Rough timing estimate in yosys
Date: Mon, 18 May 2020 16:05:00 +0100
Message-ID: <CAPweEDx4NUxJRbYp9oNKBWxM1XDVjHRnD2TxhsCOfog=88gmfw@mail.gmail.com> (raw)
In-Reply-To: <b8db8150-bc06-63c7-49c4-c6536f6bed64@gmail.com>
On Monday, May 18, 2020, Michael Nolan <mtnolan2640@gmail.com> wrote:
> With all the work going on designing functional units, I was wondering if
> there was a way to get a rough estimate of the maximum frequency a module
> can run at. I can get the longest path from running yosys -p "read_ilang
> module.il; synth; ltp", but that just prints out the cells between
> register A and register B.
oh, good. that's a useful discovery.
> I realize that the actual timing is going to depend on layout, but is
> there a way to get a rough estimate, say by passing in a cell library or
> just a rule of thumb of ~500ps per cell?
i believe it is calculated based on the switching time of a given
transistor, at both the geometry, and also a given voltage.
a chain of such transistors is then multiplied by the longest path.
at the speeds we are doing, speed of light is not a major factor: it will
be however at 28nm or below.
also affecting the switching time is the fanout. if one gate tries to
drive 200 clearly this will either fail or just take a hell of a long time.
to solve that, buffers must be inserted into the line and of course those
also add switching delay.
>
> On a semi-related note, running ltp on a pipeline shows that there's a
> bunch of loops.
>
> From running synth and ltp on the logical pipeline:
>
> Warning: Detected loop at \stage_o$next [63] in pipe
hmm i do not know.
we are doing an design where the registers can be held until acknowledged
by ready/valid signalling: it's possible that the storage of the register
is interpreted as "a loop".
can you raise a bugreport about it so thatbit can be investigated? mention
that a small unit test should be made.
l.
--
---
crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68
_______________________________________________
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: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-18 14:11 Michael Nolan
2020-05-18 15:05 ` Luke Kenneth Casson Leighton [this message]
2020-05-18 15:52 ` Luke Kenneth Casson Leighton
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='CAPweEDx4NUxJRbYp9oNKBWxM1XDVjHRnD2TxhsCOfog=88gmfw@mail.gmail.com' \
--to=lkcl@lkcl.net \
--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