RISCV CPU written in the Chisel/Scala hardware description language
(written
here, at lowrisc dot org)
I see a few projects are using Chisel/Scala instead of VHDL/Verilog: why?
I have no tools here supporting Chisel/Scala HDL, therefore, before taking it into consideration, I'd like to understand if it gives really good points.
so it seems ... a Berkeley idea for supporting RISCV
RISCV CPU written in the Chisel/Scala hardware description language
(written here, at lowrisc dot org)
I see a few projects are using Chisel/Scala instead of VHDL/Verilog: why?
Exactly the same reason you might write a program in C instead of in assembly language.
so it seems ... a Berkeley idea for supporting RISCV
Chisel is independent of RISC-V.
Many RISC-V CPUs from outside of Berkeley (or outside the SF Bay area) don't use Chisel.
Many things that aren't RISC-V CPUs do use Chisel. It's just a high level way to flexibly generate Verilog, just as C is a high level way to generate assembly language. In the end, you get gates (machine code) at the end of the process.
Chisel isn't the only recent high-level hardware description language. SpinalHDL is better, and was inspired by Chisel but fixes a lot of perceived problems, and is also built on Scala (which is built on Java).
Berkeley is a research institution. They need to try new things, otherwise nobody else will.
I'm not a huge fan of it, but realistically only because it is not very wide spread. But it will never be wide spread unless someone is pushing it.
Thankfully there are a lot of other implementations out there in every language imaginable.
Exactly the same reason you might write a program in C instead of in assembly language.
Well, NO!
Talking about my paid jobs, VHDL is *THE* language to design HDL stuff, and I have collected a lot of job-experiences for this, as well as professional tools for this.
Now RISCV appears and when you look at the code, a lot of projects come written in another HDL language for which I have to start from the beginning.
It's not like Assembly vs C, it's a matter of reasons and purpose. Now, or this new language has valid points, or I will avoid spending my time (and probably money) on it.
VHDL is *THE* language to design HDL stuff, and I have collected a lot of job-experiences for this, as well as professional tools for this.
You are again projecting your opinion. I use Verilog and collected a lot of tools for that. So I think that Verilog is THE language for HDL. Do you really not understand that different people have different preferences?
Also, horses are THE way for transportation.
Obviously nothing new will be the best choice for real work at first. But you will never get anything new, if you don't try to make new stuff.
I like the recent explosion in programming languages. Some of them got the right ideas, others will be forgotten.
Right now, I would not waste time trying learn Chisel beyond idle curiosity. But I'm glad that Berkeley spends their time moving that thing forward.
There is not need for gigantic fonts.
Paid jobs will always be using the old tools, of course. But the question "why you need new stuff then", is invalid.
There is not need for gigantic fonts.
Paid jobs will always be using the old tools, of course. But the question "why you need new stuff then", is invalid.
And at
my paid job, Chisel is the old HDL that all the legacy hardware was designed with, and the question of the moment is whether SpinalHDL is enough better (it clearly is better) to be worth converting everything to .. or whether Chisel can reasonably be enhanced to match Spinal (probably).
It looks to me as though SpinalHDL is quite similar to the approach taken by MyHDL. It's unfortunate, IMO, to see MyHDL languishing while the Chisel "language family" gets all the attention and improvement work due to RISCV. MyHDL has the enormous advantage of being built on top of Python, so you can do your testbenches in Python too. Imagine writing a bunch of DSP HDL and then using numpy/scipy for verification. (This is probably where your models and simulations existed already.) Who wants to do that in Scala? Yuck.
To be fair SiFive is in a special position here.
I doubt there are any companies outside of academia that actually used Chisel for anything.
Also, horses are THE way for transportation.
No doubts about this. Every engine is rated in horse powers.
Let's put the question in this terms: How useful would it be to learn Chisel HDL?
I've never heard of Chisel before. I looked at their documentation. They claim the language is highly parameterized and layered. After about an hour looking at their examples I couldn't see why it is better parameterized and layered any more than VHDL. It looks very similar to VHDL and I wouldn't have any problem re-writing their examples with VHDL. Most likely this can be done in Verilog as well. The syntax may be slightly better, but I haven't found anything dramatically better. It would be nice if someone could post a comparison between Chisel and VHDL (or Chisel and Verilog) and show where Chisel comes ahead.
Their white paper doesn't provide any specific details. They post an example where you can build a cache module just in few lines of the code (looks like the cache builder is the part of the language). But I don't see how it is different as using externally developed cache module.
IMHO Chisel is a typical product of academia where people tend to be more interested in the process as opposed to result.
From what I've seen none of the new languages are any better than VHDL/Verilog. They all seem to be "VHDL but in <insert your favorite programming language>".
Hopefully something more interesting comes along soon.
IMHO there is already enough fragmentation between VHDL and Verilog, two different languages with virtually identical capabilities. The last thing we need is *another* HDL, unless it brings to the table something very unique.
VHDL is *THE* language to design HDL stuff
Except when Verilog is flavour of the month.
It seems VHDL is the defacto standard in Europe while Verilog is more common in the US. I found there to be far more hobbyist support in VHDL so that's the language I went with. Overall I'd say there is no clear winner.
Overall I'd say there is no clear winner.
Of course there is - it's SystemVerilog!
Let the flame war begin!
I find VHDL to be aweful. I find it is endlessly verbose and that is what I think Chisel aims to remedy. I looks (from a great distance) to be a more abstract language. Usually learning the syntax of a new language is not the problem. It is learning the paradigm and mindset (and their libraries and tools) that take real time. Ultimately the goal is to be more productive.
I did some (hobbyist) VHDL but my next project will indeed be in System Verilog. To me that looks like the best blend of abstraction, conciseness and readability. Not perfect but the best we have - not looked at other languages due to lack of knowledge of their existence and sometime lack of available tools.