From: bugzilla-daemon@libre-soc.org
To: libre-riscv-dev@lists.libre-riscv.org
Subject: [libre-riscv-dev] [Bug 316] bperm TODO
Date: Tue, 19 May 2020 00:05:24 +0000
Message-ID: <bug-316-13-Ux0ySkQTrV@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 #46 from Luke Kenneth Casson Leighton <lkcl@lkcl.net> ---
(In reply to Cole Poirier from comment #44)
> 71 # 1. RA[8:64] should always equal 0
> 72 # 2. If RB[i*8:i*8+8] >= 64 then RA[i] should equal 0
> 73 # 3. If RB[i*8:i*8+8] < 64 then RA[i] should RS[index]
>
> For 2 and 3 should RB[i*8:i*8+8] actually be RS[i*8:i*8+8]?
yes.
> Or am I failing
> to properly read/interpret the 'formalism'? In other words, I'm very
> confused and looking for a way to better understand what I am doing, and
> what I am supposed to be doing.
you are expressing the expectations about the inputs and outputs of
the module.
these you express as assertions that must be true.
(sby then checks those for you under *all* possible values of input and
output).
therefore you not only need to get the code right, you actually need to
properly understand what it does... and express that in the assertions.
example.
from this line of code, is it *ever* possible that bits 8 and above
will be *anything* other than zero?
m.d.comb += self.ra[0:8].eq(perm)
answer: no it is not.
*therefore make an assertion about that*:
comb += Assert(self.ra[8:] == 0)
now let us move on to when any given "index" (in rs, not rb) is
greater than 64.
is it *ever* possible that perm[i] - which remember is the same
as ra[i] - that when "index" is >= 64, that perm[i]
(aka ra[i]) will be anything other than zero?
with m.If(idx < 64):
m.d.comb += perm[i].eq(rb64[idx])
answer: no, it cannot, because when index >= 64, perm[i] is never
set, and therefore will *always* be zero.
*therefore make an assertion about that*:
with m.If(index >= 64):
comb += Assert(ra[i] == 0)
and that just leaves the last one, which is annoyingly a little more
complicated, and best done probably by setting up that array rb64 again,
which will allow you to get at rb[index]
i "cheated" by doing a ridiculously-CPU-intensive cycling through
j=0..64 looking for a match against j == index.
--
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
next prev 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
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 [this message]
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-Ux0ySkQTrV@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