Libre RISC-V Mailing list Archives (accessible via public-inbox)
 help / color / Atom feed
From: bugzilla-daemon@libre-soc.org
To: libre-riscv-dev@lists.libre-riscv.org
Subject: [libre-riscv-dev] [Bug 316] bperm TODO
Date: Sat, 16 May 2020 22:28:48 +0000
Message-ID: <bug-316-13-85WhFT3SS4@https.bugs.libre-soc.org/> (raw)
In-Reply-To: <bug-316-13@https.bugs.libre-soc.org/>

https://bugs.libre-soc.org/show_bug.cgi?id=316

--- Comment #21 from Cole Poirier <colepoirier@gmail.com> ---
(In reply to Michael Nolan from comment #19)
> (In reply to Cole Poirier from comment #16)
> > 
> > I have committed the changes. Now I am going to go over Robert Baruch's
> > nmigen tutorials and search out resources on writing unit tests, and formal
> > proofs for hardware. Then I will attempt to write an appropriate unit test
> > for this class.
> 
> For writing unit tests, take a look at
> https://git.libre-soc.org/?p=soc.git;a=blob;f=src/soc/shift_rot/test/
> test_maskgen.py;h=1a4d34e676154b250f95ef120932a9b88fcaf937;
> hb=3c65f5ff7893bb34696c476abacfe34ad739bf18 for decent starting place

Thanks Michael! This looks like it will be really helpful.

(In reply to Michael Nolan from comment #18)
> (In reply to Luke Kenneth Casson Leighton from comment #17)
> > (In reply to Cole Poirier from comment #16)
> 
> > 
> > btw notice in cr/main_stage.py, michael also does the same "indexing" trick
> > :)
> > in particular notice what he does with the name argument:
> > 
> >    cr_out_arr = Array([Signal(name=f"cr_out_{i}") for i in range(32)])
> > 
> > if you try that out you will end up with actual properly-named Signals rather
> > than "stuff that's randomly named $1, $2, $3.... $64".
> 
> ROFL, I got the idea of using Arrays from your conversations yesterday.

I just pushed I commit where I have tried to copy this, although I'm unsure if
I did it correctly, because rb_{n} shows up correctly in the graph, but I see
no idx_{n}'s. I took a second look at my code after using yosys to examine it,
and I'm not able to discern why idx would not show up... I just took a third
look and realized it was because I had neglected to delete my temporary
assignment of an 8-bit wide Signal from my first iteration to the variable
index, which I was actually using within the body of the for loop that makes up
the bulk of the function. Now both labels show up correctly. I have pushed this
new commit.

> > great.  formal proofs are... odd.  i can barely get my head round them.

Yeah.. I have the feeling that I'm wading into quite strange waters here :)

> I'd be happy to help with formal proofs when you're ready.

Thanks again Michael, I'm looking forward to working with you and learning from
your knowledge and experience. I have a prior obligation, so I'll have to push
writing the unit test until tomorrow. But, for my own understanding, once I
have the unit test is working, would it be wiser to search for optimization
opportunities, for example from Claire Wolf's bitmanip code, or to write the
formal proof? I'm guessing that the formal proof is specific to the function's
implementation and thus I should wait to write the formal proof until the
function is optimized but I am not sure.

(In reply to Luke Kenneth Casson Leighton from comment #17)
> (In reply to Cole Poirier from comment #16)
> 
> > I have committed the changes.
> 
> fantastic: feel free to do another "git pull" because i just made some
> PEP8-like
> changes.

Thanks Luke, and apologies for not perfectly conforming to PEP8 yet, I'm
working on getting my autopep8 working but have run into a problem, I should
have it sorted tomorrow.

-- 
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: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-15 21:01 [libre-riscv-dev] [Bug 316] New: " bugzilla-daemon
2020-05-15 21:06 ` [libre-riscv-dev] [Bug 316] " bugzilla-daemon
2020-05-15 21:11 ` bugzilla-daemon
2020-05-15 21:23 ` bugzilla-daemon
2020-05-15 22:05 ` bugzilla-daemon
2020-05-15 22:14 ` bugzilla-daemon
2020-05-15 22:36 ` bugzilla-daemon
2020-05-16  0:24 ` bugzilla-daemon
2020-05-16  0:50 ` bugzilla-daemon
2020-05-16  1:16 ` bugzilla-daemon
2020-05-16  1:45 ` bugzilla-daemon
2020-05-16  2:03 ` bugzilla-daemon
2020-05-16  3:59 ` bugzilla-daemon
2020-05-16  4:20 ` bugzilla-daemon
2020-05-16  4:35 ` bugzilla-daemon
2020-05-16  4:37 ` bugzilla-daemon
2020-05-16  4:52 ` bugzilla-daemon
2020-05-16 21:15 ` bugzilla-daemon
2020-05-16 21:47 ` bugzilla-daemon
2020-05-16 21:49 ` bugzilla-daemon
2020-05-16 21:52 ` bugzilla-daemon
2020-05-16 22:24 ` bugzilla-daemon
2020-05-16 22:28 ` bugzilla-daemon [this message]
2020-05-16 22:36 ` bugzilla-daemon
2020-05-16 22:47 ` bugzilla-daemon
2020-05-16 23:26 ` bugzilla-daemon
2020-05-17 11:09 ` bugzilla-daemon
2020-05-17 17:19 ` bugzilla-daemon
2020-05-17 18:53 ` bugzilla-daemon
2020-05-17 18:56 ` bugzilla-daemon
2020-05-17 21:03 ` bugzilla-daemon
2020-05-17 21:28 ` bugzilla-daemon
2020-05-17 22:19 ` bugzilla-daemon
2020-05-17 23:22 ` bugzilla-daemon
2020-05-17 23:44 ` bugzilla-daemon
2020-05-18  0:14 ` bugzilla-daemon
2020-05-18  0:45 ` bugzilla-daemon
2020-05-18  0:50 ` bugzilla-daemon
2020-05-18  1:23 ` bugzilla-daemon
2020-05-18  4:08 ` bugzilla-daemon
2020-05-18 19:03 ` bugzilla-daemon
2020-05-18 22:29 ` bugzilla-daemon
2020-05-18 22:36 ` bugzilla-daemon
2020-05-18 23:12 ` bugzilla-daemon
2020-05-18 23:17 ` bugzilla-daemon
2020-05-18 23:34 ` bugzilla-daemon
2020-05-18 23:54 ` bugzilla-daemon
2020-05-19  0:05 ` bugzilla-daemon
2020-05-19  0:14 ` bugzilla-daemon
2020-05-19 14:40 ` bugzilla-daemon
2020-05-19 19:16 ` bugzilla-daemon
2020-05-19 19:24 ` bugzilla-daemon
2020-05-19 19:30 ` bugzilla-daemon
2020-05-20  0:09 ` bugzilla-daemon
2020-05-20  0:17 ` bugzilla-daemon
2020-05-20  0:27 ` bugzilla-daemon
2020-05-20  0:31 ` bugzilla-daemon
2020-05-20  0:40 ` bugzilla-daemon
2020-05-20  0:44 ` bugzilla-daemon
2020-05-20  0:48 ` bugzilla-daemon
2020-05-20  0:50 ` bugzilla-daemon
2020-05-20  0:56 ` bugzilla-daemon
2020-05-20  1:02 ` bugzilla-daemon
2020-05-20  1:04 ` bugzilla-daemon
2020-05-20  1:04 ` bugzilla-daemon
2020-05-20  1:05 ` bugzilla-daemon
2020-05-20  1:07 ` bugzilla-daemon
2020-05-20  1:09 ` bugzilla-daemon
2020-05-20  1:13 ` bugzilla-daemon
2020-05-20  1:34 ` bugzilla-daemon
2020-05-20 17:34 ` bugzilla-daemon
2020-05-20 17:48 ` bugzilla-daemon
2020-05-20 18:07 ` bugzilla-daemon
2020-05-20 18:13 ` bugzilla-daemon
2020-05-20 18:46 ` bugzilla-daemon
2020-05-20 19:42 ` bugzilla-daemon
2020-05-20 19:53 ` bugzilla-daemon
2020-05-20 22:18 ` bugzilla-daemon
2020-05-20 22:20 ` bugzilla-daemon
2020-05-21  0:25 ` bugzilla-daemon
2020-05-21 18:23 ` bugzilla-daemon
2020-05-21 18:38 ` bugzilla-daemon
2020-05-21 18:40 ` bugzilla-daemon
2020-05-21 18:42 ` bugzilla-daemon
2020-05-21 18:44 ` bugzilla-daemon
2020-05-21 19:02 ` bugzilla-daemon
2020-05-21 19:24 ` bugzilla-daemon
2020-05-21 21:36 ` bugzilla-daemon
2020-05-21 21:42 ` bugzilla-daemon
2020-05-21 22:00 ` bugzilla-daemon
2020-05-21 22:16 ` bugzilla-daemon
2020-05-21 22:24 ` bugzilla-daemon
2020-05-22  0:06 ` bugzilla-daemon
2020-05-22  1:20 ` bugzilla-daemon
2020-05-22 18:49 ` bugzilla-daemon
2020-05-23 22:35 ` bugzilla-daemon
2020-05-24 16:45 ` bugzilla-daemon
2020-05-24 17:57 ` bugzilla-daemon
2020-05-24 18:13 ` bugzilla-daemon
2020-05-24 18:26 ` bugzilla-daemon
2020-05-25 21:03 ` bugzilla-daemon
2020-05-25 21:36 ` 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-316-13-85WhFT3SS4@https.bugs.libre-soc.org/ \
    --to=bugzilla-daemon@libre-soc.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