[Libre-soc-bugs] [Bug 1127] New: Generating a Libre-SOC Microwatt-compatible core with SVP64

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Tue Aug 1 12:45:41 BST 2023


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

            Bug ID: 1127
           Summary: Generating a Libre-SOC Microwatt-compatible core with
                    SVP64
           Product: Libre-SOC's first SoC
           Version: unspecified
          Hardware: PC
               URL: https://libre-soc.org/HDL_workflow/ls2/
                OS: Linux
            Status: CONFIRMED
          Severity: enhancement
          Priority: ---
         Component: Source Code
          Assignee: andrey at technepisteme.xyz
          Reporter: andrey at technepisteme.xyz
                CC: libre-soc-bugs at lists.libre-soc.org, lkcl at lkcl.net
        Depends on: 1086
            Blocks: 961
   NLnet milestone: NLnet.2022-08-107.ongoing

Created attachment 195
  --> https://bugs.libre-soc.org/attachment.cgi?id=195&action=edit
Diff of mw vs mw+svp64 core using yosys ls

Last Thursday I started looking into generating an external Libre-SOC core
containing SVP64 (no elwidth overrides, 64-bit element width only), while also
retaining Microwatt compatibility (so that we could run the same binary).
https://libre-soc.org/irclog/%23libre-soc.2023-07-27.log.html#t2023-07-27T18:03:34

(I do apologise for not raising the bug report earlier and misusing the IRC.
For anyone seeing this in the future, please see bug #1126 for how to properly
report an issue.)

The core is generated from the soc repo, by calling the Makefile. I'm using the
environment produced by following the ls2 setup on the wiki page.

I added a rule to the Makefile, and an argument to issuer_verilog.py, leaving
all the parameters the same as 'microwatt_external_core', except setting
'svp64' to True.
https://git.libre-soc.org/?p=soc.git;a=commitdiff;h=7c41d80d9a1af94f8dacd808b822bee62a620811

When running 'make microwatt_external_core_svp64', I hit an AttributeError,
with PowerDecode2 missing the signal 'use_svp64_ldst_dec'.

On Monday I looked at the commits in openpower-isa (that's where the
power_decoder2.py is located). See:
https://libre-soc.org/irclog/%23libre-soc.2023-07-31.log.html#t2023-07-31T13:44:10

This commit on 24th June 2021 shows the 'use_svp64_ldst_dec' signal being
added):
https://git.libre-soc.org/?p=openpower-isa.git;a=commitdiff;h=847075a69e38b96376b7db0d5df0cc125da0be7a

A commit on the 12th August 2022 then removes this signal:
https://git.libre-soc.org/?p=openpower-isa.git;a=commitdiff;h=fdba782098076205d7740fc091d925d63b29a194

Using openpower-isa commit #1bbfcce929c9a1d6b1dc0fc68c84296bcc58eea1 (the one
before the signal was removed), I was able to generate an external core with
the SVP64 enabled.
https://git.libre-soc.org/?p=openpower-isa.git;a=commitdiff;h=1bbfcce929c9a1d6b1dc0fc68c84296bcc58eea1

To make sure the SVP64 related blocks are really there, I loaded the verilog
file into yosys and listed the modules using ls. The diff comparing the
Microwatt-compatible and MW+SVP64 is included as a text file.

Next step is to test the core within ls2.


Referenced Bugs:

https://bugs.libre-soc.org/show_bug.cgi?id=961
[Bug 961] NLnet 2022 Libre-SOC "ongoing" milestone 2022-08-107 (approved, MoU
TBD)
https://bugs.libre-soc.org/show_bug.cgi?id=1086
[Bug 1086] ls2 verilator sim - setting up chroot and documentation
-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the libre-soc-bugs mailing list