From: bugzilla-daemon@libre-riscv.org
To: libre-riscv-dev@lists.libre-riscv.org
Subject: [libre-riscv-dev] [Bug 270] investigate nmigen clock gating
Date: Sat, 28 Mar 2020 14:34:31 +0000
Message-ID: <bug-270-13-UNec52UIvg@http.bugs.libre-riscv.org/> (raw)
In-Reply-To: <bug-270-13@http.bugs.libre-riscv.org/>
http://bugs.libre-riscv.org/show_bug.cgi?id=270
--- Comment #1 from Luke Kenneth Casson Leighton <lkcl@lkcl.net> ---
> The principle is that you save power by not clocking the parts of the circuit
> that don't have to do any computing. I think this could be a more
> general way to only enable the stages in your pipeline who actually
> are doing computation.
ok so if i understand this correctly:
* the clock still runs at 1600mhz
* the clock runs a cyclic shift-register of length equal to the
number of stages, at 1600 mhz.
* only every *alternate* one of those elements in the shift register
is enabled (or, if you want full speed, all of them).
* through EnableInserter each stage is clocked by a *different* bit
in the shifted-register
> That said I think this feature does not fit in the MVP scope of the October
> prototype so that chip should IMO not use clock gating nor the pass-through
> register feature from the original discussion.
no, i agree, and, more to the point, we don't need it for the 180nm ASIC
(except perhaps to test the concept).
one thing that we have is, the use of OO python has the entirety of the
stages themselves *completely* separated firmly behind a general-purpose
API, where the construction of pipelines, from those stages, using entirely
different pipeline techniques, is *literally* a one-line change.
so we could conceivably do the *entire* suite of pipelines - convert them
to use this clock gating technique - *literally* in well under a day,
after first experimenting with EnableInserter and a quick and simple unit
test.
re-running the IEEE754 FP unit tests on the other hand... *sigh* :)
--
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: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-28 14:14 [libre-riscv-dev] [Bug 270] New: " bugzilla-daemon
2020-03-28 14:34 ` bugzilla-daemon [this message]
2020-03-28 16:20 ` [libre-riscv-dev] [Bug 270] " 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-270-13-UNec52UIvg@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