FE310 pertinent RISC-V workshop videos

Approaching the specification documentation, even one as concise as RISC-V, can be imposing. It can be tricky to engage with a long written document for the first time and a bit of prior domain knowledge is helpful in making a practical connection. So, I’ve been gradually working my way through the videos in the RISC-V YouTube channel. There’s a lot of really great material in there including a few gems which are directly pertinent to the HiFive1/FE310.

The following are those videos I’ve encountered which match a loose criteria of: “if I were an interested technical person, but without any prior knowledge of FE310/RISC-V, what key points would need to be introduced to make comprehending the written documentation easier?” By complete coincidence the following list also somewhat matches the bullet points describing the FE310’s features on the HiFive1 CrowdSupply page.

The Case for Open Instruction Sets

Privileged architecture summary

Compressed extension

External debug system

CLINT/interrupt handling (this was especially helpful for me as the CLINT was the first thing I looked up in the FE310 manuals):

While not implemented in the FE310 this seemed like the next logical one to watch.

Vector extension

While searching for useful content I also came across a series of Computer Science lectures from UCBerkeley’s channel. I haven’t had a chance to watch them all yet but, considering the who the lecturers are and the origins of RISC-V, I’d be very surprised if it didn’t cover something applicable:

2 Likes

Hi Dave,

Thank you for this wonderfull post. I am living in Germany and thanks to you I now find myself taking a college course in Berkeley (at the age of 65)!

I love it!

1 Like

You’re welcome. It’s very good of the RISC-V foundation and Berkeley to put all this material online. A lot of other big institutions - MIT, Stanford etc - put lectures online too. Those are slightly outside the scope of this topic but are worth looking up. Turns out there’s more on the Internet than cats and racism.

I love living in the future.

1 Like

The HiFive1 has more integer processing power than anything I used at university or in the first fifteen years of my programming career – something around the fastest Pentium MMX or early Pentium Pro. Sad that it has less RAM than a 1979 Apple ][ – but maybe more free RAM due to program code living in the huge flash.

(someone needs to write a little function-at-a-time compiler that copies each function from RAM into flash after it’s compiled! I know that means turning the flash memory-mapping off while writing to it, but I guess code to do the copying isn’t very big and can live in RAM temporarily).

A $35 Raspberry Pi (or better, Odroid C2 for $5 more) beats everything up to a PowerMac G5 or Pentium 4. On every axis! It will be exciting when SiFive and LowRISC and others start playing in that space, soon.

If you don’t want/need to interface to LEDs and switches and motors/servos then today you can learn everything you could ever want to know about programming on the oldest cast-off-for-free Mac or PC (with Linux) you can find working. You can probably find a Core 2 Duo machine for free by now. That’s awesome hardware!

But the biggest problem when I was a kid trying to learn about computers was the total lack of availability of information in a small rural town, 100 miles from a city with a university, in a remote Pacific Ocean country where video of the moon landing made it onto the evening news only because it was flown in specially by jet bomber!

In highschool I was actually able to get my hands on programmable calculators such as the HP67/97, TI 57 and 58/59, Casio FX502P, and almost in parallel Commodore Pet, Apple ][ and even the odd CP/M machine.

But absolutely no programming information was available beyond whatever manual came with the machine! There was nothing at all in my school library, nothing in the town library, nothing by interloan from the city library 100 miles away. Plenty at the university in that city, but you couldn’t request that :frowning:

The Apple ][ was the best. It came with a manual with a complete assembler listing of the ROM. But no explanation of what “LDA” or “ADC” actually meant, let alone what “#”, “,” or “()” meant in operands. I had to figure that out by detective work reading the comments in the listing, and from POKEing short machine code sequences into memory, running them, and seeing what they did!!!

The main benefit of university was getting access to a PDP11 (and then VAX) with VT52/100 terminals, and a library with a basement full of CACM and SIGPLAN and SIGGRAPH. I spend 40% of my time in that basement, 40% at a terminal doing personal projects, 5% attending lectures, 15% doing the set assignments.

If I was a teenager now, I don’t think I’d even enroll at university. Get a Pi or old PC and everything you could ever want to know is on the internet. All you need is curiosity, discipline, and (hopefully!) a mentor. Code on github beats a certificate any time.

2 Likes

I’m already trying to work out what I’m going to say to my wife when that day arrives and she sees the bank statement.

I’m hoping and expecting they will fall within the “filling up your car’s fuel tank” price range where spousal approval is not needed!

2 Likes

Arun Thomas’ RISC-V talk at FOSDEM.

EDIT: Link fixed. I had the wrong URL in my copy-buffer. :flushed:

I previously saw this version of that talk, which I thought might be slightly better

(or not)

1 Like

Yeah, I really didn’t want to hear about US politics…

1 Like

I’m hoping and expecting they will fall within the “filling up your car’s fuel tank” price range where spousal approval is not needed!

Now that’s a good way to describe a price range target! :slight_smile:

Uh oh. Now you’ve given SiFive marketing some dangerous ideas.

Of course the exact amount depends on what car you drive, but maybe it correlates…

/me remembers when his car cost less to fill than his motorcycle does now.