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 318] fix LDSTCompUnit
Date: Mon, 18 May 2020 17:19:45 +0000
Message-ID: <bug-318-13-HfIsiLFtjy@https.bugs.libre-soc.org/> (raw)
In-Reply-To: <bug-318-13@https.bugs.libre-soc.org/>

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

--- Comment #15 from Luke Kenneth Casson Leighton <lkcl@lkcl.net> ---
(In reply to Cesar Strauss from comment #14)
> Dear Luke,
> 
> I see uses of "latchregister" and "SRLatch" in code. In the nMigen library,
> they are internally implemented with synchronous logic, although partly
> resembling the function of their asynchronous equivalents.

yes.  this was the best i could think of that is reasonably close and at the
same time is verifiable if we went with standard commercial tools.

SR NAND most definitely is not verifiable except with proprietary tools that
are rented at USD 250,000 a week.

> 
> Do you, by any chance, intend to replace them, in the ASIC, with real
> asynchronous latches?

for the CompUnits, probably not.  the gate count (number of SRLatch instances)
is not high enough to justify the risk.

> As depicted in several diagrams at
> https://libre-soc.org/3d_gpu/architecture/6600scoreboard/ ?

yes.  i kept these to make it possible to understand the relationship with what
Mitch taught me.

however you have to appreciate that the 6600 diagrams worked by alternating low
and high clock cycles.

in particular, the Dependency Matrix cells very specifically activate "issue"
on the HI cycle and clear GOREAD on i believe the LO cycle.

i decided that sticking closely to this as a very first chip might not be a
good idea, although it is extremely cool.

consequently instead i created SRLatch and then used a sync on resetting it as
the "primary method" of responding to REQUEST signals.

you will therefore see a GO signal be the reset driver on for example the read
latch, as a *sync* not a comb.

this leaves the SRLatch latch open for precisely one clock cycle, and the
corresponding REQ, generated from the Q of the SRlatch instance, will then
drop.  which is exactly what is needed to capture the incoming data.

remember, GOREAD is only set (and set for only one cycle) when the Regfile Bus
is svailable to transport data to this Unit.

a standard design (wishbone) would use ready/valid signalling to do exactly the
same thing, it is just different names.

-- 
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: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-17 10:08 [libre-riscv-dev] [Bug 318] New: " bugzilla-daemon
2020-05-17 10:09 ` [libre-riscv-dev] [Bug 318] " bugzilla-daemon
2020-05-17 10:10 ` bugzilla-daemon
2020-05-17 10:31 ` bugzilla-daemon
2020-05-17 10:35 ` bugzilla-daemon
2020-05-17 10:51 ` bugzilla-daemon
2020-05-17 11:02 ` bugzilla-daemon
2020-05-17 13:20 ` bugzilla-daemon
2020-05-17 14:44 ` bugzilla-daemon
2020-05-17 16:43 ` bugzilla-daemon
2020-05-17 17:06 ` bugzilla-daemon
2020-05-17 23:01 ` bugzilla-daemon
2020-05-17 23:31 ` bugzilla-daemon
2020-05-18  4:09 ` bugzilla-daemon
2020-05-18 16:26 ` bugzilla-daemon
2020-05-18 16:38 ` bugzilla-daemon
2020-05-18 16:56 ` bugzilla-daemon
2020-05-18 17:19 ` bugzilla-daemon [this message]
2020-05-20  3:09 ` bugzilla-daemon
2020-05-20  3:17 ` bugzilla-daemon
2020-05-20 14:40 ` bugzilla-daemon
2020-05-21 12:05 ` bugzilla-daemon
2020-05-21 12:58 ` bugzilla-daemon
2020-05-21 17:55 ` bugzilla-daemon
2020-05-25  0:14 ` bugzilla-daemon
2020-06-10 16:44 ` bugzilla-daemon
2020-06-10 17:20 ` bugzilla-daemon
2020-06-11 22:58 ` bugzilla-daemon
2020-06-11 23:22 ` bugzilla-daemon
2020-06-12 10:58 ` bugzilla-daemon
2020-06-12 11:13 ` bugzilla-daemon
2020-06-12 11:15 ` 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-318-13-HfIsiLFtjy@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