* [libre-riscv-dev] daily kan-ban update 13may2020
@ 2020-05-13 10:28 Luke Kenneth Casson Leighton
2020-05-13 13:56 ` Tobias Platen
0 siblings, 1 reply; 7+ messages in thread
From: Luke Kenneth Casson Leighton @ 2020-05-13 10:28 UTC (permalink / raw)
To: Libre-RISCV General Development
yesterday i started on integrating the LDSTCompUnit into the
scoreboard and immediately ran into a brick wall in the form of the
address-request/release signalling. when go_addr is raised (in
response to req_addr), the LDSTCompUnit is supposed to drop req_addr
one cycle later: instead it stays high.
i also investigated microwatt to find out what the heck is going on
with the register-order-swapping. turns out that different classes of
operations (logical, rotate, arith) have different ordering. why? who
knows.
today i will continue working through the address-negotiation in LDSTCompUnit.
l.
_______________________________________________
libre-riscv-dev mailing list
libre-riscv-dev@lists.libre-riscv.org
http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [libre-riscv-dev] daily kan-ban update 13may2020
2020-05-13 10:28 [libre-riscv-dev] daily kan-ban update 13may2020 Luke Kenneth Casson Leighton
@ 2020-05-13 13:56 ` Tobias Platen
2020-05-13 14:33 ` Luke Kenneth Casson Leighton
0 siblings, 1 reply; 7+ messages in thread
From: Tobias Platen @ 2020-05-13 13:56 UTC (permalink / raw)
To: libre-riscv-dev
On Wed, 13 May 2020 11:28:25 +0100
Luke Kenneth Casson Leighton <lkcl@lkcl.net> wrote:
> yesterday i started on integrating the LDSTCompUnit into the
> scoreboard and immediately ran into a brick wall in the form of the
> address-request/release signalling. when go_addr is raised (in
> response to req_addr), the LDSTCompUnit is supposed to drop req_addr
> one cycle later: instead it stays high.
>
> i also investigated microwatt to find out what the heck is going on
> with the register-order-swapping. turns out that different classes of
> operations (logical, rotate, arith) have different ordering. why? who
> knows.
>
> today i will continue working through the address-negotiation in LDSTCompUnit.
>
> l.
>
> _______________________________________________
> libre-riscv-dev mailing list
> libre-riscv-dev@lists.libre-riscv.org
> http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev
I've looked into the soc/src/soc/decoder/isa and src/soc/alu/ directories.
There is a TODO that references the PowerISA PDF, so I will first read the
following sections, before writing anything.
# 4.2.2 p124 FPSCR (definitely "separate" - not in SPR)
# note that mffs, mcrfs, mtfsf "manage" this FPSCR
# 2.3.1 CR (and sub-fields CR0..CR6 - CR0 SO comes from XER.SO)
# note that mfocrf, mfcr, mtcr, mtocrf, mcrxrx "manage" CRs
# 2.3.2 LR (actually SPR #8)
# 2.3.3 CTR (actually SPR #9)
# 2.3.4 TAR (actually SPR #815)
# 3.2.2 p45 XER (actually SPR #0)
# 3.2.3 p46 p232 VRSAVE (actually SPR #256)
I assume that that the version of the pdf referenced is still 3.0 one and not 3.1 recently released.
Tobias
--
Tobias Platen <libre-soc[at]platen-software[dot]de>
_______________________________________________
libre-riscv-dev mailing list
libre-riscv-dev@lists.libre-riscv.org
http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [libre-riscv-dev] daily kan-ban update 13may2020
2020-05-13 13:56 ` Tobias Platen
@ 2020-05-13 14:33 ` Luke Kenneth Casson Leighton
2020-05-13 14:43 ` Tobias Platen
0 siblings, 1 reply; 7+ messages in thread
From: Luke Kenneth Casson Leighton @ 2020-05-13 14:33 UTC (permalink / raw)
To: Libre-RISCV General Development
---
crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68
On Wed, May 13, 2020 at 2:56 PM Tobias Platen
<libre-soc@platen-software.de> wrote:
>
> On Wed, 13 May 2020 11:28:25 +0100
> Luke Kenneth Casson Leighton <lkcl@lkcl.net> wrote:
>
> > yesterday i started on integrating the LDSTCompUnit into the
> > scoreboard and immediately ran into a brick wall in the form of the
> > address-request/release signalling. when go_addr is raised (in
> > response to req_addr), the LDSTCompUnit is supposed to drop req_addr
> > one cycle later: instead it stays high.
> >
> > i also investigated microwatt to find out what the heck is going on
> > with the register-order-swapping. turns out that different classes of
> > operations (logical, rotate, arith) have different ordering. why? who
> > knows.
> >
> > today i will continue working through the address-negotiation in LDSTCompUnit.
> >
> > l.
> >
> > _______________________________________________
> > libre-riscv-dev mailing list
> > libre-riscv-dev@lists.libre-riscv.org
> > http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev
>
> I've looked into the soc/src/soc/decoder/isa and src/soc/alu/ directories.
> There is a TODO that references the PowerISA PDF, so I will first read the
> following sections, before writing anything.
a really useful self-contained sub-task would be to convert this to nmigen:
https://github.com/antonblanchard/microwatt/blob/master/countzero.vhdl
focussing on that would allow you to do something immediately that did
not require a lot of background reading or preparation, and yet is really
important and valuable, and can be done fast.
you can see what i did with rotator.py to get a feel for how that's done.
these are two really important gotchas to watch out for:
* signal(HI downto LO) must be converted to signal[LO:HI+1] **NOTE
THE ADD ONE**
* A & B & C must be converted to Cat(C, B, A)
as this is only 140 lines of code, if you plan to - or imagine that -
the time taken
is greater than 60 to 90 minutes to complete a first cut (which should be
committed immediately), then something is wrong. this is a half to one day
task, absolute max.
going on from there - beyond that half-day:
if you can also write a formal proof, these we can donate more, where for
the "main core" - just the countzero - we are running low from that budget.
formal proofs are basically "a bunch of asserts" exactly as you would have
in c++ code or any other language with "assert if this is true or not".
> # 4.2.2 p124 FPSCR (definitely "separate" - not in SPR)
> # note that mffs, mcrfs, mtfsf "manage" this FPSCR
> # 2.3.1 CR (and sub-fields CR0..CR6 - CR0 SO comes from XER.SO)
> # note that mfocrf, mfcr, mtcr, mtocrf, mcrxrx "manage" CRs
> # 2.3.2 LR (actually SPR #8)
> # 2.3.3 CTR (actually SPR #9)
> # 2.3.4 TAR (actually SPR #815)
> # 3.2.2 p45 XER (actually SPR #0)
> # 3.2.3 p46 p232 VRSAVE (actually SPR #256)
> I assume that that the version of the pdf referenced is still 3.0 one and not 3.1 recently released.
correct.
l.
_______________________________________________
libre-riscv-dev mailing list
libre-riscv-dev@lists.libre-riscv.org
http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [libre-riscv-dev] daily kan-ban update 13may2020
2020-05-13 14:33 ` Luke Kenneth Casson Leighton
@ 2020-05-13 14:43 ` Tobias Platen
2020-05-13 15:03 ` Luke Kenneth Casson Leighton
0 siblings, 1 reply; 7+ messages in thread
From: Tobias Platen @ 2020-05-13 14:43 UTC (permalink / raw)
To: Libre-RISCV General Development; +Cc: Luke Kenneth Casson Leighton
On Wed, 13 May 2020 15:33:53 +0100
Luke Kenneth Casson Leighton <lkcl@lkcl.net> wrote:
> a really useful self-contained sub-task would be to convert this to nmigen:
> https://github.com/antonblanchard/microwatt/blob/master/countzero.vhdl
I think I could do this in an hour or less.
--
Tobias Platen <libre-soc[at]platen-software[dot]de>
_______________________________________________
libre-riscv-dev mailing list
libre-riscv-dev@lists.libre-riscv.org
http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [libre-riscv-dev] daily kan-ban update 13may2020
2020-05-13 14:43 ` Tobias Platen
@ 2020-05-13 15:03 ` Luke Kenneth Casson Leighton
2020-05-13 18:07 ` Cole Poirier
2020-05-13 22:02 ` Luke Kenneth Casson Leighton
0 siblings, 2 replies; 7+ messages in thread
From: Luke Kenneth Casson Leighton @ 2020-05-13 15:03 UTC (permalink / raw)
To: Libre-RISCV General Development
On Wed, May 13, 2020 at 3:43 PM Tobias Platen
<libre-soc@platen-software.de> wrote:
>
> On Wed, 13 May 2020 15:33:53 +0100
> Luke Kenneth Casson Leighton <lkcl@lkcl.net> wrote:
>
> > a really useful self-contained sub-task would be to convert this to nmigen:
> > https://github.com/antonblanchard/microwatt/blob/master/countzero.vhdl
> I think I could do this in an hour or less.
ok great. create a directory in soc.git, src/soc/countzero to work in.
don't commit the VHDL to the repo, reference it in a comment at the top
of countzero.py
also useful as a "very basic" simulation and confirmation of functionality
i'd recommend doing a unit test similar to countzero_tb.vhdl
l.
_______________________________________________
libre-riscv-dev mailing list
libre-riscv-dev@lists.libre-riscv.org
http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [libre-riscv-dev] daily kan-ban update 13may2020
2020-05-13 15:03 ` Luke Kenneth Casson Leighton
@ 2020-05-13 18:07 ` Cole Poirier
2020-05-13 22:02 ` Luke Kenneth Casson Leighton
1 sibling, 0 replies; 7+ messages in thread
From: Cole Poirier @ 2020-05-13 18:07 UTC (permalink / raw)
To: Libre-RISCV General Development; +Cc: Libre-RISCV General Development
Yesterday, after several rounds of failed testing of the coriolis2
chroot setup script, I conclueded that coriolis2 currently has a bug in
it that I should wait on JP for (thank for helping me come to this
conclusion luke). Today I will work on the non-chroot HDL_Workflow setup script.
Cole
_______________________________________________
libre-riscv-dev mailing list
libre-riscv-dev@lists.libre-riscv.org
http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [libre-riscv-dev] daily kan-ban update 13may2020
2020-05-13 15:03 ` Luke Kenneth Casson Leighton
2020-05-13 18:07 ` Cole Poirier
@ 2020-05-13 22:02 ` Luke Kenneth Casson Leighton
1 sibling, 0 replies; 7+ messages in thread
From: Luke Kenneth Casson Leighton @ 2020-05-13 22:02 UTC (permalink / raw)
To: Libre-RISCV General Development
tobias: encoder, in countzero.vhdl, is PriorityEncoder in nmigen.
however you have to invert the input bits for right-mode input[::-1]
or something like that. there may be a function for it in nmigen
l.
_______________________________________________
libre-riscv-dev mailing list
libre-riscv-dev@lists.libre-riscv.org
http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, back to index
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-13 10:28 [libre-riscv-dev] daily kan-ban update 13may2020 Luke Kenneth Casson Leighton
2020-05-13 13:56 ` Tobias Platen
2020-05-13 14:33 ` Luke Kenneth Casson Leighton
2020-05-13 14:43 ` Tobias Platen
2020-05-13 15:03 ` Luke Kenneth Casson Leighton
2020-05-13 18:07 ` Cole Poirier
2020-05-13 22:02 ` Luke Kenneth Casson Leighton
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