Author Topic: Chisel/Scala hardware description language: why?  (Read 3894 times)

0 Members and 1 Guest are viewing this topic.

Offline legacy

  • Super Contributor
  • ***
  • Posts: 4207
  • Country: ch
Chisel/Scala hardware description language: why?
« on: December 30, 2018, 01:45:10 pm »
Quote
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.
 

Offline obiwanjacobi

  • Frequent Contributor
  • **
  • Posts: 915
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: Chisel/Scala hardware description language: why?
« Reply #1 on: December 30, 2018, 02:02:33 pm »
Both from Berkeley?   :-//
Arduino Template Library | Zalt Z80 Computer
Wrong code should not compile!
 

Offline legacy

  • Super Contributor
  • ***
  • Posts: 4207
  • Country: ch
Re: Chisel/Scala hardware description language: why?
« Reply #2 on: December 30, 2018, 03:13:19 pm »
so it seems ... a Berkeley idea for supporting RISCV  :-//
 

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 1097
  • Country: nz
  • Currently at SiFive, previously Samsung R&D
Re: Chisel/Scala hardware description language: why?
« Reply #3 on: December 30, 2018, 08:43:36 pm »
Quote
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.
 

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 1097
  • Country: nz
  • Currently at SiFive, previously Samsung R&D
Re: Chisel/Scala hardware description language: why?
« Reply #4 on: December 30, 2018, 08:49:13 pm »
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).
 

Online ataradov

  • Super Contributor
  • ***
  • Posts: 5835
  • Country: us
    • Personal site
Re: Chisel/Scala hardware description language: why?
« Reply #5 on: December 30, 2018, 09:18:45 pm »
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.
Alex
 

Offline legacy

  • Super Contributor
  • ***
  • Posts: 4207
  • Country: ch
Re: Chisel/Scala hardware description language: why?
« Reply #6 on: December 30, 2018, 09:38:53 pm »
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.
 

Online ataradov

  • Super Contributor
  • ***
  • Posts: 5835
  • Country: us
    • Personal site
Re: Chisel/Scala hardware description language: why?
« Reply #7 on: December 30, 2018, 09:41:06 pm »
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.

Alex
 
The following users thanked this post: hans

Online ataradov

  • Super Contributor
  • ***
  • Posts: 5835
  • Country: us
    • Personal site
Re: Chisel/Scala hardware description language: why?
« Reply #8 on: December 30, 2018, 09:47:50 pm »
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.
Alex
 

Online ataradov

  • Super Contributor
  • ***
  • Posts: 5835
  • Country: us
    • Personal site
Re: Chisel/Scala hardware description language: why?
« Reply #9 on: December 30, 2018, 09:49:15 pm »
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.
Alex
 

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 1097
  • Country: nz
  • Currently at SiFive, previously Samsung R&D
Re: Chisel/Scala hardware description language: why?
« Reply #10 on: December 30, 2018, 09:57:06 pm »
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).
 

Offline mark03

  • Frequent Contributor
  • **
  • Posts: 552
  • Country: us
Re: Chisel/Scala hardware description language: why?
« Reply #11 on: December 30, 2018, 09:57:58 pm »
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.
 

Online ataradov

  • Super Contributor
  • ***
  • Posts: 5835
  • Country: us
    • Personal site
Re: Chisel/Scala hardware description language: why?
« Reply #12 on: December 30, 2018, 09:59:45 pm »
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.
Alex
 

Online NorthGuy

  • Super Contributor
  • ***
  • Posts: 1771
  • Country: ca
Re: Chisel/Scala hardware description language: why?
« Reply #13 on: December 30, 2018, 10:35:35 pm »
Also, horses are THE way for transportation.

No doubts about this. Every engine is rated in horse powers.
 
The following users thanked this post: TomS_

Offline legacy

  • Super Contributor
  • ***
  • Posts: 4207
  • Country: ch
Re: Chisel/Scala hardware description language: why?
« Reply #14 on: December 31, 2018, 06:55:55 pm »
Let's put the question in this terms: How useful would it be to learn Chisel HDL?
 

Offline legacy

  • Super Contributor
  • ***
  • Posts: 4207
  • Country: ch
Re: Chisel/Scala hardware description language: why?
« Reply #15 on: December 31, 2018, 06:58:35 pm »
Interesting answers here

 

Online NorthGuy

  • Super Contributor
  • ***
  • Posts: 1771
  • Country: ca
Re: Chisel/Scala hardware description language: why?
« Reply #16 on: December 31, 2018, 07:39:16 pm »
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.
 

Offline asmi

  • Frequent Contributor
  • **
  • Posts: 776
  • Country: ca
Re: Chisel/Scala hardware description language: why?
« Reply #17 on: December 31, 2018, 07:50:30 pm »
IMHO Chisel is a typical product of academia where people tend to be more interested in the process as opposed to result.
 

Online ataradov

  • Super Contributor
  • ***
  • Posts: 5835
  • Country: us
    • Personal site
Re: Chisel/Scala hardware description language: why?
« Reply #18 on: December 31, 2018, 07:52:13 pm »
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.
Alex
 

Offline legacy

  • Super Contributor
  • ***
  • Posts: 4207
  • Country: ch
Re: Chisel/Scala hardware description language: why?
« Reply #19 on: December 31, 2018, 07:53:19 pm »
IMHO Chisel is a typical product of academia where people tend to be more interested in the process as opposed to result.

precisely my doubt ...
 

Online james_s

  • Super Contributor
  • ***
  • Posts: 9173
  • Country: us
Re: Chisel/Scala hardware description language: why?
« Reply #20 on: December 31, 2018, 10:43:41 pm »
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.
 

Offline coppice

  • Super Contributor
  • ***
  • Posts: 4606
  • Country: gb
Re: Chisel/Scala hardware description language: why?
« Reply #21 on: December 31, 2018, 11:10:25 pm »
VHDL is *THE* language to design HDL stuff
Except when Verilog is flavour of the month.  :)
 

Online james_s

  • Super Contributor
  • ***
  • Posts: 9173
  • Country: us
Re: Chisel/Scala hardware description language: why?
« Reply #22 on: December 31, 2018, 11:22:45 pm »
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.
 

Offline asmi

  • Frequent Contributor
  • **
  • Posts: 776
  • Country: ca
Re: Chisel/Scala hardware description language: why?
« Reply #23 on: January 01, 2019, 12:36:37 am »
Overall I'd say there is no clear winner.
Of course there is - it's SystemVerilog! :P

Let the flame war begin! :box:
 

Offline obiwanjacobi

  • Frequent Contributor
  • **
  • Posts: 915
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: Chisel/Scala hardware description language: why?
« Reply #24 on: January 01, 2019, 07:13:49 am »
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.
Arduino Template Library | Zalt Z80 Computer
Wrong code should not compile!
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf