Libre RISC-V Mailing list Archives (accessible via public-inbox)
 help / color / Atom feed
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] Scoreboard Tests
Date: Sun, 7 Jun 2020 03:21:38 +0100
Message-ID: <CAPweEDxrwmkkJ4sXy3VM66n5GVKbiaPTAra-jk7Bw=Sni7Ao6Q@mail.gmail.com> (raw)
In-Reply-To: <829380E2-54C4-46C6-955E-BCCACF7A4164@gatech.edu>

On Sunday, June 7, 2020, Yehowshua <yimmanuel3@gatech.edu> wrote:

> Wrapping my head around the scoreboard.


it's... very few gates, with a lot of pieces to understand.  Thornton
highlighted that paradox in his book.

the code on its own it is inadviseable to focus on without having
*significant* amounts of uninterrupted time to pay attention to it.

in total it literally took 5-6 months to get first the knowledge, then do a
first draft, then find the bugs (in Mitch's book chapters - that was month
3), then implement instructions, and add the advanced feature such as
branch speculation thru shadowing.

load/store was then another month.  the multi-signal capability, another
month.

https://git.libre-soc.org/?p=soc.git;a=tree;f=src/soc/scoreboard;h=
> 5a0cc5e1d9bc2061c2a0eaa8d8b55f72af4c508f;hb=HEAD <
> https://git.libre-soc.org/?p=soc.git;a=tree;f=src/soc/scoreboard;h=
> 5a0cc5e1d9bc2061c2a0eaa8d8b55f72af4c508f;hb=HEAD>
>
> Do we have tests?


each python file has a unit test that in the simple modules i did not
maintain (cookie cut code).  the more complex ones, i did: it would be
absolutely flat-out an impossible task without them.

the primary method however was extreme close and careful examination of the
gtkwave timing traces, the yosys graphviz diagrams compared against Mitch's
book chapters, Thornton's original book, and the redrawn diagrams, which
are documented at the 6600scoreboard page

https://libre-soc.org/3d_gpu/architecture/6600scoreboard/

i recommend ignoring anything to do with LDST address matching, initially,
as they are derivatives of the Reg / FU DMs.

at some point i will draw out the Tomasulo algorithm and a series of
transformations like a stop-motion cartoon of drawings, and do a video that
shows how to get to 6600 from Tomasulo.

you really need to grasp and trust the algorithm first. looking at the code
itself, alone, will not help with that, very much.  running each module, to
get it to generate an ILANG file which you then examine in yosys with "show
top" you will find much more productive because it is far closer to Mitch
and Thornton's gate-level diagrams.

but even then, *only* when you have a strong grasp of the actual
algorithm.  as you're keenly aware by now, the academic literature will
only deeply mislead and misinform you in that regard.

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

      reply index

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-07  1:07 Yehowshua
2020-06-07  2:21 ` Luke Kenneth Casson Leighton [this message]

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='CAPweEDxrwmkkJ4sXy3VM66n5GVKbiaPTAra-jk7Bw=Sni7Ao6Q@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