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