Source for E300 Corecomplex

Hi Folks,

Can you please let me know if the sources for E300 is available for us to tinker around ?

Just to clarify, this is assuming that the business model is to provide open source implementation of SoC with SiFive providing design services for customer specific enhancement. Please let me know if my understanding is correct ?

Regards,
Girish

Your understanding is correct.

We are working on some of the development and also defining and cleaning up the open-source repositories. Much of the work in progress exists at https://github.com/ucb-bar/rocket-chip, which has traditionally been a repository for just the CPU coreplex, so you can look there for a preview.

But we understand that that repository is not well organized and defined for a SoC, so it’s something we are actively working on improving.

Thanks for the info. Do you have an ETA on the SoC repo ?

We are working hard to have this ready by early to mid October.

Jack - Just wanted to follow up to check if the plans are still on track to open the SoC repo by mid October ?

We had set a target of getting the source code out by the middle of October, but clearly we have not met that goal.
It has turned out to be a bit more challenging than we thought–we need to ensure the right legal frameworks are in place so that people can use the code freely and also feel comfortable providing commits and updates as they see fit.

At SiFive, we are fully committed to doing this. We appreciate your patience as we work through it and will continue to update everybody here.

The code is now Open-Source! Please check out https://github.com/sifive/freedom for the Open Source code used on our FE310 chip , and the FPGA development kits for E300 and U500.

Have fun!
Megan

Will you please also release the gate-level netlist for the FE310?

– Jason Doege

Would the net list for the FPGA version be sufficient?

No, the FPGA netlist would not be sufficient (and is easily available independently, anyway.)

It would be very useful to have an openly available SoC gate-level netlist. No timing information would be necessary so you wouldn’t have to violate any foundry library IP restrictions, I think. One of the things I would be very interested in is the scan-based testability of the device, if you implemented that (and, if not, how exactly did/do you assure manufacturing quality?) This kind of information is usually only available within corporate environments and would be very interesting, especially to academic institutions.

Best regards,
Jason

Hi Jason,

We have no plans to open source the gate-level netlist.

-Jack

Please read my response in the Coreplex IP thread about why SiFive only supports the open-source Chisel code base in these forums. The community is welcome to generate Verilog and gate netlists from our Chisel code base, and to share these with others.

Krste

Hi Megan,

I am getting errors running he Makefile corresponding to the Freedom E310 Arty FPGA Dev Kit:

download failed: org.scala-sbt#main;0.13.11!main.jar
download failed: org.scala-sbt#actions;0.13.11!actions.jar
download failed: org.scala-sbt#io;0.13.11!io.jar
download failed: org.scala-sbt#completion;0.13.11!completion.jar
download failed: org.scala-sbt#collections;0.13.11!collections.jar
download failed: org.scala-sbt#api;0.13.11!api.jar
download failed: org.scala-sbt#incremental-compiler;0.13.11!incremental-compiler.jar
download failed: org.scala-sbt#compile;0.13.11!compile.jar
download failed: org.scala-sbt#ivy;0.13.11!ivy.jar
download failed: org.scala-sbt#main-settings;0.13.11!main-settings.jar
download failed: org.scala-sbt#command;0.13.11!command.jar
download failed: org.scala-sbt#compiler-interface;0.13.11!compiler-interface.jar
Error during sbt execution: Error retrieving required libraries
(see /root/.sbt/boot/update.log for complete log)
Error: Could not retrieve sbt 0.13.11
Makefile:23: recipe for target ‘/home/donnie/SiFive/freedom/rocket-chip/firrtl/utils/bin/firrtl.jar’ failed
make[1]: *** [/home/donnie/SiFive/freedom/rocket-chip/firrtl/utils/bin/firrtl.jar] Error 1
make[1]: Leaving directory '/home/donnie/SiFive/freedom/rocket-chip/firrtl’
common.mk:26: recipe for target ‘/home/donnie/SiFive/freedom/rocket-chip/firrtl/utils/bin/firrtl.jar’ failed
make: *** [/home/donnie/SiFive/freedom/rocket-chip/firrtl/utils/bin/firrtl.jar] Error 2

The referenced logfile is telling me this:

