Skip to content
kshalle edited this page Dec 25, 2017 · 30 revisions

Welcome to the riscv-sodor Wiki

This wiki covers both the Sodor repository, and also hosts the Chisel Learning Journey. The Learning journey is a simplified hand-holding step by step way for those new to Chisel to quickly and easily ramp up and become productive.

There is also a list of reference material, but that can easily be overwhelming to those new to Chisel, and it can also easily be a time sink for those who are trying to ramp up and starting getting stuff done with the minimum of time invested.

Here is the step by step Learning journey

  1. a collection of guidelines on general introduction to Chisel, Sodor and Rocket, and
  2. a list of very specific questions and answers, that result from real-world-Chisel-code investigation (again, at least for now, based on Sodor and Rocket).

Both the collection and the list are in constant development, meaning that rolling upgrades can be expected any time and all are invited to contribute.

About the Collection

The collection of general guidelines begins (and you should, also) by explaining the insights on what? and why? through painting the Big Picture. Then Prerequisites are discussed, but please be careful in this domain not to spend to much time on those. The resources provided in that section are not intended for learning functional programming or Scala or any other of the required set of skills. Rather, the section on prerequisites is provided here as the collection of documentation on those topics and is intended to be used as the starting point of unclear Chisel code investigations. Such investigations should result, eventually, in improving this Chisel Learning Journey.

The following two sections are about Chisel. First, the framework of Chisel Environment is provided as a set-up tutorial and then Chisel Introductory Examples are given as a self-paced code tutorial. Of course, these information are present to an extent at Chisel creators' web resources and there is no need to be redundant. All those resources are listed accordingly and you are strongly advised to investigate them further, if such need arises. Neither of these tutorials is intended to be a learn-by-heart material - quite contrary. User experiences have shown that the best practice is to learn is by delving into the practical examples as soon as possible. This means that you are advised to spend not more than several hours on all this general material and move on to Chisel real-world-code (i.e. Sodor or/and Rocket) investigation.

About the List

Once you skim through the general guidelines material, you are ready to start contributing - either passively or actively. Passive contribution is, e.g. investigation of Sodor repository, understanding of, first, simple and then more and more complex code, looking for explanations within this Learning Journey and then further - look for resources on the prerequisites pages and here. Also, checkout mailing lists and StackOverflow questions and answers as advised here. Finally, you are invited to take part in the weekly Hangout meetings held on Saturdays at 09:30 am PST by pressing here.

Advancing your knowledge and understanding is a valued contribution to the Chisel Learning Journey. However, if you would like to actively contribute, then please proceed on to start asking questions on snippets of code (coming from anywhere) either at this Wiki (as instructed on the contributions page), or to the Hangout group (the questions may be posted any time, not necessarily within the listed time window) or over at StackOverflow (using the correct keywords, as instructed at the contributions page. Please try to show your own contribution to finding the solution - tell where you searched the answer for, explain what is confusing, provide a use case or an example and so on. In this way, the Chisel Advanced Examples list is maintained and upgraded. Finally, please use the User Experiences section to tell your personal experience - that will help improve this Learning Journey by providing insight into subjective points of view, which, further, enables better tailoring of these pages to the needs of users.

Finally, most important of all, have fun!

Clone this wiki locally