Libre RISC-V Mailing list Archives (accessible via public-inbox)
 help / color / Atom feed
From: bugzilla-daemon@libre-riscv.org
To: libre-riscv-dev@lists.libre-riscv.org
Subject: [libre-riscv-dev] [Bug 186] Create decoder for SOC: Power ISA and RISC-V
Date: Mon, 23 Mar 2020 21:28:58 +0000
Message-ID: <bug-186-13-2j5nn9plAM@http.bugs.libre-riscv.org/> (raw)
In-Reply-To: <bug-186-13@http.bugs.libre-riscv.org/>

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

--- Comment #97 from Luke Kenneth Casson Leighton <lkcl@lkcl.net> ---
(In reply to Michael Nolan from comment #96)
> (In reply to Luke Kenneth Casson Leighton from comment #95)
> 
> > yes.  however adding a power frontend on it as we found ain't so bad.  can
> > use the same code.
> > 
> > if you look here you can see how basic the test simulator is
> > https://git.libre-riscv.org/?p=soc.git;a=blob;f=src/soc/experiment/score6600.
> > py;h=babce2439233f84c262c08795b873a6167197ec9;hb=HEAD#l859
> > 
> > adjusting that so it uses InternalOp is... er... not hard? :)
> 
> Luke, looks like you and I are doing different things...? It looks to me
> like score6600 is actual hardware, not a simulator.

i'd literally just moved RegSim and MemorySim into their own folder, you put
internalop_sim.py in the same location.

they should be pretty much identical in function.


> I have basic simulator
> I'm working on here
> https://git.libre-riscv.org/?p=soc.git;a=blob;f=src/soc/simulator/
> internalop_sim.py;h=813dd19c40e21283d000fd597074a2cb38595a8a;
> hb=e95b4372c5163bb6f753c92d8445d4af7f117457 - I took some of the elements
> from score6600 (like the register and memory file) and modified them to get
> a basic simulator, which I'm testing along side a real power machine. Were
> you going for something different...?

take a look at sim.py it is near identical to what you did :)

although you have, i think, also added a decoder on it?  so what you wrote can
take actual power instructions, is that right?

sim.py "tracks" what the real hardware does.  so the idea is that after running
the exact same instructions through each, and waiting for the instruction queue
to indicate "no longer busy processing", we can do a memory-memory compare and
a regfile-regfile compare and they should be *exactly* the same.

i wrote a function which does exactly that, one for mem and one for regfile.

unfortunately because this is a multiissue  OoO design we cannot take a
snapshot at a given time and say "yeah this will be exactly the same", you have
to pause, wait for outstanding ops, *then* snapshot.

that "pause" means unfortunately that it affects internal state, because FUs
are emptying rather than being filled with new operations.

but, it is the best we can do.

oh btw, one really important thing to remember: at sone point the sim will do
dynamic SIMD just like in the PartitionedSignal.  code to reuse in
InternalOpSim has already been written... in the PartitionedSignal unit tests!

and, actually, hm, we could probably just lift that code wholesale into a class
then rework the psig unit test to use it, *and* use that same code here.

-- 
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

  parent reply index

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <bug-186-13@http.bugs.libre-riscv.org/>
2020-03-18 15:49 ` bugzilla-daemon
2020-03-18 16:07 ` bugzilla-daemon
2020-03-18 16:12 ` bugzilla-daemon
2020-03-18 17:14 ` bugzilla-daemon
2020-03-18 18:22   ` Luke Kenneth Casson Leighton
2020-03-18 18:23     ` Immanuel, Yehowshua U
2020-03-18 19:27 ` bugzilla-daemon
2020-03-18 19:31 ` bugzilla-daemon
2020-03-18 20:51 ` bugzilla-daemon
2020-03-18 21:23 ` bugzilla-daemon
2020-03-18 21:28 ` bugzilla-daemon
2020-03-18 21:38 ` bugzilla-daemon
2020-03-18 22:13 ` bugzilla-daemon
2020-03-18 23:20 ` bugzilla-daemon
2020-03-18 23:27 ` bugzilla-daemon
2020-03-19  0:21 ` bugzilla-daemon
2020-03-19  0:24 ` bugzilla-daemon
2020-03-19  3:00 ` bugzilla-daemon
2020-03-19  6:56 ` bugzilla-daemon
2020-03-19 15:29 ` bugzilla-daemon
2020-03-19 15:33 ` bugzilla-daemon
2020-03-19 17:11 ` bugzilla-daemon
2020-03-21 15:44 ` bugzilla-daemon
2020-03-21 18:59 ` bugzilla-daemon
2020-03-21 20:10 ` bugzilla-daemon
2020-03-23 20:12 ` bugzilla-daemon
2020-03-23 21:28 ` bugzilla-daemon [this message]
2020-03-24  1:28 ` bugzilla-daemon
2020-03-24  1:49 ` bugzilla-daemon
2020-03-24  6:14 ` bugzilla-daemon
2020-03-24  8:50 ` bugzilla-daemon
2020-03-25 12:49 ` bugzilla-daemon
2020-03-25 16:21 ` bugzilla-daemon
2020-03-25 17:17 ` bugzilla-daemon
2020-03-25 17:27 ` bugzilla-daemon
2020-03-25 17:29 ` bugzilla-daemon
2020-03-25 19:43 ` bugzilla-daemon
2020-03-25 19:58 ` bugzilla-daemon
2020-03-25 20:03 ` bugzilla-daemon
2020-03-25 21:20 ` bugzilla-daemon
2020-03-26 12:59   ` Luke Kenneth Casson Leighton
2020-03-26  5:40 ` bugzilla-daemon
2020-03-26  5:54 ` bugzilla-daemon
2020-03-26 11:02 ` bugzilla-daemon
2020-03-26 11:10 ` bugzilla-daemon
2020-03-26 14:13 ` bugzilla-daemon
2020-03-26 14:14 ` bugzilla-daemon
2020-03-26 14:19 ` bugzilla-daemon
2020-03-26 14:43 ` bugzilla-daemon
2020-03-26 14:56 ` bugzilla-daemon
2020-03-26 16:52 ` bugzilla-daemon
2020-03-26 16:57 ` bugzilla-daemon
2020-03-26 17:15 ` bugzilla-daemon
2020-03-26 17:41 ` bugzilla-daemon
2020-03-26 17:51 ` bugzilla-daemon
2020-03-26 17:56 ` bugzilla-daemon
2020-03-26 18:01 ` bugzilla-daemon
2020-03-26 19:39 ` bugzilla-daemon
2020-03-26 20:29 ` bugzilla-daemon
2020-03-26 20:34 ` bugzilla-daemon
2020-03-26 21:41 ` bugzilla-daemon
     [not found] <bug-186-13@https.bugs.libre-soc.org/>
2020-04-09 13:46 ` bugzilla-daemon
2020-04-09 14:01 ` bugzilla-daemon
2020-05-02  4:00 ` bugzilla-daemon
2020-05-02  5:28 ` 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-186-13-2j5nn9plAM@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