setting ‘ivy.default.settings.dir’ to 'jar:file:/home/donnie/SiFive/freedom/rocket-chip/sbt-launch.jar!/org/apache/ivy/core/settings’
setting ‘ivy.basedir’ to '/home/donnie/SiFive/freedom/rocket-chip/firrtl/.'
setting ‘ivy.default.conf.dir’ to 'jar:file:/home/donnie/SiFive/freedom/rocket-chip/sbt-launch.jar!/org/apache/ivy/core/settings’
impossible to define new type: class not found: org.apache.ivy.plugins.resolver.SshResolver in [] nor Ivy classloader
impossible to define new type: class not found: org.apache.ivy.plugins.resolver.VsftpResolver in [] nor Ivy classloader
impossible to define new type: class not found: org.apache.ivy.plugins.version.PatternVersionMatcher in [] nor Ivy classloader
impossible to define new type: class not found: org.apache.ivy.plugins.trigger.LogTrigger in [] nor Ivy classloader
impossible to define new type: class not found: org.apache.ivy.ant.AntBuildTrigger in [] nor Ivy classloader
impossible to define new type: class not found: org.apache.ivy.plugins.resolver.IvyRepResolver in [] nor Ivy classloader
impossible to define new type: class not found: org.apache.ivy.plugins.signer.bouncycastle.OpenPGPSignatureGenerator in [] nor Ivy classloader
impossible to define new type: class not found: org.apache.ivy.plugins.conflict.RegexpConflictManager in [] nor Ivy classloader
impossible to define new type: class not found: org.apache.ivy.plugins.resolver.SFTPResolver in [] nor Ivy classloader
impossible to define new type: class not found: org.apache.ivy.osgi.updatesite.UpdateSiteResolver in [] nor Ivy classloader
impossible to define new type: class not found: org.apache.ivy.ant.AntCallTrigger in [] nor Ivy classloader
impossible to define new type: class not found: org.apache.ivy.plugins.resolver.MirroredURLResolver in [] nor Ivy classloader
impossible to define new type: class not found: org.apache.ivy.plugins.resolver.packager.PackagerResolver in [] nor Ivy classloader
impossible to define new type: class not found: org.apache.ivy.plugins.resolver.DualResolver in [] nor Ivy classloader
impossible to define new type: class not found: org.apache.ivy.plugins.resolver.VfsResolver in [] nor Ivy classloader
impossible to define new type: class not found: org.apache.ivy.plugins.resolver.JarResolver in [] nor Ivy classloader
impossible to define new type: class not found: org.apache.ivy.osgi.obr.OBRResolver in [] nor Ivy classloader
impossible to define glob matcher: org.apache.ivy.plugins.matcher.GlobPatternMatcher was not found.
setting ‘jline.esc.timeout’ to '0’
setting ‘java.runtime.name’ to 'OpenJDK Runtime Environment’
setting ‘sun.boot.library.path’ to ‘/usr/lib/jvm/java-9-openjdk-amd64/lib/amd64’


Module descriptor is processed : org.scala-sbt#test-interface;1.0
Module descriptor is processed : org.scala-sbt#apply-macro;0.13.11
storing dependency org.scala-sbt#sbt;0.13.11 in props
resolved ivy file produced in cache
:: downloading artifacts ::
[NOT REQUIRED] org.scala-sbt#sbt;0.13.11!sbt.jar
[NOT REQUIRED] org.scala-lang#scala-library;2.10.6!scala-library.jar
local: no namespace defined: using system
trying /root/.ivy2/local/org.scala-sbt/main/0.13.11/jars/main.jar
tried /root/.ivy2/local/org.scala-sbt/main/0.13.11/jars/main.jar
local: resource not reachable for org.scala-sbt#main;0.13.11: res=/root/.ivy2/local/org.scala-sbt/main/0.13.11/jars/main.jar
Maven Central: no namespace defined: using system
trying https://repo1.maven.org/maven2/org/scala-sbt/main/0.13.11/main-0.13.11.jar
tried https://repo1.maven.org/maven2/org/scala-sbt/main/0.13.11/main-0.13.11.jar
HTTP response status: 404 url=https://repo1.maven.org/maven2/org/scala-sbt/main/0.13.11/main-0.13.11.jar
CLIENT ERROR: Not Found url=https://repo1.maven.org/maven2/org/scala-sbt/main/0.13.11/main-0.13.11.jar
Maven Central: resource not reachable for org/scala-sbt#main;0.13.11: res=https://repo1.maven.org/maven2/org/scala-sbt/main/0.13.11/main-0.13.11.jar
typesafe-ivy-releases: no namespace defined: using system
trying https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/main/0.13.11/jars/main.jar
tried https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/main/0.13.11/jars/main.jar
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/main/0.13.11/jars/main.jar
typesafe-ivy-releases: downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/main/0.13.11/jars/main.jar
to /root/.ivy2/cache/org.scala-sbt/main/jars/main-0.13.11.jar.part
WARN: [FAILED ] org.scala-sbt#main;0.13.11!main.jar: sun.security.validator.ValidatorException: No trusted certificate found (1671ms)
sbt-ivy-snapshots: no namespace defined: using system
trying https://repo.scala-sbt.org/scalasbt/ivy-snapshots/org.scala-sbt/main/0.13.11/jars/main.jar
tried https://repo.scala-sbt.org/scalasbt/ivy-snapshots/org.scala-sbt/main/0.13.11/jars/main.jar
HTTP response status: 404 url=https://repo.scala-sbt.org/scalasbt/ivy-snapshots/org.scala-sbt/main/0.13.11/jars/main.jar
CLIENT ERROR: Not Found url=https://repo.scala-sbt.org/scalasbt/ivy-snapshots/org.scala-sbt/main/0.13.11/jars/main.jar
sbt-ivy-snapshots: resource not reachable for org.scala-sbt#main;0.13.11: res=https://repo.scala-sbt.org/scalasbt/ivy-snapshots/org.scala-sbt/main/0.13.11/jars/main.jar
WARN: [FAILED ] org.scala-sbt#main;0.13.11!main.jar: (0ms)
WARN: ==== local: tried
WARN: /root/.ivy2/local/org.scala-sbt/main/0.13.11/jars/main.jar
WARN: ==== Maven Central: tried
WARN: https://repo1.maven.org/maven2/org/scala-sbt/main/0.13.11/main-0.13.11.jar
WARN: ==== typesafe-ivy-releases: tried
WARN: https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/main/0.13.11/jars/main.jar
WARN: ==== sbt-ivy-snapshots: tried
WARN: https://repo.scala-sbt.org/scalasbt/ivy-snapshots/org.scala-sbt/main/0.13.11/jars/main.jar
trying /root/.ivy2/local/org.scala-sbt/compiler-interface/0.13.11/jars/compiler-interface.jar
WARN: https://repo.scala-sbt.org/scalasbt/ivy-snapshots/org.scala-sbt/main/0.13.11/jars/main.jar
trying /root/.ivy2/local/org.scala-sbt/compiler-interface/0.13.11/jars/compiler-interface.jar
tried /root/.ivy2/local/org.scala-sbt/compiler-interface/0.13.11/jars/compiler-interface.jar
local: resource not reachable for org.scala-sbt#compiler-interface;0.13.11: res=/root/.ivy2/local/org.scala-sbt/compiler-interface/0.13.11/jars/compiler-interface.jar
trying https://repo1.maven.org/maven2/org/scala-sbt/compiler-interface/0.13.11/compiler-interface-0.13.11.jar
tried https://repo1.maven.org/maven2/org/scala-sbt/compiler-interface/0.13.11/compiler-interface-0.13.11.jar
HTTP response status: 404 url=https://repo1.maven.org/maven2/org/scala-sbt/compiler-interface/0.13.11/compiler-interface-0.13.11.jar
CLIENT ERROR: Not Found url=https://repo1.maven.org/maven2/org/scala-sbt/compiler-interface/0.13.11/compiler-interface-0.13.11.jar
Maven Central: resource not reachable for org/scala-sbt#compiler-interface;0.13.11: res=https://repo1.maven.org/maven2/org/scala-sbt/compiler-interface/0.13.11/compiler-interface-0.13.11.jar
trying https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/compiler-interface/0.13.11/jars/compiler-interface.jar
tried https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/compiler-interface/0.13.11/jars/compiler-interface.jar
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/compiler-interface/0.13.11/jars/compiler-interface.jar
typesafe-ivy-releases: downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/compiler-interface/0.13.11/jars/compiler-interface.jar
to /root/.ivy2/cache/org.scala-sbt/compiler-interface/jars/compiler-interface-0.13.11.jar.part
WARN: [FAILED ] org.scala-sbt#compiler-interface;0.13.11!compiler-interface.jar: sun.security.validator.ValidatorException: No trusted certificate found (1202ms)
trying https://repo.scala-sbt.org/scalasbt/ivy-snapshots/org.scala-sbt/compiler-interface/0.13.11/jars/compiler-interface.jar
tried https://repo.scala-sbt.org/scalasbt/ivy-snapshots/org.scala-sbt/compiler-interface/0.13.11/jars/compiler-interface.jar
HTTP response status: 404 url=https://repo.scala-sbt.org/scalasbt/ivy-snapshots/org.scala-sbt/compiler-interface/0.13.11/jars/compiler-interface.jar
CLIENT ERROR: Not Found url=https://repo.scala-sbt.org/scalasbt/ivy-snapshots/org.scala-sbt/compiler-interface/0.13.11/jars/compiler-interface.jar
sbt-ivy-snapshots: resource not reachable for org.scala-sbt#compiler-interface;0.13.11: res=https://repo.scala-sbt.org/scalasbt/ivy-snapshots/org.scala-sbt/compiler-interface/0.13.11/jars/comp$
WARN: [FAILED ] org.scala-sbt#compiler-interface;0.13.11!compiler-interface.jar: (0ms)

with the same “No trusted certificate found” error sequence being repeated on each of the download attempts.

Do I need some kind of authorization not mentioned in the freedom Readme.md?

Thanks for any help.

It looks like this is an issue with running sbt on OpenJDK 9. http://stackoverflow.com/a/40165934 says that you can resolve this by uninstalling OpenJDK 9 and installing OpenJDK 8.

That did it. Many thanks for your help.